
 1000  *---------------------------------
 1010  *      BINARY KEYBOARD
 1020  *---------------------------------
 1030  MON.CH   .EQ $24
 1040  MON.CV   .EQ $25
 1050  KEYBOARD .EQ $C000
 1060  STROBE   .EQ $C010
 1070  MON.VTAB .EQ $FC24
 1080  MON.HOME .EQ $FC58
 1090  MON.BELL .EQ $FBE2
 1100  MON.PRBYTE .EQ $FDDA
 1110  *---------------------------------
 1120  GETCHR LDA #0
 1130  .1     STA CHARCODE
 1140         LDA #-16
 1150         STA CNTR
 1160         STA CNTR+1
 1170  .2     LDA KEYBOARD
 1180         BMI .4       SOMETHING TYPED
 1190         INC CNTR
 1200         BNE .2
 1210         INC CNTR+1
 1220         BNE .2
 1230         LDA CHARCODE GET COMPOSITE CODE
 1240         BEQ GETCHR   NO KEYS HIT YET
 1250  .3     RTS
 1260  *---------------------------------
 1270  .4     STA STROBE   CLEAR KEYBOARD STROBE
 1280         AND #$7F
 1290         CMP #$20     HANDLE BLANK SEPARATELY
 1300         BEQ .3
 1310         LDY #6       SEARCH LIST OF LEGAL KEYS
 1320  .5     CMP LEGAL.KEYS,Y
 1330         BEQ .6
 1340         DEY
 1350         BPL .5
 1360         JSR MON.BELL
 1370         JMP GETCHR
 1380  .6     LDA KEY.BITS,Y
 1390         ORA CHARCODE
 1400         BNE .1       ...ALWAYS
 1410  *---------------------------------
 1420  LEGAL.KEYS .AS /JKL1234/
 1430  KEY.BITS   .HS 40201008040201
 1440  *---------------------------------
 1450  CHARCODE   .BS 1
 1460  CNTR       .BS 2
 1470  *---------------------------------
 1480  *      TEST BINARY KEYBOARD
 1490  *---------------------------------
 1500  TEST   JSR MON.HOME
 1510  .1     JSR GETCHR
 1520         STA $403     LINE 1, COLUMN 4 OF SCREEN
 1530         LDA #0
 1540         STA MON.CH
 1550         STA MON.CV
 1560         JSR MON.VTAB
 1570         LDA $403
 1580         JSR MON.PRBYTE
 1590         JMP .1

