Jak najprosciej i najbardziej poprawnie czytac klawiature? Dajcie wskazowke bo nie chce sie na slepo zapedzic w jakis zalulek bez wyjscia i stracic 3 dni pracy.
Najprościej:
getchar lda $E425
pha
lda $E424
pha
rts
Wywołujesz prockę poprze JSR GETKEY i dostajesz kod ATASCII w akumulatorze. Kod otrzymujesz w ten, a nie inny sposób, ponieważ adresy w tablicy wektorów procedur obsługi urządzeń zmniejszone są o jeden, czyli świetnie nadają się do umieszczenia na stosie i wywołania przez RTS.
Gdybyś chciał odczytać łańcuch znaków, to robisz to tak:
gets ldx #$00 ; kanał #0
lda #$05 ; rozkaz get line dla CIO
sta $0342,x
lda #<str ; adres bufora na linię
sta $0344,x
lda #>str
sta $0345,x
lda #<strlen ; długość linii
sta $0348,x
lda #>strlen
sta $0349,x
jmp $E456 ; GO ;)
Kanał #0 jest zawsze otwarty dla programów i obsługuje standardową konsolę :lol: (urządzenie E: otwarte dla wejścia/wyjścia, czyli klawiatury/ekranu). Długość linii, wbrew obiekowym opiniom, lepiej podać dokładnie (niektórzy wpisują tylko starszy bajt, tak, by wartość 16-bitowa pod $0348 była różna od zera). Pozwoli to ustrzec przed modnym ostatnio błędem przepełnienia bufora. ;) W zasadzie nie ma możliwości wpisania jdnorazowo tekstu dłuższego niż 120 znaków (jedna linia logiczna - 3 linie ekranu).
Ad.2 Mógłbyś sprecyzować dokładniej. Nie bardzo łapię o co chodzi. :idea: