Wracając do tematu. Najlepsze motody opierają się na specyfikacji systemu i dlatego proponuję jeszcze jedną metodę odczytu klawiatury:
; Initialize reading
ldx #$50 ; open IOCB for Keyboard
lda #$03 ; IOCB open
sta $0342,x ; ICCMD (char)
lda #<kb.id
sta $0344,x ; ICBUFA (ushort)
lda #>kb.id
sta $0345,x
lda #$04 ; open for reading
sta $034A,x
jsr $E456 ; JCIOMAIN
; ...
; some code here
; ...
kb.id .by "K:" 0
; Keyboard reading
getc ldx #$50
lda #$07 ; IOCB get bytes
sta $0342,x
lda #$00
sta $0348,x
sta $0349,x
jmp $E456
; Called by exit() function
kbcls ldx #$50
lda #$0C ; IOCB close
sta #0342,x
jmp $E456
Po wyjściu z GETC kod ATASCII znajduje się w akumulatorze.
Powyższą metodą będziemy mieli pewność, że klawiaturę poprawnie odczytamy zawsze, niezależnie od wersji systemu i jego położenia w pamięci (oczywiście pewne adresy muszą być zachowane, np. tablica skoków).
:!: Więcej :!:
:!: Jeśli ktoś przeniesie system operacyjny z Atari na Commodore, to powyższy kod ruszy bez żadnych zmian. :!:
[ Dodano: 15.11.2004 11:35:21 ]
(choc choroba nie mam clicka po nacisnieciu.... badam sprawe).
My Ci zawsze dobrze doradzimy. :) Przy mojej klik musi być!