: D8255.BAS :THIS PROGRAM DEMONSTRATES HOW TO INTERFACE TO THE SEALEVEL PIO48 BOARD9 :THE FIRST 50 PIN CONNECTOR (J1) IS ASSUMED TO CONTROL OUTPUT MODULES (:THE SECOND 50 PIN CONNECTOR (J3) IS ASSUMED TO MONITOR INPUT MODULES 2 PN  < PN, :SETS A,B,C OUTPUT F PN, :SETS A,B,C INPUT RACK 2P PN, :TURN OFF PORT AGZ PN, :TURN OFF PORT Bpd PN, :TURN OFF PORT Cn ,:x  , : "THE SEALEVEL DEMO PROGRAM DEFAULTS TO A BASE ADDRESS OF 300 HEX."'  , : "TO CHANGE THIS ADDRESS, USE THE SET PORT ADDRESS ROUTINE."X ,: "Press any key to continue..." X : PN,(X): D : D: X: PN, X : PN,(X): D : D: X: PN, X : PN,(X): D : D: X: PN,. A$: A$"" 8 p ,: "DEMO PROGRAM FOR SEALEVEL 8255 BOARD" ,: "B - Set Base Address...currently ";(PN);" HEX" ,: "S - Set a Module (0-23)"  ,: "R - Reset a Module (0-23)"8  ,: "T - Test a Module (0-47)"d  ,: "D - Display Rack Status" ,: "E - Exit" ,: "Selection...> ",SLECT$ SLECT$"b" SLECT$"B" ^" SLECT$"s" SLECT$"S" ), SLECT$"r" SLECT$"R" S6 SLECT$"t" SLECT$"T" }@ SLECT$"d" SLECT$"D" J SLECT$"e" SLECT$"E" ,::T : ^ :  ,: "SET PORT ADDRESS"h  ,: "NOTE: 300 HEX = &H300"8r ,: "PORT ADDRESS...> ",PNc| PN, :SETS A,B,C OUTPUT PN, :SETS A,B,C INPUT RACK 2 PN, :TURN OFF PORT A PN, :TURN OFF PORT B PN, :TURN OFF PORT C " J  ,: "SET A MODULE (0-23)"u ,: "MODULE NUMBER....> ",MN MN MN :   WOUT(WORD) (PORT) PORT,WOUT ,: "ANOTHER...(Y/N def=N)";YN$, YN$"Y" YN$"y" : e :  ,: "TEST A MODULE (0-47)"& ,: "MODULE NUMBER....> ",MN0 MN MN/ : : D STATWORD ((PORT))N STATWORD STAT$"ON": bX STAT$"OFF"Kb ,: "MODULE";MN;"IS ";STAT$: lyl ,: "ANOTHER...(Y/N def=N)";YN$v YN$"Y" YN$"y"   :  ,: "RESET A MODULE (0-23)" ,: "MODULE NUMBER....> ",MN" MN MN : 0 O PORT,(PORT) WORD{ ,: "ANOTHER (Y/N def=N)";YN$ YN$"Y" YN$"y"   :DFLAG: ,: "RACK STATUS" X:Y:A:B LYNE ' Y,: "Module ........>"9 MA BK  Y,X: MY XXe  M* AA:BB:YY:X4 LYNE> RH R ,: "Press any key for menu..."\ PORTPN:Y f LYNE ,p Y,: "Status ........>":z BITS STAT(PORT)k X =  CXSTAT BIT CXBIT  ,: Y,X: "ON ":  ,: Y,X: "OFF " ,:BITBIT X YY PORTPORT5 PORTPN PORTPORTD LYNE[ "" Re  MN MN PORTPN:WORDMN: B MN MN PORTPN:WORD(MN): B MN MN PORTPN:WORD(MN): B<$ MN MN PORTPN:WORD(MN): Bt. MN MN( PORTPN:WORD(MN ): B8 MN' MN0 PORTPN:WORD(MN()B ): Bt. MN MN( PORTPN:WORD(MN ):