'=========================================================================== ' Subject: READING GAME PORT INPUTS Date: 10-01-97 (19:34) ' Author: David Rose Code: PB ' Origin: drose@awav.net Packet: PB.ABC '=========================================================================== 'Code by David Rose. drose@awav.net 'I wrote this for simple data acquisition back when 'I was writing code with PoweBasic. %AX=1:%BX=2:%CX=3:%DX=4 'Equates COLOR 14,9:CLS LOCATE 2,2:PRINT"Esc to EXIT" LOCATE 2,28:PRINT"Reading Game Port Inputs" DO REG %AX,&H8400 'Load 84h in AH REG %DX,&H0000 'Load 00h in DL CALL INTERRUPT &H15 AL% = REG(%AX) AND &HFF 'Return AL LOCATE 8,6:PRINT"#1 Digital Input ÄÄ"+chr$(26) LOCATE 9,6:PRINT"#2 Digital Input ÄÄ"+chr$(26) LOCATE 10,6:PRINT"#3 Digital Input ÄÄ"+chr$(26) LOCATE 11,6:PRINT"#4 Digital Input ÄÄ"+chr$(26) IF BIT(AL%,4) THEN LOCATE 8,28:PRINT"Open "ELSE LOCATE 8,28:PRINT"Closed" IF BIT(AL%,5) THEN LOCATE 9,28:PRINT"Open "ELSE LOCATE 9,28:PRINT"Closed" IF BIT(AL%,6) THEN LOCATE 10,28:PRINT"Open "ELSE LOCATE 10,28:PRINT"Closed" IF BIT(AL%,7) THEN LOCATE 11,28:PRINT"Open "ELSE LOCATE 11,28:PRINT"Closed" REG %AX,&H8400 'Load 84h in AH REG %DX,&H0001 'Load 01h in DL CALL INTERRUPT &H15 AX%=REG(%AX)\10 BX%=REG(%BX)\10 CX%=REG(%CX)\10 DX%=REG(%DX)\10 LOCATE 14,6:PRINT "#1 Analog Input ÄÄ"+chr$(26)" "AX% LOCATE 15,6:PRINT "#2 Analog Input ÄÄ"+chr$(26)" "BX% LOCATE 16,6:PRINT "#3 Analog Input ÄÄ"+chr$(26)" "CX% LOCATE 17,6:PRINT "#4 Analog Input ÄÄ"+chr$(26)" "DX% LOOP UNTIL INKEY$=CHR$(27)