REM File: Key_Scan.BAS Date: 07/13/92 REM REM /* (c) Copyright BLUE EARTH RESEARCH, MANKATO, MN 1992. */ REM /* All rights reserved. */ REM 4 REM Keyboard Scan Routine REM Define variables for external memory addresses 10 RES_L=0E000H : RES_H=0E200H : CTRL=0FB00H 20 PORTA=0F800H : PORTB=0F900H : PORTC=0FA00H REM Initialize the 82C55A for Mode 0 REM For more information on operating modes, refer to Data Sheet 100 XBY(RES_H)=0 : XBY(RES_L)=0 : XBY(CTRL)=88H REM Read all of the rows and columns REM Note that no key debouncing is performed in this software 120 XBY(PORTB)=1 : A=XBY(PORTC) : XBY(PORTB)=2 : B=XBY(PORTC) 140 XBY(PORTB)=4 : C=XBY(PORTC) : XBY(PORTB)=8 : D=XBY(PORTC) REM Decipher each row byte 160 IF D.AND.80H THEN PRINT 0, ELSE PRINT 1, 170 IF D.AND.40H THEN PRINT 0, ELSE PRINT 2, 180 IF D.AND.20H THEN PRINT 0, ELSE PRINT 3, 190 IF D.AND.10H THEN PRINT 0, ELSE PRINT " A ", 200 IF C.AND.80H THEN PRINT 0, ELSE PRINT 4, 210 IF C.AND.40H THEN PRINT 0, ELSE PRINT 5, 220 IF C.AND.20H THEN PRINT 0, ELSE PRINT 6, 230 IF C.AND.10H THEN PRINT 0, ELSE PRINT " B ", 240 IF B.AND.80H THEN PRINT 0, ELSE PRINT 7, 250 IF B.AND.40H THEN PRINT 0, ELSE PRINT 8, 260 IF B.AND.20H THEN PRINT 0, ELSE PRINT 9, 270 IF B.AND.10H THEN PRINT 0, ELSE PRINT " C ", 280 IF A.AND.80H THEN PRINT 0, ELSE PRINT " * ", 290 IF A.AND.40H THEN PRINT 0, ELSE PRINT " Z ", 300 IF A.AND.20H THEN PRINT 0, ELSE PRINT " # ", 310 IF A.AND.10H THEN PRINT 0, ELSE PRINT " D ", 400 PRINT CR, : GOTO 120