Bu sayfadaki yazılar
Sayfanın metni
Sayfa 25
MAKİNE DİLİ
END Bir makine dili programı sona erdirmenin çeşitli yöntemleri vardır. Mesela $4003 adresine veya $4000 adresine JMP yapabilirsiniz. Eğer makine dili programı BASIC'ten SYS komutuyla başlatırsanız RTS ile BASIC'e dönebilirsiniz. Her JSR komutunun karşılık gelen bir RTS komutu vardır. JSR komutunu kullandığınızda stack'a dönüş adresi yerleştirilir. RTS komutuna sıra geldiğinde stack'taki adres kullanılarak geri dönülür. RTS komutu kullanılmadan başka bir JSR komutu gelirse, buna ait dönüş adresi stack'ta ilk adresin üstüne yerleştirilir. Buna göre iki JSR komutundan sonra stack'ta iki dönüş adresi bulunur. İlk RTS komutuna sıra geldiğinde en üstteki dönüş adresi kullanılır. Böylece program akışı en son kullanılan JSR komutundan sonraki komuta geçer. BASIC'te kullanılan SYS komutunun etkisi makine dilindeki JSR komutu gibidir. BASIC'e dönülmesi gereken adres stack'a yerleştirilir. Makine dilinde hiç JSR kullanılmadan veya JSR karşılığı olmadan kullanılan RTS komutu stack'ten BASIC'e geri dönüş adresini alır. Bir makine dili programı sona erdirmenin başka bir yolu da BRK komutunu kullanmaktır. Eğer bu komut C-128'de kullanılmışsa BRK komutu sonrası makine dili monitöre girersiniz. Bu tür bir kullanım genellikle program geliştirme sırasında veya hata arama sırasında kullanılır. Hata bulunduktan veya program sona erdikten sonra bu komutu RTS ile değiştirmek uygun olur. Programınızın incelenmesini istemiyorsanız işlevini tamamladığında durmasını engellemeniz gerekir. Bunun en iyi yolu da sonsuz döngülerdir. Bu yöntemin uygulanışını en iyi oyunlarda görebiliriz. Bu oyunlardan çıkmanın tek yolu bilgisayarı kapatıp açmaktır. (Ama elimizde imkan varsa resetleme yolu ile programı inceleme şansımız vardır.) Sonsuz döngüye bir örnek vererek END komutunun karşılığını tamamlayalım. Bu örneği kullanarak klavyeden istediğiniz bir tuşu okumanız mümkün olacaktır.
ATLALDAS$D4 ; basılan tuşun saklandığı hafıza ad- resi CMP 88 ; eğer bu değer 88 ise hiç bir tuşa ba- sılmadı demektir. BERATLA ; döngüye devam et
$D4 adresinde 88 değeri varsa hiç bir tuşa basılmamış demektir, sonsuz döngüye devam et. Eğer bir tuşa basılmışsa kontrol BEQ komutundan sonraki komuta geçer ve A yazmacında basılan tuşun değeri bulunur.
AMIGA
İlk konumuz son derece güncel bir olay olan virüsler. Şu ana kadar bilinen ve başımızı derde sokan iki virüs vardı: SCA ve BYTE BANDIT. Şimdi bilinen virüslerin sayısı beşe ulaşmış durumda. Fakat yeni çıkanlardan sadece DASA adındaki üçüncü virüs Türkiye'ye girmeyi başardı. Bu ve diğer beş virüse karşı en etkili virüs killer ise Guardian isimli program. Bunun elinden kurtulan virüs henüz yok. Virüs killer programı olarak arkadaşlarımız virüse karşı nasıl korunabilirler? Disketlerinizin korumasını daima kapalı tutun. Bu durumda diskete yazmak imkansız olduğundan virüs giremeyecektir. Yeni aldığınız disketlerin sağlığından emin olmadıkça bu disketleri çıkardıktan sonra bilgisayarınızı açıp kapatın. Resetlemek hiç bir işe yaramaz, AMIGA'da Guru'dan sonra en can sıkıcı olaylardan birisi READ/WRITE ERROR'dür. Bu mesajla genellikle disketten bir program yüklerken karşılaşırsınız. Bu mesaj sizin için çok değerli bir programın kaybını işaret ediyor olabilir. Mesajla karşılaştığınızda hemen ümitsizliğe kapılmayın ve RETRY seçeneğini en az beş kere deneyin. Çoğu kere durumun düzeldiğini göreceksiniz. Eğer bütün bunlara rağmen durum değişmezse hâlâ programı kurtarmak için bir şansınız vardır. Ancak biraz CLI kullanarak uğraşmak gerekecek, ilk olarak CLI ekranını açın ve; ED s/startup-sequence yazın. Karşınıza çıkan bilgisayarın açıldığında takip edeceği işlemlerdir. Eğer ana programın öncesinde, gibi komutlar varsa ve READ/WRITE ERROR burada ortaya çıkıyorsa programı kurtarma şansınız vardır. Ana programı anlamak için sıra ile her satırın başındaki isimleri kullanarak,
LIST isim komutunu verin. Burada çıkan değer 50000'den büyükse büyük ihtimalle programı bulduğunuz demektir. Bunun üstündeki isimlerin (satır başlarına) başlarına noktalı virgül koyup yeni startup-sequence'i SAVE edin ve tekrar deneyin. Şansınız varsa program kurtulur. Bu söylediğim işlemleri kesinlikle arızalı disketin bir kopyası üzerinde yapın. Karşılaşabileceğiniz startup-sequence'a bir örnek:
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 24
Diğer Kontroller F3 : Oyunu bitirme F5 : Oyun sırasında müziği açıp kapama
Uçak bilgileri Durdurma hızı : 440 Knots Tavan : 60000 feet
İdeal uçuş yüksekliği 30000 feet veya daha yüksek. Silahlar: Makineli tüfek (C) Menzil — 1 mil Isı güdümlü füzeler (H) Menzil- 1 mil Radar kontrollü füzeler (R) Menzil — 25 mil hedefi izler. Havadan karaya/denize Menzil — Yükseklik 2000 feet'den ve hız 500 knot'tan az olmak koşulu ile kara ve deniz hedeflerini vurur. İzmir'den Özgür Öğret arkadaşımız bize aşağıdaki ipuçlarını göndermiş. Kendisine teşekkür ediyoruz. Frightmare Havada uçuşan medusa başlarını, kuşları ve benzeri nesneleri vurursanız rüya durumunuz yükselir. Böylece kadehleri toplamanıza gerek kalmaz. Cihan Çapan arkadaşımız bize aşağıdaki ipuçlarını göndermiş. Kendisine teşekkür ediyoruz. Dandare II RUN/STOP tuşuna ilk defa bastığınızda oyun duruyor, ikinci basışta zaman duruyor. Engin Akbulut arkadaşımız bize Power at sea oyununun bitirilmesinde yardımcı olacak ipuçlarını göndermiş. Kendisine teşekkür ediyoruz. (1) Başlangıçta seçimlerde 40 fuel 6000 asker almanızı önerilir, çünkü benzin yetiyor ama bazen 5000 asker yetmiyor. (2) Bir destroyere rastladığınızda önce hiç bombardıman uçağı kaldırmayın. Çünkü bunlar çok yavaş hareket ediyor ve hemen vuruluyor. Önce avcı uçaklarıyla destroyeri tarayın ve gri noktalar halinde hasar meydana getirin. Sonra bombardıman uçağıyla saldırıya geçin ve pike yaparken nişangah beyaz olunca bombayı bırakın. Geminin battığını göreceksiniz. (3) Üstlerde yeşillik içindeki toplar için topunuzu 15 dereceye ayarlayın ve diğerleri için 5 derece yapın. En sondaki beton koruganlar için topunuzu 20 dereceye ayarlayın ve koruganların tam kenarında ateş edin. Çoğu topu yok edersiniz, üssün durumu kötüleşiyorsa, mesela Strong'dan Medium'a, Medium'dan Strong'a, böylece askerden tasarruf ediyorsunuz. (4) Rotada değişiklik yapmak isterseniz tuşuna basarak işaretlediğiniz noktaları silebilirsiniz. Engin arkadaşımız takıldığınız noktaları kendisine sorabileceğini söylüyor, adresi aşağıda:
Engin Akbulut Batı Loj. Cerbe A/3 Gölcük/Kocaeli
Kdz. Ereğli-Zonguldak'tan Yavuz Güçeri arkadaşımız bize The way of exploding fist II oyununun bitirilmesinde yardımcı olacak ipuçlarını göndermiş. Kendisine teşekkür ediyoruz. Bir kavgadan sonra tükenen enerjimiz zamanla yenileniyor. Fakat eğer adamımızı müziğin değiştiği (bu çok önemli) bir yere bir defa sokup çıkartıp sonra tekrar sokarsak enerji bir birim artıyor. Böylece mesela bir yoldan mağaraya girerken girip çıkarak beklemekle 3-4 dakika kadar süren enerji toplama işini halledebiliriz. Yavuz arkadaşımızın bir de sorusu var: Soru: BASIC'te uzun DATA'ları (mesela sprite dataları ya da karakter datalarını) READ-DATA ile kolayca okuyoruz. Bu işi makine dilinde nasıl yapabiliriz. Benim düşündüğüm tek tek LDA-STA ile tüm dataları girmek. Cevap: Bu işlem düşündüğünüz gibi LDA-STA yolu ile yapılabilir. Ama eğer datalarınız çoksa bütün hafızayı bu iki komuta harcamak zorunda kalırsınız. Benim verdiğim ufak program tek çözüm değil ama sizin için bir başlangıç noktası olabilir. Ve benim verdiğim yöntem bir kerede en fazla 255 data okuyabiliyor.:
LDX SFF : Dön DEX : X yazmacını bir azalt LDA $adres, X ; adres— dataların başlagıç ad- resi STA $adres, X
BNE Dön ; Eğer X yazmacı sıfıra eşit değil- se DEX komutuna git RTS : Çağıran programa geri dön
İzmir'den Ömer Atamer arkadaşımız Football Director programında başarılı olmak için neler yapması gerektiğini soruyor? Football Director oyununda başarılı olabilmek için iki faktör var. Bunlardan ilki kulübün mali durumunu en iyi düzeye getirmek, diğeri ise doğru oyun taktiği ve oyuncu seçimi ile takımınıza başarılı sonuçlar aldırmak. Mali faktörün önemli olmasının sebebi yeni oyuncu alabilme gücü. Eğer takımınıza yeni ve kaliteli oyuncu almazsanız, takımı ne kadar iyi yönetirseniz yönetin belirli bir seviyenin üstüne çıkamazsınız. Daha da kötüsü mali sıkıntı yüzünden elinizdeki yıldız oyuncuları da satmak zorunda kalabilirsiniz. Bu durum takımın mevcut gücünün de düşmesine yol açar. Takımın mali gücünü yani parasını nasıl artırabilirsiniz. Görünüşte iki yol var: (1) Paranızla hisse senedi almak ve bunlar değerlenince satmak. (2) Oyuncu alıp satmak, Ancak her iki yolda da pazar kazanıyor görünseniz de vergi kesintisi gibi giderler yüzünden zarara girip elinizdeki paradan da oluyorsunuz. Paranızı değerlendirmenin en iyi şekli, kaliteli oyuncu almak olacaktır. Bütün sezon boyunca sadece iki oyuncu almak yeterli olur. Geri kalan parayı da muhtemel para açıklarına yedek olarak saklayabilirsiniz. Alacağınız oyunculardan birisi kaleci diğeri de forvet elemanı olmalı ve her ikisinin de minimum yeteneği altı veya yedi üstünde olmalıdır. Bu sayede hem kalenizi güvenceye almış olacak hem de takımın gol atma yeteneğini arttırmış olacaksınız. Para kazanmanın tek yolu maçlarda başarılı sonuçlar elde etmek olur. Özellikle kupa maçlarında tur atladıkça alacağınız para miktarı artacaktır. Takımın başarısı için takımı çalıştırın, ama bunun sabır veya iki saati geçmesin. İlk onbiri mümkün olan en iyi elemanlardan kurun. Mali gücünüz arttıkça takımın diğer mevkilerindeki oyuncuları da iyileri ile değiştirin. Bulduğunuz oyun kolaylıklarını diğer Commodore'cu arkadaşlarla paylaşmak isterseniz bize göndermeyi unutmayın. Adresimiz: