Commodore sayı 35, sayfa 50

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 50

Bulduğunuz oyun kolaylıklarını diğer Commodore'cu arkadaşlarla paylaşmak isterseniz bize göndermeyi unutmayın. AMIGA'cı arkadaşlar da oyunlar hakkındaki sorunlarını, bilgilerini veya AMIGA ile ilgili diğer sorunlarını bana gönderebilirler.

MAKİNE DİLİ

FOR-NEXT: Bu komutu bazen programda bekleme meydana getirmek için kullanırız. Mesela,

FOR 1-1 TO 1000 : NEXT |

Bu komut hiç bir şey yapılmadan beklenmesini sağlar. Ve i değişkenin değeri 1000 olduğunda kontrol bir alttaki komuta geçer. Yazdığımız makine dili programlarda boş döngüleri özellikle programı yavaşlatmak için kullanacağız. Mesela ekranda zıplayan bir top yapsak, bu top boş döngü olmadan belki de görünemeyecek kadar hızlı hareket edecektir. Ama gerekli yere döngü koyarak programın yavaşlamasını sağlarsak, hareket eden topun görünmesini sağlayabiliriz. Ne yazık ki makine dilinde BASIC'te olduğu gibi döngünün ne zaman biteceğini belirten bir komut yok. Bu yüzden kendi sayaç değişkenimizi oluşturmalı ve bu değişkenin istenen değere gelip gelmediğini kontrol etmeliyiz. Eğer istediğiniz döngü 255 çevrimden az olacaksa X yazmacını sayaç olarak kullanabilirsiniz. Çünkü Y yazmacı çok kullanışlı olan dolaylı indeksleme adres modu için ayrılmıştır. Mesela X yazmacını kullanarak 200'den 0'a doğru sayacak bir program yazalım:

200 ; (veya SC8) 2002 DEX 2003 BNE $2002

255 çevrimden fazla döngüler için iki sayaç kullanmak gerekir. Bu sayaçlardan birisi 255'ten 0'a doğru giderken diğer sayacın değerinin artırılmasını sağlar. (Hatırlatalım, makine dilinde 255'ten sonra tekrar 0 gelir.) 512 sayacak bir program yazalım:

2000LDA $2 2002 STA $6000 6000 numaralı adrese 2 değerini koyun Bu sayaç diğer sayacın her 255 saymasında bir azalacak

2005 LDX #$00 X yazmacını sıfıra eşitle, Böylece ilk DEX komutu X yazmacının değerini 255 yapsın. 2007 DEX

2008 BNE $2007

200A DEC $6000 ; 6000 numaralı adresin değerini bir azalt,

200D BNE $2007

Bu örnekte X yazmacını hızlı dönen sayaç olarak kullandık, $6000 numaralı adresi ile yavaş değişen sayaç olarak kullandık. Bu adresi kullanmamızın sebebi, RAM'de değeri değişmeyecek emin bir yer olmasıdır. Buralarda bulunan istediğiniz başka bir adresi de kullanabilirsiniz. Bunlardan başka sıfırıncı sayfada yer alan, $FA ve $FB adreslerini de sayaç olarak kullanmanız mümkündü. Bu durumda

LDA ($FA),Y şeklinde bir kullanım yapılabilirdi

FOR-NEXT-STEP

Bu komut yardımı ile döngüde kullanılan değişkenin değerini birden daha büyük aralıklarla değiştirebilirsiniz. Mesela,

FOR 1-100 TO 1 STEP -2 komutunun makine dilinde karşılığı şöyle olabilir: 2000 LDX 100 2002 DEX 2004 DEX 1004 BNE $2002

Daha büyük sayılar için iki değişken kullanabiliriz. Mesela,

FOR 1-512 TO O STEP -2

komutunun karşılığı

Klavyeyle gezinmek için ← ve → tuşları.