RC-Project-Board/projects/GB-001 Game Board/software/RC-ONE/CH01-Getkey/readkey.asm
2020-03-03 23:32:07 +01:00

39 lines
1.5 KiB
NASM

.CR 6502
.TF readkey.hex,INT
.LF readkey.list
;
; SMALL PROGRAM FOR THE KIM-1 COMPUTER THAT SEEKS TO DEMONSTRATE THE GET KEY
; ROUTINE FROM CH1 - ESSENTIALLY WE ATTEMPT TO READ THE KEY AND JUST OUTPUT
; IT ONTO THE DISPLAYS. THE BOOK DETAILS THE USE OF A SYM-1 COMPUTER, SO
; WHATEVER BUGS YOU MAY FIND CAN BE BLAMED ON ME AND NOT THE AUTHOR OF THE
; BOOK.
;
POINTL .EQ $FA ; ADDRESS LO ON DISPLAY
POINTH .EQ $FB ; ADDRESS HI ON DISPLAY
INH .EQ $F9 ; INPUTBUFFER HI
SCANDS .EQ $1F1F ; MONITOR FUNCTION TO OUTPUT A DIGIT
VIA1 .EQ $C000
VIA3 .EQ $CC00
DDR3A .EQ VIA3+3 ; USING RC-ONE ADDRESS DECODING SCHEME, PLACING
DDR3B .EQ VIA3+2 ; VIA3 AT $CC00 BY DEFAULT (INSTEAD OF $AC00)
PORT3A .EQ VIA3+1 ; TO FIT RC-ONE ADDRESS DECODING THOUGH ORIGINAL
PORT3B .EQ VIA3 ; CAN BE JUMPERED IF NEEDED/WANTED.
.OR $0200
.TA $0200
RC_ONE LDA #0
STA DDR3A ; SET KEY STROBE PORT FOR INPUT
LDA #$FF
STA DDR3B ; SET KEYS FOR OUTPUT
LDA #0
STA POINTH
STA POINTL
STA INH
LOOP JSR GETKEY ; GET THE KEY USING THE SUB-ROUTINE FROM THE BOOK,
STA INH ; WE'LL HAVE IT IN A SO STORE IT TO DATA DIGITS.
JSR SCANDS ; HAVE THE MONITOR OUTPUT THE VALUE
JMP LOOP ; DO IT ALL AGAIN
.IN ../../common/CH01-Getkey/getkey_routine.asm