10  DIM N$[72],S$[10],O$[9],A$[30],B$[10]
20  LET S$="0123456789"
30  LET O$="         "
40  LET A=E=J=Q=U=Z=0
60  PRINT '13'10"WHAT IS YOUR NAME";
70  INPUT A$
75  IF SYS(3) <> 0 THEN 3430
80  IF A$="AL ROBB" THEN 120
90  IF A$="MIKE FULLER" THEN 120
100  IF A$="PETE ROWE" THEN 120
110  GOTO 130
120  LET E=1
130  PRINT '13'10'13'10"THIS PROGRAM UTILIZES THE HP-7200A GRAPHIC PLOTTER."'13'10
140  PRINT "INSERT A PIECE OF PLAIN PAPER INTO THE PLOTTER,"
150  PRINT "TURN IT ON, DEPRESS **CHART HOLD** AND **TTY MUTE**,"
160  PRINT "AND SET THE **GRAPH LIMITS** ON THE PLOTTER."'13'10
170  PRINT "HEIGHT OF PAPER";
180  INPUT F1
185  IF SYS(3) <> 0 THEN 3430
190  PRINT "LENGTH OF PAPER";
200  INPUT F2
205  IF SYS(3) <> 0 THEN 3430
210  LET F=F1/F2
220  PRINT '10'13"READY";
230  INPUT B$
235  IF SYS(3) <> 0 THEN 3430
240  IF B$="YES" THEN 300
250  IF B$="NO" THEN 280
260  PRINT '10"PLEASE TYPE YES OR NO";
270  GOTO 230
280  PRINT '10"HURRY UP"'10
290  GOTO 220
300  PRINT '10"HERE'S YOUR TARGET:"'10'13
310  PRINT "PLTL"
320  PRINT "9000 850^"
330  PRINT "9000 1350"
340  PRINT "9200 1350^"
350  PRINT "9200 850"
360  PRINT "8950 1300^"
370  PRINT "9250 1300"
380  PRINT "8950 1250^"
390  PRINT "9250 1250"
400  PRINT "8950 1200^"
410  PRINT "9250 1200"
420  PRINT "PLTT"
430  LET J=0
440  GOSUB 1670
450  IF Z#1 THEN 470
460  GOTO 1930
470  PRINT '10"HERE'S YOUR CANNON WHEEL:"'10
480  PRINT "PLTL"
490  FOR I=0 TO 2*3.1416 STEP .31415
500  LET R=150
510  LET X=R*COS(I)
520  LET Y=R*SIN(I)
530  PRINT INT(F*(H+X));INT(K+Y)
540  NEXT I
550  PRINT INT(F*(H-150));INT(K)
552  PRINT "PLTT"
554  PRINT "PLTL"
560  PRINT INT(F*H);K+150
570  PRINT INT(F*H);K-150
580  PRINT "PLTT"
590  PRINT "PLTL"
600  LET X=Y=150/SQR(2)
610  PRINT INT(F*(H+X));INT(K+Y)
620  PRINT INT(F*(H-X));INT(K-Y)
630  PRINT "PLTT"
640  PRINT "PLTL"
650  PRINT INT(F*(H+X));INT(K-Y)
660  PRINT INT(F*(H-X));INT(K+Y)
670  PRINT "PLTT"
680  LET C=100
690  PRINT '13'10"ANGLE OF FIRE"
700  PRINT "(BETWEEN -90 AND +90 DEGREES)";
710  INPUT X
715  IF SYS(3) <> 0 THEN 3430
720  IF X >= -90 AND X <= 90 THEN 740
730  GOTO 700
740  LET X=(X*3.1416)/180
750  IF C=X THEN 980
760  LET C=X
770  PRINT '10"AND HERE'S YOUR CANNON:"'10'10'13
780  PRINT 
790  PRINT "PLTL"
800  PRINT INT(F*(H+150*COS(X)));INT(K+150*SIN(X))
810  PRINT INT(F*(H+400*COS(X)));INT(K+400*SIN(X))
820  LET X5=INT(F*(H+400*COS(X)-200*SIN(X)))
830  LET Y5=INT(K+400*SIN(X)+200*COS(X))
840  PRINT X5;Y5
850  LET X5=INT(F*(H-200*COS(X)-200*SIN(X)))
860  LET Y5=INT(K-200*SIN(X)+200*COS(X))
870  PRINT X5;Y5
880  PRINT INT(F*(H-200*COS(X)));INT(K-200*SIN(X))
890  PRINT INT(F*(H-150*COS(X)));INT(K-150*SIN(X))
900  PRINT "PLTT"
910  PRINT 
920  IF E=0 THEN 980
930  LET V0=400
940  PRINT '13'10'10"YOU HAVE EXACTLY 400 GRAMS OF GUN POWDER"'13
960  GOTO 1025
980  PRINT "HOW MUCH GUN POWDER"
990  PRINT "(BETWEEN 0 AND 1000 GRAMS)";
1000  INPUT V0
1005  IF SYS(3) <> 0 THEN 3430
1010  IF V0 >= 0 AND V0 <= 1000 THEN 1025
1020  GOTO 990
1025  PRINT '13'10'10"     FIRE"'7'7'7'7'7'7'13'10'10
1030  LET X0=H+400*COS(X)-100*SIN(X)
1040  LET Y0=K+400*SIN(X)+100*COS(X)
1050  PRINT "PLTL"
1060  LET T=-2
1070  LET T=T+2
1080  LET H=X0+V0*COS(X)*T
1090  LET K=Y0+V0*SIN(X)*T-5*T^2
1100  IF F*H<9999 AND K<9999 THEN 1130
1110  LET T=T-.1
1120  GOTO 1080
1130  PRINT INT(F*H);INT(K)
1140  IF F*H<8950 THEN 1420
1150  IF K>1350 THEN 1420
1160  GOSUB 2260
1170  IF Y=1 THEN 1190
1180  GOTO 1450
1190  PRINT "PLTT"
1200  FOR B=1 TO 20
1210  PRINT '7;
1220  NEXT B
1230  LET U=0
1240  LET Q=Q+1
1250  IF Q#1 THEN 1350
1260  PRINT "PLTL"
1270  PRINT 9100;1450
1280  PRINT 9200;1550
1290  PRINT 9150;1550
1300  PRINT 9250;1700
1310  PRINT "PLTT"
1320  PRINT '13'10"YOU JUST RIPPED OFF THE P.G.&E. POWER POLE!!"'13'10
1330  PRINT '10'13"GOOD SHOW"'10'13
1340  GOTO 1360
1350  PRINT '13'10"YOU RIPPED OFF ANOTHER POWER POLE!"'13'10
1360  PRINT '10'13"CARE FOR ANOTHER LOCATION FOR YOUR CANNON";
1370  INPUT B$
1375  IF SYS(3) <> 0 THEN 3430
1380  IF B$="YES" THEN 440
1390  IF B$="NO" THEN 1930
1400  PRINT "PLEASE TYPE YES OR NO";
1410  GOTO 1370
1420  IF F*H>9400 THEN 1440
1430  IF K>400 AND K<9900 THEN 1070
1440  GOSUB 2260
1450  PRINT "PLTT"
1460  PRINT 
1470  LET U=U+1
1480  LET A=A+1
1490  IF U#1 THEN 1520
1500  PRINT "YOU LOST YOUR CANNON BALL"'10'13
1510  GOTO 1530
1520  PRINT "YOU LOST ANOTHER CANNON BALL"'10'13
1530  IF U=3 THEN 1630
1540  PRINT "CARE FOR ANOTHER GO AT IT";
1550  INPUT B$
1555  IF SYS(3) <> 0 THEN 3430
1560  IF B$="YES" THEN 1600
1570  IF B$="NO" THEN 1930
1580  PRINT "PLEASE ANSWER YES OR NO";
1590  GOTO 1550
1600  LET K=K[J]
1610  LET H=1000
1620  GOTO 690
1630  LET U=0
1640  PRINT '10'13"WOULD YOU LIKE P.G.&E. TO BUILD A BIGGER POWER POLE?"
1650  PRINT '10'13"TRY ANOTHER LOCATION FOR YOU CANNON"
1660  GOTO 440
1670  LET J=J+1
1680  LET H=1000
1690  IF J#1 THEN 1720
1700  LET H=K=K[J]=1000
1710  GOTO 1820
1720  IF J#2 THEN 1780
1730  FOR I=1 TO INT(ABS(V0-X))
1740  LET K[J]=INT(7*RND(0)+2)*1000
1750  NEXT I
1760  GOSUB 1830
1770  GOTO 1820
1780  IF J=10 THEN 1810
1790  GOSUB 1830
1800  GOTO 1820
1810  LET Z=1
1820  RETURN 
1830  LET K[J]=INT(8*RND(0)+2)*1000
1840  LET W=0
1850  FOR I=2 TO J-1
1860  IF K[J]#K[I] THEN 1880
1870  LET W=1
1880  NEXT I
1890  IF W#1 THEN 1910
1900  GOTO 1830
1910  LET K=K[J]
1920  RETURN 
1930  LET S9=2.5
1940  PRINT "PLTL"
1950  LET H$="H"
1960  LET X=.1
1970  LET Y=.4
1980  LET N$=A$
1990  GOSUB 2410
2000  LET X=13
2010  LET Y=9.4
2020  LET N$="HIT="
2030  GOSUB 2410
2040  LET Q1=INT(Q/10)
2050  GOSUB 2370
2060  LET X=13.9
2070  GOSUB 2410
2080  LET Q1=Q
2090  GOSUB 2370
2100  LET X=14.1
2110  GOSUB 2410
2120  LET X=13
2130  LET Y=9.2
2140  LET N$="MISS="
2150  GOSUB 2410
2160  LET A1=INT(A/10)
2170  GOSUB 2390
2180  LET X=14.13
2190  GOSUB 2410
2200  LET A1=A
2210  GOSUB 2390
2220  LET X=14.33
2230  GOSUB 2410
2240  PRINT "PLTT"
2250  STOP 
2260  LET Y=0
2270  FOR Z=T-2 TO T+2 STEP .1
2280  LET L=X0+V0*COS(X)*Z
2290  LET M=Y0+V0*SIN(X)*Z-5*Z^2
2300  IF F*L<8950 THEN 2350
2310  IF M>1350 THEN 2350
2320  IF F*L>9250 THEN 2350
2330  IF M<850 THEN 2350
2340  LET Y=1
2350  NEXT Z
2360  RETURN 
2370  LET N$=S$[Q1+1,Q1+1]
2380  RETURN 
2390  LET N$=S$[A1+1,A1+1]
2400  RETURN 
2410  LET X9=666*X
2420  LET Y9=1000*Y
2430  GOSUB 2470
2440  PRINT "^"
2450  RETURN 
2460  CHAIN "*A1",580
2470  LET C5=LEN(N$)
2480  LET A9=0
2490  LET A6=0
2500  LET A9=A9+1
2510  IF N$[A9,A9]=" " THEN 2680
2520  READ C$
2530  IF C$=N$[A9,A9] THEN 2570
2540  READ A7,A8
2550  IF TYP(0)=2 THEN 2520
2560  GOTO 2540
2570  READ C3,C4
2580  LET A6=A6+1
2590  IF C3#-1 THEN 2620
2600  LET A6=0
2610  GOTO 2570
2620  LET T2=INT((C3*S9)+X9)
2630  LET T4=INT((C4*S9)+Y9)
2640  GOSUB 3170
2650  IF TYP(0)#2 THEN 2570
2660  LET A6=0
2670  RESTORE 
2680  IF H$="H" THEN 2710
2690  LET Y9=Y9-(80*S9)
2700  GOTO 2720
2710  LET X9=X9+(60*S9)
2720  IF A9=C5 THEN 2740
2730  GOTO 2500
2740  RETURN 
2750  DATA "A",0,0,20,60,40,0,30,30,10,30
2760  DATA "B",0,30,40,30,40,0,0,0,0,60,30,60,30,30
2770  DATA "C",40,0,0,0,0,60,40,60
2780  DATA "D",0,0,0,60,30,60,40,50,40,10,30,0,0,0
2790  DATA "E",40,0,0,0,0,30,20,30,0,30,0,60,40,60
2800  DATA "F",0,0,0,30,20,30,0,30,0,60,40,60
2810  DATA "G",20,30,40,30,40,0,0,0,0,60,40,60
2820  DATA "H",0,0,0,60,0,30,40,30,40,60,40,0
2830  DATA "I",10,0,30,0,20,0,20,60,10,60,30,60
2840  DATA "J",0,10,0,0,40,0,40,60
2850  DATA "K",0,0,0,60,0,20,40,60,10,30,40,0
2860  DATA "L",0,60,0,0,40,0
2870  DATA "M",0,0,0,60,20,0,40,60,40,0
2880  DATA "N",0,0,0,60,40,0,40,60
2890  DATA "O",20,40,40,60,0,60,0,0,40,0,40,60
2900  DATA "P",0,0,0,60,40,60,40,30,0,30
2910  DATA "Q",20,20,40,0,0,0,0,60,40,60,40,0
2920  DATA "R",0,0,0,60,40,60,40,30,0,30,20,30,40,0
2930  DATA "S",0,0,40,0,40,30,0,30,0,60,40,60
2940  DATA "T",20,0,20,60,0,60,40,60
2950  DATA "U",0,60,0,10,10,0,30,0,40,10,40,60
2960  DATA "V",0,60,20,0,40,60
2970  DATA "W",0,60,10,0,20,60,30,0,40,60
2980  DATA "X",0,60,40,0,-1,-1,0,0,40,60
2990  DATA "Y",0,60,20,30,20,0,20,30,40,60
3000  DATA "Z",0,60,40,60,0,0,40,0
3010  DATA "0",0,0,0,60,40,60,40,0,0,0
3020  DATA "1",0,40,20,60,20,0,0,0,40,0
3030  DATA "2",0,60,40,60,40,30,20,30,0,0,40,0
3040  DATA "3",0,60,40,60,20,30,40,30,40,0,0,0
3050  DATA "4",40,30,0,30,30,60,30,0
3060  DATA "5",40,60,0,60,0,30,20,30,40,0,0,0
3070  DATA "6",40,60,0,60,0,0,40,0,40,30,0,30
3080  DATA "7",0,60,40,60,20,20,20,0
3090  DATA "8",40,30,0,30,0,60,40,60,40,0,0,0,0,30
3100  DATA "9",0,0,40,0,40,60,0,60,0,30,40,30
3110  DATA ".",0,0,0,5,5,5,5,0,0,0
3120  DATA ",",5,0,0,0,0,5,5,5,5,0,0,-5
3130  DATA "+",5,30,35,30,-1,-1,20,10,20,50
3140  DATA "-",0,30,40,30
3150  DATA "?",0,60,40,60,40,30,10,30,10,5,5,5,5,0,15,0,15,5,10,5
3160  DATA "=",0,40,40,40,-1,-1,0,20,40,20
3161  DATA "]",0,0,20,0,20,60,0,60
3170  LET Q1=INT(T2/1000)+1
3180  LET Q2=INT(T2/100)-10*Q1+11
3190  LET Q3=INT(T2/10)-100*Q1-10*Q2+111
3200  LET Q4=INT(T2)-1000*Q1-100*Q2-10*Q3+1111
3210  LET O$[1,1]=S$[Q1,Q1]
3220  LET O$[2,2]=S$[Q2,Q2]
3230  LET O$[3,3]=S$[Q3,Q3]
3240  LET O$[4,4]=S$[Q4,Q4]
3250  LET Q1=INT(T4/1000)+1
3260  LET Q2=INT(T4/100)-10*Q1+11
3270  LET Q3=INT(T4/10)-100*Q1-10*Q2+111
3280  LET Q4=INT(T4)-1000*Q1-100*Q2-10*Q3+1111
3290  LET O$[6,6]=S$[Q1,Q1]
3300  LET O$[7,7]=S$[Q2,Q2]
3310  LET O$[8,8]=S$[Q3,Q3]
3320  LET O$[9,9]=S$[Q4,Q4]
3330  IF A6=1 THEN 3370
3340  IF T2>9999 OR T4>9999 THEN 3390
3350  PRINT O$
3360  RETURN 
3370  PRINT O$;"^"
3380  GOTO 3420
3390  PRINT "PLTT"
3400  PRINT "DATA";T2;T4;"GREATER THAN 9999 9999"
3410  PRINT "PLTL"
3420  RETURN 
3430  REM
3440  END 
