Commodore sayı 36, sayfa 26

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 26

MAKİNE DİLİ GET

Her bilgisayarda hangi tuşun basıldığını hafızada tutan bir adres vardır. Bu adreste klavyede basılan tuşun değeri saklanır. Adresteki değeri elde etmek için bu adresi kontrol eden ufak bir döngü yeterli olur. C64'te bu adresi kontrol edelim:

LDA CMP # 10 BE© bulundu

Bakmamız gereken adres, sıfırıncı sayfadaki $C6 adresidir. Bu adreste klavyeden girilen tuşların değerlerini alabilirsiniz. Ancak bu değerler ASCII kodları değil, klavye matris kodlarıdır. Örneğimizdeki 10 değeri tuşunun klavye matris kodudur. Hiçbir tuşa basılmamışsa bu adresin değeri 64'tür.

GOSUB

BASIC'te sık sık tekrarlamak zorunda olduğunuz program parçalarını altprogram olarak yazıp, ihtiyaç olduğunda program akışını GOSUB komutuyla altprograma gönderebilirsiniz. Bunun için GOSUB komutundan sonra altprogramın başlangıç satır numarasını vermeniz yeterli olur. Makine dilinde de JSR komutu aynı işi görür. Bu komuttan sonra altprogramın bulunduğu adresi vermeniz yeterli olur. Mesela altprogram $C000'da başlasın.

JSR SCOOO

JSR $C000 komutunu veriniz. Altprogramları daha etkili kullanabilmek için parametrelerden yararlanırız. Bu bir sayı veya birkaç sayı olabilir. Parametre sayesinde altprogram, bir değişikliğe gerek kalmadan, programın farklı yerlerinde çağrılabilir. Mesela programın yavaşlamasını sağlayacak bir gecikme yapan bir altprogram yapalım. Bu altprogram, programımızın her yerinden çağrılabilmeli. Ancak her çağırışımızda farklı bekleme süreleri isteyebileceğimizden, bunu sağlayacak bir parametre kullanacağız. Altprogramlara parametre geçirmede $40 adresini kullanalım. Mesela, beş saniyelik bir gecikme isteyen bir program:

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