Zapis ciągu znaków na ekran (PRINT)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 17:41, 29 sie 2009
KMK (Dyskusja | wkład)
(Programowanie: Zapis ciągu znaków na ekran moved to Zapis ciągu znaków na ekran (PRINT))
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)

Linia 3: Linia 3:
Wyprowadzenie tekstu uzyskuje się przez załadowanie jego adresu do rejestrów A/Y (młodszy/starszy) i wykonaniu rozkazu JSR PUTLINE. Wyprowadzenie tekstu uzyskuje się przez załadowanie jego adresu do rejestrów A/Y (młodszy/starszy) i wykonaniu rozkazu JSR PUTLINE.
-<pre>+ iccmd = $0342
-iccmd = $0342+ icbufa = $0344
-icbufa = $0344+ icbufl = $0348
-icbufl = $0348+ ;
-jciomain = $e456+ putline ldx #$00
- + sta icbufa,x
-putline ldx #$00+ tya
- sta icbufa,x+ sta icbufa+1,x
- tya+ lda #$ff
- sta icbufa+1,x+ sta icbufl,x
- lda #$ff+ lda #$09
- sta icbufl,x+ sta iccmd,x
- lda #$09+ jmp [[Tablica skoków#JCIOMAIN|jciomain]]
- sta iccmd,x+
- jmp jciomain+
-</pre>+
[[Kategoria:Niezbędnik kodera]] [[Kategoria:Niezbędnik kodera]]

Aktualna wersja

Procedura wyprowadza na ekran ciąg znaków (string) na pozycji X/Y kursora określonej przez zmienne odpowiednio COLCRS ($55-$56) i ROWCRS ($54). Ciąg znaków musi być zakończony znakiem RETURN ($9B). Zakłada się, że obowiązują przy tym domyślne ustawienia OS-u, to jest ekran jest w trybie Graphics 0, a kanał IOCB 0 jest otwarty dla edytora ekranowego.

Wyprowadzenie tekstu uzyskuje się przez załadowanie jego adresu do rejestrów A/Y (młodszy/starszy) i wykonaniu rozkazu JSR PUTLINE.

iccmd    = $0342
icbufa   = $0344
icbufl   = $0348
;
putline ldx #$00
        sta icbufa,x
        tya
        sta icbufa+1,x
        lda #$ff
        sta icbufl,x
        lda #$09
        sta iccmd,x
        jmp jciomain
Personal tools