You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
1.2 KiB

;======================================================================
; NABU KEYBOARD DRIVER
;
; CREATED BY: LES BIRD
;
;======================================================================
;
; KBPORT EQU $90
;
; POLL FOR INPUT
; KBLOOP:
; IN A,(KBPORT+1)
; BIT 1,A
; JR Z,KBLOOP
; IN A,(KBPORT)
;
; INIT:
; XOR A
; CALL SUB12
; CALL SUB12
; CALL SUB12
; CALL SUB12
; CALL SUB12
; LD A,40H
; CALL SUB12
; LD A,4EH
; CALL SUB12
; LD A,04H
; CALL SUB12
;
NABUKB_DAT .EQU $90
;
NABUKB_INIT:
CALL NEWLINE
PRTS("NABUKB: IO=0x$")
LD A,NABUKB_DAT
CALL PRTHEXBYTE
;
XOR A
CALL NABUKB_PUT
CALL NABUKB_PUT
CALL NABUKB_PUT
CALL NABUKB_PUT
CALL NABUKB_PUT
LD A,$40 ; RESET 8251
CALL NABUKB_PUT
LD A,$4E ; 1 STOP BIT, 8 BITS, 64X CLK
CALL NABUKB_PUT
LD A,$04 ; ENABLE RECV
CALL NABUKB_PUT
;
XOR A
RET
;
NABUKB_STAT:
IN A,(NABUKB_DAT+1)
AND $02
JP Z,CIO_IDLE
RET
;
NABUKB_FLUSH:
XOR A
RET
;
NABUKB_READ:
IN A,(NABUKB_DAT+1)
AND $02
JR Z,NABUKB_READ
IN A,(NABUKB_DAT)
LD E,A
CP $80
JR C,NABUKB_READ1
LD E,$FF
NABUKB_READ1:
XOR A
RET
;
NABUKB_PUT:
OUT (NABUKB_DAT+1),A
NOP
NOP
NOP
NOP
NOP
RET
;