' ' (c)Copyright Sealevel Systems Incorporated, 1993 - 1995 ' start: OUT &H301, 0 'reset bits that are active OUT &H303, 0 'reset bits that are active START1: CLS PRINT "Port =": PRINT (HEX$(INP(&H300))) PRINT PRINT PRINT PRINT "Press F1 to Set a Bit" PRINT "Press F2 to Reset a Bit" PRINT "Press F3 to Write a Byte" PRINT "Press F4 to exit" PRINT ON KEY(1) GOSUB SETBIT: ON KEY(2) GOSUB RESETBIT: ON KEY(3) GOSUB SETBYTE: ON KEY(4) GOSUB SSTOP: KEY(1) ON KEY(2) ON KEY(3) ON KEY(4) ON LOOP1: GOTO LOOP1 KEY(1) OFF KEY(2) OFF KEY(3) OFF KEY(4) OFF SETBIT: CLS PRINT "Port =": PRINT (HEX$(INP(&H300))) PRINT " To set Data bit D0 press F1" PRINT " To set Data bit D1 press F2" PRINT " To set Data bit D2 press F3" PRINT " To set Data bit D3 press F4" PRINT " To set Data bit D4 press F5" PRINT " To set Data bit D5 press F6" PRINT " To set Data bit D6 press F7" PRINT " To set Data bit D7 press F8" PRINT " To Exit press F9" ON KEY(1) GOSUB SETD0: ON KEY(2) GOSUB SETD1: ON KEY(3) GOSUB SETD2: ON KEY(4) GOSUB SETD3: ON KEY(5) GOSUB SETD4: ON KEY(6) GOSUB SETD5: ON KEY(7) GOSUB SETD6: ON KEY(8) GOSUB SETD7: ON KEY(9) GOSUB START1: KEY(1) ON KEY(2) ON KEY(3) ON KEY(4) ON KEY(5) ON KEY(6) ON KEY(7) ON KEY(8) ON KEY(9) ON LOOP2: GOTO LOOP2 SETD0: OUT (&H300), (&HFE): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD1: OUT (&H300), (&HFD): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD2: OUT (&H300), (&HFB): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD3: OUT (&H300), (&HF7): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD4: OUT (&H300), (&HEF): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD5: OUT (&H300), (&HDF): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD6: OUT (&H300), (&HBF): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETD7: OUT (&H300), (&H7F): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RESETBIT: CLS PRINT "Port =": PRINT (HEX$(INP(&H300))) PRINT " To reset Data bit D0 press F1" PRINT " To reset Data bit D1 press F2" PRINT " To reset Data bit D2 press F3" PRINT " To reset Data bit D3 press F4" PRINT " To reset Data bit D4 press F5" PRINT " To reset Data bit D5 press F6" PRINT " To reset Data bit D6 press F7" PRINT " To reset Data bit D7 press F8" PRINT " To exit press F9" ON KEY(1) GOSUB RSETD0: ON KEY(2) GOSUB RSETD1: ON KEY(3) GOSUB RSETD2: ON KEY(4) GOSUB RSETD3: ON KEY(5) GOSUB RSETD4: ON KEY(6) GOSUB RSETD5: ON KEY(7) GOSUB RSETD6: ON KEY(8) GOSUB RSETD7: ON KEY(9) GOSUB FINISH: KEY(1) ON KEY(2) ON KEY(3) ON KEY(4) ON KEY(5) ON KEY(6) ON KEY(7) ON KEY(8) ON KEY(9) ON LOOP3: GOTO LOOP3 RSETD0: OUT (&H301), (&HFE): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD1: OUT (&H301), (&HFD): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD2: OUT (&H301), (&HFB): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD3: OUT (&H301), (&HF7): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD4: OUT (&H301), (&HEF): GOSUB TIME: GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD5: OUT (&H301), (&HDF): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD6: OUT (&H301), (&HBF): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN RSETD7: OUT (&H301), (&H7F): GOSUB TIME: PRINT "Port =": PRINT (HEX$(INP(&H300))) RETURN SETBYTE: PRINT "Port =": PRINT (HEX$(INP(&H300))) PRINT " Press F1 to Write 55 Hex" PRINT " Press F2 to Write AA Hex" PRINT " Press F3 to Write 00 Hex" PRINT " Press F4 to Write FF Hex" PRINT " Press F5 to Exit" ON KEY(1) GOSUB WRITE55: ON KEY(2) GOSUB WRITEAA: ON KEY(3) GOSUB WRITE00: ON KEY(4) GOSUB WRITEFF: ON KEY(5) GOSUB FINISH: KEY(1) ON KEY(2) ON KEY(3) ON KEY(4) ON KEY(5) ON LOOP5: GOTO LOOP5 WRITE55: A% = &H55: GOTO WRITE1 WRITEAA: A% = &HAA: GOTO WRITE1 WRITE00: A% = &H0: GOTO WRITE1 WRITEFF: A% = &HFF: GOTO WRITE1 WRITE1: OUT &H300, (A% AND 255) GOSUB TIME OUT &H301, ((NOT A%) AND 255) GOSUB TIME PRINT "BYTE = "; HEX$(INP(&H300)) PRINT " Press F1 to Write 55 Hex" PRINT " Press F2 to Write AA Hex" PRINT " Press F3 to Write 00 Hex" PRINT " Press F4 to Write FF Hex" PRINT " Press F5 to Exit" RETURN FINISH: RETURN START1 TIME: B% = (INP(&H301) AND (&H3)) IF B% = 3 THEN RETURN GOTO TIME SSTOP: STOP