REM"***************************‡" REM"*ƒ#######################*‡" REM"*ƒ# † BAR CODE READER ƒ#*‡" REM"*ƒ# † COPYRIGHT ƒ#*‡" REM"*ƒ# ƒA.WHITTAKER #*‡" REM"*ƒ#######################*‡" REM"*ƒ# † CONSULTANT ƒ#*‡" REM"*ƒ# † K.ECCLESON ƒ#*‡" REM"*ƒ#######################*‡" REM"***************************‡" REM *** SET UP PORT *** *FX4 1 ?&FE62=15 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.|M RUN|M PROCsound MODE7:PROCinstr:MODE2 PROCscreen poke=&FE60 peek=&FE60 DIM B%(4) PROCread END REM REM"****************************" REM"****ƒ SET UP DISPLAY ****" REM"****************************" REM DEF PROCscreen FOR A%=12 TO 15:VDU19,A%,1;0;:NEXT VDU23;8202;0;0;0; FOR A%=0 TO 3 FOR I%=6 TO 26 VDU31,A%*5,I%,17,(A%+12)+128:PRINT" " VDU5,18,0,4:MOVE(A%*5)*64+96,700:PRINT;(2^(3-A%)):VDU4 NEXT, VDU17,129,17,4,31,0,0:PRINT SPC19;TAB(0,1)" BAR CODE READER ";TAB(0,2)SPC19;:VDU5,18,0,3:MOVE40,200:PRINT"MSB":MOVE1000,200:PRINT"LSB" VDU4 ENDPROC REM REM"****************************" REM"***** ƒSET UP ROBOT *****" REM"****************************" REM DEF PROCcalla VDU17,139,17,1,31,0,30:PRINT"PRESS SPACE TO CAL.";:REPEAT UNTIL GET=32:PRINT TAB(0,30);SPC19;:*FX15 1 ?&FE60=6 REPEAT UNTIL ?&FE60=246 SOUND1,-15,30,2 REPEAT UNTIL ?&FE60<>246 TIME=0 FOR I%=1 TO 4 REPEAT UNTIL ?&FE60=246 B%(I%)=TIME:SOUND1,-15,30,2 REPEAT UNTIL ?&FE60<>246 NEXT ?&FE60=0 ENDPROC REM REM"****************************" REM"***** ƒREAD BAR CODE *****" REM"****************************" REM DEF PROCread:PROCcalla REPEAT PRINT TAB(0,29);SPC19;TAB(0,30);"PRESS SPACE TO READ";TAB(0,31);SPC19;TAB(4,3); REPEAT UNTIL GET=32:PROCclvd D%=0:D$="DECIMAL =":PRINT" ":T%=0:T1%=0:TIME=0:A$="":Q$="" ?&FE60=6 REPEAT UNTIL ?&FE60=246 REPEAT UNTIL ?&FE60<>246 SOUND1,-15,200,5 TIME=0 REPEAT REPEAT UNTIL ?&FE60=246:REPEAT UNTIL ?&FE60<>246 T%=TIME ?&FE60=0 FOR I%=1 TO 4 IF B%(I%)(B%(4)+20) THEN A%=-1 D%=D%+2^A%:TIME=T%:?&FE60=6 VDU19,15-A%,5;0; UNTIL A%=-1 VDU19,16,0;0; ?&FE60=0 D$=D$+STR$ D%:PRINT TAB(4,3); FOR A%=1 TO LEN D$ PRINT MID$(D$,A%,1); A=INKEY(20):NEXT UNTIL FALSE ENDPROC REM REM"****************************" REM"*****ƒCLEAR BINARY OUT*****" REM"****************************" REM DEF PROCclvd FOR A%=12 TO 15:VDU19,A%,1;0;:NEXT:ENDPROC DEF PROCinstr CLS PRINT TAB(0,0);"„";CHR$157;CHR$141;"‡BAR CODE READER INSTRUCTIONS" PRINT TAB(0,1);"„";CHR$157;CHR$141;"‡BAR CODE READER 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;"THIS PROGRAM WILL ONLY WORK WITH TREKKER BAR CODES.YOU CAN MAKE THESE YOURSELF FROM A2 SIZED BLACK SUGAR PAPER AND WHITE PVC TAPE. SEE SOFTWARE GUIDE." PRINT'"1) Set switches as above." PRINT'"2) Set up BAR CODES." PRINT'"3) Program has two parts."''" i) CALIBRATE (CAL)"''"ii) READ"; VDU23;8202;0;0;0; 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' " REPEAT UNTIL GET=32 ENDPROC DEF PROCsound VDU22,7,23;8202;0;0;0;:PRINT TAB(0,11);"":PRINT TAB(0,12);"‡";CHR$141;"DO YOU WANT SOUND (ˆY‰/ˆN‰)†ˆ?":PRINT TAB(0,13);"‡";CHR$141;"DO YOU WANT SOUND (ˆY‰/ˆN‰)†ˆ?":PRINT TAB(0,14);"" REPEAT:*FX202 32 *FX15 1 A$=GET$:UNTIL A$="Y" OR A$="N" IF A$="Y" THEN *FX210 0 IF A$="N" THEN *FX210 1 *FX4 1 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."CTL2"|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