REM"***************************‡" REM"*ƒ#######################*‡" REM"*ƒ#† SQUARE ƒ#*‡" REM"*ƒ# † COPYRIGHT ƒ#*‡" REM"*ƒ# ƒA.WHITTAKER #*‡" REM"*ƒ#######################*‡" REM"*ƒ# † CONSULTANT ƒ#*‡" REM"*ƒ#†M.HODGE K.ECCLESONƒ#*‡" REM"*ƒ#######################*‡" REM"***************************‡" REM *** SET UP PORT *** ?&FE62=15 REM *** TURN OFF MOTORS *** ?&FE60=0 REM *** TURN OFF HORN *** ?&FE6B=&10:?&FE6A=0:?&FE68=0 ON ERROR GOTO 30000 *K.0CH."PROG5"|M *K.10O.|MRUN|M a%=-1:L%=-1 MODE7:PROCprogmode:PROCinst PROCinput REM REPEAT LOOP FOR r%=1 TO 4 PROCline_angle NEXT PROCagain IF flag% VDU26:GOTO 120 ELSE VDU26:PROCrecord:END GOTO 120 REM REM"****************************" REM"****ƒDRAW LINE AND TURN****" REM"****************************" REM DEF PROCline_angle ?&FE60=6 TIME=0 REPEAT UNTIL TIME>L% ?&FE60=14 TIME=0:REPEAT UNTIL TIME>a% ?&FE60=0 ENDPROC REM REM"****************************" REM"***ƒINPUT VALUE FOR a%,L%**" REM"****************************" REM DEF PROCinput VDU12,23;8202;0;0;0; PRINT CHR$132CHR$157CHR$141CHR$135;SPC8" SQUARE" PRINT CHR$132CHR$157CHR$141CHR$135;SPC8" SQUARE" VDU28,0,24,39,3 PRINT''"…Trekker will now try to draw a SQUARE"''"…You will need to type in a number to"''"…set the angle Trekker turns." Y=23 IF a%=-1:GOTO 460 ELSE PRINT''"‚Old value of angle% =";a%:PRINT'"‚New value of angle% ="';:INPUT TAB(Y,11)b%:IF b%<25 OR b%>200:SOUND1,-15,1,10:VDU26:GOTO 120 ELSE a%=b%:GOTO 480 PRINT''"‚Please enter a whole number between"''"‚25 and 200 and press RETURN "; INPUT TAB(29,11)a%:IF a%<25 OR a%>200:SOUND1,-15,1,10:PRINT TAB(29,11);" ";:GOTO 470 PRINT TAB(0,14);"We will call this number‡angle%becauseit sets the angle Trekker turns." PROCspace:CLS PRINT'"…You must now type in a number to set"''"…the LENGTH of the sides of the square." IF L%=-1GOTO 520 ELSE PRINT''"‚Old value of length% =";L%;''"‚New value of length% =";:INPUT TAB(Y+1,8)l%:IF l%<10 OR l%>1000 SOUND1,-15,0,10:CLS:GOTO 500 ELSE L%=l%:GOTO 550 PRINT''"‚Please enter a whole number between"''"‚10 and 1000 and press RETURN"; A=30:B=8 INPUT TAB(A,B)L%:IF L%<10 OR L%>1000 SOUND1,-15,0,10:PRINT TAB(A,B);" ";:GOTO 540 PRINT''"We will call this number‡length% because it sets the LENGTH of the side of thesquare." PROCspace CLS REM REM"****************************" REM"***ƒPRINT DOUBLE & FLASH***" REM"****************************" REM PRINT''CHR$129CHR$157CHR$141CHR$135CHR$136;SPC5"WATCH TREKKER NOW !!" PRINT CHR$129CHR$157CHR$141CHR$135CHR$136;SPC5"WATCH TREKKER NOW !!" ENDPROC REM REM"****************************" REM"***ƒRE-RUN PROGRAM (Y/N)***" REM"****************************" REM DEF PROCagain VDU11,11 PRINT CHR$141CHR$129;"Did Trekker turn at‡90degrees (Y/N)" PRINT CHR$141CHR$129;"Did Trekker turn at‡90degrees (Y/N)" REM REM"****************************" REM"*****ƒYES / NO ROUTINE*****" REM"****************************" A$=GET$ IF A$="N" THEN flag%=TRUE:PROCinfo ELSE IF A$="Y" THEN flag%=FALSE IF A$<>"Y" AND A$<>"N" THEN 790 ENDPROC REM REM"****************************" REM"**ƒREMEMBER ] RECORD DATA**" REM"****************************" REM DEF PROCrecord CLS PRINT CHR$132CHR$157CHR$141;" ƒPLEASE WRITE DOWN THESE VALUES" PRINT CHR$132CHR$157CHR$141;"ƒ PLEASE WRITE DOWN THESE VALUES" PRINT TAB(0,6);CHR$132CHR$157CHR$141;"ƒangle%=ƒ";a%;TAB(30,6);"(ANGLE)" PRINT TAB(0,7);CHR$132CHR$157CHR$141;"ƒangle%=ƒ";a%;TAB(30,7);"(ANGLE)" PRINT TAB(0,10);CHR$132CHR$157CHR$141;"ƒlength%=ƒ";L%;TAB(30,10);"(LENGTH)" PRINT TAB(0,11);CHR$132CHR$157CHR$141;"ƒlength%=ƒ";L%;TAB(30,11);"(LENGTH)" PRINT'''CHR$132CHR$157CHR$141;"ˆ ƒKEEP THESE IN A SAFE PLACE" PRINT CHR$132CHR$157CHR$141;"ˆ ƒKEEP THESE IN A SAFE PLACE" A=INKEY(1000):GOTO 30000 DEF PROCinst CLS:VDU23;8202;0;0;0; A$="In this mode Trekker will attempt to " B$="draw a SQUARE (with or without a pen)" c$=" Fit Trekkers pen now if you wish." FOR L=0TO23 PRINT TAB(0,L);CHR$132;CHR$157; NEXT P=1 PRINT TAB(P,8);CHR$135;CHR$141;A$ PRINT TAB(P,9);CHR$135;CHR$141;A$ PRINT TAB(P,11);CHR$135;CHR$141;B$ PRINT TAB(P,12);CHR$135;CHR$141;B$ PRINT TAB(P,14);CHR$135;CHR$141;c$ PRINT TAB(P,15);CHR$135;CHR$141;c$ PROCspace:ENDPROC DEF PROCprogmode VDU23;8202;0;0;0; CLS F=9 PRINT TAB(F,10);CHR$132;CHR$157;CHR$135;CHR$141;"GRAPHICS MODE ";CHR$156 PRINT TAB(F,11);CHR$132;CHR$157;CHR$135;CHR$141;"GRAPHICS MODE ";CHR$156 FOR L=0TO5000:NEXT *FX15,1 ENDPROC DEF PROCspace L=4 PRINT'''SPC L;CHR$129;CHR$157;CHR$135;"PressˆSPACEBAR‰to continue ";CHR$156 REPEAT UNTIL GET=32 ENDPROC DEF PROCinfo PRINT''"‚If Trekker turned at an angle„GREATER"''"‚than‡90‚degrees then„DECREASE‚angle%" PRINT''"‚If Trekker turned at an angle„SMALLER"''"‚than‡90‚degrees then„INCREASE‚angle%" PROCspace ENDPROC GOTO 890 DEF PROCdub(X,Y,A$):PRINT TAB(X,Y);CHR$141;A$;TAB(X,Y+1);CHR$141;A$;:ENDPROC MODE7:VDU23;8202;0;0;0; PROCdub(0,4,"‚PressRETURN‚to REPEAT") PROCdub(0,1,"‚Pressf0‚to LOAD next program") PROCdub(0,4,"‚PressRETURN‚to REPEAT") *FX18 *K.0 1|M*K.10|M|LCH."PROG5"|M *K.10O.|MRUN|M REPEAT:A$=GET$:REPEAT UNTIL A$=CHR$13ORA$=CHR$49 IF A$=CHR$13CLEAR:RUN FOR L=19TO23:PRINT TAB(0,L);"ƒ";:NEXT:VDU28,10,23,30,19 END