Commodore sayı 72, sayfa 20

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 20

- tektiğini anlarız. Değilse zaten diğer kısımlara geçebiliriz. 4) Oku bir sağa almak:

Oku bir sağa al

TABLO 6

Burada yapılacak işler de neredeyse demin ki basamakla aynı. İlk olarak yüksek değerli bayta bakarız. Eğer bu baytın değeri sıfırsa hemen X koordinatını artırmaya girişiriz. Eğer baytın değeri 1'se o zaman alçak değerli baytın 63'ten küçük olup olmadığını kontrol ederiz ($0140 olduğu için, 255 üstündeki değerlerde alçak bayt ancak 64'e yani $40'a kadar çıkabilmeli). Eğer şartlar uygunsa X'i bir artırabiliriz. X'i artırabilmek için, gene ilk olarak alçak baytı artırmalıyız. Eğer alçak bayt sıfır değerini almışsa, yüksek baytı da artırırız ($00FF'den $0100'a gelindiği için). 5) Koordinatı gerekli yere kaydet:

Koordinatı gerekli yere kaydet

TABLO 7

Buradaki işimiz oldukça kolay. İlk olarak X koordinatını olduğu gibi Ateş X koordinatına taşımalıyız (iki baytın da). Daha sonra da X koordinatının karakter pozisyonunu hesaplamalıyız (Bunu yapmak göründüğü kadar da zor değil). İlk olarak alçak baytı üç adet LSR kullanarak sekize böleriz ve bu değeri Ateş X karakter pozisyonu değişkenine yazarız. Daha sonra yüksek baytın değerine bakarız. Eğer 0 ise işimiz kolaydır: Hiçbir şey yapmayız! Ama bu adreste 1 varsa o zaman 256/8'in değerine bakarız. 32 sayısı tam bir bit olduğu için bu değeri doğrudan doğruya Ateş X karakter değeriyle ORA'layarak toplama işlemini gerçekleştirebiliriz. Böyle bir CLC'den kâr ederiz. Daha sonra Y koordinatını Ateş Y koordinatına taşırız. Üç LSR'de burada kullanarak Y'nin karakter pozisyonunu hesaplarız ve Ateş Y karakter pozisyonuna bu değeri yazarız. Böylece ateşe basıldığında yapılacak işleri de bitirmiş oluruz. 6) Karakter pozisyonunu hesapla:

Demin yaptığımız işlemler yalnızca ateşe basıldığında yapılacağı için, şimdi bir kez daha bu işlemleri yapmalıyız. Daha sonra $0-

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