



       NAM KEYSUB KEYBOARD INTERRUPT SUB
*      REV 1.0 BY MOTOROLA MICROSYSTEMS MARCH 1977
       OPT S
       OPT O
       ORG $6
KBUFF   RMB 1
       ORG $1200
DLSUB   EQU $1300
ERSUB   EQU $1400
       JSR DLSUB GO TO DLSUB
       FDB 12 WAIT 12 MSEC FOR BOUNCE DELAY
       FCB 1 LOOK FOR A ONE
       FCB 0 THROUGH THIS MASK
       FDB 0 IN LOCATION ZERO
       LDA A $4000 READ A SIDE PIA
       STA A KBUFF STORE IN KEYBOARD BUFFER
       JSR DLSUB GO TO DLSUB
       FDB 60000 WAIT FOR A MINUTE FCB 0 LOOK FOR A ZERO
       FCB $1F ON ALL KEYS
       FDB $4000 AT A SIDE PIA
       TST A SEE IF TIMEOUT OCCURED
       BNE *+5 BRANCH IF NOT
       JSR ERSUB GO TO ERROR SUB IF TIMEOUT
       RTI RETURN TO MAIN PROGRAM
       END
       NAM DLSUB
       ORG 0000
       OPT 0
       OPT S
       RMB 1
       RMB 1
       RMB 1
       RMB 1
       RMB 1
       ORG $1300
       PUL A
       STA A TEMP
       PUL B
       STA A TEMP+1
       ADD B #6
       ADC A #0
       PSH B
       PSH A
       LDX TEMP
       LDA 0,X
       LDA B 1,X
       COM A
       NEG B
       BNE *+3
       INC A
       STA A CONT-1
       STA B CONT
       LDA A #$E9
       STA A D0ONT
       LDA B 2,X
       LDA A 3,X
       LDX 4,X
       BRA DLTST
       PSH A
       LDA A #$E7
       STA A D0ONT
       PUL A
       BIT A 0,X
       BEQ DGLIT
       BIT A 0,X
       BEQ DLTST
       BRA *+8
       BIT A 0,X
       BNE DLTST
       BRA ZTST
       BIT B #1
       BEQ DLINC
       BRA YDOUT
       BIT B #1
       BEQ YDOUT
       INC D0ONT
       BNE DLTST
       INC CONT
       BNE DLSTRT
       INC CONT-1
       BNE DLSTRT
       CLR A
       RTS
       LDA A #1
       RTS
