Zapis znaku na ekran (PUT)
From Atariki
(Różnice między wersjami)
Wersja z dnia 21:01, 6 mar 2008 Miker (Dyskusja | wkład) (dolinkowienie) ← Previous diff |
Wersja z dnia 13:03, 27 cze 2008 KMK (Dyskusja | wkład) (uzup.) Next diff → |
||
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 == |
Wersja z dnia 13:03, 27 cze 2008
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