REM"***************************‡" REM"*ƒ#######################*‡" REM"*ƒ#†TREKKER CARD READERƒ#*‡" REM"*ƒ# † COPYRIGHT ƒ#*‡" REM"*ƒ# ƒA.WHITTAKER #*‡" REM"*ƒ#######################*‡" REM"*ƒ# † CONSULTANT ƒ#*‡" REM"*ƒ# ƒK.ECCLESON ƒ#*‡" REM"*ƒ#######################*‡" REM"***************************‡" REM *** SET UP PORT *** ?&FE62=15 *FX4 1 REM *** TURN OFF MOTORS *** ?&FE60=0 REM *** TURN OFF HORN *** ?&FE6B=&10:?&FE6A=0:?&FE68=0 REM *** END ON ESCAPE *** ON ERROR ?&FE60=0:GOTO 30000 *K.10 O.|MRUN|M MODE7:PROCinstr:MODE2 PROCscreen poke=&FE60 peek=&FE60 PROCin PROCread RUN REM REM"****************************" REM"****ƒ SET UP DISPLAY ****" REM"****************************" REM DEF PROCscreen VDU17,129,17,3,23;8202;0;0;0;31,0,0 PRINT SPC20;" CARD READER ";SPC20 VDU19,11,4;0;19,12,4;0; FOR A%=6 TO 14 VDU17,140,31,12,A%:PRINT SPC6 VDU17,139,31,2,A%:PRINT SPC6 NEXT VDU17,128,17,13,31,4,16,49 VDU17,128,17,14,31,15,16,49 PROCclear COLOUR3 PRINT TAB(0,20);"00";TAB(0,22);"01";TAB(0,24);"10";TAB(0,26);"11" ENDPROC REM REM"****************************" REM"****ƒ READ CARD NUMBER ****" REM"****************************" REM DEF PROCread PRINT TAB(0,30);"PRESS SPACE TO READ."; A1$="" REPEAT UNTIL GET=32 PRINT TAB(0,30);" PRESS SPACE TO RUN "; PROCclear COLOUR3 REPEAT A%=?peek A1%=A% AND 176 A2%=A% AND 112 IF A1%<>176 A$="0" ELSE A$="1" IF A2%<>112 A$=A$+"0" ELSE A$=A$+"1" IF A$<>A1$ THEN PRINT TAB(3,24);SPC(16); IF A$="00" PRINT TAB(3,24);I$(0):VDU19,11,4;0;19,12,4;0;31,15,16,48,31,4,16,48 IF A$="01" PRINT TAB(3,24);I$(1):VDU19,11,4;0;19,12,2;0;31,15,16,49,31,4,16,48 IF A$="10" PRINT TAB(3,24);I$(2):VDU19,11,2;0;19,12,4;0;31,15,16,48,31,4,16,49 IF A$="11" PRINT TAB(3,24);I$(3):VDU19,11,2;0;19,12,2;0;31,15,16,49,31,4,16,49 A1$=A$ UNTIL INKEY(-99) ENDPROC REM REM"****************************" REM"****ƒINPUT INSTRUCTIONS****" REM"****************************" REM DEF PROCin PRINT TAB(0,30);" ENTER DATA "; DIM I$(3) INPUT TAB(4,20)">"I$(0) INPUT TAB(4,22)">"I$(2) INPUT TAB(4,24)">"I$(1) INPUT TAB(4,26)">"I$(3) ENDPROC REM REM"****************************" REM"****ƒCLEAR LOWER SCREEN****" REM"****************************" REM DEF PROCclear FOR A%=18 TO 28 VDU17,129,31,0,A%:PRINT SPC20 NEXT ENDPROC DEF PROCinstr CLS PRINT TAB(0,0);"„";CHR$157;CHR$141;"‡CARD READER 2 INSTRUCTIONS" PRINT TAB(0,1);"„";CHR$157;CHR$141;"‡CARD READER 2 INSTRUCTIONS" PRINT TAB(0,3);"„";CHR$157;CHR$141;"‡SENSOR SWITCH BLOCK '3' AND '4' 'ON'" PRINT TAB(0,4);"„";CHR$157;CHR$141;"‡SENSOR SWITCH BLOCK '3' AND '4' 'ON'" PRINT TAB(0,6);"„";CHR$157;CHR$141;"‡ BULB 'ON' ";CHR$156;"„";CHR$157;"‡ TREKKER 'OFF' " PRINT TAB(0,7);"„";CHR$157;CHR$141;"‡ BULB 'ON' ";CHR$156;"„";CHR$157;"‡ TREKKER 'OFF' " FOR I%=9 TO 23 VDU31,0,I%,132,157,131 NEXT PRINT TAB(0,24);"‚";CHR$157;"ˆ„Press 'SPACE BAR' to continue."; VDU28,3,23,39,9 PRINT"1) Set switches as above." PRINT'"2) Place TREKKER on a table or desk." PRINT'"3) Write a different message on the back of each card (maximum 15 letters and spaces)."; PRINT''"4) You will have to type in these 4 different messages when the program asks for DATA." PRINT'"5) TREKKER will then print the correct message for each card you slide under his spoiler."; VDU23;8202;0;0;0; *FX15 1 REPEAT UNTIL GET=32 CLS PRINT TAB(0,5);"";CHR$157;SPC(31);"„";CHR$157 PRINT TAB(0,6);"";CHR$157;CHR$141;"ˆ ‡TURN TREKKER ON NOW ! „";CHR$157 PRINT TAB(0,7);"";CHR$157;CHR$141;"ˆ ‡TURN TREKKER ON NOW ! „";CHR$157 PRINT TAB(0,8);"";CHR$157;SPC(31);"„";CHR$157 VDU28,0,24,39,0 PRINT TAB(0,6);"„";CHR$157;CHR$141;"‡ BULB 'ON' ";CHR$156;"„";CHR$157;"‡ TREKKER 'ON' " PRINT TAB(0,7);"„";CHR$157;CHR$141;"‡ BULB 'ON' ";CHR$156;"„";CHR$157;"‡ TREKKER 'ON' " *FX15 1 REPEAT UNTIL GET=32 ENDPROC MODE7 VDU23;8202;0;0;0; PROCdub(0,1,"‚Pressf0‚to LOAD next program") PROCdub(0,4,"‚PressRETURN‚to REPEAT") PRINT'' FOR L=19TO23:PRINT TAB(0,L);"ƒ";:NEXT:VDU28,10,23,30,19 *K.0 1|MCH."BCR"|M REPEAT *FX15,1 A=GET UNTIL A=13 OR A=49 IF A=13 RUN ELSE END DEF PROCdub(X,Y,A$):PRINT TAB(X,Y);CHR$141;A$;TAB(X,Y+1);CHR$141;A$;:ENDPROC