C64 Türkiye sayı 6, sayfa 16

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 16

left .byte 0 ; Sol değişken sayaç adresi right .byte 0 ; Sağ değişken sayaç adresi byte .byte 0 ; Satırdan okunacak byte için sayaç ;---------------------------------------------------------------------------------------; inv lda #$12 ; “inverse” özelliğinin kodu jsr $ffd2 ; Aktif hale getir jmp $a7e4 ; Kontrolü Basic Rom’a devret ;---------------------------------------------------------------------------------------; font jsr $73 ; Komuttan sonra bir karakter var mı beq font1 ; yoksa git jsr $b79e ; Evet var. Sayıyı veya değişkeni al cpx #$08 ; sonucu 8 ile karşılaştır bcs font_err ; 8’e eşitse veya 8’den büyükse hata komutu txa ; X registerini Akü’ye transfer et asl ; 2 ile çarp clc ; Elde bitini sıfırla adc #$10 ; #$10 (16) ile topla .byte $2c ; Bilgisayarı kandırma sayısı ☺ font1 lda #$14 ; Default Rom Karakter Set seçme değeri sta $d018 ; $D018 kontrol registerine yaz jmp $a7ae ; Kontrolü Basic Rom’a devret font_err jmp $b248 ; “illegal quantity error” mesajını yazdır. ;---------------------------------------------------------------------------------------; speed jsr $73 ; Komuttan sonra bir karakter var mı? beq norm ; yoksa git jsr $b79e ; Evet var. Sayıyı veya değişkeni al .byte $2c ; Bilgisayarı kandır norm ldx #$33 ; Normal değer. stx $dc05 ; İlgili registere yaz. jmp $a7ae ; Kontrolü Basic Rom’a devret. ;---------------------------------------------------------------------------------------; screen jsr $b79b ; Komuttan sonraki parametreyi al cpx #$02 ; 2 ile karşılaştır bcs scr_err ; büyük veya eşitse hata mesajını yazdır lda $d011 ; Ekran kontrol registerini oku cpx #$01 ; X registerinin değeri 1 beq on ; ise ekran açılacak. off and #$ef ; değilse ekranı kapat. .byte $2c ; bilgisayarı kandır on ora #$10 ; ekranı aç sta $d011 ; ekran kontrol registerine yaz jmp $a7ae ; Kontrolü Basic Rom’a devret. scr_err jmp $b248 ; “illegal quantity error” mesajını yazdır. ;---------------------------------------------------------------------------------------; delay jsr $b79b ; Komuttan sonraki parametreyi al. delay1 jsr $eeb3 ; Romdaki 1ms gecikme rutinine git dex ; X registerini 1 azalt. bne delay1 ; 0 olmadıysa tekrarla jmp $a7ae ; Kontrolü Basic Rom’a devret. ;---------------------------------------------------------------------------------------;

.end ; Programın sonu.

C64’e yeni komutlar eklediğimiz bu yazı dizisi burada sona eriyor. Program döküm ekinde listeyi bulabilirsiniz. Bir sonraki sayının program döküm ekinde ise HADES BASIC’in tamamını vereceğim. Ayrıca yeni komutlarla ilgili örnek programlar yer alacak.

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