DECLARE FUNCTION AskForBaseAddress! (OldOne AS INTEGER) CLS PRINT " IDO-XX C A R D S A M P L E P R O G R A M " PRINT PRINT " PRESS ANY KEY TO CONTINUE" WHILE INKEY$ = "" WEND PRINT PRINT Address = AskForBaseAddress(&H350) CLS PRINT " IDO-XX C A R D S A M P L E P R O G R A M " LOCATE 8, 27 PRINT " PORT 0, 1, AND 2 OUTPUT" LOCATE 9, 27 PRINT " -----------------------" LOCATE 19, 24 PRINT " PRESS ANY KEY TO CONTINUE" current! = &HFFFE WHILE INKEY$ = "" LOCATE 11, 36 PRINT HEX$(current!) OUT (Address + 0), current! MOD 256 OUT (Address + 1), current! / 256 OUT (Address + 2), current! MOD 256 OUT (Address + 3), current! / 256 OUT (Address + 4), current! MOD 256 OUT (Address + 5), current! / 256 current! = NOT (2 ^ i) i = i + 1 i = i MOD 16 FOR delay = 1 TO 500 NEXT delay WEND CLS END FUNCTION AskForBaseAddress (OldOne AS INTEGER) Msg$ = "" NewOne% = 0: Success = 0: Dummy% = 0 AddrInputPosX = 0: AddrInputPosY = 0 PRINT "Please enter the Base Address (0000-FFFF) for your card (in hex)" PRINT "or press ENTER for "; HEX$(OldOne%); "." PRINT ">"; AddrInputPosX = POS(0): AddrInputPosY = CSRLIN WHILE Success = 0 LOCATE AddrInputPosY, AddrInputPosX PRINT " " LOCATE AddrInputPosY, AddrInputPosX LINE INPUT Msg$ NewOne% = VAL("&H0" + LEFT$(Msg$, 4)) Success = 1 Dummy% = NewOne% IF (Msg$ = "") THEN LOCATE AddrInputPosY, AddrInputPosX PRINT HEX$(OldOne%) Success = 1 Dummy% = OldOne% END IF WEND AskForBaseAddress = Dummy% END FUNCTION