;====================================================================== ; 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 ;