Zapis znaku na ekran (PUT)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 21:01, 6 mar 2008
Miker (Dyskusja | wkład)
(dolinkowienie)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)

Linia 2: Linia 2:
Wyprowadzenie znaku polega na załadowaniu jego kodu [[ATASCII]] do akumulatora i wykonaniu rozkazu JSR PUTCHR. Wyprowadzenie znaku polega na załadowaniu jego kodu [[ATASCII]] do akumulatora i wykonaniu rozkazu JSR PUTCHR.
 +
 +Po wyświetleniu znaku pozycja kursora jest uaktualniana automatycznie, a gdy kursor ma się znaleźć poniżej dolnej skrajni ekranu, następuje przesuw całej zawartości ekranu o jeden wiersz (logiczny) w górę.
== Wersja dla 6502 == == Wersja dla 6502 ==
-<pre> 
-icputb = $0346 
-putchr ldx #$00 ;nr IOCB pomnożony przez 16+ icputb = $0346
- tay ;znak do wysłania jest w akumulatorze+ ;
- lda icputb+1,x+ putchr ldx #$00 ;nr IOCB pomnożony przez 16
- pha+ tay ;znak do wysłania jest w akumulatorze
- lda icputb,x+ lda icputb+1,x
- pha+ pha
- tya+ lda icputb,x
- rts+ pha
-</pre>+ tya
 + rts
== Wersja dla 65C816 == == Wersja dla 65C816 ==
-<pre>+ icputb = $0346
-icputb = $0346+ ;
- + putchr ldx #$00
-putchr ldx #$00+ ldy icputb+1,x
- ldy icputb+1,x+ phy
- phy+ ldy icputb,x
- ldy icputb,x+ phy
- phy+ rts
- rts+
-</pre>+
[[Kategoria:Niezbędnik kodera]] [[Kategoria:Niezbędnik kodera]]

Aktualna wersja

Procedura wyprowadza znak na ekran na pozycji X/Y kursora określonej przez zmienne odpowiednio COLCRS ($55-$56) i ROWCRS ($54). Zakłada się, że obowiązują przy tym poprawne ustawienia trybów grafiki OS-u, to jest ekran jest w trybie "konsoli" (Graphics 0), lub w trybie graficznym z oknem tekstowym, a kanał, przez który wysyłamy bajt (w przykładzie IOCB 0), jest otwarty dla edytora ekranowego (urządzenie "E:" CIO).

Wyprowadzenie znaku polega na załadowaniu jego kodu ATASCII do akumulatora i wykonaniu rozkazu JSR PUTCHR.

Po wyświetleniu znaku pozycja kursora jest uaktualniana automatycznie, a gdy kursor ma się znaleźć poniżej dolnej skrajni ekranu, następuje przesuw całej zawartości ekranu o jeden wiersz (logiczny) w górę.

Wersja dla 6502

icputb = $0346
;
putchr ldx #$00          ;nr IOCB pomnożony przez 16
       tay               ;znak do wysłania jest w akumulatorze
       lda icputb+1,x
       pha
       lda icputb,x
       pha
       tya
       rts

Wersja dla 65C816

icputb = $0346
;
putchr ldx #$00
       ldy icputb+1,x
       phy
       ldy icputb,x
       phy
       rts
Personal tools