24 Ağustos 2014 Pazar

Dizi Yazdırma $AB1E (strout) BASIC rutini


Dizi Yazdırma

CBM Prg Studio ile yeni bir assembler projesi oluşturun. ASCII kodları ile ekrana diziyi yazdıran $AB1E (strout) basic rutinini kullanmayı öğreneceğiz. Bu dizi mutlaka $00 ile sonlandırmalıdır. Yoksa $00'ı buluna kadar yazıyor deli dumrul :)

Diyelim ki yazdırmak istediğiniz mesaj yada text adresi $4580'da olsun.

.M 4580 CD 45 52 48 41 42 41 00 

strout basic rutinini kullanabilmek için mesaj içeriğinin başlangıç adresi olan $4580'nin alt ve üst byte olarak A ve Y registerlerine atamalı sonra rutini çağırmalıyız. A registerine alt, Y registerine ise üst byte tanımlanmalıdır.

Aşağıdaki kodları IDE içine yazıp derleyin. Çabuk sonuç için emulator kullanabilirsiniz. IDE ayarlarından emulator ayarlarını yaptıktan sonra CTRL + F5 ile kolaylıkla derleyip sonucu görebilirsiniz.

; String output
; strout $AB1E basic rutini

*=$0820 ; başlangıç adresi

strout    = $AB1E 

;        LDA $D018       ; küçük harf moduna geç
;        ORA #$02
;        STA $D018

        LDA #<mesaj     ; mesaj adresinin a ve y için tanımlanması
        LDY #>mesaj
        JSR strout      ; diziyi yazdır
        RTS             ; basic'e dön (programı bitir)

mesaj   byte $0e, $93 ; küçük harf moduna geç ve ekranı sil
        byte $cd, $45, $52, $48, $41, $42, $41, $a0 ; Merhaba Dostum
        byte $c4, $4f, $53, $54, $55, $4d, $0d, $0d
        byte $00

; mesajın sonu mutlaka $00 ile bitmelidir                   
; mesaj ASCII kodları ile yazılmalı          


Hiç yorum yok: