IMD 1.16: 29/05/2007 18:33:35 FOGCPM.063 --FOGCPM063MENU BASMENU DOCANDY-500BAS" ANDY-500DOC FASTLIFEASM, FASTLIFECOM FASTLIFEDOCFSTLIFE DOCQUBIC BAS:QUEEN BAS# !ROCKET BAS"#$%ROULETTEBAS9&'()*+,-RUSROU BAS.SALVO BASG/01234567SINEWAVEBAS8SLALOM BAS(9:;<=SLOTS BAS>?@SPLAT BAS/ABCDEFSTARS BASGHSTARTREKBASIJKLMNOPQRSTUVWXSTARTREKBAS7YZ[\]^_-06-00 86 STARTREKDOC)`abcdeTREKINS BAS+fghijkSTARTRK2BASlmnopqrstuvwxyz{STARTRK2BAS+|}~-CPM063 DOC#STOCK BAS@SYNONYM BASTARGET BASTICTAC1 BAS TICTAC2 BASTOWERS BAS#TRAIN BASTRAP BAS WAR BASWEEKDAY BAS!WORD BASThis is the disk name. 100 REM -- MENU program by Jim Woolley, FOG Diak Librarian, 8/82 110 CLEAR 120 DEFINT I-N 130 DIM PROG$(41) 140 FMT$="##. &" 150 INPUT"Press for MENU",NBR 160 PRINT CHR$(26); 170 RESTORE 180 I=0 190 WHILE PROG$(I)<>"NOMOREDATA" 200 I=I+1:READ PROG$(I) 210 WEND 220 LAST=I-1:ILAST=LAST 230 IF ILAST>19 THEN ILAST=20 240 FOR I=1 TO ILAST 250 PRINT USING FMT$;I;PROG$(I); 260 J=20+I 270 IF J>LAST THEN PRINT ELSE PRINT TAB(25);:PRINT USING FMT$;J;PROG$(J) 280 NEXT I 290 PRINT 300 INPUT"Enter program number (0 to quit): ",NBR 310 IF NBR=0 THEN END 320 IF NBR<1 OR NBR>LAST THEN 300 330 RUN PROG$(NBR) 340 REM -- Enter program filenames as DATA statements 350 DATA QUBIC,QUEEN,ROCKET,ROULETTE,RUSROU,SALVO,SINEWAVE 360 DATA SLALOM,SLOTS,SPLAT,STARS,STOCK,SYNONYM,TARGET,TICTAC1 370 DATA TICTAC2,TOWERS,TRAIN,TRAP,WAR,WEEKDAY,WORD 998 REM -- Next line must be last DATA statement 999 DATA NOMOREDATA 1 370 DATA TICTAC2,TOWERS,TRAIN,TRAP,WAR,WEEKDAY,WORD 998 REM -- Next line must bThe following MBASIC source code games are menu driven from the MBASIC program: MENU.BAS. QUBIC.BAS QUEEN.BAS ROCKET.BAS ROULETTE.BAS RUSROU.BAS SALVO.BAS SINEWAVE.BAS SLALOM.BAS SLOTS.BAS SPLAT.BAS STARS.BAS STOCK.BAS SYNONYM.BAS TARGET.BAS TICTAC1.BAS TICTAC2.BAS TOWERS.BAS TRAIN.BAS TRAP.BAS WAR.BAS WEEKDAY.BAS WORD.BAS To run, place MBASIC in drive A and this disk in drive B. At the A> prompt, type B: At the B> prompt, type A:MBASIC MENU If necessary, the MENU can be restarted. Following the Ok prompt, type RUN "MENU" The quotation marks are required. 100 PRINT CHR$(26) 150 PRINT "----------------------------------------------------" 200 PRINT "| |" 300 PRINT "| -------------------------------------------- |" 400 PRINT "| | | |" 500 PRINT "| | | |" 600 PRINT "| | | |" 800 PRINT "| | | |" 900 PRINT "| | | |" 1000 PRINT "| | | |" 1100 PRINT "| | | |" 1200 PRINT "| | A N D Y 5 0 0 ! ! ! | |" 1300 PRINT "| | | |" 1400 PRINT "| | | |" 1500 PRINT "| | | |" 1600 PRINT "| | | |" 1700 PRINT "| | | |" 1800 PRINT "| | | |" 1900 PRINT "| | | |" 2000 PRINT "| | | |" 2100 PRINT "| | | |" 2200 PRINT "| -------------------------------------------- |" 2300 PRINT "| |" 2400 PRINT "----------------------------------------------------" 2500 FOR I=1 TO 2000:NEXT I 2550 PRINT CHR$(26) 2600 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 2700 PRINT TAB(17);"CREATED BY:" 2800 PRINT TAB(17);" " 2900 PRINT TAB(17);" A N D Y" 3000 PRINT TAB(17);" " 3100 PRINT TAB(17);" W O O L L E Y" 3200 FOR I=1 TO 1500:NEXT I 3250 PRINT CHR$(26) 3950 PRINT CHR$(26) 4000 PRINT "WOULD YOU LIKE INSTRUCTIONS ?" 4050 INPUT A$ 4100 IF A$="YES" THEN 4300 4200 IF A$="NO" THEN 4900 4250 PRINT CHR$(26) 4300 PRINT "THE OBJECT OF ANDY 500 IS TO COMPLETE YOUR TRIP" 4400 PRINT "FROM LOS ANGELES, TO SAN FRANCISCO IN THE LEAST" 4500 PRINT "POSSIBLE TIME. TO START YOUR ENGINE, PUSH THE" 4600 PRINT "LETTER 'G'. TO TURN LEFT, PUSH THE LEFT ARROW." 4650 PRINT "TO TURN RIGHT, PUSH THE RIGHT ARROW." 4660 PRINT "TO BRAKE, PUSH THE UP ARROW. TO ACCELERATE, " 4670 PRINT "PUSH THE UP ARROW." 4850 FOR I=1 TO 9000:NEXT I 4900 PRINT CHR$(26) 5000 RANDOMIZE 5010 DEFINT A-Z 5100 DIM TRACK(24):TRACK$="*" 5200 SLOW=10:ROW=1:CAR=26:CAR$="V" 5300 STALL=100:OFF.TRACK=0 5400 CLR$=CHR$(26) 5500 LEFT=21:WIDE=7:EDGE=52:BOTTOM=23 5600 RIGHT=LEFT+WIDE 5700 TOP$=CHR$(27)+"="+CHR$(32) 5800 BOTTOM$=CHR$(27)+"="+CHR$(31+BOTTOM)+CHR$(32) 5900 ALEFT$=CHR$(8):ARIGHT$=CHR$(12):SLOW$=CHR$(11):FAST$=CHR$(10) 6000 PRINT CLR$;TAB(LEFT);TRACK$; 6100 PRINT TAB(CAR);CAR$;TAB(RIGHT);TRACK$ 6200 RANDOM!=RND:CURVE=0 6300 IF RANDOM!<.33 THEN CURVE=-1 6400 IF RANDOM!>.67 THEN CURVE=+1 6500 LEFT=LEFT+CURVE 6600 IF LEFT<1 THEN LEFT=1 6700 RIGHT=LEFT+WIDE 6800 IF RIGHT>EDGE THEN LEFT=EDGE-WIDE:RIGHT=EDGE 6890 ROW=ROW+1 6900 IF ROW>BOTTOM THEN 7300 7000 TRACK(ROW)=LEFT 7100 PRINT TAB(LEFT);TRACK$;TAB(RIGHT);TRACK$ 7150 CAR=26:GOTO 7900 7300 FOR I=2 TO BOTTOM:TRACK(I-1)=TRACK(I):NEXT I 7400 TRACK(BOTTOM)=LEFT 7500 PRINT TAB(LEFT);TRACK$;TAB(RIGHT);TRACK$ 7600 PRINT TOP$;CHR$(31+CAR);CAR$;BOTTOM$ 7700 IF CAR>TRACK(1) AND CAR200 THEN PRINT CLR$;"THE RACE IS OVER.":GOTO 9200 8700 CAR=CAR+STEER 8800 IF SLOW<1 THEN SLOW=1 8900 IF SLOWTRACK(1) AND CAR200 THEN PRINT CLR$;"THE RACE IS OVER.":GOTO 9200 8700 CAR=CAR+STEER 8800 IF SLOW<1 THEN SLOW=1 8900 IF SLOW # ~w˾"p(x= 'ŏ4:4ˤ4#44|g4;F; &4:4ˤ44#4|g4+4;4++4ˤ4#4#4|g4+4+4> #^ V! <D %~ '%6 '# 2e! <D~> L> 2ew# ::e*p it has less than two cells surrounding it. New cells are formed in empty positions ONLY if it has three cells around it. Enter your pattern - a line at a time ... [.] where you want a live cell [0] for an empty one [RETURN] at the end of each line [ESC] to clear screen and set new pattern [/] for each new generation [\] for continuous growth [^C] to return to CP/M The number pad can be used to reposition cursor. $ $$ $ $ $$$$$*$$ $$$ $$ $$$ $$* $$$$*$ $$*$$$$AAA A A$B B BB B$CCC$DD DD$ h 2m1b:m\ FASTLIFE.DOC 1.00 by Carl Flarity This is an improved version of the LIFE program already in the FOG library. It is written in Z80 Assembly code and thus executes much faster than the other versions. You also have the option of changing patterns as succeeding generations proceed. You may enter patterns a line at a time or use the number pad as a "joy-stick" to reposition the cusor. The size of the "universe" is 60 columns by 32 lines. Patterns wrap around at the edges so that the left edge continues onto right edge, bottom edge continues onto top edge. Note that FASTLIFE uses Z80 code and writes directly into CRT memory assuming width of 128 characters. It seems feasible to adapt this program to a non- OSBORNE Z80 CP/M system given the source code provided in FASTLIFE.ASM. FASTLIFE is a faster version of the LIFE games. It uses graphics to simulate birth and death of cells, eventually reaching an equilibrium condition. This assembly language program was provided by Carl Flarity. Its output format is 60 columns by 32 rows. Place FASTLIFE.COM in drive A. At the A> prompt, type FASTLIFE Further instructions will be displayed. Also, see FASTLIFE.DOC. 50 PRINT CHR$(26):WIDTH 80 100 PRINT TAB(33);"QUBIC":PRINT 110 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 120 PRINT:PRINT:PRINT 210 PRINT "DO YOU WANT INSTRUCTIONS"; 220 INPUT C$ 230 IF LEFT$(C$,1)="N" THEN 315 240 IF LEFT$(C$,1)="Y" THEN 265 250 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'"; 260 GOTO 220 265 PRINT 270 PRINT "THE GAME IS TIC-TAC-TOE IN A 4 X 4 X 4 CUBE." 280 PRINT "EACH MOVE IS INDICATED BY A 3 DIGIT NUMBER, WITH EACH" 290 PRINT "DIGIT BETWEEN 1 AND 4 INCLUSIVE. THE DIGITS INDICATE THE" 300 PRINT "LEVEL, ROW, AND COLUMN, RESPECTIVELY, OF THE OCCUPIED" 305 PRINT "PLACE. " 306 PRINT 307 PRINT "TO PRINT THE PLAYING BOARD, TYPE 0 (ZERO) AS YOUR MOVE." 308 PRINT "THE PROGRAM WILL PRINT THE BOARD WITH YOUR MOVES INDI-" 309 PRINT "CATED WITH A (Y), THE MACHINE'S MOVES WITH AN (M), AND" 310 PRINT "UNUSED SQUARES WITH A ( ). OUTPUT IS ON PAPER." 311 PRINT 312 PRINT "TO STOP THE PROGRAM RUN, TYPE 1 AS YOUR MOVE." 313 PRINT:PRINT 315 DIM X(64),L(76),M(76,4),Y(16) 320 FOR I = 1 TO 16 330 READ Y(I) 340 NEXT I 350 FOR I=1 TO 76 360 FOR J = 1 TO 4 370 READ M(I,J) 380 NEXT J 390 NEXT I 400 FOR I = 1 TO 64 410 LET X (I) =0 420 NEXT I 430 LET Z=1 440 PRINT "DO YOU WANT TO MOVE FIRST"; 450 INPUT S$ 460 IF LEFT$(S$,1)="N" THEN 630 470 IF LEFT$(S$,1)="Y" THEN 500 480 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'."; 490 GOTO 450 500 PRINT " " 510 PRINT "YOUR MOVE"; 520 INPUT J1 521 IF J1=1 THEN 2770 522 IF J1<>0 THEN 525 523 GOSUB 2550 524 GOTO 500 525 IF J1<111 THEN 2750 526 IF J1>444 THEN 2750 530 GOSUB 2500 540 LET K1=INT(J1/100) 550 LET J2=(J1-K1*100) 560 LET K2=INT(J2/10) 570 LET K3= J1 - K1*100 -K2*10 580 LET M=16*K1+4*K2+K3-20 590 IF X(M)=0 THEN 620 600 PRINT "THAT SQUARE IS USED, TRY AGAIN." 610 GOTO 500 620 LET X(M)=1 630 GOSUB 1640 640 J=1 650 I=1 660 IF J=1 THEN 720 670 IF J=2 THEN 790 680 IF J=3 THEN 930 690 I=I+1: IF I<=76 THEN 660 700 J=J+1: IF J<=3 THEN 650 710 GOTO 1300 720 IF L(I)<>4 THEN 690 730 PRINT "YOU WIN AS FOLLOWS"; 740 FOR J=1 TO 4 750 LET M=M(I,J) 760 GOSUB 1570 770 NEXT J 780 GOTO 1490 790 IF L(I)<>15 THEN 690 800 FOR J=1 TO 4 810 LET M=M(I,J) 820 IF X(M)<>0 THEN 860 830 LET X(M)=5 840 PRINT "MACHINE MOVES TO"; 850 GOSUB 1570 860 NEXT J 870 PRINT ", AND WINS AS FOLLOWS" 880 FOR J=1 TO 4 890 LET M=M(I,J) 900 GOSUB 1570 910 NEXT J 920 GOTO 1490 930 IF L(I)<>3 THEN 690 940 PRINT "NICE TRY. MACHINE MOVES TO"; 950 FOR J=1 TO 4 960 LET M=M(I,J) 970 IF X(M)<>0 THEN 1010 980 LET X(M)=5 990 GOSUB 1570 1000 GOTO 500 1010 NEXT J 1020 GOTO 1300 1030 I=1 1040 LET L(I)=X(M(I,1))+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1050 LET L = L(I) 1060 IF L <2 THEN 1130 1070 IF L>=3 THEN 1130 1080 IF L>2 THEN 2230 1090 FOR J = 1 TO 4 1100 IF X(M(I,J))<>0 THEN 1120 1110 LET X(M(I,J))=1/8 1120 NEXT J 1130 I=I+1: IF I<=76 THEN 1040 1140 GOSUB 1640 1150 I=1 1160 IF L(I)=1/2 THEN 2360 1170 IF L(I)=1+3/8 THEN 2360 1180 I=I+1: IF I<=76 THEN 1160 1190 GOTO 1830 1200 LET Z = 1 1210 IF X(Y(Z))=0 THEN 1250 1220 LET Z=Z+1 1230 IF Z<>17 THEN 1210 1240 GOTO 1720 1250 LET M=Y(Z) 1260 LET X(M)=5 1270 PRINT "MACHINE MOVES TO"; 1280 GOSUB 1570 1290 GOTO 500 1300 LET X=X 1310 I=1 1320 LET L(I)=X(M(I,1))+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1330 LET L=L(I) 1340 IF L<10 THEN 1410 1350 IF L>=11 THEN 1410 1360 IF L>10 THEN 2230 1370 FOR J=1 TO 4 1380 IF X(M(I,J))<>0 THEN 1400 1390 LET X(M(I,J))=1/8 1400 NEXT J 1410 I=I+1: IF I<=76 THEN 1320 1420 GOSUB 1640 1430 I=1 1440 IF L(I)=.5 THEN 2360 1450 IF L(I)=5+3/8 THEN 2360 1460 I=I+1: IF I<=76 THEN 1440 1470 GOSUB 2500 1480 GOTO 1030 1490 PRINT " " 1500 PRINT "DO YOU WANT TO TRY ANOTHER GAME"; 1510 INPUT X$ 1520 IF LEFT$(X$,1)="Y" THEN 400 1530 IF LEFT$(X$,1)="N" THEN 1560 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'"; 1550 GOTO 1510 1560 RUN "MENU" 1570 LET K1=INT((M-1)/16)+1 1580 LET J2=M-16*(K1-1) 1590 LET K2=INT((J2-1)/4)+1 1600 LET K3=M-(K1-1)*16-(K2-1)*4 1610 LET M=K1*100+K2*10+K3 1620 PRINT M; 1630 RETURN 1640 FOR S=1 TO 76 1650 LET J1 = M(S,1) 1660 LET J2=M(S,2) 1670 LET J3=M(S,3) 1680 LET J4=M(S,4) 1690 LET L(S)=X(J1)+X(J2)+X(J3)+X(J4) 1700 NEXT S 1710 RETURN 1720 FOR I=1 TO 64 1730 IF X(I)<>0 THEN 1800 1740 LET X(I)=5 1750 LET M=I 1760 PRINT "MACHINE LIKES"; 1770 GOSUB 1570 1780 PRINT " " 1790 GOTO 500 1800 NEXT I 1810 PRINT "THE GAME IS A DRAW." 1820 GOTO 1490 1830 FOR K=1 TO 18 1840 LET P=0 1850 FOR I=4*K-3 TO 4*K 1860 FOR J=1 TO 4 1870 LET P=P+X(M(I,J)) 1880 NEXT J 1890 NEXT I 1900 IF P<4 THEN 1940 1910 IF P<5 THEN 1970 1920 IF P<9 THEN 1940 1930 IF P<10 THEN 1970 1940 NEXT K 1950 GOSUB 2500 1960 GOTO 1200 1970 LET S=1/8 1980 FOR I=4*K-3 TO 4*K 1990 GOTO 2370 2000 NEXT I 2010 LET S=0 2020 GOTO 1980 2030 DATA 1,49,52,4,13,61,64,16,22,39,23,38,26,42,27,43 2040 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 2050 DATA 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38 2060 DATA 39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56 2070 DATA 57,58,59,60,61,62,63,64 2080 DATA 1,17,33,49,5,21,37,53,9,25,41,57,13,29,45,61 2090 DATA 2,18,34,50,6,22,38,54,10,26,42,58,14,30,46,62 2100 DATA 3,19,35,51,7,23,39,55,11,27,43,59,15,31,47,63 2110 DATA 4,20,36,52,8,24,40,56,12,28,44,60,16,32,48,64 2120 DATA 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 2130 DATA 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62 2140 DATA 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63 2150 DATA 4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64 2160 DATA 1,6,11,16,17,22,27,32,33,38,43,48,49,54,59,64 2170 DATA 13,10,7,4,29,26,23,20,45,42,39,36,61,58,55,52 2180 DATA 1,21,41,61,2,22,42,62,3,23,43,63,4,24,44,64 2190 DATA 49,37,25,13,50,38,26,14,51,39,27,15,52,40,28,16 2200 DATA 1,18,35,52,5,22,39,56,9,26,43,60,13,30,47,64 2210 DATA 49,34,19,4,53,38,23,8,57,42,27,12,61,46,31,16 2220 DATA 1,22,43,64,16,27,38,49,4,23,42,61,13,26,39,52 2230 FOR J=1 TO 4 2240 IF X(M(I,J))<>1/8 THEN 2330 2250 LET X(M(I,J))=5 2260 IF L(I)<5 THEN 2290 2270 PRINT "LET'S SEE YOU GET OUT OF THIS: MACHINE MOVES TO"; 2280 GOTO 2300 2290 PRINT "YOU FOX. JUST IN THE NICK OF TIME, MACHINE MOVES TO"; 2300 LET M=M(I,J) 2310 GOSUB 1570 2320 GOTO 500 2330 NEXT J 2340 PRINT "MACHINE CONCEDES THIS GAME." 2350 GOTO 1490 2360 LET S=1/8 2370 IF I-INT(I/4)*4>1 THEN 2400 2380 LET A=1 2390 GOTO 2410 2400 LET A=2 2410 FOR J=A TO 5-A STEP 5-2*A 2420 IF X(M(I,J))=S THEN 2450 2430 NEXT J 2440 GOTO 2000 2450 LET X(M(I,J))=5 2460 LET M=M(I,J) 2470 PRINT "MACHINE TAKES"; 2480 GOSUB 1570 2490 GOTO 500 2500 FOR I=1 TO 64 2510 IF X(I)<>1/8 THEN 2530 2520 LET X(I)=0 2530 NEXT I 2540 RETURN 2550 PRINT"-- PRINTING --":FOR XX=1 TO 9:LPRINT:NEXT:FOR I=1 TO 4 2560 FOR J=1 TO 4 2562 FOR I1=1 TO J 2564 LPRINT" "; 2566 NEXT I1 2570 FOR K=1 TO 4 2600 LET Q=16*I+4*J+K-20 2610 IF X(Q)<>O THEN 2630 2620 LPRINT"( ) "; 2630 IF X(Q)<>5 THEN 2650 2640 LPRINT"(M) "; 2650 IF X(Q)<>1 THEN 2660 2655 LPRINT"(Y) "; 2660 IF X(Q)<>1/8 THEN 2670 2665 LPRINT"( ) "; 2670 NEXT K 2680 LPRINT 2690 LPRINT 2700 NEXT J 2710 LPRINT 2720 LPRINT 2730 NEXT I 2735 LPRINT CHR$(12) 2740 RETURN 2750 PRINT"INCORRECT MOVE, RETYPE IT--"; 2760 GOTO 520 2770 RUN "MENU" INT 2730 NEXT I 2735 LPRINT CHR$(12) 2740 RETURN 2750 PRINT"INCORRECT MOVE, RETYPE IT--"; 00 2380 LET A=1 2390 GOTO 2410 2400 LET A=2 2410 FOR J=A TO 5-A STEP 5-2*A 2420 IF X(M(I,J))=S THEN 2450 2430 NEXT J 2440 GOTO 2000 2450 LET X(M(I,J))=5 2460 LET M=M(I,J) 2470 PRINT "MACHINE TAKES"; 2480 GOSUB 1570 2490 GOTO 500 2500 FOR I=1 TO 64 2510 IF X(I)<>1/8 THEN 2530 2520 LET X(I)=0 2530 NEXT I 2540 RETURN 2550 PRINT"-- PRINTING --":FOR XX=1 TO 9:LPRINT:NEXT:FOR I=1 TO 4 2560 FOR J=1 TO 4 2562 FOR I1=1 TO J 2564 LPRINT" "; 2566 NEXT I1 2570 FOR K=1 TO 4 2600 LET Q=16*I+4*J+K-20 2610 IF X(Q)<>O THEN 2630 2620 LPRINT"( ) "; 2630 IF X(Q)<>5 THEN 2650 2640 LPRINT"(M) "; 2650 IF X(Q)<>1 THEN 2660 2655 LPRINT"(Y) "; 2660 IF X(Q)<>1/8 THEN 2670 2665 LPRINT"( ) "; 2670 NEXT K 2680 LPRINT 2690 LPRINT 21 PRINT CHR$(26):WIDTH 80:PRINT TAB(33);"QUEEN":PRINT 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3 PRINT:PRINT:PRINT 10 DIM S(64) 11 FOR I=1 TO 64 12 READ S(I) 13 NEXT I 14 DATA 81, 71, 61, 51, 41, 31, 21, 11 15 DATA 92, 82, 72, 62, 52, 42, 32, 22 16 DATA 103, 93, 83, 73, 63, 53, 43, 33 17 DATA 114, 104, 94, 84, 74, 64, 54, 44 18 DATA 125, 115, 105, 95, 85, 75, 65, 55 19 DATA 136, 126, 116, 106, 96, 86, 76, 66 20 DATA 147, 137, 127, 117, 107, 97, 87, 77 21 DATA 158, 148, 138, 128, 118, 108, 98, 88 22 INPUT "DO YOU WANT INSTRUCTIONS";W$ 23 IF LEFT$(W$,1)="N" THEN 30 24 IF LEFT$(W$,1)="Y" THEN 28 25 PRINT "PLEASE ANSWER 'YES' OR 'NO'." 26 GOTO 22 28 GOSUB 5000 29 GOTO 100 30 GOSUB 5160 90 REM ERROR CHECKS 100 PRINT "WHERE WOULD YOU LIKE TO START"; 110 INPUT M1 115 IF M1=0 THEN 232 120 T1=INT(M1/10) 130 U1=M1-10*T1 140 IF U1=1 THEN 200 150 IF U1=T1 THEN 200 160 PRINT "PLEASE READ THE DIRECTIONS AGAIN." 170 PRINT "YOU  HAVE BEGUN ILLEGALLY." 175 PRINT 180 GOTO 100 200 GOSUB 2000 210 PRINT "COMPUTER MOVES TO SQUARE";M;CHR$(8);"." 215 IF M=158 THEN 3400 220 PRINT "WHAT IS YOUR MOVE"; 230 INPUT M1 231 IF M1<>0 THEN 239 232 PRINT 233 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT." 234 PRINT 235 GOTO 4000 239 IF M1<=M THEN 3200 240 T1=INT(M1/10) 250 U1=M1-10*T1 260 P=U1-U 270 IF P<>0 THEN 300 280 L=T1-T 290 IF L<=0 THEN 3200 295 GOTO 200 300 IF T1-T <>P THEN 320 310 GOTO 200 320 IF T1-T <>2*P THEN 3200 330 GOTO 200 1990 REM LOCATE MOVE FOR COMPUTER 2000 IF M1=41 THEN 2180 2010 IF M1=44 THEN 2180 2020 IF M1=73 THEN 2180 2030 IF M1=75 THEN 2180 2040 IF M1=126 THEN 2180 2050 IF M1=127 THEN 2180 2060 IF M1=158 THEN 3300 2065 C=0 2070 FOR K=7 TO 1 STEP -1 2080 U=U1 2090 T=T1+K 2100 GOSUB 3500 2105 IF C=1 THEN 2160 2110 U=U+K 2120 GOSUB 3500 2125 IF C=1 THEN 2160 2130 T=T+K 2140 GOSUB 3500 2145 IF C=1 THEN 2160 2150 NEXT K 2155 GOTO 2180 2160 C=0 2170 RETURN 2180 GOSUB 3000 2190 RETURN 2990 REM RANDOM MOVE 3000 Z=RND(1) 3010 IF Z>.6 THEN 3110 3020 IF Z>.3 THEN 3070 3030 U=U1 3040 T=T1+1 3050 M=10*T+U 3060 RETURN 3070 U=U1+1 3080 T=T1+2 3090 M=10*T+U 3100 RETURN 3110 U=U1+1 3120 T=T1+1 3130 M=10*T+U 3140 RETURN 3190 REM ILLEGAL MOVE MESSAGE 3200 PRINT 3210 PRINT "Y O U C H E A T . . . TRY AGAIN"; 3220 GOTO 230 3290 REM PLAYER WINS 3300 PRINT 3310 PRINT "C O N G R A T U L A T I O N S . . ." 3320 PRINT 3330 PRINT "YOU HAVE WON--VERY WELL PLAYED." 3340 PRINT "IT LOOKS LIKE I HAVE MET MY MATCH." 3350 PRINT "THANKS FOR PLAYING---I CAN'T WIN ALL THE TIME." 3360 PRINT 3370 GOTO 4000 3390 REM COMPUTER WINS 3400 PRINT 3410 PRINT "NICE TRY, BUT IT LOOKS LIKE I HAVE WON." 3420 PRINT "THANKS FOR PLAYING." 3430 PRINT 3440 GOTO 4000 3490 REM TEST FOR COMPUTER MOVE 3500 M=10*T+U 3510 IF M=158 THEN 3570 3520 IF M=127 THEN 3570 3530 IF M=126 THEN 3570 3540 IF M=75 THEN 3570 3550 IF M=73 THEN 3570 3560 RETURN 3570 C=1 3580 GOTO 3560 3990 REM ANOTHER GAME??? 4000 PRINT "ANYONE ELSE CARE TO TRY"; 4010 INPUT Q$ 4020 PRINT 4030 IF LEFT$(Q$,1)="Y" THEN 30 4040 IF LEFT$(Q$,1)="N" THEN 4050 4042 PRINT "PLEASE ANSWER 'YES' OR 'NO'." 4045 GOTO 4000 4050 PRINT:PRINT "OK --- THANKS AGAIN.":PRINT 4060 RUN "MENU" 4990 REM DIRECTIONS 5000 PRINT CHR$(26): PRINT "WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS" 5010 PRINT "MOVES. OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE LEFT," 5020 PRINT "DOWN, OR DIAGONALLY DOWN AND TO THE LEFT." 5030 PRINT 5040 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE LOWER" 5050 PRINT "LEFT HAND SQUARE BY ALTERNATING MOVES BETWEEN YOU AND THE" 5060 PRINT "COMPUTER. THE FIRST ONE TO PLACE THE QUEEN THERE WINS." 5070 PRINT 5080 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE SQUARES" 5090 PRINT "ON THE TOP ROW OR RIGHT HAND COLUMN." 5100 PRINT "THAT WILL BE YOUR FIRST MOVE." 5110 PRINT "WE ALTERNATE MOVES." 5120 PRINT "YOU MAY FORFEIT BY TYPING '0' AS YOUR MOVE." 5130 PRINT "BE SURE TO PRESS THE RETURN KEY AFTER EACH RESPONSE." 5140 PRINT 5150 LINE INPUT "ENTER 'RETURN' TO START THE GAME. ";RESP$ 5160 PRINT CHR$(26) 5170 FOR A=0 TO 7 5180 FOR B=1 TO 8 5185 I=8*A+B 5190 PRINT USING "### ";S(I); 5200 NEXT B 5210 PRINT 5240 NEXT A 5250 PRINT 5260 RETURN 9999 END 1 TO 8 5185 I=8*A+B 5190 PRINT USING "### ";S(I); 5200 NEXT B OF THE CHESS" 5010 PRINT "MOVES. OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE LEFT," 5020 PRINT "DOWN, OR DIAGONALLY DOWN AND TO THE LEFT." 5030 PRINT 5040 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE LOWER" 5050 PRINT "LEFT HAND SQUARE BY ALTERNATING MOVES BETWEEN YOU AND THE" 5060 PRINT "COMPUTER. THE FIRST ONE TO PLACE THE QUEEN THERE WINS." 5070 PRINT 5080 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE SQUARES" 5090 PRINT "ON THE TOP ROW OR RIGHT HAND COLUMN." 5100 PRINT "THAT WILL BE YOUR FIRST MOVE." 5110 PRINT "WE ALTERNATE MOVES." 5120 PRINT "YOU MAY FORFEIT BY TYPING '0' AS YOUR MOVE." 1 REM Modified by Jim Woolley, FOG Disk Librarian, 8/82 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(33);"ROCKET":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 70 PRINT "LUNAR LANDING SIMULATION" 80 PRINT "----- ------- ----------": PRINT 100 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO)";A$ 110 IF LEFT$(A$,1)="N" THEN 390 160 PRINT CHR$(26) 200 PRINT "YOU ARE LANDING ON THE MOON AND HAVE TAKEN OVER MANUAL" 210 PRINT "CONTROL 500 FEET ABOVE A GOOD LANDING SPOT. YOU HAVE A" 220 PRINT "DOWNWARD VELOCITY OF 50 FT/SEC. 120 UNITS OF FUEL REMAIN." 225 PRINT 230 PRINT "HERE ARE THE RULES THAT GOVERN YOUR SPACE VEHICLE:" 235 PRINT 240 PRINT "(1) AFTER EACH SECOND, THE HEIGHT, VELOCITY, AND REMAINING" 250 PRINT " FUEL WILL BE REPORTED." 260 PRINT "(2) AFTER THE REPORT, A '?' WILL BE TYPED. ENTER THE" 270 PRINT " NUMBER OF UNITS OF FUEL YOU WISH TO BURN DURING THE" 280 PRINT " NEXT SECOND. EACH UNIT OF FUEL WILL SLOW YOUR DESCENT" 290 PRINT " BY 1  FT/SEC." 310 PRINT "(3) THE MAXIMUM THRUST OF YOUR ENGINE IS 30 FT/SEC/SEC OR" 320 PRINT " 30 UNITS OF FUEL PER SECOND." 330 PRINT "(4) WHEN YOU CONTACT THE LUNAR SURFACE, YOUR DESCENT ENGINE" 340 PRINT " WILL AUTOMATICALLY CUT OFF AND YOU WILL BE GIVEN A" 350 PRINT " REPORT OF YOUR LANDING SPEED AND REMAINING FUEL." 360 PRINT "(5) IF YOU RUN OUT OF FUEL, THE '?' WILL NO LONGER APPEAR," 370 PRINT " BUT YOUR SECOND-BY-SECOND REPORT WILL CONTINUE UNTIL" 380 PRINT " YOU CONTACT THE LUNAR SURFACE.":PRINT 385 LINE INPUT "ENTER 'RETURN' TO BEGIN. ";RESP$ 390 PRINT CHR$(26):PRINT "BEGINNING LANDING PROCEDURE.....": PRINT 400 PRINT "G O O D L U C K ! ! !" 420 PRINT:PRINT:PRINT 430 PRINT "SEC FEET SPEED FUEL PLOT OF DISTANCE" 435 PRINT "--- ---- ----- ---- ----------------" 455 T=0:H=500:V=50:F=120 490 PRINT USING "###";T;:PRINT USING "####.#";H;: PRINT USING "####.#";V;:PRINT USING "####.#";F;: PRINT " |";TAB(H/18+24);"*" 491 B$="":PRINT "BURN? "; 492 A$=INKEY$ 494 IF A$="" THEN 492 496 PRINT A$; 498 B=ASC(A$) 499 IF B=8 THEN PRINT " ";A$;:B$=LEFT$(B$,(LEN(B$)-1)):GOTO 492 500 IF B=13 THEN 508 501 IF B=46 THEN 504 502 IF B<48 OR B>57 THEN PRINT CHR$(13);SPC(20);CHR$(13);:GOTO 491 504 B$=B$+A$ 506 GOTO 492 508 B=VAL(B$) 510 IF B<0 THEN 650 520 IF B>30 THEN B=30 530 IF B>F THEN B=F 540 V1=V-B+5 560 F=F-B 570 H=H-.5*(V+V1) 580 IF H<=0 THEN 670 590 T=T+1 600 V=V1 610 IF F>0 THEN 490 615 IF B=0 THEN 640 620 PRINT CHR$(22);"**** OUT OF FUEL ****";CHR$(22) 640 PRINT USING"###";T;:PRINT USING"####.#";H;:PRINT USING"####.#";V;:PRINT USING"####.#";F;:PRINT " |";TAB(H/18+24);"*" 650 B=0 660 GOTO 540 670 PRINT CHR$(22);"**** CONTACT ****";CHR$(22):PRINT 680 H=H+.5*(V+V1) 690 IF B=5 THEN 720 700 D=(-V+SQR(V*V+H*(10-2*B)))/(5-B) 710 GOTO 730 720 D=H/V 730 V1=V+(5-B)*D 760 PRINT "TOUCHDOWN AT";T+D;"SECONDS." 770 PRINT "LANDING VELOCITY =";V1;"FEET/SEC." 780 PRINT "UNITS OF FUEL REMAINING:";F 790 IF V1<>0 THEN 810 800 PRINT:PRINT "CONGRATULATIONS! A PERFECT LANDING!" 805 PRINT "YOUR LICENSE WILL BE RENEWED.......LATER" 810 IF ABS(V1)<3 THEN 840 820 PRINT:PRINT "SORRY, BUT YOU BLEW IT!!!!" 830 PRINT "APPROPRIATE CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN." 840 PRINT: PRINT : PRINT 850 INPUT "ANOTHER MISSION";A$ 860 IF LEFT$(A$,1)="Y" THEN 390 870 PRINT: PRINT "CONTROL OUT.": PRINT 999 RUN "MENU" RINT 850 INPF H<=0 THEN 670 590 T=T+1 600 V=V1 610 IF F>0 THEN 490 615 IF B=0 THEN 640 620 PRINT CHR$(22);"**** OUT OF FUEL ****";CHR$(22) 640 PRINT USING"###";T;:PRINT USING"####.#";H;:PRINT USING"####.#";V;:PRINT USING"####.#";F;:PRINT " |";TAB(H/18+24);"*" 650 B=0 660 GOTO 540 670 PRINT CHR$(22);"**** CONTACT ****";CHR$(22):PRINT 680 H=H+.5*(V+V1) 690 IF B=5 THEN 720 700 D=(-V+SQR(V*V+H*(10-2*B)))/(5-B) 710 GOTO 730 720 D=H/V 730 V1=V+(5-B)*D 760 PRINT "TOUCHDOWN AT";T+D;"SECONDS." 770 PRINT "LANDING VELOCITY =";V1;"FEET/SEC." 780 PRINT "UNITS OF FUEL REMAINING:";F 790 IF V1<>0 THEN 810 800 PRINT:PRINT "CONGRATULATION1 RANDOMIZE 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(32);"ROULETTE":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 40 PRINT "ENTER THE CURRENT DATE (AS IN 'JANUARY 23, 1979') -"; 50 INPUT D$,E$ 1000 REM-ROULETTE 1010 REM-DAVID JOSLIN 1015 PRINT:PRINT 1020 PRINT "WELCOME TO THE ROULETTE TABLE" 1030 PRINT 1040 PRINT "DO YOU WANT INSTRUCTIONS"; 1050 INPUT Y$ 1060 IF LEFT$(Y$,1)="N" THEN 1550 1070 LINE INPUT "MAKE SURE THE PRINTER IS ON. ENTER 'RETURN WHEN YOU ARE READY.";ANS$ 1072 PRINT:PRINT:PRINT "--- Printing ---":PRINT:PRINT 1080 LPRINT "THIS IS THE BETTING LAYOUT":LPRINT:LPRINT:LPRINT 1090 LPRINT " (*=RED)" 1100 LPRINT 1110 LPRINT " 1* 2 3*" 1120 LPRINT " 4 5* 6 " 1130 LPRINT " 7* 8 9*" 1140 LPRINT "10 11 12*" 1150 LPRINT "---------------" 1160 LPRINT "13 14* 15 " 1170 LPRINT "16* 17 18*" 1180 LPRINT "19* 20 21*" 1190 LPRINT "22 23* 24 " 1200 LPRINT "---------------" 1210 LPRINT "25* 26 27*" 1220 LPRINT "28 29 30*" 1230 LPRINT "31 32* 33 " 1240 LPRINT "34* 35 36*" 1250 LPRINT "---------------" 1260 LPRINT " 00 0 " 1270 LPRINT:LPRINT:LPRINT 1280 LPRINT "TYPES OF BETS" 1285 LPRINT "-------------" 1290 LPRINT 1300 LPRINT "THE NUMBERS 1 TO 36 SIGNIFY A STRAIGHT BET" 1310 LPRINT "ON THAT NUMBER." 1320 LPRINT "THESE PAY OFF 35:1" 1330 LPRINT 1340 LPRINT "THE 2:1 BETS ARE:" 1350 LPRINT " 37) 1-12 40) FIRST COLUMN" 1360 LPRINT " 38) 13-24 41) SECOND COLUMN" 1370 LPRINT " 39) 25-36 42) THIRD COLUMN" 1380 LPRINT 1390 LPRINT "THE EVEN MONEY BETS ARE:" 1400 LPRINT " 43) 1-18 46) ODD" 1410 LPRINT " 44) 19-36 47) RED" 1420 LPRINT " 45) EVEN 48) BLACK" 1430 LPRINT 1440 LPRINT " 49)0 AND 50)00 PAY OFF 35:1" 1450 LPRINT " NOTE: 0 AND 00 DO NOT COUNT UNDER ANY" 1460 LPRINT " BETS EXCEPT THEIR OWN." 1470 LPRINT CHR$(12) 1475 LINE INPUT "ENTER 'RETURN' TO CONTINUE.";RESP$:PRINT CHR$(26) 1480 PRINT "WHEN I AS K FOR EACH BET, TYPE THE NUMBER" 1490 PRINT "AND THE AMOUNT, SEPARATED BY A COMMA." 1495 PRINT 1500 PRINT "FOR EXAMPLE: TO BET $500 ON BLACK, TYPE 48,500" 1510 PRINT "WHEN I ASK FOR A BET." 1520 PRINT 1530 PRINT "THE MINIMUM BET IS $5, THE MAXIMUM IS $500." 1540 PRINT 1550 REM-PROGRAM BEGINS HERE 1560 REM-TYPE OF BET(NUMBER) ODDS 1570 REM 1580 DIM B(100),C(100),T(100),X(38) 1590 DIM A(50) 1600 FOR I=1 TO 38: X(I)=0: NEXT I: REM MAT X=ZER 1610 P=1000 1620 D=100000! 1630 PRINT: PRINT "HOW MANY BETS"; 1640 INPUT Y 1645 PRINT 1650 IF Y<1 OR Y<>INT(Y) THEN 1630 1660 FOR I=1 TO 50: A(I)=0: NEXT I: REM MAT A=ZER 1670 FOR C=1 TO Y 1680 PRINT "BET NUMBER";C;CHR$(8); 1690 INPUT X,Z 1700 B(C)=Z 1710 T(C)=X 1720 IF X<1 OR X>50 OR X<>INT(X) THEN 1680 1730 IF Z<1 OR Z<>INT(Z) THEN 1680 1740 IF Z<5 OR Z>500 THEN 1680 1750 IF A(X)=0 THEN 1780 1760 PRINT "YOU MADE THAT BET ONCE ALREADY." 1770 GOTO 1680 1780 A(X)=1 1790 NEXT C 1800 PRINT:PRINT "SPINNING........" 1810 PRINT 1820 PRINT 1830 S=INT(RND(1)*100) 1840 IF S=0 OR S>38 THEN 1830 1850 X(S)=X(S)+1 1860 IF S<37 THEN 1920 1870 IF S=37 THEN 1900 1880 PRINT CHR$(22);" 00 ";CHR$(22) 1890 GOTO 2020 1900 PRINT CHR$(22);" 0 ";CHR$(22) 1910 GOTO 2020 1920 RESTORE 1930 FOR I1=1 TO 18 1940 READ R 1950 IF R=S THEN 2000 1960 NEXT I1 1970 A$="BLACK" 1980 PRINT CHR$(22);" ";S;" ";A$;" ";CHR$(22) 1990 GOTO 2020 2000 A$="RED" 2010 GOTO 1980 2020 PRINT:PRINT 2030 FOR C=1 TO Y 2040 IF T(C)<37 THEN 2710 2050 ON T(C)-36 GOTO 2090,2190,2220,2250,2300,2350,2400,2470,2500 2060 ON T(C)-45 GOTO 2530,2560,2630 2070 GOTO 2710 2080 FOR XX=1 TO 2000:NEXT:RUN"MENU" 2090 REM 1-12(37) 2:1 2100 IF S <= 12 THEN 2150 2110 PRINT "YOU LOSE";B(C);"DOLLARS ON BET";C;CHR$(8);"." 2120 D=D+B(C) 2130 P=P-B(C) 2140 GOTO 2180 2150 PRINT "YOU WIN";B(C)*2;"DOLLARS ON BET"C;CHR$(8);"." 2160 D=D-B(C)*2 2170 P=P+B(C)*2 2180 GOTO 2810 2190 REM 13-24(38) 2:1 2200 IF S>12 AND S<25 THEN 2150 2210 GOTO 2110 2220 REM 25-36(39) 2:1 2230 IF S>24 AND S<37 THEN 2150 2240 GOTO 2110 2250 REM FIRST COLUMN(40) 2:1 2260 FOR I=1 TO 34 STEP 3 2270 IF S=I THEN 2150 2280 NEXT I 2290 GOTO 2110 2300 REM SECOND COLUMN(41) 2:1 2310 FOR I=2 TO 35 STEP 3 2320 IF S=I THEN 2150 2330 NEXT I 2340 GOTO 2110 2350 REM THIRD COLUMN(42) 2:1 2360 FOR I=3 TO 36 STEP 3 2370 IF S=I THEN 2150 2380 NEXT I 2390 GOTO 2110 2400 REM 1-18(43) 1:1 2410 IF S<19 THEN 2430 2420 GOTO 2110 2430 PRINT "YOU WIN";B(C);"DOLLARS ON BET";C;CHR$(8);"." 2440 D=D-B(C) 2450 P=P+B(C) 2460 GOTO 2810 2470 REM 19-36(44) 1:1 2480 IF S<37 AND S>18 THEN 2430 2490 GOTO 2110 2500 REM EVEN(45) 1:1 2510 IF S/2=INT(S/2) AND S<37 THEN 2430 2520 GOTO 2110 2530 REM ODD(46) 1:1 2540 IF S/2<>INT(S/2) AND S<37 THEN 2430 2550 GOTO 2110 2560 REM RED(47) 1:1 2570 RESTORE 2580 FOR I=1 TO 18 2590 READ R 2600 IF S=R THEN 2430 2610 NEXT I 2620 GOTO 2110 2630 REM BLACK(48) 1:1 2640 RESTORE 2650 FOR I=1 TO 18 2660 READ R 2670 IF S=R THEN 2110 2680 NEXT I 2690 IF S>36 THEN 2110 2700 GOTO 2430 2710 REM--1TO36,0,00(1-36,49,50)35:1 2720 IF T(C)<49 THEN 2760 2730 IF T(C)=49 AND S=37 THEN 2780 2740 IF T(C)=50 AND S=38 THEN 2780 2750 GOTO 2110 2760 IF T(C)=S THEN 2780 2770 GOTO 2110 2780 PRINT "YOU WIN";B(C)*35;"DOLLARS ON BET";C;CHR$(8);"." 2790 D=D-B(C)*35 2800 P=P+B(C)*35 2810 NEXT C 2820 PRINT 2830 PRINT "TOTALS:":PRINT "------":PRINT 2840 PRINT "ME --";TAB(10);:PRINT USING "$$##,###";D: PRINT "YOU --";TAB(10);:PRINT USING "$$##,###";P 2845 PRINT:PRINT 2850 IF P>0 THEN 2880 2860 PRINT "OOPS! YOU JUST SPENT YOUR LAST DOLLAR!" 2870 GOTO 3190 2880 IF D>0 THEN 2920 2890 PRINT "YOU BROKE THE HOUSE!" 2900 P=101000! 2910 GOTO 2960 2920 PRINT:PRINT "AGAIN"; 2930 INPUT Y$ 2940 IF LEFT$(Y$,1)="Y" THEN 1630 2950 DATA 1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36 2960 IF P<1 THEN 3190 2970 PRINT "TO WHOM SHALL I MAKE THE CHECK"; 2980 INPUT B$ 2990 PRINT 3000 FOR I=1 TO 62: PRINT "-";: NEXT I: REM PRINT 62 DASHES 3010 PRINT TAB(50)"CHECK NO. ";INT(RND(1)*100) 3020 PRINT 3030 GOSUB 3230 3040 PRINT TAB(40);M$ 3050 PRINT 3060 PRINT 3070 PRINT "PAY TO THE ORDER OF-----";B$;"-----$ "; 3080 PRINT P 3090 PRINT 3100 PRINT 3110 PRINT TAB(10),"THE MEMORY BANK OF NEW YORK" 3120 PRINT 3130 PRINT TAB(40),"THE COMPUTER" 3140 PRINT TAB(40)"----------X-----" 3150 PRINT 3160 FOR I=1 TO 62: PRINT "-";: NEXT I 3170 PRINT "COME BACK SOON!" 3180 GOTO 3210 3190 PRINT "THANKS FOR YOUR MONEY." 3200 PRINT "I'LL USE IT TO BUY A SOLID GOLD ROULETTE WHEEL" 3210 PRINT 3220 GOTO 3420 3230 REM 3240 REM THIS ROUTINE RETURNS THE CURRENT DATE IN M$ 3250 REM IF YOU HAVE SYSTEM FUNCTIONS TO HANDLE THIS 3260 REM THEY CAN BE USED HERE. HOWEVER IN THIS 3270 REM PROGRAM, WE JUST INPUT THE DATE AT THE START 3280 REM THE GAME 3290 REM 3300 REM THE DATE IS RETURNED IN VARIABLE  M$ 3310 M$=D$+", "+E$ 3320 RETURN 3420 FOR XX=1 TO 3000:NEXT:RUN "MENU" REM 3300 REM THE DATE IS RETURNED IN VARIABLECK NO. ";INT(RND(1)*100) 3020 PRINT 3030 GOSUB 3230 3040 PRINT TAB(40);M$ 3050 PRINT 3060 PRINT 3070 PRINT "PAY TO THE ORDER OF-----";B$;"-----$ "; 3080 PRINT P 3090 PRINT 3100 PRINT 3110 PRINT TAB(10),"THE MEMORY BANK OF NEW YORK" 3120 PRINT 3130 PRINT TAB(40),"THE COMPUTER" 3140 PRINT TAB(40)"----------X-----" 3150 PRINT 3160 FOR I=1 TO 62: PRINT "-";: NEXT I 3170 PRINT "COME BACK SOON!" 3180 GOTO 3210 3190 PRINT "THANKS FOR YOUR MONEY." 3200 PRINT "I'LL USE IT TO BUY A SOLID GOLD ROULETTE WHEEL" 3210 PRINT 3220 GOTO 3420 3230 REM 3240 REM THIS ROUTINE RETURNS THE CURRENT DATE IN M$ 3250 REM IF YOU HAVE SYSTEM FUNCTIONS TO HANDLE THIS 3260 REM THEY CAN BE USED HERE. HOWEVER IN THIS 3270 REM PROGRAM, WE JUST INPUT THE DATE AT THE START 3280 REM THE GAME 3290 REM 3300 REM THE DATE IS RETURNED IN VARIABLE0 RANDOMIZE 1 PRINT CHR$(26):WIDTH 80:PRINT TAB(28);"RUSSIAN ROULETTE":PRINT 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3 PRINT:PRINT:PRINT 5 PRINT "THIS IS A GAME OF >>>>>>>>>>RUSSIAN ROULETTE." 10 PRINT:PRINT "HERE IS A REVOLVER." 20 PRINT "TYPE '1' TO SPIN CHAMBER AND PULL TRIGGER." 22 PRINT "TYPE '2' TO GIVE UP.":PRINT:PRINT 23 PRINT "GO:":PRINT "==":PRINT 25 N=0 30 INPUT I 31 IF I<>2 THEN 35 32 PRINT " CHICKEN!!!!!" 33 GOTO 72 35 N=N+1 40 IF RND(1)>.833333 THEN 70 45 IF N>10 THEN 80 50 PRINT "- CLICK -" 60 PRINT: GOTO 30 70 PRINT " BANG!!!!! YOU'RE DEAD!" 71 PRINT "CONDOLENCES WILL BE SENT TO YOUR RELATIVES." 72 PRINT:PRINT:PRINT 75 INPUT "ANOTHER VICTIM";X$:IF LEFT$(X$,1)="Y" THEN 20 ELSE RUN "MENU" 80 PRINT "YOU WIN!!!!!" 85 PRINT "LET SOMEONE ELSE BLOW HIS BRAINS OUT." 90 GOTO 10 99 END 1)="Y" THEN 20 ELSE RUN "MENU" 805 RANDOMIZE 999 PRINT CHR$(26):WIDTH 80 1000 PRINT TAB(33);"SALVO":PRINT 1010 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 1020 PRINT:PRINT:PRINT 1021 INPUT "DO YOU WANT INSTRUCTIONS";ANS$ 1022 IF LEFT$(ANS$,1)="Y" THEN GOSUB 20000 1025 PRINT "PLEASE STAND BY....":PRINT 1030 REM 1040 DIM A(10,10),B(10,10),C(7),D(7),E(12),F(12),G(12),H(12),K(10,10) 1050 Z8=0 1060 FOR W=1 TO 12 1070 E(W)=-1 1080 H(W)=-1 1090 NEXT W 1100 FOR X=1 TO 10 1110 FOR Y=1 TO 10 1120 B(X,Y)=0 1130 NEXT Y 1140 NEXT X 1150 FOR X=1 TO 12 1160 F(X)=0 1170 G(X)=0 1180 NEXT X 1190 FOR X=1 TO 10 1200 FOR Y=1 TO 10 1210 A(X,Y)=0 1220 NEXT Y 1230 NEXT X 1240 FOR K=4 TO 1 STEP -1 1250 U6=0 1260 GOSUB 2910 1270 DEF FNA(K)=(5-K)*3-2*INT(K/4)+SGN(K-1)-1 1280 DEF FNB(K)=K+INT(K/4)-SGN(K-1) 1290 IF V+V2+V*V2=0 THEN 1260 1300 IF Y+V*FNB(K)>10 THEN 1260 1310 IF Y+V*FNB(K)<1 THEN 1260 1320 IF X+V2*FNB(K)>10 THEN 1260 1330 IF X+V2*FNB(K)<1 THEN 1260 1340 U6=U6+1 1350 IF U6>25 THEN 1190 1360 FOR Z=0 TO FNB(K) 1370 F(Z+FNA(K))=X+V2*Z 1380 G(Z+FNA(K))=Y+V*Z 1390 NEXT Z 1400 U8=FNA(K) 1405 IF U8>U8+FNB(K) THEN 1460 1410 FOR Z2= U8 TO U8+FNB(K) 1415 IF U8<2 THEN 1450 1420 FOR Z3=1 TO U8-1 1430 IF SQR((F(Z3)-F(Z2))^2 + (G(Z3)-G(Z2))^2) < 3.59 THEN 1260 1440 NEXT Z3 1450 NEXT Z2 1460 FOR Z=0 TO FNB(K) 1470 A(F(Z+U8),G(Z+U8))=.5+SGN(K-1)*(K-1.5) 1480 NEXT Z 1490 NEXT K 1500 PRINT:PRINT "ENTER COORDINATES FOR...":PRINT 1510 PRINT "BATTLESHIP" 1515 PRINT "----------" 1520 FOR X=1 TO 5 1530 INPUT Y,Z 1540 B(Y,Z)=3 1550 NEXT X 1560 PRINT:PRINT "CRUISER" 1565 PRINT "-------" 1570 FOR X=1 TO 3 1580 INPUT Y,Z 1590 B(Y,Z)=2 1600 NEXT X 1610 PRINT:PRINT "DESTROYER" 1615 PRINT "------------" 1620 FOR X=1 TO 2 1630 INPUT Y,Z 1640 B(Y,Z)=1 1650 NEXT X 1660 PRINT:PRINT "DESTROYER" 1665 PRINT "------------" 1670 FOR X=1 TO 2 1680 INPUT Y,Z 1690 B(Y,Z)=.5 1700 NEXT X 1710 PRINT:PRINT "DO YOU WANT TO START"; 1720 INPUT J$ 1730 IF J$<>"WHERE ARE YOUR SHIPS?" THEN 1890 1740 PRINT:PRINT "BATTLESHIP" 1745 PRINT "----------" 1750 FOR Z=1 TO 5 1760 PRINT F(Z);G(Z) 1770 NEXT Z 1780 PRINT:PRINT "CRUISER" 1785 PRINT "-------" 1790 PRINT F(6);G(6) 1800 PRINT F(7);G(7) 1810 PRINT F(8);G(8) 1820 PRINT:PRINT "DESTROYER" 1825 PRINT "------------" 1830 PRINT F(9);G(9) 1840 PRINT F(10);G(10) 1850 PRINT:PRINT "DESTROYER" 1855 PRINT "------------" 1860 PRINT F(11);G(11) 1870 PRINT F(12);G(12) 1880 GOTO 1710 1890 C=0 1900 PRINT:PRINT "DO YOU WANT TO SEE MY SHOTS"; 1910 INPUT K$ 1920 PRINT 1930 IF LEFT$(J$,1)<>"Y" THEN 2620 1940 REM*******************START 1950 IF LEFT$(J$,1)<>"Y" THEN 1990 1960 C=C+1 1970 PRINT 1980 PRINT "TURN";C 1985 PRINT "-------" 1990 A=0 2000 FOR W=.5 TO 3 STEP .5 2010 FOR X=1 TO 10 2020 FOR Y=1 TO 10 2030 IF B(X,Y)=W THEN 2070 2040 NEXT Y 2050 NEXT X 2060 GOTO 2080 2070 A=A+INT(W+.5) 2080 NEXT W 2090 FOR W=1 TO 7 2100 C(W)=0 2110 D(W)=0 2120 F(W)=0 2130 G(W)=0 2140 NEXT W 2150 P3=0 2160 FOR X=1 TO 10 2170 FOR Y=1 TO 10 2180 I F A(X,Y)>10 THEN 2200 2190 P3=P3+1 2200 NEXT Y 2210 NEXT X 2220 PRINT "YOU HAVE";A;"SHOTS." 2230 IF P3>=A THEN 2260 2240 PRINT "YOU HAVE MORE SHOTS THAN THERE ARE BLANK SQUARES." 2250 GOTO 2890 2260 IF A<>0 THEN 2290 2270 PRINT "I HAVE WON." 2280 FOR XX=1 TO 2000:NEXT:RUN "MENU" 2290 FOR W=1 TO A 2300 INPUT X,Y 2310 IF X<>INT(X) THEN 2370 2320 IF X>10 THEN 2370 2330 IF X<1 THEN 2370 2340 IF Y<>INT(Y) THEN 2370 2350 IF Y>10 THEN 2370 2360 IF Y>=1 THEN 2390 2370 PRINT "ILLEGAL, ENTER AGAIN." 2380 GOTO 2300 2390 IF A(X,Y)>10 THEN 2440 2400 C(W)=X 2410 D(W)=Y 2420 NEXT W 2430 GOTO 2460 2440 PRINT "YOU SHOT THERE BEFORE ON TURN";A(X,Y)-10;CHR$(8);"." 2450 GOTO 2300 2460 FOR W=1 TO A 2470 IF A(C(W),D(W))=3 THEN 2540 2480 IF A(C(W),D(W))=2 THEN 2560 2490 IF A(C(W),D(W))=1 THEN 2580 2500 IF A(C(W),D(W))=.5 THEN 2600 2510 A(C(W),D(W))=10+C 2520 NEXT W 2530 GOTO 2620 2540 PRINT "YOU HIT MY BATTLESHIP." 2550 GOTO 2510 2560 PRINT "YOU HIT MY CRUISER." 2570 GOTO 2510 2580 PRINT "YOU HIT MY DESTROYER." 2590 GOTO 2510 2600 PRINT "YOU HIT MY DESTROYER." 2610 GOTO 2510 2620 A=0 2630 IF LEFT$(J$,1)="Y" THEN 2670 2640 C=C+1 2650 PRINT 2660 PRINT "TURN";C 2665 PRINT "-------" 2670 A=0 2680 FOR W=.5 TO 3 STEP .5 2690 FOR X=1 TO 10 2700 FOR Y=1 TO 10 2710 IF A(X,Y)=W THEN 2750 2720 NEXT Y 2730 NEXT X 2740 GOTO 2760 2750 A=A+INT(W+.5) 2760 NEXT W 2770 P3=0 2780 FOR X=1 TO 10 2790 FOR Y=1 TO 10 2800 IF A(X,Y)>10 THEN 2820 2810 P3=P3+1 2820 NEXT Y 2830 NEXT X 2840 PRINT "I HAVE";A;"SHOTS." 2850 IF P3>A THEN 2880 2860 PRINT "I HAVE MORE SHOTS THAN BLANK SQUARES." 2870 GOTO 2270 2880 IF A<>0 THEN 2960 2890 PRINT "YOU HAVE WON." 2900 FOR XX=1 TO 2000:NEXT:RUN "MENU" 2910 X=INT(RND(1)*10+1) 2920 Y=INT(RND(1)*10+1) 2930 V=INT(3*RND(1)-1) 2940 V2=INT(3*RND(1)-1) 2950 RETURN 2960 FOR W=1 TO 12 2970 IF H(W)>0 THEN 3800 2980 NEXT W 2990 REM*******************RANDOM 3000 W=0 3010 R3=0 3020 GOSUB 2910 3030 RESTORE 3040 R2=0 3050 R3=R3+1 3060 IF R3>100 THEN 3010 3070 IF X>10 THEN 3110 3080 IF X>0 THEN 3120 3090 X=1+INT(RND(1)*2.5) 3100 GOTO 3120 3110 X=10-INT(RND(1)*2.5) 3120 IF Y>10 THEN 3160 3130 IF Y>0 THEN 3270 3140 Y=1+INT(RND(1)*2.5) 3150 GOTO 3270 3160 Y=10-INT(RND(1)*2.5) 3170 GOTO 3270 3180 F(W)=X 3190 G(W)=Y 3200 IF W=A THEN 3380 3210 IF R2=6 THEN 3030 3220 READ X1,Y1 3230 R2=R2+1 3240 DATA 1,1,-1,1,1,-3,1,1,0,2,-1,1 3250 X=X+X1 3260 Y=Y+Y1 3270 IF X>10 THEN 3210 3280 IF X<1 THEN 3210 3290 IF Y>10 THEN 3210 3300 IF Y<1 THEN 3210 3310 IF B(X,Y)>10 THEN 3210 3320 FOR Q9=1 TO W 3330 IF F(Q9)<>X THEN 3350 3340 IF G(Q9)=Y THEN 3210 3350 NEXT Q9 3360 W=W+1 3370 GOTO 3180 3380 IF LEFT$(K$,1)<>"Y" THEN 3420 3390 FOR Z5=1 TO A 3400 PRINT F(Z5);G(Z5) 3410 NEXT Z5 3420 FOR W=1 TO A 3430 IF B(F(W),G(W))=3 THEN 3500 3440 IF B(F(W),G(W))=2 THEN 3520 3450 IF B(F(W),G(W))=1 THEN 3560 3460 IF B(F(W),G(W))=.5 THEN 3540 3470 B(F(W),G(W))=10+C 3480 NEXT W 3490 GOTO 1950 3500 PRINT "I HIT YOUR BATTLESHIP" 3510 GOTO 3570 3520 PRINT "I HIT YOUR CRUISER" 3530 GOTO 3570 3540 PRINT "I HIT YOUR DESTROYER" 3550 GOTO 3570 3560 PRINT "I HIT YOUR DESTROYER" 3570 FOR Q=1 TO 12 3580 IF E(Q)<>-1 THEN 3730 3590 E(Q)=10+C 3600 H(Q)=B(F(W),G(W)) 3610 M3=0 3620 FOR M2=1 TO 12 3630 IF H(M2)<>H(Q) THEN 3650 3640 M3=M3+1 3650 NEXT M2 3660 IF M3<>INT(H(Q)+.5)+1+INT(INT(H(Q)+.5)/3) THEN 3470 3670 FOR M2=1 TO 12 3680 IF H(M2)<>H(Q) THEN 3710 3690 E(M2)=-1 3700 H(M2)=-1 3710 NEXT M2 3720 GOTO 3470 3730 NEXT Q 3740 PRINT "PROGRAM ABORT:" 3750 FOR Q=1 TO 12 3760 PRINT "E(";Q;") =";E(Q) 3770 PRINT "H(";Q;") =";H(Q) 3780 NEXT Q 3790 FOR XX=1 TO 2000:NEXT:RUN "MENU" 3800 REM************************USINGEARRAY 3810 FOR R=1 TO 10 3820 FOR S=1 TO 10 3830 K(R,S)=0 3840 NEXT S 3850 NEXT R 3860 FOR U=1 TO 12 3870 IF E(U)<10 THEN 4020 3880 FOR R=1 TO 10 3890 FOR S=1 TO 10 3900 IF B(R,S)<10 THEN 3930 3910 K(R,S)=-10000000# 3920 GOTO 4000 3930 FOR M=SGN(1-R) TO SGN(10-R) 3940 FOR N=SGN(1-S) TO SGN(10-S) 3950 IF N+M+N*M=0 THEN 3980 3960 IF B(R+M,S+N)<>E(U) THEN 3980 3970 K(R,S)=K(R,S)+E(U)-S*INT(H(U)+.5) 3980 NEXT N 3990 NEXT M 4000 NEXT S 4010 NEXT R 4020 NEXT U 4030 FOR R=1 TO A 4040 F(R)=R 4050 G(R)=R 4060 NEXT R 4070 FOR R=1 TO 10 4080 FOR S=1 TO 10 4090 Q9=1 4100 FOR M=1 TO A 4110 IF K(F(M),G(M))>=K(F(Q9),G(Q9)) THEN 4130 4120 Q9=M 4130 NEXT M 4131 IF R>A THEN 4140 4132 IF R=S THEN 4210 4140 IF K(R,S)R THEN 4190 4170 IF G(M)=S THEN 4210 4180 NEXT M 4190 F(Q9)=R 4200 G(Q9)=S 4210 NEXT S 4220 NEXT R 4230 GOTO 3380 4240 RUN "MENU" 20000 PRINT CHR$(26) 20010 PRINT " SALVO IS PLAYED ON A 10X10 GRID USING AN X,Y COORDINATE" 20020 PRINT "SYSTEM. THE PLAYER HAS 4 SHIPS: BATTLESHIP (5 SQUARES)," 20030 PRINT "CRUISER (3 SQUARES), AND TWO DESTROYERS (2 SQUARES EACH)." 20040 PRINT "THE SHIPS MUST BE PLACED HORIZONTALLY, VERTICALLY, OR" 20050 PRINT "DIAGONALLY AND MUST NOT OVERLAP. THE SHIPS DO NOT MOVE" 20060 PRINT "DURING THE GAME." 20070 PRINT 20080 PRINT " AS LONG AS ANY SQUARE OF A BATTLESHIP STILL SURVIVES," 20090 PRINT "THE PLAYER IS ALLOWED THREE SHOTS, FOR A CRUISER TWO" 20100 PRINT "SHOTS, AND FOR EACH DESTROYER ONE SHOT. THUS, AT THE " 20110 PRINT "BEGINNING OF THE GAME THE PLAYER HAS 3+2+1+1 = 7 SHOTS." 20120 PRINT "THE PLAYER ENTERS ALL OF HIS SHOTS AND THE COMPUTER" 20130 PRINT "TELLS WHAT WAS HIT. A SHOT IS ENTERED BY ITS GRID" 20140 PRINT "COORDINATES, X,Y. THE WINNER IS THE ONE WHO SINKS ALL" 20150 PRINT "OF THE OPPONENT'S SHIPS." 20160 PRINT 20170 PRINT " NOTE: YOUR SHIPS AND THE COMPUTERS SHIPS ARE LOCATED" 20180 PRINT "ON TWO SEPARATE 10X10 BOARDS." 20190 PRINT:PRINT 20200 LINE INPUT "ENTER 'RETURN' TO START THE GAME. ";RESP$:PRINT CHR$(26) 20210 RETURN  10X10 BOARDS." 20190 PRINT:PRINT 20200 LINE INPUT "ENTER 'RETURN' TO START THE GAME. ";RESP$:PRINT CHR$(26) 20210 RETURNONTALLY, VERTICALLY, OR" 20050 PRINT "DIAGONALLY AND MUST NOT OVERLAP. THE SHIPS DO NOT MOVE" 20060 PRINT "DURING THE GAME." 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(30);"SINE WAVE":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 32 INPUT "ENTER TWO WORDS SEPARATED BY A COMMA ";F$,S$ 34 PRINT 36 LINE INPUT "ENTER 'RETURN' TO START THE PROGRAM. ";RESP$ 38 PRINT CHR$(26) 40 REM ARKABLE PROGRAM BY DAVID AHL 50 B=0 100 REM START LONG LOOP 110 FOR T=0 TO 40 STEP .25 120 A=INT(26+25*SIN(T)) 130 PRINT TAB(A); 140 IF B=1 THEN 180 150 PRINT F$ 160 B=1 170 GOTO 200 180 PRINT S$ 190 B=0 200 NEXT T 999 RUN "MENU" 30 PRINT TAB(A); 140 IF B=1 THEN 180 150 PRINT F$ 160 B=1 170 GOTO 200 180 PRINT S$ 1900 REM Modified by Jim Woolley, FOG Disk Librarian, 8/82 1 RANDOMIZE 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(33);"SLALOM":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 310 PRINT "HOW MANY GATES DOES THIS COURSE HAVE (1 TO 25)"; 320 INPUT V 330 IF V>25 THEN 360 340 IF V<1 THEN 390 350 GOTO 1440 360 PRINT "25 IS THE LIMIT." 370 LET V=25 380 GOTO 1440 390 PRINT "TRY AGAIN," 400 GOTO 310 410 PRINT:PRINT "RATE YOURSELF AS A SKIER, (1=WORST, 3=BEST)"; 420 INPUT A 430 IF A<1 THEN 460 440 IF A>3 THEN 460 450 GOTO 480 460 PRINT "THE BOUNDS ARE 1-3." 470 GOTO 410 480 PRINT:PRINT"THE STARTER COUNTS DOWN"; 481 FOR I=5 TO 1 STEP -1:FOR J=1 TO 400:NEXT J 482 PRINT"...";:PRINT USING"#";I;:NEXT I 483 FOR J=1 TO 400:NEXT J 484 PRINT"...GO!" 490 REM 500 LET T=0 510 LET S=INT(RND(1)*(18-9)+9) 520 PRINT 525 PRINT "YOU'RE OFF!" 530 FOR O=1 TO V 540 READ Q 550 PRINT 555 PRINT "HERE COMES GATE #";STR$(O);":" 560 PRINT S;"M.P.H." 570 LET S1=S  580 PRINT "OPTION"; 590 INPUT O1 600 IF O1=0 THEN 970 610 IF O1>8 THEN 1420 620 IF O1<1 THEN 1420 630 GOSUB 990 640 IF S<7 THEN 1390 650 LET T=T+(Q-S+1) 660 IF S>Q THEN 1630 670 NEXT O 680 PRINT:PRINT "YOU TOOK";(T+RND(1));"SECONDS." 690 LET M=T 700 LET M=M/V 710 IF M<1.5-(A*.1) THEN 1650 720 IF M<2.9-(A*.1) THEN 1680 730 IF M<4.4-(A*.01) THEN 1710 740 PRINT:PRINT "DO YOU WANT TO RACE AGAIN"; 750 INPUT B$ 760 REM 770 IF LEFT$(B$,1)="N" THEN 1740 780 IF LEFT$(B$,1)="Y" THEN 480 790 PRINT "PLEASE TYPE 'YES' OR 'NO'" 800 GOTO 740 810 RUN "MENU" 820 PRINT 825 PRINT "*** SLALOM: THIS IS THE 1976 WINTER OLYMPIC GIANT SLALOM. YOU ARE" 830 PRINT " THE AMERICAN TEAM'S ONLY HOPE OF A GOLD MEDAL." 840 PRINT 845 PRINT " 0 -- TYPE THIS IS YOU WANT TO SEE HOW LONG YOU'VE TAKEN." 850 PRINT " 1 -- TYPE THIS IF YOU WANT TO SPEED UP A LOT." 860 PRINT " 2 -- TYPE THIS IF YOU WANT TO SPEED UP A LITTLE." 870 PRINT " 3 -- TYPE THIS IF YOU WANT TO SPEED UP A TEENSY." 880 PRINT " 4 -- TYPE THIS IF YOU WANT TO KEEP GOING THE SAME SPEED." 890 PRINT " 5 -- TYPE THIS IF YOU WANT TO CHECK A TEENSY." 900 PRINT " 6 -- TYPE THIS IF YOU WANT TO CHECK A LITTLE." 910 PRINT " 7 -- TYPE THIS IF YOU WANT TO CHECK A LOT." 920 PRINT " 8 -- TYPE THIS IF YOU WANT TO CHEAT AND TRY TO SKIP A GATE." 930 PRINT 935 PRINT " THE PLACE TO USE THESE OPTIONS IS WHEN THE COMPUTER ASKS:" 940 PRINT 945 PRINT "OPTION?" 950 PRINT 955 PRINT " GOOD LUCK!" 957 PRINT 960 GOTO 1470 970 PRINT "YOU'VE TAKEN";(T+RND(1));"SECONDS." 980 GOTO 580 990 ON O1 GOTO 1130,1010,1170,1080,1190,1100,1150,1210 1000 RUN "MENU" 1010 LET S=S+INT(RND(1)*(5-3)+3) 1020 PRINT S;"M.P.H." 1030 IF S>Q THEN 1290 1040 IF S>Q-1 THEN 1060 1050 RETURN 1060 PRINT "CLOSE ONE!" 1070 RETURN 1080 PRINT S;"M.P.H." 1090 GOTO 1030 1100 LET S=S-INT(RND(1)*(5-3)+3) 1110 PRINT S;"M.P.H." 1120 GOTO 1030 1130 LET S=S+INT(RND(1)*(10-5)+5) 1140 GOTO 1080 1150 LET S=S-INT(RND(1)*(10-5)+5) 1160 GOTO 1110 1170 LET S=S+INT(RND(1)*(4-1)+1) 1180 GOTO 1110 1190 LET S=S-INT(RND(1)*(4-1)+1) 1200 GOTO 1110 1210 PRINT "*** CHEAT ***" 1220 IF RND(1)<.7 THEN 1260 1230 PRINT "YOU MADE IT!" 1240 LET T=T+1.5 1250 RETURN 1260 PRINT "AN OFFICIAL CAUGHT YOU!" 1270 PRINT "YOU TOOK";(T+RND(1));"SECONDS." 1280 GOTO 740 1290 IF RND(1)<((S-Q)*.1)+.2 THEN 1320 1300 PRINT "YOU WENT OVER THE NAXIMUM SPEED AND MADE IT!" 1310 RETURN 1320 PRINT "YOU WENT OVER THE MAXIMUM SPEED AND "; 1330 IF RND(1)<.5 THEN 1370 1340 PRINT "WIPED OUT!" 1350 PRINT "YOU TOOK";(T+RND(1));"SECONDS." 1360 GOTO 740 1370 PRINT "SNAGGED A FLAG!" 1380 GOTO 1350 1390 PRINT "LET'S BE REALISTIC, OK? LET'S GO BACK AND TRY AGAIN..." 1400 LET S=S1 1410 GOTO 550 1420 PRINT "WHAT?" 1430 GOTO 580 1440 PRINT 1445 PRINT "TYPE ";CHR$(34);"INS";CHR$(34);" FOR INSTRUCTIONS" 1450 PRINT "TYPE ";CHR$(34);"MAX";CHR$(34);" FOR APPROXIMATE MAXIMUM SPEEDS" 1460 PRINT "TYPE ";CHR$(34);"RUN";CHR$(34);" FOR THE BEGINNING OF THE RACE" 1470 PRINT:PRINT "COMMAND--"; 1480 INPUT A$ 1490 REM 1500 IF LEFT$(A$,1)="I" THEN 820 1510 IF LEFT$(A$,1)="M" THEN 1550 1520 IF LEFT$(A$,1)="R" THEN 410 1530 PRINT CHR$(34);A$;CHR$(34);" IS AN ILLEGAL COMMAND--RETRY"; 1540 GOTO 1480 1550 PRINT "GATE MAX" 1560 PRINT " # M.P.H." 1570 PRINT"----------" 1580 FOR B=1 TO V 1590 READ Q 1600 PRINT B;" ";Q 1610 NEXT B 1620 GOTO 1470 1630 LET T=T+.5 1640 GOTO 670 1650 PRINT "YOU WON A GOLD MEDAL!" 1660 LET G(1)=G(1)+1 1670 GOTO 1730 1680 PRINT "YOU WON A SILVER MEDAL." 1690 LET S(1)=S(1)+1 1700 GOTO 1730 1710 PRINT "YOU WON A BRONZE MEDAL." 1720 LET B(1)=B(1)+1 1730 GOTO 740 1740 PRINT "THANKS FOR THE RACE." 1750 IF G(1)<1 THEN 1770 1760 PRINT "GOLD MEDALS:";G(1) 1770 IF S(1)<1 THEN 1790 1780 PRINT "SILVER MEDALS:";S(1) 1790 IF B(1)<1 THEN 1830 1800 PRINT "BRONZE MEDALS:";B(1) 1810 DATA 14,18,26,29,18,25,28,32,29,20,29,29,25,21,26,29,20,21,20 1820 DATA 18,26,25,33,31,22 1830 RUN "MENU" DALS:";0 REM Modified by Jim Woolley, FOG Disk Librarian, 8/82 1 RANDOMIZE 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(30);"SLOTS":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 100 REM 110 REM THIS PROGRAM SIMULATES A SLOT MACHINE 120 PRINT "YOU ARE IN THE H&M CASINO, IN FRONT OF ONE OF OUR" 130 PRINT "ONE-ARMED BANDITS. BET FROM 1$ TO $100." 140 PRINT "TO QUIT, ANSWER 'AGAIN?' WITH 'NO'." 145 PRINT "TO CONTINUE, PRESS AFTER 'AGAIN?'." 150 LET P=0 160 PRINT:PRINT "YOUR BET"; 170 INPUT M 180 IF M>100 THEN 860 190 IF M<1 THEN 880 200 M=INT(M) 210 GOSUB 1270 220 PRINT 230 LET X=INT(6*RND(1)+1) 240 LET Y=INT(6*RND(1)+1) 250 LET Z=INT(6*RND(1)+1) 260 PRINT 270 ON X GOTO 910,930,950,970,990,1010 330 ON Y GOTO 1030,1050,1070,1090,1110,1130 390 ON Z GOTO 1150,1170,1190,1210,1230,1250 450 IF X=Y THEN 600 460 IF X=Z THEN 630 470 IF Y=Z THEN 650 480 PRINT:PRINT"YOU LOST." 500 LET P=P-M 510 PRINT "YOUR STANDINGS ARE $"P 520 PRINT "AGAIN"; 530 INPUT A$ 540 IF LEFT$(A$,1)<>"N" THEN 160 550 PRINT 560 IF P<0 THEN 670 570 IF P=0 THEN 690 580 IF P>0 THEN 710 590 GOTO 1350 600 IF Y=Z THEN 730 610 IF Y=1 THEN 820 620 GOTO 1341 630 IF Z=1 THEN 820 640 GOTO 470 650 IF Z=1 THEN 820 660 GOTO 1341 670 PRINT "PAY UP! PLEASE LEAVE YOUR MONEY ON THE TERMINAL." 680 GOTO 1350 690 PRINT "HEY, YOU BROKE EVEN." 700 GOTO 1350 710 PRINT "COLLECT YOUR WINNINGS FROM THE H&M CASHIER." 720 GOTO 1350 730 IF Z=1 THEN 780 740 PRINT:PRINT "**TOP DOLLAR**" 750 PRINT "YOU WON!" 760 P=(((10*M)+M)+P) 770 GOTO 510 780 PRINT:PRINT "***JACKPOT***" 790 PRINT "YOU WON!" 800 P=(((100*M)+M)+P) 810 GOTO 510 820 PRINT:PRINT "*DOUBLE BAR*" 830 PRINT "YOU WON!" 840 P=(((5*M)+M)+P) 850 GOTO 510 860 PRINT "HOUSE LIMITS ARE $100" 870 GOTO 160 880 PRINT "MINIMUM BET IS $1" 890 GOTO 160 900 GOTO 220 910 PRINT "BAR";:GOSUB 1310 920 GOTO 330 930 PRINT "BELL";:GOSUB 1310 940 GOTO 330 950 PRINT "ORANGE";:GOSUB 1310 960 GOTO 330 970 PRINT "LEMON";:GOSUB 1310 980 GOTO 330 990 PRINT "PLUM";:GOSUB 1310 1000 GOTO 330 1010 PRINT "CHERRY";:GOSUB 1310 1020 GOTO 330 1030 PRINT " BAR";:GOSUB 1310 1040 GOTO 390 1050 PRINT " BELL";:GOSUB 1310 1060 GOTO 390 1070 PRINT " ORANGE";:GOSUB 1310 1080 GOTO 390 1090 PRINT " LEMON";:GOSUB 1310 1100 GOTO 390 1110 PRINT " PLUM";:GOSUB 1310 1120 GOTO 390 1130 PRINT " CHERRY";:GOSUB 1310 1140 GOTO 390 1150 PRINT " BAR" 1160 GOTO 450 1170 PRINT " BELL" 1180 GOTO 450 1190 PRINT " ORANGE" 1200 GOTO 450 1210 PRINT " LEMON" 1220 GOTO 450 1230 PRINT " PLUM" 1240 GOTO 450 1250 PRINT " CHERRY" 1260 GOTO 450 1270 FOR Q4=1 TO 10 1280 PRINT CHR$(7); 1290 NEXT Q4 1300 RETURN 1310 FOR T8=1 TO 5 1320 PRINT CHR$(7); 1330 NEXT T8 1340 RETURN 1341 PRINT:PRINT "DOUBLE!!" 1342 PRINT "YOU WON!" 1343 P=(((2*M)+M)+P) 1344 GOTO 510 1350 REM 9999 RUN "MENU" 40 RETURN 1341 PRINT:PRINT "DOUBLE!!330 930 PRINT "BELL";:GOSUB 1310 940 GOTO 330 950 PRINT "ORANGE";:GOSUB 1310 960 GOTO 330 970 PRINT "LEMON";:GOSUB 1310 981 RANDOMIZE 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(33);"SPLAT":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 40 PRINT:PRINT:PRINT 50 DIM A(42) 95 PRINT "WELCOME TO 'SPLAT' -- THE GAME THAT SIMULATES A PARACHUTE" 96 PRINT "JUMP. TRY TO OPEN YOUR CHUTE AT THE LAST POSSIBLE" 97 PRINT "MOMENT WITHOUT GOING SPLAT." 118 PRINT:PRINT:D1=0:V=0:A=0:N=0:M=0:D1=INT(9001*RND(1)+1000) 119 PRINT "SELECT YOUR OWN TERMINAL VELOCITY (YES OR NO)";:INPUT A1$ 120 IF LEFT$(A1$,1)="N" GOTO 128 121 IF LEFT$(A1$,1)<>"Y" THEN PRINT "YES OR NO";:INPUT A1$:GOTO 120 123 PRINT "WHAT TERMINAL VELOCITY (MI/HR)";:INPUT V1 125 V1=V1*(5280/3600):V=V1+((V1*RND(1))/20)-((V1*RND(1))/20):GOTO 135 128 V1=INT(1000*RND(1)) 130 PRINT "OK. TERMINAL VELOCITY ="V1"MI/HR" 131 V1=V1*(5280/3600):V=V1+((V1*RND(1))/20)-((V1*RND(1))/20) 135 PRINT: PRINT "WANT TO SELECT ACCELERATION DUE TO GRAVITY (YES OR NO)"; 136 INPUT B1$ 140 IF LEFT$(B1$,1)="N" GOTO 150 141 IF LEFT$(B1$,1)<>"Y" THEN PRINT "YES OR NO";:INPUT B1$:GOTO 140 143 PRINT "WHAT ACCELERATION (FT/SEC/SEC)";:INPUT A2 145 A=A2+((A2*RND(1))/20)-((A2*RND(1))/20):GOTO 205 150 ON INT(1+(10*RND(1)))GOTO 151,152,153,154,155,156,157,158,159,160 151 PRINT"FINE. YOU'RE ON MERCURY. ACCELERATION=12.2 FT/SEC/SEC.":GOTO 161 152 PRINT"ALL RIGHT. YOU'RE ON VENUS. ACCELERATION=28.3 FT/SEC/SEC.":GOTO 162 153 PRINT "THEN YOU'RE ON EARTH. ACCELERATION=32.16 FT/SEC/SEC.":GOTO 163 154 PRINT"FINE. YOU'RE ON THE MOON. ACCELERATION=5.15 FT/SEC/SEC.":GOTO 164 155 PRINT"ALL RIGHT. YOU'RE ON MARS. ACCELERATION=12.5 FT/SEC/SEC.":GOTO 165 156 PRINT"THEN YOU'RE ON JUPITER. ACCELERATION=85.2 FT/SEC/SEC.":GOTO 166 157 PRINT"FINE. YOU'RE ON SATURN. ACCELERATION=37.6 FT/SEC/SEC.":GOTO 167 158 PRINT"ALL RIGHT. YOU'RE ON URANUS. ACCELERATION=33.8 FT/SEC/SEC.":GOTO 168 159 PRINT"THEN YOU'RE ON NEPTUNE. ACCELERATION=39.6 FT/SEC/SEC.":GOTO 169 160 PRINT"FINE. YOU'RE ON THE SUN. ACCELERATION=896 FT/SEC/SEC.":GOTO 170 161 A2=12.2:GOTO 145 162 A2=28.3:GOTO 145 163 A2=32.16:GOTO 145 164 A2=5.15:GOTO 145 165 A2=12.5:GOTO 145 166 A2=85.2:GOTO 145 167 A2=37.6:GOTO 145 168 A2=33.8 :GOTO 145 169 A2=39.6:GOTO 145 170 A2=896:GOTO 145 205 PRINT 206 PRINT " ALTITUDE ="D1"FT" 207 PRINT " TERM. VELOCITY ="V1"FT/SEC +/-5%" 208 PRINT " ACCELERATION ="A2"FT/SEC/SEC +/-5%" 210 PRINT:PRINT "SET THE TIMER FOR YOUR FREEFALL." :PRINT 211 PRINT "HOW MANY SECONDS";:INPUT T 212 PRINT 215 PRINT "HERE WE GO." 217 PRINT 218 PRINT "TIME (SEC)","DIST TO FALL (FT)" 219 PRINT "==========","=================" 300 FOR I=0 TO T STEP (T/8) 310 IF I>V/A GOTO 400 320 D=D1-((A/2)*I^2) 330 IF D<=0 GOTO 1000 340 PRINT USING "####.##";I;:PRINT "",:PRINT USING " ####.##";D 350 NEXT I 360 GOTO 500 400 PRINT "TERMINAL VELOCITY REACHED AT T PLUS"V/A"SECONDS." 405 FOR I=I TO T STEP (T/8) 410 D=D1-((V^2/(2*A))+(V*(I-(V/A)))) 420 IF D<=0 GOTO 1010 430 PRINT USING "####.##";I;:PRINT "",:PRINT USING " ####.##";D 440 NEXT I 500 PRINT:PRINT CHR$(22);"  ":PRINT " CHUTE OPEN ": PRINT " ";:PRINT CHR$(22) 510 K=0:K1=0 550 FOR J=0 TO 42 555 IF A(J)=0 GOTO 620 560 K=K+1 570 IF D>=A(J) GOTO 600 580 K1=K1+1 600 NEXT J 610 GOTO 540 620 A(J)=D 630 IF J>2 THEN 650 635 PRINT:PRINT "AMAZING!!! NOT BAD FOR YOUR "; 636 IF J=0 THEN PRINT "1ST "; 637 IF J=1 THEN PRINT "2ND "; 638 IF J=2 THEN PRINT "3RD "; 639 PRINT "SUCCESSFUL JUMP!!!":PRINT:GOTO 2000 650 IF K-K1<=.1*K GOTO 700 660 IF K-K1<=.25*K GOTO 710 670 IF K-K1<=.5*K GOTO 720 680 IF K-K1<=.75*K GOTO 730 690 IF K-K1<=.9*K GOTO 740 695 GOTO 750 700 PRINT:PRINT "WOW! THAT'S SOME JUMPING. OF THE"K"SUCCESSFUL JUMPS" 701 PRINT "BEFORE YOURS, ONLY"K-K1"OPENED THEIR CHUTES LOWER THAN" 702 PRINT "YOU DID." 703 GOTO 2000 710 PRINT:PRINT "PRETTY GOOD! " K"SUCCESSFUL JUMPS PRECEDED YOURS AND ONLY" 711 PRINT K-K1" OF THEM GOT LOWER THAN YOU DID BEFORE THEIR CHUTES" 712 PRINT "OPENED." :GOTO 2000 720 PRINT:PRINT "NOT BAD. THERE HAVE BEEN"K"SUCCESSFUL JUMPS BEFORE YOURS." 721 PRINT"YOU WERE BEATEN OUT BY"K-K1"OF THEM.":GOTO 2000 730 PRINT:PRINT "CONSERVATIVE, AREN'T YOU? YOU RANKED ONLY"K-K1"IN THE" 731 PRINT K"SUCCESSFUL JUMPS BEFORE YOURS.":GOTO 2000 740 PRINT:PRINT "HUMPH! DON'T YOU HAVE ANY SPORTING BLOOD? THERE WERE" 741 PRINT K"SUCCESSFUL JUMPS BEFORE YOURS AND YOU CAME IN"K1"JUMPS" 742 PRINT "BETTER THAN THE WORST. SHAPE UP!!!":GOTO 2000 750 PRINT:PRINT "HEY! YOU PULLED THE RIP CORD MUCH TOO SOON. "K"SUCCESSFUL" 751 PRINT "JUMPS BEFORE YOURS AND YOU CAME IN NUMBER"K-K1"! GET WITH IT!" 752 GOTO 2000 800 PRINT:PRINT "REQUIESCAT IN PACE.":GOTO 1950 801 PRINT:PRINT "MAY THE ANGEL OF HEAVEN LEAD YOU INTO PARADISE.":GOTO 1950 802 PRINT:PRINT "REST IN PEACE.":GOTO 1950 803 PRINT:PRINT "SON-OF-A-GUN.":GOTO 1950 804 PRINT:PRINT "#$%&&%!$":GOTO 1950 805 PRINT:PRINT "A KICK IN THE PANTS IS A BOOST IF YOU'RE HEADED RIGHT.": GOTO 1950 806 PRINT:PRINT "HMMM. SHOULD HAVE PICKED A SHORTER TIME.":GOTO 1950 807 PRINT:PRINT "MUTTER. MUTTER. MUTTER.":GOTO 1950 808 PRINT:PRINT "PUSHING UP DAISIES.":GOTO 1950 809 PRINT:PRINT "EASY COME, EASY GO.":GOTO 1950 1000 PRINT USING "####.##";SQR(2*D1/A);:PRINT "",: PRINT " ";CHR$(22);" SPLAT ";CHR$(22) 1005 ON INT(1+(10*RND(1)))GOTO 800,801,802,803,804,805,806,807,808,809 1010 PRINT USING "####.##";(V/A)+((D1-(V^2/(2*A)))/V);:PRINT "",: PRINT " ";CHR$(22);" SPLAT " ;CHR$(22) 1020 GOTO 1005 1950 PRINT:PRINT "I'LL GIVE YOU ANOTHER CHANCE.":GOTO 2000 2000 PRINT:PRINT "DO YOU WANT TO PLAY AGAIN";:INPUT Z$ 2001 IF LEFT$(Z$,1)="Y" GOTO 118 2002 IF LEFT$(Z$,1)="N" GOTO 2005 2003 PRINT "YES OR NO":GOTO 2000 2005 PRINT "PLEASE";:INPUT Z$:IF LEFT$(Z$,1)="Y" GOTO 118 2006 IF LEFT$(Z$,1)<>"N" THEN PRINT "YES OR NO ";:GOTO 2005 2007 PRINT:PRINT "SSSSSSSSSS.":PRINT:GOTO 2046 2046 RUN "MENU"  2006 IF LEFT$(Z$,1)<>"N" THEN PRINT "YES OR NO ";:GO HEADED RIGHT.": GOTO 1950 806 PRINT:PRINT "HMMM. SHOULD HAVE PICKED A SHORTER TIME.":GOTO 1950 807 PRINT:PRINT "MUTTER.1 RANDOMIZE 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(34);"STARS":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 100 REM *** STARS - PEOPLE'S COMPUTER CENTER, MENLO PARK, CA 140 REM *** A IS LIMIT ON NUMBER, M IS NUMBER OF GUESSES 150 A=100:M=7 170 INPUT "DO YOU WANT INSTRUCTIONS";A$ 190 IF LEFT$(A$,1)="N" THEN 280 200 REM *** INSTRUCTIONS ON HOW TO PLAY 205 PRINT:PRINT 210 PRINT "I AM THINKING OF A WHOLE NUMBER FROM 1 TO";A;CHR$(8);"." 220 PRINT "TRY TO GUESS MY NUMBER. AFTER YOU GUESS, I" 230 PRINT "WILL TYPE ONE OR MORE STARS (*). THE MORE" 240 PRINT "STARS I TYPE, THE CLOSER YOU ARE TO MY NUMBER." 245 PRINT 250 PRINT "ONE STAR (*) MEANS FAR AWAY, SEVEN STARS (*******)" 260 PRINT "MEANS REALLY CLOSE! YOU GET";M;"GUESSES." 270 REM *** COMPUTER THINKS OF A NUMBER 280 PRINT 290 PRINT 300 X=INT(A*RND(1)+1) 310 PRINT "OK, I AM THINKING OF A NUMBER, START GUESSING." 320 REM *** GUESSING BEGINS, HUMAN GETS M GUESSES 330 FOR K=1 TO M 340 PRINT 350 PRINT "YOUR GUESS"; 360 INPUT G 370 IF G=X THEN 600 380 D=ABS(G-X) 390 IF D>=64 THEN 510 400 IF D>=32 THEN 500 410 IF D>=16 THEN 490 420 IF D>=8 THEN 480 430 IF D>=4 THEN 470 440 IF D>=2 THEN 460 450 PRINT "*"; 460 PRINT "*"; 470 PRINT "*"; 480 PRINT "*"; 490 PRINT "*"; 500 PRINT "*"; 510 PRINT "*"; 520 PRINT 530 NEXT K 540 REM *** DID NOT GUESS IN M GUESSES 550 PRINT 560 PRINT "SORRY, THAT'S";M;"GUESSES. THE NUMBER WAS";X;CHR$(8);"." 580 GOTO 650 590 REM *** WE HAVE A WINNER 600 PRINT:FOR N=1 TO 79 610 PRINT "*"; 620 NEXT N 630 PRINT:PRINT 640 PRINT "YOU GOT IT IN";K;"GUESSES!!!" 650 PRINT:INPUT "PLAY AGAIN";X$ 660 IF LEFT$(X$,1)="Y" THEN 280 ELSE RUN "MENU" T 640 PRINT "YOU GOT IT IN";K;"GUESSES!!!" 650 PRINT:INPUT "PLASE! YOU GET";M;"GUESSES." 270 REM *** COMPUTER THINKS OF A NUMBER 280 PRINT 290 PRINT 300 X=INT(A*RND(1)+1) 310 PRINT "OK, I AM THINKING OF A NUMBER, START GUESSING." 320 REM *** GUESSING BEGINS, HUMAN GETS M GUESSES 330 FOR K=1 TO M 340 PRINT 3510 'SUPER STARTREK 15 ' 20 'From BASIC COMPUTER GAMES, Creative Computing 30 'Press, Edited by David H.Ahl, pp 157-163. 35 ' 40 'Entered by hand, modified for the OSBORNE 1, 50 'and significantly enhanced by J.A.Woolley, 60 'member of the First Osborne Group (FOG), 70 'Santa Clara Valley, California. 190 CLEAR 200 DIM G(8,8),C(9,2),K(3,3),Z(8,8),D(8),SLOG$(19),TLOG(19) 210 REM 220 PRINT CHR$(26) 221 PRINT" ,------*------," 222 PRINT" ,------------- '--- ------'" 223 PRINT" '-------- --' / /" 224 PRINT" ,---' '---------/ /--," 225 PRINT" '------------------'" 226 PRINT:PRINT" THE USS ENTERPRISE --- NCC-1701" 227 PRINT:PRINT:PRINT:PRINT:PRINT 270 Z$=" " 340 R=PEEK(&HEF67)+PEEK(&HEF68)+PEEK(&HEF69) 350 RANDOMIZE R 370 T=INT(RND*20+20)*100:T0=T:T9=25+INT(RND*10) 380 D0=0:E=3000:E0=E 440 P=10:P0=P:S9=200:S=0:B9=0:K9=0:X$="":X0$=" is" 470 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2) 475 DEF FNR=INT(RND*7.98+1.01) 480 REM initialize enterprise position 490 Q1=FNR:Q2=FNR:S1=FNR:S2=FNR 530 FOR I=1 TO 9:C(I,1)=0:C(I,2)=0:NEXT 540 C(3,1)=-1:C(2,1)=-1:C(4,1)=-1:C(4,2)=-1 550 C(5,2)=-1:C(6,2)=-1 600 C(1,2)=1:C(2,2)=1:C(6,1)=1:C(7,1)=1:C(8,1)=1 610 C(8,2)=1:C(9,2)=1 670 FOR I=1 TO 8:D(I)=0:NEXT 710 A1$="NAVSRSLRSPHATORSHEDAMCOMXXX" 810 REM setup what exists in galaxy 815 REM k3=# klingons b3=# starbases s3=# stars 820 FOR I=1 TO 8:FOR J=1 TO 8:K3=0:Z(I,J)=0:R1=RND 850 IF R1>.98 THEN K3=3:K9=K9+3:GOTO 980 860 IF R1>.95 THEN K3=2:K9=K9+2:GOTO 980 870 IF R1>.8 THEN K3=1:K9=K9+1 980 B3=0:IF RND>.96 THEN B3=1:B9=B9+1 1040 G(I,J)=K3*100+B3*10+FNR:NEXT J,I 1050 IF K9>T9 THEN T9=K9+1 1100 IF B9<>0 THEN 1200 1150 IF G(Q1,Q2)<200 THEN G(Q1,Q2)=G(Q1,Q2)+100:K9=K9+1 1160 B9=1:G(Q1,Q2)=G(Q1,Q2)+10:Q1=FNR:Q2=FNR 1200 K7=K9:IF B9<>1 THEN X$="s":X0$=" are" 1230 PRINT"Your orders are as follows:" 1240 PRINT" Destroy the";K9;"Klingon warships which have" 1245 PRINT" invaded the galaxy before they can attack" 1250 PRINT" Federation Headquarters on Stardate";T0+T9;CHR$(8)+"." 1255 PRINT" This gives you";T9;"days. There";X0$;B9 1260 PRINT" Starbase";X$;" in the galaxy for resupplying" 1270 PRINT" your ship. Hit any key except RETURN when" 1275 PRINT" you are ready to accept command." 1300 I=RND:IF INPUT$(1)=CHR$(13) THEN 1300 1301 PRINT CHR$(26)+"Starfleet Command wishes you to accept special" 1302 PRINT"energy conservation measures. Will you accept ..." 1303 INPUT"... (YES/NO/MAYBE)";X0$ 1304 X$=" cowardice ":IF X0$="NO" THEN 1309 1306 P0=8:E0=2500:X$=" " 1307 IF X0$="YES" THEN P0=6:E0=2000:X$=" severly " 1308 PRINT"Sorry, but your resources will be";X$;"limited.":X$=" bravery " 1309 E=E0:P=P0:PRINT"Your";X$;"will be noted in the ship's log.":LOGS=0:LOGF=0:TLOG(0)=T0:SLOG$(0)="Noted Captain's"+X$+"in face of enemy." 1310 REM here any time new quadrant entered 1320 Z4=Q1:Z5=Q2:K3=0:B3=0:S3=0:G5=0:D4=.5*RND 1330 Z(Q1,Q2)=G(Q1,Q2) 1390 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 1600 1430 GOSUB 9030:PRINT:IF T0<>T THEN 1490 1460 PRINT"Your mission begins with your Starship located" 1470 PRINT"in the galactic quadrant, '";G2$;"'." 1480 GOTO 1500 1490 PRINT"Now entering ";G2$;" quadrant . . ." 1500 PRINT:K3=INT(G(Q1,Q2)*.01):B3=INT(G(Q1,Q2)*.1)-10*K3 1540 S3=G(Q1,Q2)-100*K3-10*B3:IF K3=0 THEN 1590 1560 PRINT"Combat Area Condition *RED*"+CHR$(7) 1570 IF S>200 THEN 1590 1580 PRINT" Shields dangerously low" 1590 FOR I=1 TO 3:K(I,1)=0:K(I,2)=0:NEXT 1600 FOR I=1 TO 3:K(I,3)=0:NEXT 1610 Q$=Z$+Z$+Z$+Z$+Z$+Z$+Z$+LEFT$(Z$,17) 1660 REM position enterprise in quadrant, then place 1665 REM K3 klingons, B3 starbases, and S3 stars elsewhere 1680 A$="<*>":Z1=S1:Z2=S2:GOSUB 8670:IF K3<1 THEN 1820 1720 FOR I=1 TO K3:GOSUB 8590:A$="+K+":Z1=R1:Z2=R2 1780 GOSUB 8670:K(I,1)=R1:K(I,2)=R2:K(I,3)=S9*(.5+RND) 1790 NEXT 1820 IF B3<1 THEN 1910 1880 GOSUB 8590:A$=">!<":Z1=R1:B4=R1:Z2=R2:B5=R2 1890 GOSUB 8670 1910 FOR I=1 TO S3:GOSUB 8590 1912 A$=" * " 1914 Z1=R1:Z2=R2 1920 GOSUB 8670:NEXT 1980 GOSUB 6430 1990 IF S+E>10 THEN IF E>10 OR D(7)=0 THEN 2060 2020 PRINT:PRINT"** FATAL ERROR ** You've just stranded your" 2025 PRINT"ship in space. You have insufficient maneuvering" 2030 PRINT"energy, and shield control is presently incapable" 2040 PRINT"of cross-circuiting to engine room!!":GOTO 6220 2060 INPUT"COMMAND";A$ 2061 IF A$="E" THEN 5530 2062 J=3:IF LEN(A$)<=1 THEN J=1:GOTO 2080 2063 IF MID$(A$,2,1)<>" " THEN 2080 2064 IF LEN(A$)>2 THEN X=VAL(MID$(A$,3)) 2065 FOR I=1 TO 9:IF LEFT$(A$,1)<>MID$(A1$,3*I-2,1) THEN 2068 2066 IF I=2 OR I=7 THEN PRINT CHR$(26) 2067 ON I GOTO 2069,1980,4000,4260,2070,2068,5690,2074,6270 2068 NEXT I:IF LEFT$(A$,1)="E" THEN 2072 ELSE 2170 2069 C1=X:GOTO 2305 2070 IF P<=0 OR D(5)<0 THEN 4700 2071 C1=X:GOTO 4770 2072 IF D(7)<0 THEN 5530 2073 GOTO 5580 2074 IF D(8)<0 THEN 7290 2075 IF X<0 THEN 1990 2076 A=X:GOTO 7350 2080 FOR I=1 TO 9:IF LEFT$(A$,J)<>MID$(A1$,3*I-2,J) THEN 2160 2100 IF I=2 OR I=7 THEN PRINT CHR$(26) 2140 ON I GOTO 2300,1980,4000,4260,4700,5530,5690,7290,6270 2160 NEXT I 2170 PRINT"Enter one of the following:" 2180 PRINT" NAV or N n to set course" 2190 PRINT" SRS or S for short range sensor scan" 2200 PRINT" LRS or L for long range sensor scan" 2210 PRINT" PHA or P to fire phasers" 2220 PRINT" TOR or T n to fire photon torpedoes" 2230 PRINT" SHE or E n to raise or lower shields" 2240 PRINT" DAM or D for damage control reports" 2250 PRINT" COM or C n to call on library-computer" 2260 PRINT" XXX or X to resign your command" 2270 PRINT" where n is a number (optional)" 2280 PRINT:GOTO 1990 2290 REM course control begins here 2300 INPUT"COURSE (1-9)";C1 2305 IF C1=9 THEN C1=1 2310 IF C1>=1 AND C1<9 THEN 2350 2330 PRINT"Lt. Sulu reports, 'Incorrect course data, Sir!'" 2340 GOTO 1990 2350 X$="8":IF D(1)<0 THEN X$="0.2" 2360 PRINT"WARP FACTOR (0-";X$;")";:INPUT W1 2370 IF D(1)<0 AND W1>.2 THEN 2470 2380 IF W1>0 AND W1<=8 THEN 2490 2390 IF W1=0 THEN 1990 2420 PRINT"Chief Engineer Scott reports, 'The engines" 2430 PRINT"won't take WARP";W1;"!'":GOTO 1990 2470 PRINT"WARP engines damaged. Max. speed = WARP 0.2" 2480 GOTO 1990 2490 N=INT(W1*8+.5):IF E-N>=0 THEN 2590 2500 PRINT"Engineering reports, 'Insufficient energy available" 2510 PRINT"for maneuvering at WARP";W1;"!'" 2530 IF S=1 THEN D6=1 2770 FOR I=1 TO 8:IF D(I)>=0 THEN 2880 2790 D(I)=D(I)+D6:IF D(I)>-.1 AND D(I)<0 THEN D(I)=-.1:GOTO 2880 2800 IF D(I)<0 THEN 2880 2810 PRINT"Damage Control Report:" 2840 R1=I:GOSUB 8790:PRINT G2$;" repair completed." 2850 GOSUB 9400:SLOG$(LOGF)=G2$+" repaired." 2880 NEXT:IF RND>.2 THEN 3040 2910 R1=FNR:IF RND>=.6 THEN 2990 2930 D(R1)=D(R1)-(RND*5+1):PRINT"Damage Control Report:" 2960 GOSUB 8790:PRINT G2$;" damaged.":PRINT 2970 GOSUB 9400:SLOG$(LOGF)=G2$+" damaged.":GOTO 3040 2990 IF D(R1)>=0 THEN 3040 3000 D(R1)=D(R1)+RND*3+1:PRINT"Damage Control Report:" 3030 GOSUB 8790:PRINT G2$;" state of repair improved.":PRINT 3040 FOR I=1 TO 8:IF D(I)>0 THEN D(I)=0 3050 NEXT I 3060 REM begin moving starship 3070 A$=" ":Z1=INT(S1):Z2=INT(S2):GOSUB 8670 3110 X1=C1:X2=C1:C1=INT(C1) 3115 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(X1-C1) 3120 X=S1:Y=S2 3140 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(X2-C1) 3150 Q4=Q1:Q5=Q2 3170 FOR I=1 TO N:S1=S1+X1:S2=S2+X2 3180 IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 3500 3240 S8=INT(S1)*24+INT(S2)*3-26 3250 IF MID$(Q$,S8,3)=" " THEN 3360 3320 S1=INT(S1-X1):S2=INT(S2-X2) 3330 PRINT"WARP engines shut down at sector";S1;",";S2 3340 IF MID$(Q$,S8,3)=">!<" THEN PRINT"for docking.":GOTO 3370 3350 PRINT"due to bad navigation.":GOTO 3370 3360 NEXT:S1=INT(S1):S2=INT(S2) 3370 A$="<*>":Z1=INT(S1):Z2=INT(S2):GOSUB 8670 3380 GOSUB 3910:T8=1 3430 IF W1<1 THEN T8=.1*INT(10*W1) 3450 T=T+T8:IF T>T0+T9 THEN 6220 3470 REM see if docked, then get command 3480 GOTO 1980 3490 REM exceeded quadrant limits 3500 X=8*Q1+X+N*X1:Y=8*Q2+Y+N*X2 3510 Q1=INT(X/8):Q2=INT(Y/8):S1=INT(X-Q1*8) 3550 S2=INT(Y-Q2*8):IF S1=0 THEN Q1=Q1-1:S1=8 3590 IF S2=0 THEN Q2=Q2-1:S2=8 3620 X5=0:IF Q1<1 THEN X5=1:Q1=1:S1=1 3670 IF Q1>8 THEN X5=1:Q1=8:S1=8 3710 IF Q2<1 THEN X5=1:Q2=1:S2=1 3750 IF Q2>8 THEN X5=1:Q2=8:S2=8 3790 IF X5=0 THEN 3860 3800 PRINT"Lt. Uhura reports message from Starfleet Command:" 3810 PRINT"'Permission to attempt crossing of galactic peri-" 3820 PRINT"meter is hereby *DENIED*. Shut down engines.'" 3830 PRINT"Chief Engineer Scott reports, 'WARP engines" 3840 PRINT"shut down at sector";S1;",";S2;"of quadrant";Q1;",";Q2;".'" 3860 IF 8*Q1+Q2=8*Q4+Q5 THEN 3370 3870 T=T+1:IF T>T0+T9 THEN 6220 3880 GOSUB 3910:GOTO 1320 3900 REM maneuver energy s/r 3910 E=E-N-10:IF E>=0 THEN RETURN 3930 PRINT"Shield Control supplies energy to comlete maneuver." 3940 S=S+E:E=0:IF S<=0 THEN S=0 3980 RETURN 3990 REM long range sensor scan code 4000 IF D(3)<0 THEN PRINT"Long range sensors inoperable.":GOTO 1990 4030 PRINT"Long range scan for quadrant";Q1;",";Q2 4040 O1$="-------------------":PRINT O1$ 4060 FOR I=Q1-1 TO Q1+1:N(1)=-1:N(2)=-2:N(3)=-3 4070 FOR J=Q2-1 TO Q2+1 4120 IF I>0 AND I<9 AND J>0 AND J<9 THEN N(J-Q2+2)=G(I,J):Z(I,J)=G(I,J) 4180 NEXT J 4190 FOR L=1 TO 3:PRINT": ";:IF N(L)<0 THEN PRINT"*** ";: GOTO 4230 4210 PRINT RIGHT$(STR$(N(L)+1000),3);" "; 4230 NEXT L:PRINT":":PRINT O1$:NEXT I:GOTO 1990 4250 REM phaser control code begins here 4260 IF D(4)<0 THEN PRINT"Phasers inoperative.":GOTO 1990 4265 IF K3>0 THEN 4330 4270 PRINT"Science Officer Spock reports, 'Sensors show no" 4280 PRINT"enemy ships in this quadrant.'":GOTO 1990 4330 IF D(8)<0 THEN PRINT"Computer failure hampers accuracy." 4350 PRINT"Phasers locked on target." 4360 PRINT"Energy available =";E;"units." 4370 INPUT"NUMBER OF UNITS TO FIRE";X:IF X<=0 THEN 1990 4400 IF E-X<0 THEN 4360 4410 E=E-X:IF D(8)<0 THEN X=X*RND 4450 H1=X/K3:FOR I=1 TO 3:IF K(I,3)<=0 THEN 4670 4480 H=INT((H1/FND(0))*(RND+2)):IF H>H1 THEN H=INT(H1) 4490 IF H>.15*K(I,3) THEN 4530 4500 PRINT"Sensors show no damage to enemy at ";K(I,1);",";K(I,2) 4510 GOTO 4670 4530 K(I,3)=K(I,3)-H 4540 PRINT H;"unit hit on Klingon at sector";K(I,1);","; 4550 PRINT K(I,2):IF K(I,3)>0 THEN 4560 4555 PRINT"*** KLINGON DESTROYED ***" 4556 GOSUB 9400:SLOG$(LOGF)="Klingon destroyed.":GOTO 4580 4560 PRINT" (Sensors show";K(I,3);"units remaining)" 4570 GOTO 4670 4580 K3=K3-1:K9=K9-1:Z1=K(I,1):Z2=K(I,2):A$=" " 4590 GOSUB 8670 4650 K(I,3)=0:G(Q1,Q2)=G(Q1,Q2)-100:Z(Q1,Q2)=G(Q1,Q2) 4660 IF K9<=0 THEN 6370 4670 NEXT I:GOSUB 6000:GOTO 1990 4690 REM photon torpedo code begins here 4700 IF P<=0 THEN PRINT"All photon torpedoes expended.":GOTO 1990 4730 IF D(5)<0 THEN PRINT"Photon tubes are not operational.":GOTO 1990 4760 INPUT"PHOTON TORPEDO COURSE (1-9)";C1 4770 IF C1=9 THEN C1=1 4775 X1=C1:X2=C1:C1=INT(C1) 4780 IF C1>=1 AND C1<9 THEN 4850 4790 PRINT"Ensign Chekov reports, 'Incorrect course data, Sir!'" 4800 GOTO 1990 4850 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(X1-C1) 4855 E=E-2:P=P-1 4860 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(X2-C1) 4870 X=S1:Y=S2 4875 IF D(2)<0 THEN 4910 4880 PRINT CHR$(26):GOSUB 6650:GOTO 4920 4910 PRINT"Short range sensors inoperable. Torpedo track:" 4920 X=X+X1:Y=Y+X2:X3=INT(X+.5):Y3=INT(Y+.5) 4960 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 5485 4970 IF D(2)<0 THEN 5000 4974 J0=-1:X=X-X1/2:Y=Y-X2/2 4976 X3=INT(2*X+.5)/2:Y3=INT(4*Y+.5)/4 4980 A$=" o " 4990 IF X3<>S1 OR ABS(Y-S2)>.5 THEN GOSUB 9300 4992 J0=J0+1:IF J0>0 THEN 5010 4995 X=X+X1/2:Y=Y+X2/2:GOTO 4976 5000 PRINT" ";X3;",";Y3 5010 A$=" ":Z1=X:Z2=Y:GOSUB 8830 5020 X3=INT(X+.5):Y3=INT(Y+.5) 5050 IF Z3<>0 THEN 4920 5060 A$="+K+":Z1=X:Z2=Y:GOSUB 8830 5070 IF Z3=0 THEN 5210 5080 IF D(2)<0 THEN 5110 5090 GOSUB 9280 5110 PRINT"*** KLINGON DESTROYED ***" 5115 GOSUB 9400:SLOG$(LOGF)="Klingon destroyed." 5120 K3=K3-1:K9=K9-1 5130 IF K9<=0 THEN 6370 5150 FOR I=1 TO 3:IF X3=K(I,1) AND Y3=K(I,2) THEN 5190 5180 NEXT I:I=3 5190 K(I,3)=0:GOTO 5430 5210 A$=" * ":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 5280 5220 IF D(2)<0 THEN 5260 5230 GOSUB 9280 5240 A$=" * ":KEEP=1:GOSUB 9300:KEEP=0 5250 GOSUB 9290 5260 PRINT"Star at";X3;",";Y3;"absorbed torpedo energy." 5270 GOSUB 6000:GOTO 1990 5280 A$=">!<":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 4920 5290 IF D(2)<0 THEN 5330 5300 GOSUB 9280 5330 PRINT"*** STARBASE DESTROYED ***":B3=B3-1:B9=B9-1 5340 GOSUB 9400:SLOG$(LOGF)="Starbase destroyed." 5360 IF B9>0 OR K9=0 THEN GOSUB 9290 5490 PRINT"Torpedo missed.":GOSUB 6000:GOTO 1990 5520 REM shield control 5530 IF D(7)<0 THEN PRINT"Shield control inoperable.":GOTO 1990 5560 PRINT"Energy available =";E+S;"units." 5570 INPUT"NUMBER OF UNITS TO SHIELDS";X 5580 IF X<0 OR S=X THEN PRINT"Shields unchanged.":GOTO 1990 5590 IF X<=E+S THEN 5630 5600 PRINT"Shield control reports, 'This is not the Federation" 5605 PRINT"Treasury.'" 5610 PRINT"Shields unchanged.":GOTO 1990 5630 E=E+S-X:S=X:PRINT"Deflector control room report:" 5660 PRINT"'Shields now at";INT(S);"units per your command.'" 5670 GOTO 1990 5680 REM damage control 5690 IF D(6)>=0 THEN 5910 5700 PRINT"Damage control report not available." 5710 IF D0=0 THEN 1990 5720 D3=0:FOR I=1 TO 8:IF D(I)<0 THEN D3=D3+.1 5760 NEXT I:IF D3=0 THEN 1990 5780 PRINT:D3=D3+D4:IF D3>=1 THEN D3=.9 5810 PRINT"Technicians standing by to repair your ship." 5820 PRINT"Estimated time to repair:";.01*INT(100*D3);"stardates." 5840 INPUT"Will you authorize the repair order (Y/N)";A$ 5860 IF A$<>"Y" THEN 1990 5870 FOR I=1 TO 8:IF D(I)<0 THEN D(I)=0 5890 NEXT I:T=T+D3+.1 5900 GOSUB 9400:SLOG$(LOGF)="Technicians repaired ship." 5910 PRINT:PRINT"DEVICE STATE OF REPAIR" 5915 FOR R1=1 TO 8 5920 GOSUB 8790 5930 PRINT G2$;LEFT$(Z$,25-LEN(G2$));INT(D(R1)*100)*.01 5950 NEXT R1:PRINT:IF D0<>0 THEN 5720 5980 GOTO 1990 5990 REM klingons shooting 6000 IF K3<=0 THEN RETURN 6010 IF D0<>0 THEN PRINT"Starbase shields protect the Enterprise.": RETURN 6040 FOR I=1 TO 3:IF K(I,3)<=0 THEN 6200 6060 H=INT((K(I,3)/FND(1))*(2+RND)):S=S-H 6070 K(I,3)=K(I,3)/(3+RND(0)) 6080 PRINT H;"unit hit on Enterprise from sector";K(I,1);",";K(I,2) 6090 IF S<=0 THEN 6240 6100 PRINT"Shields down to";S;"units.":IF H<20 THEN 6200 6120 IF RND>.6 OR H/S<=.02 THEN 6200 6140 R1=FNR:D(R1)=D(R1)-H/S-.5*RND:GOSUB 8790 6170 PRINT"Damage control reports, '";G2$ 6180 PRINT "damaged by the hit.'" 6190 GOSUB 9400:SLOG$(LOGF)=G2$+" damaged." 6200 NEXT I:RETURN 6210 REM end of game 6220 PRINT"It is stardate";T;CHR$(8)+".":GOTO 6270 6240 PRINT:PRINT"The Enterprise has been destroyed. The Federation" 6250 PRINT"will be conquered. ";:GOTO 6220 6270 PRINT"There were";K9;"Klingon battle cruisers left at" 6280 PRINT"the end of your mission." 6300 PRINT:PRINT 6310 PRINT"The Federation is in need of a starship commander" 6320 PRINT"for a similar mission. If there is a volunteer," 6330 INPUT"let him step forward and enter AYE";A$ 6335 FINI=1:GOSUB 9440:FINI=0 6340 IF A$<>"AYE" THEN END 6350 INPUT"Ready";A$:GOTO 220 6360 END 6370 PRINT"Congratulations, Captain! The last Klingon battle" 6380 PRINT"cruiser menacing the Federation has been destroyed." 6400 PRINT:PRINT"Your efficiency rating is";1000*(K7/(T-T0))^2 6410 GOTO 6290 6420 REM short range sensor scan and startup s/r 6430 FOR I=S1-1 TO S1+1:FOR J=S2-1 TO S2+1 6450 IF INT(I+.5)<1 OR INT(I+.5)>8 OR INT(J+.5)<1 OR INT(J+.5)>8 THEN 6540 6490 A$=">!<":Z1=I:Z2=J:GOSUB 8830:IF Z3=1 THEN 6580 6540 NEXT J:NEXT I:D0=0:GOTO 6650 6580 D0=1:C$="DOCKED":E=E0:P=P0 6620 PRINT"Shields dropped for docking purposes.":S=0:GOTO 6720 6650 IF K3>0 THEN C$="*RED*"+CHR$(7):GOTO 6720 6660 C$="GREEN":IF E=0 THEN 6770 6730 PRINT:PRINT"*** SHORT RANGE SENSORS ARE OUT ***":PRINT:RETURN 6770 O1$="---------------------------------" 6780 PRINT O1$:FOR I=1 TO 8:IF I>1 THEN PRINT 6820 FOR J=(I-1)*24+1 TO (I-1)*24+22 STEP 3 6825 PRINT" ";MID$(Q$,J,3);:NEXT J 6830 ON I GOTO 6850,6900,6960,7020,7070,7120,7180,7240 6850 PRINT" Stardate ";INT(T*10)*.1:GOTO 7260 6900 PRINT" Condition ";C$:GOTO 7260 6960 PRINT" Quadrant ";Q1;",";Q2:GOTO 7260 7020 PRINT" Sector ";S1;",";S2:GOTO 7260 7070 PRINT" Torpedoes ";INT(P):GOTO 7260 7120 PRINT" Tot.Energy";INT(E+S):GOTO 7260 7180 PRINT" Shields ";INT(S):GOTO 7260 7240 PRINT" Klingons ";INT(K9) 7260 NEXT I:PRINT O1$:RETURN 7280 REM library-computer code 7290 IF D(8)<0 THEN PRINT"Computer disabled.":GOTO 1990 7310 PRINT"Computer active and awaiting your command." 7320 INPUT"FUNCTION (0-5)";A:IF A<0 THEN 1990 7350 PRINT:H8=1:ON A+1 GOTO 7540,7900,8070,8500,8150,7400,9440 7360 PRINT"Functions available from library-computer:" 7370 PRINT" 0 = Cumulative galactic record" 7372 PRINT" 1 = Status report" 7374 PRINT" 2 = Photon torpedo data" 7376 PRINT" 3 = Starbase NAV data" 7378 PRINT" 4 = Direction/distance calculator" 7380 PRINT" 5 = Galaxy 'Region Name' map" 7385 PRINT" 6 = Ship's log":PRINT:GOTO 7320 7390 REM setup to change cum gal record to galaxy map 7400 H8=0:G5=1:PRINT CHR$(26)+" THE GALAXY" 7410 GOTO 7550 7530 REM cum galactic record 7540 REM deleted TTY logic 7543 PRINT CHR$(26):PRINT" "; 7544 PRINT"Computer record of galaxy for quadrant";Q1;",";Q2 7546 PRINT 7550 PRINT" 1 2 3 4 5 6 7 8" 7560 O1$=" ----- ----- ----- ----- ----- ----- ----- -----" 7570 PRINT O1$:FOR I=1 TO 8:PRINT I;:IF H8=0 THEN 7740 7630 FOR J=1 TO 8:PRINT" ";:IF Z(I,J)=0 THEN PRINT"***";:GOTO 7720 7700 PRINT RIGHT$(STR$(Z(I,J)+1000),3); 7720 NEXT J:GOTO 7850 7740 Z4=I:Z5=1:GOSUB 9030:J0=INT(15-.5*LEN(G2$)) 7750 PRINT TAB(J0);G2$; 7800 Z5=5:GOSUB 9030:J0=INT(39-.5*LEN(G2$)) 7810 PRINT TAB(J0);G2$; 7850 PRINT:PRINT O1$:NEXT I:PRINT:GOTO 1990 7890 REM status report 7900 PRINT CHR$(26)+" Status report:":X$="":XX$="is" 7910 IF K9>1 THEN X$="s":XX$="are" 7940 PRINT"There ";XX$;K9;" Klingon";X$;" remaining." 7960 PRINT"Mission must be completed in";.1*INT((T0+T9-T)*10);"stardates." 7970 X$="s":IF B9<2 THEN X$="":IF B9<1 THEN 8010 7980 PRINT"The Federation is maintaining";B9;"starbase";X$ 7985 PRINT"in the galaxy." 7990 GOTO 5690 8010 PRINT"Your stupidity has left you on your own in" 8020 PRINT"the galaxy. You have no starbases left!" 8030 GOTO 5690 8060 REM torpedo, base NAV, d/d calculator 8070 IF K3<=0 THEN 4270 8080 X$="":IF K3>1 THEN X$="s" 8090 PRINT"From Enterprise to Klingon battle cruiser";X$;":" 8100 H8=0:FOR I=1 TO 3:IF K(I,3)<=0 THEN 8480 8110 W1=K(I,1):X=K(I,2) 8120 C1=S1:A=S2:GOTO 8220 8150 PRINT"Direction/Distence Calculator:" 8160 PRINT"You are at quadrant ";Q1;",";Q2;" sector ";S1;",";S2 8170 PRINT"Please enter:" 8180 INPUT" INITIAL COORDINATES (X,Y)";C1,A 8200 INPUT" FINAL COORDINATES (X,Y)";W1,X 8220 X=X-A:A=C1-W1:IF X<0 THEN 8350 8250 IF A<0 THEN 8410 8260 IF X>0 THEN 8280 8270 IF A=0 THEN C1=5:GOTO 8290 8280 C1=1 8290 IF ABS(A)<=ABS(X) THEN 8330 8310 PRINT"Direction =";C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)) 8320 GOTO 8460 8330 PRINT"Direction =";C1+(ABS(A)/ABS(X)):GOTO 8460 8350 IF A>0 THEN C1=3:GOTO 8420 8360 IF X<>0 THEN C1=5:GOTO 8290 8410 C1=7 8420 IF ABS(A)>=ABS(X) THEN 8450 8430 PRINT"Direction =";C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)) 8440 GOTO 8460 8450 PRINT"Direction =";C1+(ABS(X)/ABS(A)) 8460 X=SQR(X^2+A^2):PRINT"Distance =";X 8470 IF H8=1 THEN PRINT"Use WARP =";X/8;"if maneuver is within quadrant.":GOTO 1990 8480 NEXT I:GOTO 1990 8500 IF B3<>0 THEN PRINT"From Enterprise to Starbase:":W1=B4:X=B5:GOTO 8120 8510 PRINT"Mr. Spock reports, 'Sensors show no starbases" 8520 PRINT"in this quadrant.'":GOTO 1990 8580 REM find empty place in quadrant for things 8590 R1=FNR:R2=FNR:A$=" ":Z1=R1:Z2=R2:GOSUB 8830 8595 IF Z3=0 THEN 8590 8600 RETURN 8660 REM insert in string array for quadrant 8670 S8=INT(Z2-.5)*3+INT(Z1-.5)*24+1 8675 IF LEN(A$)<>3 THEN PRINT"error":STOP 8680 IF S8=1 THEN Q$=A$+RIGHT$(Q$,189):RETURN 8690 IF S8=190 THEN Q$=LEFT$(Q$,189)+A$:RETURN 8700 Q$=LEFT$(Q$,S8-1)+A$+RIGHT$(Q$,190-S8):RETURN 8780 REM prints device name 8790 ON R1 GOTO 8792,8794,8796,8798,8800,8802,8804,8806 8792 G2$="WARP engines":RETURN 8794 G2$="Short range sensors":RETURN 8796 G2$="Long range sensors":RETURN 8798 G2$="Phaser control":RETURN 8800 G2$="Photon tubes":RETURN 8802 G2$="Damage control":RETURN 8804 G2$="Shield control":RETURN 8806 G2$="Library-computer":RETURN 8820 REM string comparison in quadrant array 8830 Z1=INT(Z1+.5):Z2=INT(Z2+.5) 8840 S8=(Z2-1)*3+(Z1-1)*24+1:Z3=0 8890 IF MID$(Q$,S8,3)<>A$ THEN RETURN 8900 Z3=1:RETURN 9010 REM quadrant name in g2$ from z4,z5=q1,q2 9020 REM call with g5=1 to get region name only 9030 IF Z5<=4 THEN ON Z4 GOTO 9040,9050,9060,9070,9080,9090,9100,9110 9035 GOTO 9120 9040 G2$="Antares":GOTO 9210 9050 G2$="Rigel":GOTO 9210 9060 G2$="Procyon":GOTO 9210 9070 G2$="Vega":GOTO 9210 9080 G2$="Canopus":GOTO 9210 9090 G2$="Altair":GOTO 9210 9100 G2$="Sagittarius":GOTO 9210 9110 G2$="Polux":GOTO 9210 9120 ON Z4 GOTO 9130,9140,9150,9160,9170,9180,9190,9200 9130 G2$="Sirius":GOTO 9210 9140 G2$="Deneb":GOTO 9210 9150 G2$="Capella":GOTO 9210 9160 G2$="Betelgeuse":GOTO 9210 9170 G2$="Aldebaran":GOTO 9210 9180 G2$="Regulus":GOTO 9210 9190 G2$="Arcturus":GOTO 9210 9200 G2$="Spica" 9210 IF G5<>1 THEN ON Z5 GOTO 9230,9240,9250,9260,9230,9240,9250,9260 9220 RETURN 9230 G2$=G2$+" I":RETURN 9240 G2$=G2$+" II":RETURN 9250 G2$=G2$+" III":RETURN 9260 G2$=G2$+" IV":RETURN 9280 A$="[#]":GOSUB 9300 9290 PRINT CHR$(27)+"=1 ":RETURN 9300 PRINT CHR$(27)+"="+CHR$(32+2*X3)+CHR$(29+4*Y3)+A$ 9305 IF KEEP THEN RETURN 9310 FOR I=1 TO 150:NEXT 9315 J=LEN(A$):A$="":FOR I=1 TO J:A$=A$+" ":NEXT 9320 PRINT CHR$(27)+"="+CHR$(32+2*X3)+CHR$(29+4*Y3)+A$ 9340 RETURN 9400 LOGF=(LOGF+1) MOD 20 9410 IF LOGS=LOGF THEN LOGS=(LOGS+1) MOD 20 9420 TLOG(LOGF)=T:RETURN 9440 J=LOGF-LOGS+1:IF LOGS>LOGF THEN J=20 9450 PRINT CHR$(26)+"Most recent";J;"entries in ship's log:" 9460 X$=CHR$(27)+"l":X0$=CHR$(27)+"m" 9470 PRINT:PRINT X$+"Stardate"+X0$,X$+"Log Entry"+X0$ 9480 I=LOGS 9490 PRINT USING " ####.# &";TLOG(I);SLOG$(I) 9500 I=(I+1) MOD 20 9510 IF LOGS<=LOGF AND I<=LOGF THEN 9490 9520 IF LOGS>LOGF AND I<>LOGS THEN 9490 9525 PRINT 9530 IF FINI THEN RETURN ELSE 1990  IF LOGS<=LOGF AND I<=LOGF THEN 9490 9520 IF LOGS>LOGF AND I<>LOGS THEN 9490 9525 PRINT 90,9250,9260 9220 RETURN 9230 G2$=G2$+" I":RETURN 9240 G2$=G2$+" II":RETURN 9250 G2$=G2$+" III":RETURN 9260 G2$=G2$+" IV":RE HOW TO PLAY STARTREK ON THE OSBORNE 1 SUPEҠ STARTRE i wordgam writte i MBASIC Th BASI diskett controls fro driv A th gam diskett i driv B To start, after bringing up MBASIC, TYPE LOA "B:STARTRE (Becaus th MBASI progra fo STARTRE i lon i take measurable time to load into memory. D no tr t d anythin t spee thi up jus b patien unti the red light on B drive turns off and B drive stops running.) RUN ******************************************************************* **SUPER STAR TREK INSTRUCTIONS** ******************************************************************* 1 Whe yo se COMMAN printed ente on o th lega commands (nav, srs, lrs, pha, tor, she, dam, com, or xxx). 2 I yo shoul typ i a illega command you'l ge shor list of the legal commands printed out. 3 Som command requir yo t ente dat (fo example th 'nav comman come bac wit 'cours (1-9)?') I yo typ i illega dat (lik negativ numbers) tha comman wil b aborted. Th galax i divide int a 8x quadran grid an eac quadrant is further divided into an 8x8 sector grid. Yo wil b assigne startin poin somewher i th galaxy t begi tou o dut a commande o th Starshi Enterprise you mission t see an destro th flee o Klingo warship whic ar menacin th Unite Federatio o Planets. Yo hav th followin command availabl t yo a captai of the Starship Enterprise: NAV COMMAND=Warp Engine Control-- 4 3 2 course is in a circular numerical . . . vector arrangement as shown. In- ... teger and real values may be used. 5 --,E.-- 1 (Thus course 1.5 is halfway between ... 1 and 2). . . . 6 7 8 Value may approach 9.0, which it- COURSE self is equivalent to 1.0. On war facto i th siz o on quadtrant Therefore t ge fro quadran 6, t 5,5 yo woul us cours 3 war factor 1. SRӠ COMMAND=shor rang senso sca--show yo sca o you present quadrant. Symbology on your sensor screen is as follows: ,E.=your starship's position +K+=Klingon battle cruiser .B,=Federation Starbase (refuel/repair/re-arm here) * =star A condensed 'status report' will also be presented. LR COMMAND=lon rang senso scan--show condition i spac fo on quadran o eac sid o th Enterpris (whic i i th middl o th scan) Th sca i code i th for nnn wher th unit digi i th numbe o stars th ten digi i th numbe o starbases an th hundred digi i th number of Klingons. Example: 207=2 Klingons, No Starbases, and 7 stars PH COMMAND=phase control--allowyou t destro th Klingo battl cruiser b zappin the wit suitabl larg unit o energ t deplet thei shiel power (Remember Klingon have phasers too) TOҠ COMMAND=photo torped control--torped cours i th sam a use i war engin control I yo hi th Klingo vessel h i destroye an conno fir bac a you I yo miss yo ar subjec t th phase fir o al othe Klingon i the quadrant. (Read COM COMMAMD) SH COMMAND=Sheil control--define th numbe o energ unit t b assigne t th shields Energ i take fro tota ship' energy Not tha th statu displa tota energ includes shield energy. DA͠ COMMAND=damag contro report--give th stat o repai o al devices,wher negativ 'stat o repair show tha the device is temporarily damaged. COM COMMAND=Library Computer The Library Computer contains six options: Option 0=Cumulative galactic record: thi optio show compute memor o th result o al previous short and long range sensor scans. Option 1=Status report: Thi optio show th numbe o Klingons Stardates an Starbases remaining in the Game. Option 2=Photon torpedo data: Thi optio give directio an distanc fro th Enterprise to all Klingons in your Quadrant. Option 3=Starbase navigation data: Thi optio give directio an distanc t an Starbas within your quadrant. Option 4=Direction/Distance calculator: Thi optio allow yo t ente coordinate fo direction/distance calculations. Option 5=Galactic region name map: Thi optio print th name o th sixtee majo galactic regions. =Cumulative galactic record: thi optio show compute memor o th result o al previous short and long range sensor scans. Option 1=Status report: Thi optio show th numbe o Klingons Stardates an Starbases remaining in the Game. Option 2=Photon torpedo data: Thi optio give directio an distanc fro th Enterprise to all Klingons in your Quadrant. Option 3=Starbase navigation data: Thi optio give directio an distanc t an Starbas within your quadrant. Option 4=Direction/Distance calculator: Thi optio allow yo t ente coordinate fo direction/distance calculations. Option 5=Galactic region name map: Thi optio print th name o th sixtee majo gal10010 REM STARTREK INSTRUCTIONS 10020 GOSUB 11500 10030 FOR I=12 TO 1 STEP -1:PRINT TAB(I*3) "STARTREK":FOR J=1 TO 40 10040 NEXT J,I 10050 FOR I=1 TO 9 10060 ON I GOSUB 10240,10360,10540,10640,10720,10780,10860,10910,10960 10070 PRINT 10080 INPUT "HIT RETURN TO CONTINUE";RET$ 10090 GOSUB 11500 10100 NEXT I 10190 PRINT 10200 PRINT "HIT RETURN TO CONTINUE"; 10210 INPUT A$ 10220 RUN"STARTREK" 10230 REM :::EXIT HERE:::: 10235 END 10240 PRINT 10250 PRINT " * * * INSTRUCTIONS FOR STAR TREK * * *" 10260 PRINT 10270 PRINT "THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID." 10280 PRINT "AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8" 10285 PRINT "SECTOR GRID." 10290 PRINT 10300 PRINT " YOU WILL BE ASSIGNED A STARTING POINT" 10301 PRINT "SOMEWHERE IN THE GALAXY TO BEGIN A TOUR OF DUTY " 10310 PRINT "AS COMMANDER OF THE STARSHIP 'ENTERPRISE';" 10320 PRINT "YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF " 10321 PRINT "KLINGON WARSHIPS WHICH ARE MENACING THE UNITED " 10330 PRINT "FEDERATION OF PLANETS." 10340 PRINT 10350 RETURN 10360 PRINT 10370 PRINT "YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS" 10380 PRINT "CAPTAIN OF THE STARSHIP:" 10390 PRINT "'NAV' COMMAND= WARP ENGINE CONTROL --" 10400 PRINT " COURSE IS IN A CIRCULAR NUMERICAL 4 3 2" 10410 PRINT " VECTOR ARRANGEMENT AS SHOWN . . ." 10420 PRINT " INTERGER AND REAL VALUES MAY BE . . ." 10430 PRINT " USED (THUS COURSE 1.5 IS HALFWAY 5---------1" 10440 PRINT " BETWEEN 1 AND 2) . . ." 10450 PRINT " VALUES MAY APPROACH 9.0 WHICH . . ." 10460 PRINT " IS ITSELF EQUAL TO 1.0 6 7 8" 10470 PRINT 10490 PRINT "ONE WARP FACTOR IS THE SIZE OF " 10500 PRINT "ONE QUADRANT. THEREFORE, TO GET" 10510 PRINT "FROM QUADRANT 6,5 TO 5,5 YOU WOULD" 10520 PRINT "USE COURSE 3, WARP 1." 10530 RETURN 10540 PRINT "'SRS' COMMAND= SHORT RANGE SENSOR SCAN" 10550 PRINT " SHOWS YOU A SCAN OF YOUR PRESENT QUADRANT." 10560 PRINT " SYMBOLOGY ON YOUR SENSOR SCREEN IS AS FOLLOWS:" 10570 PRINT " <*> = YOUR STARSHIPS POSITION" 10580 PRINT " +++ = KLINGON BATTLESHIP" 10590 PRINT " >!< = STARBASE" 10600 PRINT " * = STAR" 10610 PRINT " A CONDENSED STATUS REPORT WILL ALSO BE PRINTED." 10620 PRINT 10630 RETURN 10640 PRINT "'LRS' COMMAND = LONG RANGE SENSOR SCAN" 10650 PRINT " SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON " 10651 PRINT " EACH SIDE OF THE ENTERPRISE (WHICH IS IN THE " 10660 PRINT " MIDDLE OF THE SCAN)" 10670 PRINT " THE SCAN IS CODED IN THE FORM '###' WHERE THE " 10671 PRINT " UNITS DIGIT IS THE NUMBER OF STARS, THE TENS " 10680 PRINT " DIGIT IS THE NUMBER OF STARBASES, AND THE " 10690 PRINT " HUNDREDS DIGIT IS THE NUMBER OF KLINGONS." 10700 PRINT" *EXAMPLE* 207=2 KLINGONS,0 STARBASES,7 STARS2" 10710 RETURN 10720 PRINT "'PHA' COMMAND = PHASER CONTROL" 10730 PRINT " ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS " 10731 PRINT " BY ZAPPING THEM WITH SUITABLY LARGE UNITS OF " 10740 PRINT " ENERGY TO DESTROY THEIR SHIELD POWER. (REMEMBER, " 10750 PRINT " KLINGONS HAVE PHASERS TOO!)" 10770 RETURN 10780 PRINT "'TOR' COMMAND = TORPEDO CONTROL" 10790 PRINT " TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE " 10791 PRINT " CONTROL. IF YOU HIT THE KLINGON VESSEL, HE IS " 10800 PRINT " DESTROYED AND CANNOT FIRE BACK AT YOU. IF YOU " 10810 PRINT " MISS, YOU ARE SUBJECT TO HIS PHASER FIRE." 10830 PRINT " NOTE: THE LIBRARY COMPUTER (COMMAND 'COM') HAS AN" 10840 PRINT " OPTION TO COMPUTE TORPEDO TRAJECTORY (OPTION 2)." 10850 RETURN 10860 PRINT "'SHE' COMMAND = SHIELD CONTROL" 10870 PRINT " DEFINES NUMBER OF ENERGY UNITS TO BE ASSIGNED TO " 10871 PRINT " SHIELDS. ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. " 10880 PRINT " NOTE THAT TOTAL ENERGY INCLUDES SHIELD ENERGY." 10900 RETURN 10910 PRINT "'DAM' COMMAND = DAMAGE CONTROL REPORT" 10920 PRINT " GIVES STATE OF REPAIR OF ALL DEVICES, WHERE A " 10921 PRINT " NEGATIVE STATE OF REPAIR SHOWS THAT THE DEVICE " 10930 PRINT " IS TEMPORARILY DAMAGED." 10950 RETURN 10960 PRINT "'COM' COMMAND = LIBRARY COMPUTER" 10970 PRINT " THE LIBRARY COMPUTER CONTAINS SIX OPTIONS:" 10980 PRINT " 0= CUMULATIVE GALACTIC RECORD" 10990 PRINT " WHICH SHOWS COMPUTER MEMORY OF THE RESULTS OF" 11000 PRINT" ALL PREVIOUS LONG RANGE SENSOR SCANS" 11010 PRINT " 1= STATUS REPORT" 11020 PRINT " WHICH SHOWS THE NUMBER OF KLINGONS, STARDATES" 11030 PRINT " AND STARBASES REMAINING IN THE GAME." 11040 PRINT " 2= PHOTON TORPEDO DATA" 11050 PRINT " WHICH GIVES THE DIRECTION AND DISTANCE FROM" 11060 PRINT " THE ENTERPRISE TO ALL KLINGONS IN YOUR QUADRANT" 11070 PRINT " 3= STARBASE NAV DATA" 11080 PRINT " WHICH GIVES DIRECTION AND DISTANCE TO ANY" 11090 PRINT " STARBASE IN YOUR QUADRANT." 11100 PRINT " 4= DIRECTION/DISTANCE CALCULATOR" 11110 PRINT " WHICH ALLOWS YOU TO ENTER COORDINATES FOR" 11120 PRINT " DIRECTION DISTANCE CALCULATIONS." 11130 PRINT " 5= GALACTIC 'REGION NAME' MAP" 11140 PRINT " WHICH PRINTS THE NAMES OF THE SIXTEEN MAJOR" 11150 PRINT " GALACTIC REGIONS REFERRED TO IN THE GAME." 11160 RETURN 11500 REM SUB TO CLEAR SCREEN 11510 PRINT CHR$(26) 11520 PRINT 11540 RETURN GIONS REFERRED TO IN THE GAME." 11160 RETURN 11500 REM SUB TO CLEAR SCREEN 11510 PRINT CHR$(26) 11520 PEPORT" 11020 PRINT " WHICH SHOWS THE NUMBER OF KLINGONS, STARDATES" 11030 PRINT " AND STARBASES REMAINING IN THE GAME." 11040 PRINT " 2= PHOTON TORPEDO DATA" 11050 PRINT " WHICH GIVES THE DIRECTION AND DISTANCE FROM" 11060 PRINT " THE ENTERPRISE TO ALL KLINGONS IN YOUR QUADRANT" 11070 PRINT " 3= STARBASE NAV DATA" 11080 PRINT " WHICH GIVES DIRECTION AND DISTANCE TO ANY" 11090 PRINT " STARBASE IN YOUR QUADRANT." 11100 PRINT " 4= DIRECTION/DISTANCE CALCULATOR" 11110 PRINT " WHICH ALLOWS YOU TO ENTER COORDINATES FOR" 11120 PRINT " DIRECTION DISTANCE CALCULATIONS."10 CLEAR,&HC9EF 20 DEFINT I, J, V 30 FOR I = &HC9F0 TO &HCA02 40 READ J: POKE I, J 50 NEXT 60 IRANDOM = &HC9F0 70 CALL IRANDOM(INTEGER) 80 DATA &HE5,&HCD,&HFA,&HC9,&H23,&HCD,&HFA,&HC9, &HE1,&HC9,&HED,&H5F,&H17,&H77,&HED,&H5F, &HAE,&H77,&HC9 90 RANDOMIZE(INTEGER) 100 DIM I,Q$,A,A$,G2$,X,X$,K3,J,Q1,Q2,S1,S2,B9,R1, S,T,W1,Y,Z1,Z2 110 DIM G(8,8), C(9,2), K(3,3), N(3), Z(8,8), D(8) 120 CLS$ = CHR$(26) 130 ESC$ = CHR$(27) 140 ENTERPRISE$ = "(" + CHR$(140) + ")" 150 KLINGON$ = "[k]" 160 STARBASE$ = CHR$(128) + CHR$(151) + CHR$(128) 170 SCANLINE$ = STRING$(19,"-") 180 REPORT.LINE$ = STRING$(25,"-") 190 RECORD.LINE$ = " --- --- --- --- --- --- --- ---" 200 GALAXY.LINE$ = " ----- ----- ----- ----- ----- ----- ----- -----" 205 YES% = 1:NO% = 0 210 PRINT CLS$ 220 PRINT TAB(10)"STARTREK -- VERSION 1.2 01/02/80" 230 PRINT TAB(18) "Revised 09/09/80" 240 PRINT TAB(13) "Moved to Osborne 09/26/81" 250 PRINT: PRINT: PRINT 260 PRINT " \-------*------/"  :PRINT 270 PRINT "\----------------------/ \-----/ /---/": PRINT " / /" 280 PRINT " \-------| |-----/ / /": PRINT" | | / /" 290 PRINT " \-----| |------------------------/ /-------/": PRINT 300 PRINT " \----------------------------------------/ 310 PRINT: PRINT: PRINT: PRINT TAB(10) "THE USS ENTERPRISE --- NCC-1701" 320 Z$ = SPACE$(25) 330 T0 = INT (RND * 20 + 20) * 100: T = 0: T9 = 25 + INT(RND * 10) : D0 = 0: E = 3000: E0 = E 340 P = 10: P0 = P: S9 = 200: S = 0: B9 = 0: K9 = 0: X$ = "": X0$ = " IS " 350 DEF FND = SQR((K(I,1) - S1) ^ 2 + (K(I,2) - S2) ^ 2) 360 DEF FNR(R) = INT(INT(RND * R) * 7.98 + 1.01) 370 DEF FNR0 = INT(RND * 7.98 + 1.01) 400 '-----INITIALIZE ENTERPRISE'S POSITION 410 Q1 = FNR0 420 Q2 = FNR0 430 S1 = FNR0 440 S2 = FNR0 450 FOR I = 1 TO 9: C(I,2) = 0: NEXT 460 C(3,1) = -1: C(2,1) = -1: C(4,1) = -1: C(4,2) = -1: C(5,2) = -1: C(6,2) = -1 470 C(1,2) = 1: C(2,2) = 1: C(6,1) = 1: C(7,1) = 1: C(8,1) = 1: C(8,2) = 1: C(9,2) = 1 480 FOR I = 1 TO 8: D(I) = 0: NEXT 490 A1$ = "NAVSRSLRSPHATORSHEDAMCOMXXX" 500 '-----SET UP WHAT EXISTS IN GALAXY 510 '-----K3 = KLINGONS. B3 = STARBASES. S3 = STARS 520 FOR I = 1 TO 8: FOR J = 1 TO 8 530 K3 = 0: Z(I,J) = 0: R1 = RND 540 IF R1 > .98 THEN K3 = 3: K9 = K9 + 3: GOTO 570 550 IF R1 > .95 THEN K3 = 2: K9 = K9 + 2: GOTO 570 560 IF R1 > .8 THEN K3 = 1: K9 = K9 + 1 570 B3 = 0: IF RND > .96 THEN B3 = 1: B9 = B9 + 1 580 G(I,J) = K3 * 100 + B3 * 10 + FNR0 590 NEXT J, I 600 IF B9 <> 0 THEN 640 610 V1 = INT(Q1): V2 = INT(Q2) 620 IF G(V1,V2) < 200 THEN G(V1,V2) = G(V1,V2) + 100: K9 = K9 + 1 630 B9 = 1: G(V1,V2) = G(V1,V2) + 10: Q1 = FNR0: Q2 = FNR0 640 T9 = T9 - B3:IF T9 < K9 * 1.1 THEN T9 = K9 * 1.1 - B3 650 K7 = K9: IF B9 <> 1 THEN X$ = "S": X0$ = "ARE" 660 PRINT:PRINT:PRINT"THERE ARE";K9;"KLINGONS IN";: PRINT" THE GALAXY":PRINT 670 PRINT"YOU HAVE";T9;"DAYS TO COMPLETE YOUR MISSION":PRINT 680 PRINT"THERE ";X0$;B9;;"STARBASE";X$;" IN THE GALAXY":PRINT 690 PRINT"INDICATE WHEN READY TO TAKE COMMAND"; 700 I = RND: INPUT SR$ 800 '-----JUMP HERE ANY TIME NEW QUADRANT ENTERED 810 Z4 = Q1:Z5 = Q2: K3 = 0: B3 = 0: S3 = 0: G5 = 0 820 D4 = .5 * RND 830 Z(Q1,Q2) = G(Q1,Q2) 840 IF Q1 < 1 OR Q1 > 8 OR Q2 < 1 OR Q2 > 8 THEN 980 850 GOSUB 7420: PRINT: IF T <> 0 THEN 890 860 PRINT CLS$: PRINT: PRINT: PRINT"YOUR MISSION BEGINS WITH YOUR STARSHIP" 870 PRINT"LOCATED IN THE GALACTIC QUADRANT, '";G2$;"'." 880 GOTO 900 890 PRINT"NOW ENTERING ";G2$;" QUADRANT . . ." 900 V1 = INT(Q1): V2 = INT(Q2):PRINT: K3 = INT(G(V1,V2) * .01) 910 B3 = INT(G(Q1,Q2) * .1) - 10 * K3 920 S3 = G(V1,V2) - 100 * K3 - 10 * B3 930 IF K3 = 0 THEN 970 940 PRINT"COMBAT AREA CONDITION RED" 950 IF S > 200 THEN 970 960 PRINT" SHIELDS DANGEROUSLY LOW" 970 FOR I = 1 TO 3: K(I,1) = 0: K(I,2) = 0: NEXT 980 FOR I = 1 TO 3: K(I,3) = 0: NEXT 990 Q$ = SPACE$(192) 1000 '-----POSITION ENTERPRISE IN QUADRANT. THEN  1010 '-----PLACE K3 KLINGONS, B3 BASES AND S3 STARS. 1020 A$ = ENTERPRISE$: Z1 = S1: Z2 = S2 1030 GOSUB 7110: IF K3 < 1 THEN 1090 1040 FOR I = 1 TO K3: GOSUB 7010 1050 A$ = KLINGON$: Z1 = R1: Z2 = R2 1060 GOSUB 7110: K(I,1) = R1: K(I,2) = R2 1070 K(I,3) = S9 * (.5 + RND) 1080 NEXT 1090 IF B3 < 1 THEN 1130 1100 GOSUB 7010 1110 A$ = STARBASE$: Z1 = R1: B4 = R1: Z2 = R2 1120 B5 = R2: GOSUB 7110 1130 FOR I = 1 TO S3: GOSUB 7010 1140 A$ = " * ": Z1 = R1: Z2 = R2: GOSUB 7110 1150 NEXT 1160 GOSUB 5610 2000 DFLAG% = NO%: IF S + E > 10 THEN IF E > 10 OR D(7) = 0 THEN 2050 2010 PRINT:PRINT"** FATAL ERROR **": PRINT"YOU ARE STRANDED IN SPACE." 2020 PRINT"YOU HAVE INSUFFICIENT MANEUVERING ENERGY," 2030 PRINT"AND SHIELD CONTROL PRESENTLY IS INCAPABLE" 2040 PRINT"OF CROSS-CIRCUITING TO THE ENGINE ROOM!!": GOTO 5410 2050 INPUT"COMMAND";A$ 2060 FOR I = 1 TO 9: IF LEFT$(A$,3) <> MID$(A1$, 3 * I - 2, 3) THEN 2080 2070 ON I GOTO 2210, 1160, 3610, 3810, 4210, 4710, 4910, 6010, 5430 2080 NEXT: PRINT"ENTER ONE OF THE FOLLOWING:" 2090 PRINT" NAV (TO SET COURSE)" 2100 PRINT" SRS (FOR SHORT-RANGE SCAN)" 2110 PRINT" LRS (FOR LONG-RANGE SCAN)" 2120 PRINT" PHA (TO FIRE PHASERS)" 2130 PRINT" TOR (TO FIRE PHOTON TORPEDO)" 2140 PRINT" SHE (TO RAISE OR LOWER SHIELDS)" 2150 PRINT" DAM (FOR DAMAGE CONTROL REPORTS)" 2160 PRINT" COM (TO CALL LIBRARY - COMPUTER)" 2170 PRINT" XXX (TO RESIGN YOUR COMMAND)" 2180 PRINT: GOTO 2000 2200 '-----COURSE CONTROL BEGINS HERE 2210 INPUT"COURSE (1 - 9)";C1: IF C1 = 9 THEN C1 = 1 2220 IF C1 >= 1 AND C1 < 9 THEN 2240 2230 PRINT"** INCORRECT COURSE **": GOTO 2000 2240 X$ = "8": IF D(1) < 0 THEN X$ = "0.2" 2250 PRINT"WARP FACTOR (0 - "; X$;")";: INPUT W1 2260 IF D(1) < 0 AND W1 > .2 THEN 2310 2270 IF W1 > 0 AND W1 <= 8 THEN 2330 2280 IF W1 = 0 THEN 2000 2290 PRINT"INCORRECT WARP FACTOR ";W1 2300 GOTO 2000 2310 PRINT"WARP ENGINES DAMAGED. MAX WARP 0.2" 2320 GOTO 2000 2330 N = INT(W1 * 8 + .5): IF E - N >= 0 THEN 2410 2340 PRINT"INSUFFICIENT ENERGY AVAILABLE" 2350 PRINT"FOR WARP"; W1; "!" 2360 IF S < N - E OR D(7) < 0 THEN 2000 2370 PRINT S; "UNITS OF ENERGY DEPLOYED TO SHIELDS" 2380 GOTO 2000 2400 '-----KLINGONS MOVE/FIRE ON STARSHIP 2410 FOR I = 1 TO K3 2420 IF K(I,3) = 0 THEN 2500 2430 A$ = " " 2440 Z1 = K(I,1): Z2 = K(I,2) 2450 GOSUB 7110 2460 GOSUB 7010 2470 K(I,1) = Z1: K(I,2) = Z2 2480 A$ = KLINGON$ 2490 GOSUB 7110 2500 NEXT 2510 GOSUB 5210: D1 = 0: D6 = W1 2520 IF W1 >= 1 THEN D6 = 1 2530 FOR I = 1 TO 8 2540 IF D(I) >= 0 THEN 2600 2550 D(I) = D(I) + D6: IF D(I) > -.1 AND D(I) < 0 THEN D(I) = -.1: GOTO 2600 2560 IF D(I) < 0 THEN 2600 2570 IF D1 <> 1 THEN D1 = 1: PRINT"DAMAGE CONTROL REPORT: ": 2580 PRINT TAB(8);: R1 = I: GOSUB 7210 2590 PRINT ESC$; ")"; G2$;" REPAIR COMPLETED"; ESC$; "(" 2600 NEXT 2610 IF RND > .2 THEN 2810 2620 R1 = FNR0: RANDOM = RND: IF RANDOM >.5 THEN 2680 2630 D(R1) = D(R1) - (RND * 5 + 1) 2640 PRINT"DAMAGE CONTROL REPORT: ": 2650 GOSUB 7210 2660 PRINT ESC$; "l"; G2$;" DAMAGED"; ESC$; "m": PRINT 2670 GOTO 2810 2680 D(R1) = D(R1) + RND * 3 + 1 2690 PRINT"DAMAGE CONTROL REPORT: ": 2700 GOSUB 7210 2710 PRINT G2$;" STATE OF REPAIR IMPROVED": PRINT 2800 '-----BEGIN MOVING STARSHIP 2810 A$ = " " 2820 Z1 = INT(S1) 2830 Z2 = INT(S2) 2840 GOSUB 7110 2850 X1 = C(INT(C1),1) + (C(INT(C1+1),1) - C(INT(C1),1)) * (C1 - INT(C1)) 2860 X = S1: Y = S2 2870 X2 = C(INT(C1),2) + (C(INT(C1+1),2) - C(INT(C1),2)) * (C1 - INT(C1)) 2880 Q4 = Q1: Q5 = Q2 2890 FOR I = 1 TO N 2900 S1 = S1 + X1 2910 S2 = S2 + X2 2920 IF S1 < 1 OR S1 >= 9 OR S2 < 1 OR S2 >= 9 THEN 3210 2930 S8 = INT(S1) * 24 + INT(S2) * 3 - 26 2940 IF MID$(Q$,S8,2) = " " THEN 2990 2950 S1 = INT(S1 - X1) 2960 S2 = INT(S2 - X2) 2970 PRINT"WARP ENGINES SHUT DOWN AT" 2980 PRINT"SECTOR";S1;",";S2;"DUE TO BAD NAVIGATION": GOTO 3000 2990 NEXT: S1 = INT(S1): S2 = INT(S2) 3000 A$ = ENTERPRISE$ 3010 Z1 = INT(S1): Z2 = INT(S2) 3020 GOSUB 7110: GOSUB 3510: T8 = 1 3030 IF W1 < 1 THEN T8 = .1 * INT(10 * W1) 3040 T = T + T8 3050 IF T > T9 THEN 5410 3100 '-----SEE IF DOCKED. THEN GET COMMAND 3110 GOTO 1160 3200 '-----PAST QUADRANT LIMITS 3210 X = 8 * Q1 + X + N * X1 3220 Y = 8 * Q2 + Y + N * X2 3230 Q1 = INT(X / 8) 3240 Q2 = INT(Y / 8) 3250 S1 = INT(X - Q1 * 8) 3260 S2 = INT(Y - Q2 * 8) 3270 IF S1 = 0 THEN Q1 = Q1 - 1: S1 = 8 3280 IF S2 = 0 THEN Q2 = Q2 - 1: S2 = 8 3290 X5 = 0 3300 IF Q1 < 1 THEN X5 = 1: Q1 = 1: S1 = 1 3310 IF Q1 > 8 THEN X5 = 1: Q1 = 8: S1 = 8 3320 IF Q2 < 1 THEN X5 = 1: Q2 = 1: S2 = 1 3330 IF Q2 > 8 THEN X5 = 1: Q2 = 8: S2 = 8 3340 IF X5 = 0 THEN 3380 3350 PRINT"WARP ENGINES SHUT DOWN AT:" 3360 PRINT"SECTOR";S1;",";S2;"OF QUADRANT"; Q1;","Q2" 3370 IF T > T9 THEN 5410 3380 IF 8 * Q1 + Q2 = 8 * Q4 + Q5 THEN 3000 3390 T = T + 1 3400 GOSUB 3510 3410 GOTO 810 3500 '-----MANEUVER ENERGY S/R ** 3510 E = E - N - 10: IF E > 0 THEN RETURN 3520 PRINT"SHIELD CONTROL SUPPLIES ENERGY": PRINT"TO COMPLETE THE MANEUVER" 3530 S = S + E 3540 E = 0 3550 IF S <= 0 THEN S = 0 3560 RETURN 3600 '-----LONG RANGE SENSOR SCAN CODE 3610 IF D(3) < 0 THEN PRINT "LONG RANGE SENSORS ARE INOPERABLE": GOTO 2000 3620 PRINT"LONG RANGE SCAN FOR QUADRANT";Q1;",";Q2 3630 PRINT SCANLINE$ 3640 FOR I = INT(Q1)-1 TO INT(Q1)+1 3650 N(1) = -1: N(2) = -2: N(3) = -3 3660 FOR J = Q2-1 TO Q2+1 3670 IF I > 0 AND I < 9 AND J > 0 AND J < 9 THEN N(J-Q2+2) = G(I,J): Z(I,J) = G(I,J) 3680 NEXT: FOR L = 1 TO 3: PRINT"| "; 3690 IF N(L) < 0 THEN PRINT"*** ";: GOTO 3710 3700 PRINT RIGHT$(STR$(N(L)+1000),3);" "; 3710 NEXT: PRINT"|": PRINT SCANLINE$ 3720 NEXT: GOTO 2000 3800 '-----PHASER CONTROL CODE BEGINS HERE 3810 IF D(4) < 0 THEN PRINT"PHASERS INOPERATIVE": GOTO 2000 3820 IF K3 > 0 THEN 3860 3830 PRINT"SENSORS SHOW NO ENEMY SHIPS"; 3840 PRINT" IN THIS QUADRANT" 3850 GOTO 2000 3860 IF D(8) < 0 THEN PRINT"COMPUTER FAILURE HAMPERS ACCURACY" 3870 PRINT"PHASERS LOCKED ON TARGET: " 3880 PRINT"ENERGY AVAILABLE =";E;" UNITS" 3890 INPUT"NUMBER OF UNITS TO FIRE";X 3900 IF X <= 0 THEN 2000 3910 IF E - X < 0 THEN 3880 3920 E = E - X: IF D(7) < 0 THEN X = X * RND 3930 H1 = INT(X/K3) 3940 FOR I = 1 TO 3 3950 IF K(I,3) <= 0 THEN 4100 3960 H = INT((H1/FND) * (RND + 2)) 3970 IF H > .15 * K(I,3) THEN 4000 3980 PRINT"SENSORS SHOW NO DAMAGE TO ENEMY AT "; K(I,1);",";K(I,2) 3990 GOTO 4100 4000 K(I,3) = K(I,3) - H 4010 PRINT H;"UNIT HIT ON KLINGON AT SECTOR"; K(I,1);","; 4020 PRINT K(I,2): IF K(I,3) <= 0 THEN PRINT ESC$; "l";"*** KLINGON DESTROYED ***" ESC$; "m": GOTO 4050 4030 PRINT" (SENSORS SHOW";K(I,3);"UNITS REMAINING)" 4040 GOTO 4100 4050 K3 = K3 - 1: K9 = K9 - 1 4060 Z1 = K(I,1): Z2 = K(I,2) 4070 A$ = " ": GOSUB 7110 4080 K(I,3) = 0: G(Q1,Q2) = G(Q1,Q2) - 100 4090 Z(Q1,Q2) = G(Q1,Q2): IF K9 <= 0 THEN 5500 4100 NEXT: GOSUB 5210 4110 GOTO 2000 4200 '-----PHOTON TORPEDO CODE BEGINS HERE 4210 IF P <= 0 THEN PRINT"ALL PHOTON TORPEDOS EXPENDED": GOTO 2000 4220 IF D(5) < 0 THEN PRINT"PHOTON TUBES NOT OPERATIONAL": GOTO 2000 4230 INPUT"PHOTON TORPEDO COURSE (1 - 9)";C1 4240 IF C1 = 9 THEN C1 = 1 4250 IF C1 >= 1 AND C1 < 9 THEN 4280 4260 PRINT"INCORRECT COURSE DATA" 4270 GOTO 2000 4280 X1 = C(INT(C1),1) + (C(INT(C1+1),1) - C(INT(C1),1)) * (C1 - INT(C1)): E = E - 2: P = P - 1 4290 X2 = C(INT(C1),2) + (C(INT(C1+1),2) - C(INT(C1),2)) * (C1 - INT(C1)): X = S1: Y = S2 4300 PRINT"TORPEDO TRACK:" 4310 X = X + X1: Y = Y + X2 4320 X3 = INT(X+.5) 4330 Y3 = INT(Y+.5) 4340 IF X3 < 1 OR X3 > 8 OR Y3 <1 OR Y3 > 8 THEN 4650 4350 PRINT" ";X3;","Y3 4360 A$ = " " 4370 Z1 = X: Z2 = Y 4380 GOSUB 7310 4390 IF Z3 <> 0 THEN 4310 4400 A$ = KLINGON$ 4410 Z1 = X: Z2 = Y 4420 GOSUB 7310: IF Z3 = 0 THEN 4490 4430 PRINT ESC$; "l";"*** KLINGON DESTROYED ***"; ESC$; "m" 4440 K3 = K3 - 1: K9 = K9 - 1: IF K9 <= 0 THEN 5500 4450 FOR I = 1 TO 3 4460 IF X3 = K(I,1) AND Y3 = K(I,2) THEN 4480 4470 NEXT: I = 3 4480 K(I,3) = 0: GOTO 4620 4490 A$ = " * ": Z1 = X: Z2 = Y 4500 GOSUB 7310: IF Z3 = 0 THEN 4530 4510 PRINT"STAR AT";X3;",";Y3; "ABSORBED TORPEDO ENERGY" 4520 GOSUB 5210: GOTO 2000 4530 A$ = STARBASE$ 4540 Z1 = X: Z2 = Y 4550 GOSUB 7310: IF Z3 = 0 THEN 4230 4560 PRINT"*** STARBASE DESTROYED ***" 4570 B3 = B3 - 1: B9 = B9 -1 4580 IF B9 > 0 OR K9 > T9 - T THEN 4610 4590 PRINT"THAT'S IT. YOU ARE RELIEVED OF COMMAND" 4600 GOTO 5430 4610 D0 = 0 4620 Z1 = X: Z2 = Y: A$ = " ": GOSUB 7110 4630 G(Q1,Q2) = K3 * 100 + B3 * 10 + S3 4640 Z(Q1,Q2) = G(Q1,Q2): GOSUB 5210: GOTO 2000 4650 PRINT"TORPEDO MISSED": GOSUB 5210: GOTO 2000 4700 '-----SHIELD CONTROL 4710 IF D(7) < 0 THEN PRINT"SHIELD CONTROL INOPERABLE": GOTO 2000 4720 PRINT"ENERGY AVAILABLE =";E+S 4730 INPUT"NUMBER OF UNITS TO SHIELDS";X 4740 IF X < 0 OR S = X THEN PRINT"": GOTO 2000 4750 IF X <= E + S THEN 4780 4760 PRINT"ENERGY NOT AVAILABLE" 4770 PRINT"": GOTO 2000 4780 E = E + S - X: S = X 4790 PRINT"SHIELDS NOW AT";INT(S);"UNITS" 4800 GOTO 2000 4900 '-----DAMAGE CONTROL 4910 IF D(6) >= 0 THEN 5080 4920 PRINT"DAMAGE CONTROL REPORT NOT AVAILABLE" 4930 IF D0 = 0 THEN 2000 4940 D3 = 0: FOR I = 1 TO 8 4950 IF D(I) < 0 THEN D3 = D3 + .1 4960 NEXT 4970 IF D3 = 0 THEN 2000 4980 PRINT: D3 = D3 + D4 4990 IF D3 >= 1 THEN D3 = .9 5000 PRINT"ESTIMATED TIME TO REPAIR SHIP:"; 5010 PRINT .01 * INT(100 * D3);"DAYS" 5020 INPUT"DO YOU DESIRE REPAIR (Y/N)";A$ 5030 IF A$ <> "Y" THEN 2000 5040 FOR I = 1 TO 8 5050 IF D(I) < 0 THEN D(I) = 0 5060 NEXT 5070 T = T + D3 5080 PRINT:PRINT "DEVICE STATE OF REPAIR": FOR R1 = 1 TO 8 5090 GOSUB 7210 5100 PRINT G2$; LEFT$(Z$,25-LEN(G2$)); INT(D(R1) * 100) * .01 5110 NEXT R1: PRINT: IF D0 <> 0 THEN 4940 5120 GOTO 2000 5200 '-----KLINGONS SHOOTING 5210 IF K3 <= 0 THEN RETURN 5220 IF D0 <> 0 THEN PRINT"STARBASE SHIELDS PROTECT THE SHIP": RETURN 5230 FOR I = 1 TO 3 5240 IF K(I,3) <= 0 THEN 5350 5250 H = INT((K(I,3) / FND) * (2 + RND)) 5260 S = S - H: K(I,3) = K(I,3) / (3 + RND) 5270 PRINT H;"UNIT HIT ON SHIP FROM SECTOR"; K(I,1);","K(I,2) 5280 IF S <= 0 THEN 5420 5290 PRINT" " 5300 IF H < 20 THEN 5350 5310 IF RND > .6 OR H/S <= .02 THEN 5350 5320 R1 = FNR0: D(R1) = D(R1) - H/S - .5 * RND 5330 GOSUB 7210 5340 PRINT ESC$; "l"; G2$;" DAMAGED BY THE HIT"; ESC$; "m" 5350 NEXT: RETURN 5400 '-----END OF GAME 5410 PRINT:PRINT STRING$(52,"+"): PRINT"THERE ARE";T9-T;"DAYS REMAINING": GOTO 5430 5420 PRINT:PRINT STRING$(52,"]"):PRINT"YOUR SHIP DESTROYED": GOTO 5410 5430 PRINT"THERE WERE";K9;"KLINGONS": PRINT" LEFT AT THE END OF YOUR MISSION" 5440 PRINT: PRINT 5450 IF B9 = 0 THEN 5490 5460 PRINT"DO YOU WANT TO TRY AGAIN (Y/N)"; 5470 INPUT A$ 5480 IF A$ = "Y" THEN 210 5490 END 5500 PRINT:PRINT STRING$(52,"^"): PRINT"CONGRATULATIONS": PRINT"YOU HAVE DESTROYED THE LAST KLINGON" 5510 PRINT"YOUR EFFICIENCY RATING IS: "; 1000 * (K7/T)^2: GOTO 5440 5600 '-----SHORT-RANGE SENSOR SCAN AND STARTUP 5610 FOR I = S1 - 1 TO S1 + 1 5620 FOR J = S2 - 1 TO S2 + 1 5630 IF INT(I+.5) <1 OR INT(I+.5) > 8 OR INT(J+.5) < 1 OR INT(J+.5) > 8 THEN 5670 5640 A$ = STARBASE$ 5650 Z1 = I: Z2 = J 5660 GOSUB 7310: IF Z3 = 1 THEN 5700 5670 NEXT J, I 5680 D0 = 0 5690 GOTO 5730 5700 D0 = 1: C$ = "DOCKED": E = E0: P = P0 5710 PRINT"SHIELDS DROPPED FOR DOCKING" 5720 S = 0: GOTO 5750 5730 IF K3 > 0 THEN C$ = "RED": GOTO 5750 5740 C$ = "GREEN": IF E < E0 THEN C$ = "YELLOW" 5750 IF D(2) >= 0 THEN 5780 5760 PRINT: PRINT"*** SHORT-RANGE SENSORS ARE OUT ***" 5770 PRINT: RETURN 5780 PRINT REPORT.LINE$ 5790 FOR I = 1 TO 8 5800 FOR J = (I-1) * 24+1 TO (I-1) * 24+22 STEP 3: PRINT MID$(Q$,J,3);:NEXT J:PRINT" "; 5810 ON I GOTO 5820, 5830, 5840, 5850, 5860, 5870, 5880, 5890 5820 PRINT"DAYS REMAINING "; INT((T9-T) * 10) * .1: GOTO 5900 5830 PRINT"CONDITION ";C$: GOTO 5900 5840 PRINT"QUADRANT "; Q1;","Q2: GOTO 5900 5850 PRINT"SECTOR "; S1;",";S2: GOTO 5900 5860 PRINT"PHOTON TORPEDOS ";INT(P): GOTO 5900 5870 PRINT"TOTAL ENERGY ";INT(E+S): GOTO 5900 5880 PRINT"SHIELDS ";INT(S): GOTO 5900 5890 PRINT"KLINGONS REMAINING ";INT(K9) 5900 NEXT I: PRINT REPORT.LINE$: RETURN 6000 '-----LIBRARY COMPUTER CODE 6010 IF D(8) < 0 THEN PRINT"COMPUTER DISABLED": GOTO 2000 6020 A = 9: INPUT"COMPUTER COMMAND";A 6030 IF A < 0 THEN 2000 6040 PRINT: H8 = 1: ON A+1 GOTO 6310, 6510, 6610, 6920, 6670, 6210 6050 PRINT"AVAILABLE COMPUTER FUNCTIONS:" 6060 PRINT" 0 = CUMULATIVE GALACTIC RECORD" 6070 PRINT" 1 = STATUS REPORT" 6080 PRINT" 2 = TORPEDO COURSE DATA" 6090 PRINT" 3 = STARBASE COURSE DATA" 6100 PRINT" 4 = COURSE CALCULATOR" 6110 PRINT" 5 = GALACTIC REGION NAME MAP": PRINT: GOTO 6020 6200 '-----SETUP TO CHANGE CUM GALACTIC RECORD TO GALAXY MAP 6210 H8 = 0: G5 = 1: PRINT STRING$(24," ");"THE GALAXY" 6220 PRINT" 1 2 3 4 5 6 7 8" 6230 PRINT GALAXY.LINE$ 6240 GOTO 6370 6300 '-----CUMULATIVE GALACTIC RECORD 6310 ' 6320 PRINT:PRINT" "; 6330 PRINT"COMPUTER RECORD FOR QUADRANT";Q1;",";Q2 6340 PRINT 6350 PRINT" 1 2 3 4 5 6 7 8" 6360 PRINT RECORD.LINE$ 6370 FOR I = 1 TO 8: PRINT I;: IF H8 = 0 THEN 6430 6380 FOR J = 1 TO 8:PRINT" ";: IF Z(I,J) = 0 THEN PRINT"***";: GOTO 6420 6390 IF I = Q1 AND J = Q2 THEN PRINT ESC$;")"; 6400 PRINT RIGHT$(STR$(Z(I,J)+1000),3); 6410 IF I = Q1 AND J = Q2 THEN PRINT ESC$;"("; 6420 NEXT J: GOTO 6470 6430 Z4 = I: Z5 = 1 6440 GOSUB 7420: J0 = INT(15-.5 * LEN(G2$)) 6450 PRINT TAB(J0);G2$; 6460 Z5 = 5:GOSUB 7420: J0 = INT(39-.5*LEN(G2$)): PRINT TAB(J0);G2$ 6470 PRINT: NEXT I: PRINT: GOTO 2000 6500 '-----STATUS REPORT 6510 PRINT" STATUS REPORT:" 6520 X$ = "": IF K9 > 1 THEN X$ = "S" 6530 PRINT"KLINGON";X$;" LEFT: ";K9 6540 PRINT"MISSION MUST BE COMPLETED IN"; .1 * INT((T9 - T) * 10);"DAYS" 6550 X$ = "S": IF B9 < 2 THEN X$ = "": IF B9 < 1 THEN 6580 6560 PRINT"THERE ARE";B9;"BASE";X$;" IN THE GALAXY" 6570 GOTO 4910 6580 PRINT"YOU ARE ON YOUR OWN IN THE GALAXY" 6590 PRINT"YOU HAVE NO STARBASES LEFT!": GOTO 4910 6600 '-----TORPEDO, BASE NAV, D/D CALCULATOR 6610 IF K3 <= 0 THEN 3830 6620 X$ = "": IF KE > 1 THEN X$ = "S" 6630 PRINT"FROM ENTERPRISE TO KLINGON BATTLE CRUISER"; X$ 6640 H8 = 0: FOR I = 1 TO 3: IF K(I,3) <= 0 THEN 6910 6650 W1 = K(I,1): X = K(I,2) 6660 C1 = S1: A = S2: DFLAG% = YES%: GOTO 6710 6670 PRINT"NAVIGATION CALCULATOR:" 6680 PRINT"YOU ARE AT QUADRANT ";Q1;",";Q2; " SECTOR ";S1;",";S2 6690 C1 = Q1: A = Q2 6700 INPUT"DESTINATION COORDINATES (X,Y)";W1, X 6710 X = X - A: A = C1 - W1: IF X < 0 THEN 6810 6720 IF A < 0 THEN 6830 6730 IF X > 0 THEN 6750 6740 IF A = 0 THEN C1 = 5: GOTO 6760 6750 C1 = 1 6760 IF ABS(A) <= ABS(X) THEN 6790 6770 PRINT"DIRECTION ="; C1 + (((ABS(A) - ABS(X)) + ABS(A))/ABS(A)) 6780 GOTO 6880 6790 PRINT"DIRECTION ="; C1 + (ABS(A)/ABS(X)) 6800 GOTO 6880 6810 IF A > 0 THEN C1 = 3: GOTO 6840 6820 IF X <> 0 THEN C1 = 5: GOTO 6760 6830 C1 = 7 6840 IF ABS(A) >= ABS(X) THEN 6870 6850 PRINT"DIRECTION ="; C1 + (((ABS(X) - ABS(A))+ ABS(X))/ABS(X)) 6860 GOTO 6880 6870 PRINT"DIRECTION ="; C1 + (ABS(X)/ABS(A)) 6880 IF ABS(X) > ABS(A) THEN DI = ABS(X) ELSE DI = ABS(A) 6890 PRINT"DISTANCE =";: IF DFLAG% THEN PRINT DI/10 ELSE PRINT DI 6900 IF H8 = 1 THEN 2000 6910 NEXT I: GOTO 2000 6920 IF B3 <> 0 THEN PRINT"FROM ENTERPRISE TO STARBASE:": W1 = B4: X = B5: GOTO 6660 6930 PRINT"NO STARBASES IN THIS QUADRANT" 6940 GOTO 2000 7000 '-----FIND EMPTY PLACE IN QUADRANT 7010 R1 = FNR0: R2 = FNR0: A$ = " ": Z1 = R1: Z2 = R2: GOSUB 7310: IF Z3 = 0 THEN 7010 7020 RETURN 7100 '-----INSERT STRING IN QUADRANT ARRAY 7110 S8 = INT(Z2-.5) * 3 + INT(Z1-.5) * 24 + 1 7120 IF LEN(A$) <> 3 THEN PRINT"ERROR IN 8675": STOP 7130 IF S8 = 1 THEN Q$ = A$ + RIGHT$(Q$,189): RETURN 7140 IF S8 = 190 THEN Q$ = LEFT$(Q$,189) + A$: RETURN 7150 Q$ = LEFT$(Q$,S8-1) + A$ + RIGHT$(Q$,190-S8): RETURN 7200 '-----PRINT DEVICE NAME 7210 ON R1 GOTO 7220, 7230, 7240, 7250, 7260, 7270, 7280, 7290 7220 G2$ = "WARP ENGINES": RETURN 7230 G2$ = "SHORT-RANGE SENSORS": RETURN 7240 G2$ = "LONG-RANGE SENSORS": RETURN 7250 G2$ = "PHASER CONTROL": RETURN 7260 G2$ = "PHOTON TUBES": RETURN 7270 G2$ = "DAMAGE CONTROL": RETURN 7280 G2$ = "SHIELD CONTROL": RETURN 7290 G2$ = "LIBRARY-COMPUTER": RETURN 7300 '-----STRING COMPARISON IN QUADRANT ARRAY 7310 Z1 = INT(Z1+.5): Z2 = INT(Z2+.5) 7320 S8 = (Z2-1) * 3 + (Z1-1) * 24 + 1: Z3 = 0 7330 IF MID$(Q$,S8,3) <> A$ THEN RETURN 7340 Z3 = 1: RETURN 7400 '-----QUADRANT NAME IN G2$ FROM Z4, Z5 (= Q1, Q2) 7410 '-----CALL WITH G5 = 1 TO GET REGION NAME ONLY 7420 IF Z5 <= 4 THEN ON Z4 GOTO 7440, 7450, 7460, 7470, 7480, 7490, 7500, 7510 7430 GOTO 7520 7440 G2$ = "ANTARES": GOTO 7610 7450 G2$ = "RIGEL": GOTO 7610 7460 G2$ = "PROCYON": GOTO 7610 7470 G2$ = "VEGA": GOTO 7610 7480 G2$ = "CANOPUS": GOTO 7610 7490 G2$ = "ALTAIR": GOTO 7610 7500 G2$ = "SAGITTARIUS": GOTO 7610 7510 G2$ = "POLLUX": GOTO 7610 7520 ON Z4 GOTO 7530, 7540, 7550, 7560, 7570, 7580, 7590, 7600 7530 G2$ = "SIRIUS": GOTO 7610 7540 G2$ = "DENEB": GOTO 7610 7550 G2$ = "CAPELLA": GOTO 7610 7560 G2$ = "BETELGEUSE": GOTO 7610 7570 G2$ = "ALDEBARAN": GOTO 7610 7580 G2$ = "REGULUS": GOTO 7610 7590 G2$ = "ARCTURUS": GOTO 7610 7600 G2$ = "SPICA" 7610 IF G5 <> 1 THEN ON Z5 GOTO 7630, 7640, 7650, 7660, 7630, 7640, 7650, 7660 7620 RETURN 7630 G2$ = G2$ + " I": RETURN 7640 G2$ = G2$ + " II": RETURN 7650 G2$ = G2$ + " III": RETURN 7660 G2$ = G2$ + " IV": RETURN 630 G2$ = G2$ + " I": RETURN 7640 G2$ = G2$ + " II": RE(= Q1, Q2) 7410 '-----CALL WITH G5 = 1 TO GET REGION NAME ONLY 7420 IF Z5 <= 4 THEN ON Z4 GOTO 7440, 7450, 7460, 7470, 7480, 7490, 7500, 7510 7430 GOTO 7520 7440 G2$ = "ANTARES": GOTO 7610 7450 G2$ = "RIGEL": GOTO 7610 7460 G2$ = "PROCYON": GOTO 7610 7470 G2$ = "VEGA": GOTO 7610 7480 G2$ = "CANOPUS": GOTO 7610 7490 G2$ = "ALTAIR": GOTO 7610 7500 G2$ = "SAGITTARIUS": GOTO 7610 7510 G2$ = "POLLUX": GOTO 7610 7520 ON Z4 GOTO 7530, 7540, 7550, 7560, 7570, 7580, 7590, 7600 7530 G2$ = "SIRIUS": GOTO 7610 7540 G2$ = "DENEB": GOTO 7610 7550 G2$ = "CAPELLA": GOTO 7610 7560 G2$ = "BETELGEUSE": GOTO 7610 7570 G2$ = "ALDEBA0 REM Modified by Jim Woolley, FOG Disk Librarian, 8/82 1 RANDOMIZE 2 FOR A=1 TO 5:READ NA$(A):NEXT 3 DATA IBM,RCA,LBJ,ABC,CBS 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(30);"STOCK MARKET":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT: PRINT: PRINT 100 REM STOCK MARKET SIMULATION -STOCK- 101 REM REVISED 8/18/70 (D. PESSEL, L. BRAUN, C. LOSIK) 102 REM IMP VRBLS: A-MRKT TRND SLP; B5-BRKRGE FEE; C-TTL CSH ASSTS; 103 REM C5-TTL CSH ASSTS (TEMP); C(I)-CHNG IN STK VAL; D-TTL ASSTS; 104 REM E1,E2-LRG CHNG MISC; I-STCK #; I1,I2-STCKS W LRG CHNG; 105 REM N1,N2-LRG CHNG DAY CNTS; P5-TTL DAYS PRCHSS; P(I)-PRTFL CNTNTS; 106 REM Q9-NEW CYCL?; S4-SGN OF A; S5-TTL DYS SLS; S(I)-VALUE/SHR; 107 REM T-TTL STCK ASSTS; T5-TTL VAL OF TRNSCTNS; 108 REM W3-LRG CHNG; X1-SMLL CHNG(<$1); Z4,Z5,Z6-NYSE AVE.; Z(I)-TRNSCT 110 DIM S(5),P(5),Z(5),C(5) 112 REM SLOPE OF MARKET TREND:A (SAME FOR ALL STOCKS) 113 LET X=1 114 LET A=INT((RND(X)/10)*100+.5)/100 115 LET T5=0 116 LET X9=0 117 LET N1=0 118 LET N2=0 119 LET E1=0 120 LET E2=0 121 REM INTRODUCTION 122 PRINT "DO YOU WANT THE INSTRUCTIONS"; 123 INPUT Z9$ 124 PRINT 125 PRINT 126 IF LEFT$(Z9$,1)="N" THEN 200 129 PRINT CHR$(26) 130 PRINT "THIS PROGRAM PLAYS THE STOCK MARKET. YOU WILL BE GIVEN" 132 PRINT "$10,000 AND MAY BUY OR SELL STOCKS. THE STOCK PRICES WILL" 134 PRINT "BE GENERATED RANDOMLY AND THEREFORE THIS MODEL DOES NOT" 135 PRINT "REPRESENT EXACTLY WHAT HAPPENS ON THE EXCHANGE. A TABLE" 136 PRINT "OF AVAILABLE STOCKS, THEIR PRICES, AND THE NUMBER OF SHARES 137 PRINT "IN YOUR PORTFOLIO WILL BE PRINTED. FOLLOWING THIS, THE" 138 PRINT "INITIALS OF EACH STOCK WILL BE PRINTED WITH A QUESTION" 139 PRINT "MARK. HERE YOU INDICATE A TRANSACTION. TO BUY A STOCK" 140 PRINT "TYPE +NNN, TO SELL A STOCK TYPE -NNN, WHERE NNN IS THE" 141 PRINT "NUMBER OF SHARES. A BROKERAGE FEE OF 1% WILL BE CHARGED" 142 PRINT "ON ALL TRANSACTIONS. NOTE THAT IF A STOCK'S VALUE DROPS" 143 PRINT "TO ZERO IT MAY REBOUND TO A POSITIVE VALUE AGAIN. YOU" 144 PRINT "HAVE $10,000 TO INVEST. USE INTEGERS FOR ALL YOUR INPUTS." 145 PRINT "(NOTE: TO GET A 'FEEL' FOR THE MARKET RUN FOR AT LEAST" 146 PRINT "10 DAYS)":PRINT 147 PRINT "-----GOOD LUCK!-----" :PRINT 150 LINE INPUT "HIT 'RETURN' TO START THE GAME.";XX$:PRINT:PRINT 200 REM GENERATION OF STOCK TABLE; INPUT REQUESTS 210 REM INITIAL STOCK VALUES 220 LET S(1)=100 230 LET S(2)=85 240 LET S(3)=150 250 LET S(4)=140 260 LET S(5)=110 265 REM INITIAL T8 - # DAYS FOR FIRST TREND SLOPE (A) 266 LET T8=INT(4.99*RND(X)+1) 267 REM RANDOMIZE SIGN OF FIRST TREND SLOPE (A) 268 IF RND(X)>.5 THEN 270 269 LET A=-A 270 REM RANDOMIZE INITIAL VALUES 280 GOSUB 830 285 REM INITIAL PORTFOLIO CONTENTS 290 FOR I=1 TO 5 300 LET P(I)=0 305 LET Z(I)=0 310 NEXT I 320 PRINT 330 PRINT 333 REM INITIALIZE CASH ASSETS:C 335 LET C=10000 338 REM PRINT INITIAL PORTFOLIO 339 F1$=" $$##.##":F2$="$$,###,###.##" 340 PRINT CHR$(26):PRINT "STOCK"," ","INITIALS","PRICE/SHARE" 345 PRINT "-----"," ","--------","-----------" 350 PRINT "INT. BALLISTIC MISSILES"," IBM",:PRINT USING F1$;S(1) 352 PRINT "RED CROSS OF AMERICA"," RCA",:PRINT USING F1$;S(2) 354 PRINT "LICHTENSTEIN, BUMRAP & JOKE"," LBJ",:PRINT USING F1$;S(3) 356 PRINT "AMERICAN BANKRUPT CO."," ABC",:PRINT USING F1$;S(4) 358 PRINT "CENSURED BOOKS STORE"," CBS",:PRINT USING F1$;S(5) 360 PRINT 361 REM NYSE AVERAGE:Z5; TEMP. VALUE:Z4; NET CHANGE:Z6 363 LET Z4=Z5 364 LET Z5=0 365 LET T=0 370 FOR I=1 TO 5 375 LET Z5=Z5+S(I) 380 LET T=T+S(I)*P(I) 390 NEXT I 391 LET Z5=INT(100*(Z5/5)+.5)/100 392 LET Z6=INT((Z5-Z4)*100+.5)/100 393 REM TOTAL ASSETS:D 394 LET D=T+C 395 IF X9>0 THEN 398 396 PRINT "NEW YORK STOCK EXCHANGE AVERAGE: "Z5 397 GOTO 399 398 PRINT "NEW YORK STOCK EXCHANGE AVERAGE: ";:PRINT USING "####.##";Z5;: PRINT USING " +###.##";Z6 399 PRINT 400 LET T=INT(100*T+.5)/100 401 PRINT "TOTAL STOCK ASSETS ARE ";:PRINT USING F2$;T 403 LET C=INT(100*C+.5)/100 405 PRINT "TOTAL CASH ASSETS ARE ";:PRINT USING F2$;C 407 LET D=INT(100*D+.5)/100 408 PRINT "TOTAL ASSETS ARE ";:PRINT USING F2$;D 410 PRINT 411 IF X9=0 THEN 416 412 LINE INPUT "DO YOU WISH TO CONTINUE?";Q9$:PRINT 413 IF LEFT$(Q9$,1)="N" THEN 998 416 REM INPUT TRANSACTIONS 420 PRINT "WHAT IS YOUR TRANSACTION IN" 430 PRINT "IBM"; 440 INPUT Z(1) 450 PRINT "RCA"; 460 INPUT Z(2) 470 PRINT "LBJ"; 480 INPUT Z(3) 490 PRINT "ABC"; 500 INPUT Z(4) 510 PRINT "CBS"; 520 INPUT Z(5) 525 PRINT 530 REM TOTAL DAY'S PURCHASES IN $:P5 540 LET P5=0 550 REM TOTAL DAY'S SALES IN $:S5 560 LET S5=0 570 FOR I=1 TO 5 575 LET Z(I)=INT(Z(I)+.5) 580 IF Z(I)<=0 THEN 610 590 LET P5=P5+Z(I)*S(I) 600 GOTO 620 610 LET S5=S5-Z(I)*S(I) 612 IF -Z(I)<=P(I) THEN 620 614 PRINT "YOU HAVE OVERSOLD A STOCK; TRY AGAIN." 616 GOTO 420 620 NEXT I 622 REM TOTAL VALUE OF TRANSACTIONS:T5 625 LET T5=P5+S5 630 REM BROKERAGE FEE:B5 640 LET B5=INT(.01*T5*100+.5)/100 650 REM CASH ASSETS=OLD CASH ASSETS-TOTAL PURCHASES 652 REM -BROKERAGE FEES+TOTAL SALES:C5 654 LET C5=C-P5-B5+S5 656 IF C5>=0 THEN 674 658 PRINT "YOU HAVE USED ";:PRINT USING "$$##,###.##";-C5;: PRINT " MORE THAN YOU HAVE." 660 GOTO 420 674 LET C=C5 675 REM CALCULATE NEW PORTFOLIO 680 FOR I=1 TO 5 690 LET P(I)=P(I)+Z(I) 700 NEXT I 710 REM CALCULATE NEW STOCK VALUES 720 GOSUB 830 750 REM PRINT PORTFOLIO 751 REM BELL RINGING-DIFFERENT ON MANY COMPUTERS 755 PRINT 756 PRINT "********** END OF DAY'S TRADING **********" 757 PRINT 758 PRINT 759 IF X9<1 THEN 769 769 PRINT "STOCK PRICE/SHARE CHANGE HOLDINGS VALUE" 770 PRINT "----- ----------- ------ -------- -----------" 776 FOR XX=1 TO 5 777 PRINT USING" \ \ $$##.## +##.## #### $$,###,###.##";NA$(XX),S(XX),C(XX),P(XX),S(XX)*P(XX) 778 NEXT XX 779 LET X9=1 780 PRINT 790 PRINT 810 GOTO 360 829 REM NEW STOCK VALUES - SUBROUTINE 830 REM RANDOMLY PRODUCE NEW STOCK VALUES BASED ON PREVIOUS 831 REM DAY'S VALUES 832 REM N1,N2 ARE RANDOM NUMBERS OF DAYS WHICH RESPECTIVELY 833 REM DETERMINE WHEN STOCK I1 WILL INCREASE 10 PTS. AND STOCK 834 REM I2 WILL DECREASE 10 PTS. 840 REM IF N1 DAYS HAVE PASSED, PICK AN I1, SET E1, DETERMINE NEW N1 841 IF N1>0 THEN 850 845 LET I1=INT(4.99*RND(X)+1) 846 LET N1=INT(4.99*RND(X)+1) 847 LET E1=1 850 REM IF N2 DAYS HAVE PASSED, PICK AN I2, SET E2, DETERMINE NEW N2 851 IF N2>0 THEN 860 855 LET I2=INT(4.99*RND(X)+1) 856 LET N2=INT(4.99*RND(X)+1) 857 LET E2=1 860 REM DEDUCT ONE DAY FROM N1 AND N2 861 LET N1=N1-1 862 LET N2=N2-1 890 REM LOOP THROUGH ALL STOCKS 900 FOR I=1 TO 5 910 LET X1=RND(X) 915 IF X1>.25 THEN 920 916 LET X1=.25 917 GOTO 935 920 IF X1>.5 THEN 925 921 LET X1=.5 922 GOTO 935 925 IF X1>.75 THEN 930 926 LET X1=.75 927 GOTO 935 930 LET X1=0! 931 REM BIG CHANGE CONSTANT:W3 (SET TO ZERO INITIALLY) 935 LET W3=0 936 IF E1<1 THEN 945 937 IF INT(I1+.5)<>INT(I+.5) THEN 945 938 REM ADD 10 PTS. TO THIS STOCK; RESET E1 939 LET W3=10 943 LET E1=0 945 IF E2<1 THEN 955 947 IF INT(I2+.5)<>INT(I+.5) THEN 955 948 REM SUBTRACT 10 PTS. FROM THIS STOCK; RESET E2 949 LET W3=W3-10 953 LET E2=0 954 REM C(I) IS CHANGE IN STOCK VALUE 955 LET C(I)=INT(A*S(I))+X1+INT(3-6*RND(X)+.5)+W3 956 LET C(I)=INT(100*C(I)+.5)/100 957 LET S(I)=S(I)+C(I) 960 IF S(I)>0 THEN 967 964 LET C(I)=0 965 LET S(I)=0 966 GOTO 970 967 LET S(I)=INT(100*S(I)+.5)/100 970 NEXT I 972 REM AFTER T8 DAYS RANDOMLY CHANGE TREND SIGN AND SLOPE 973 LET T8=T8-1 974 IF T8<1 THEN 985 980 RETURN 985 REM RANDOMLY CHANGE TREND SIGN AND SLOPE (A), AND DURATION 986 REM OF TREND (T8) 990 LET T8=INT(4.99*RND(X)+1) 992 LET A=INT((RND(X)/10)*100+.5)/100 993 LET S4=RND(X) 994 IF S4<=.5 THEN 997 995 LET A=-A 997 RETURN 998 IF D=10000 THEN PRINT "YOU BROKE EVEN." ELSE IF D>10000 THEN PRINT "YOU MADE A PROFIT OF";:PRINT USING F2$;D-10000 ELSE IF D<10000 THEN PRINT "YOU LOST";:PRINT USING F2$;10000-D 999 RUN "MENU" DE A PROFIT OF";:PRINT USING F2$;D-10000 ELSE IF 0 RANDOMIZE 1 PRINT CHR$(26):WIDTH 80 2 PRINT TAB(33);"SYNONYM":PRINT 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 6 PRINT: PRINT: PRINT 10 DIM R$(5),W$(10),L(30),R(30) 20 R$(1)="RIGHT.": R$(2)="CORRECT.": R$(3)="FINE.": R$(4)="GOOD!" 30 R$(5)="CHECK." 70 C=0 90 PRINT "A SYNONYM OF A WORD MEANS ANOTHER WORD IN THE ENGLISH" 100 PRINT "LANGUAGE WHICH HAS THE SAME OR VERY NEARLY THE SAME"; 110 PRINT " MEANING." 120 PRINT 130 PRINT "I CHOOSE A WORD -- YOU TYPE A SYNONYM." 140 PRINT "IF YOU CAN'T THINK OF A SYNONYM, TYPE THE WORD 'HELP'" 145 PRINT "AND I WILL TELL YOU A SYNONYM.": PRINT 150 RESTORE: C=C+1: READ N 160 IF C>N THEN 420 170 N1=INT(RND(1)*N+1) 174 IF R(N1)=1 THEN 170 176 R(N1)=1 180 FOR I=1 TO N1 190 READ N2 200 FOR J=1 TO N2 210 READ W$(J) 220 NEXT J 230 NEXT I 232 FOR J=1 TO N2: L(J)=J: NEXT J 235 L(0)=N2: G=1: PRINT 237 L(G)=L(L(0)): L(0)=N2-1: PRINT 240 PRINT " WHAT IS A SYNONYM OF ";W$(G);: INPUT A$ 250 IF A$="HELP" THEN 340 260 FOR K=1 TO N2 270 IF G=K THEN 290 280 IF A$=W$(K) THEN 320 290 NEXT K 300 PRINT " TRY AGAIN.": GOTO 240 320 PRINT R$(INT(RND(1)*5+1)): GOTO 150 340 G1=INT(RND(1)*L(0)+1) 360 PRINT "**** A SYNONYM OF ";W$(G);" IS ";W$(L(G1));".": PRINT 370 L(G1)=L(L(0)): L(0)=L(0)-1: GOTO 240 420 PRINT: PRINT "SYNONYM DRILL COMPLETED.": GOTO 999 500 DATA 10 510 DATA 5,"FIRST","START","BEGINNING","ONSET","INITIAL" 520 DATA 5,"SIMILAR","ALIKE","SAME","LIKE","RESEMBLING" 530 DATA 5,"MODEL","PATTERN","PROTOTYPE","STANDARD","CRITERION" 540 DATA 5,"SMALL","INSIGNIFICANT","LITTLE","TINY","MINUTE" 550 DATA 6,"STOP","HALT","STAY","ARREST","CHECK","STANDSTILL" 560 DATA 6,"HOUSE","DWELLING","RESIDENCE","DOMICILE","LODGING" 565 DATA "HABITATION" 570 DATA 7,"PIT","HOLE","HOLLOW","WELL","GULF","CHASM","ABYSS" 580 DATA 7,"PUSH","SHOVE","THRUST","PROD","POKE","BUTT","PRESS" 590 DATA 6,"RED","ROUGE","SCARLET","CRIMSON","FLAME","RUBY" 600 DATA 7,"PAIN","SUFFERING","HURT","MISERY","DISTRESS","ACHE" 605 DATA "DISCOMFORT" 999 RUN "MENU"  IMSON","FLAME","RUBY" 600 DATA 7,"PAIN","SUFFERING","HURT","MISERY","DISTRESS","ACHE" 605 DATA "DISCOMFORT" 999 RUN "MENU" OTO 150 340 G1=INT(RND(1)*L(0)+1) 360 PRINT "**** A SYNONYM OF ";W$(G);" IS ";W$(L(G1));".": PRINT 370 L(G1)=L(L(0)): L(0)=L(0)-1: GOTO 240 420 PRINT: PRINT "SYNONYM DRILL COMPLETED.": GOTO 999 500 DATA 10 510 DATA 5,"FIRST","START","BEGINNING","ONSET","INITIAL" 520 DATA 5,"SIMILAR","ALIKE","SAME","LIKE","RESEMBLING" 530 DATA 5,"MODEL","PATTERN","PROTOTYPE","STANDARD","CRITERION" 540 DATA 5,"SMALL","INSIGNIFICANT","LITTLE","TINY","MINUTE" 550 DATA 6,"STOP","HALT","STAY","ARREST","CHECK","STANDSTILL" 560 DATA 6,"HOUSE","DWELLING","RESIDENCE","DOMICILE","LODGING" 565 DATA "HABITATION" 570 DATA 7,"PIT","HOLE","HOLLOW","WELL","GULF","CHASM","ABYSS" 580 DATA 7,"PUSH","SHOVE","THRUST","PROD","POKE","BUTT","PRESS" 590 DATA 6,"RED","ROUGE","SCARLET","CRIMSON","FLAME","RUBY" 600 DATA 7,"PAIN","SUFFERING","HURT","MISERY","DISTRESS","ACHE" 605 DATA "DISCOMFORT" 999 RUN "MENU" 1 RANDOMIZE 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(33);"TARGET":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT: PRINT: PRINT 100 R=1: R1=57.296: P=3.14159 110 PRINT "YOU ARE THE WEAPONS OFFICER ON THE STARSHIP ENTERPRISE" 120 PRINT "AND THIS IS A TEST TO SEE HOW ACCURATE A SHOT YOU" 130 PRINT "ARE IN A THREE-DIMENSIONAL RANGE. YOU WILL BE TOLD" 140 PRINT "THE RADIAN OFFSET FOR THE X AND Z AXES, THE LOCATION" 150 PRINT "OF THE TARGET IN THREE DIMENSIONAL RECTANGULAR COORDINATES," 160 PRINT "THE APPROXIMATE NUMBER OF DEGREES FROM THE X AND Z" 170 PRINT "AXES, AND THE APPROXIMATE DISTANCE TO THE TARGET." 180 PRINT "YOU WILL THEN PROCEEED TO SHOOT AT THE TARGET UNTIL IT IS" 190 PRINT "DESTROYED!": PRINT: PRINT "TO QUIT, ENTER 0,0,0.":PRINT: PRINT "GOOD LUCK!!": PRINT: PRINT 220 A=RND(1)*2*P: B=RND(1)*2*P: Q=INT(A*R1): W=INT(B*R1) 250 PRINT "TARGET SIGHTED.":PRINT 260 PRINT "RADIANS FROM X AXIS =";A;" FROM Z AXIS =";B 280 P1=100000!*RND(1)+RND(1): X=SIN(B)*COS(A)*P1: Y=SIN(B)*SIN(A)*P1 290 Z=COS(B)*P1 340 PRINT "APPROXIMATE COORDINATES: X =";X;" Y =";Y;" Z =";Z 345 R=R+1: IF R>5 THEN 390 350 ON R GOTO 355,360,365,370,375 355 P3=INT(P1*.05)*20: GOTO 390 360 P3=INT(P1*.1)*10: GOTO 390 365 P3=INT(P1*.5)*2: GOTO 390 370 P3=INT(P1): GOTO 390 375 P3=P1 390 PRINT " ESTIMATED DISTANCE:";P3 400 PRINT:PRINT "INPUT ANGLE DEVIATION FROM X, DEVIATION FROM Z, DISTANCE"; 405 INPUT A1,B1,P2 406 IF A1=0 AND B1=0 AND P2=0 THEN PRINT:PRINT "QUITTERS DIE IN SPACE!!!": PRINT: RUN "MENU" 410 PRINT: IF P2<20 THEN PRINT "YOU BLEW YOURSELF UP!!": GOTO 580 420 A1=A1/R1: B1=B1/R1: PRINT "RADIANS FROM X AXIS =";A1;" "; 425 PRINT "FROM Z AXIS =";B1 480 X1=P2*SIN(B1)*COS(A1): Y1=P2*SIN(B1)*SIN(A1): Z1=P2*COS(B1) 510 D=((X1-X)^2+(Y1-Y)^2+(Z1-Z)^2)^(1/2) 520 IF D>20 THEN 670 530 PRINT: PRINT " * * * HIT * * * TARGET IS NON-FUNCTIONAL": PRINT 550 PRINT "DISTANCE OF EXPLOSION FROM TARGET WAS";D;"KILOMETERS." 570 PRINT: PRINT "MISSION ACCOMPLISHED IN ";R;" SHOTS." 580 R=0: FOR I=1 TO 5: PRINT: NEXT I: PRINT "NEXT TARGET...": PRINT 590 GOTO 220 670 X2=X1-X: Y2=Y1-Y: Z2=Z1-Z: IF X2<0 THEN 730 710 PRINT "SHOT IN FRONT OF TARGET";X2;"KILOMETERS.": GOTO 740 730 PRINT "SHOT BEHIND TARGET";-X2;"KILOMETERS." 740 IF Y2<0 THEN 770 750 PRINT "SHOT TO LEFT OF TARGET";Y2;"KILOMETERS.": GOTO 780 770 PRINT "SHOT TO RIGHT OF TARGET";-Y2;"KILOMETERS." 780 IF Z2<0 THEN 810 790 PRINT "SHOT ABOVE TARGET";Z2;"KILOMETERS.": GOTO 820 810 PRINT "SHOT BELOW TARGET";-Z2;"KILOMETERS." 820 PRINT "APPROX POSITION OF EXPLOSION: X =";X1;" Y =";Y1;" Z =";Z1 830 PRINT " DISTANCE FROM TARGET =";D: PRINT: PRINT: PRINT: GOTO 345 999 RUN "MENU" N: X =";X1;" Y =";Y1;" Z =";Z1 830 PRINT " DISTANCE FROM TARGET =";D: P) 510 D=((X1-X)^2+(Y1-Y)^2+(Z1-Z)^2)^(1/2) 520 IF D>20 THEN 670 530 PRINT: PRINT " * * * HIT * * * TARGET IS NON-FUNCTIONAL": PRINT 550 PRINT "DISTANCE OF EXPLOSION FROM TARGET WAS";D;"KILOMETERS." 570 PRINT: PRINT "MISSION ACCOMPLISHED IN ";R;" SHO5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(30);"TIC TAC TOE":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 50 REM 100 REM THIS PROGRAM PLAYS TIC TAC TOE 110 REM THE MACHINE GOES FIRST 120 PRINT "THE GAME BOARD IS NUMBERED:": PRINT 130 PRINT "1 2 3": PRINT "8 9 4": PRINT "7 6 5" 140 PRINT 150 REM 160 REM 170 REM 180 DEF FNM(X)=X-8*INT((X-1)/8) 190 REM 200 REM MAIN PROGRAM 210 PRINT 220 PRINT 230 A=9 240 M=A 250 GOSUB 650 260 P=M 270 B=FNM(P+1) 280 M=B 290 GOSUB 650 300 Q=M 310 IF Q=FNM(B+4) THEN 360 320 C=FNM(B+4) 330 M=C 340 GOSUB 700 350 GOTO 730 360 C=FNM(B+2) 370 M=C 380 GOSUB 650 390 R=M 400 IF R=FNM(C+4) THEN 450 410 D=FNM(C+4) 420 M=D 430 GOSUB 700 440 GOTO 730 450 IF P/2<>INT(P/2) THEN 500 460 D=FNM(C+7) 470 M=D 480 GOSUB 700 490 GOTO 730 500 D=FNM(C+3) 510 M=D 520 GOSUB 650 530 S=M 540 IF S=FNM(D+4) THEN 590 550 E=FNM(D+4) 560 M=E 570 GOSUB 700 580 REM 590 E=FNM(D+6) 600 M=E 610 GOSUB 700 620 PRI NT "THE GAME IS A DRAW." 630 GOTO 1000 640 REM 650 GOSUB 700 660 PRINT "YOUR MOVE"; 670 INPUT M 680 RETURN 700 PRINT "COMPUTER MOVES";M 710 RETURN 720 REM 730 PRINT "AND WINS ********" 740 GOTO 1000 750 END 1000 INPUT "PLAY AGAIN";ANS$ 1010 IF LEFT$(ANS$,1)="Y" THEN 30 ELSE RUN "MENU"  "AND WINS ********" 740 GOTO 1000 750 END 1000 INPUT "PLAY AGAIN";ANS$ 1010 INM(X)=X-8*INT((X-1)/8) 190 REM 200 REM MAIN PROGRAM 210 PRINT 220 PRINT 230 A=9 240 M=A 250 GOSUB 650 260 P=M 270 B=FNM(P+1) 280 M=B 290 GOSUB 650 300 Q=M 310 IF Q=FNM(B+4) THEN 360 320 C=FNM(B+4) 330 M=C 340 GOSUB 700 350 GOTO 730 360 C=FNM(B+2) 370 M=C 380 GOSUB 650 390 R=M 400 IF R=FNM(C+4) THEN 450 410 D=FNM(C+4) 420 M=D 430 GOSUB 700 440 GOTO 730 450 IF P/2<>INT(P/2) THEN 500 460 D=FNM(C+7) 470 M=D 480 GOSUB 700 490 GOTO 730 500 D=FNM(C+3) 510 M=D 520 GOSUB 650 530 S=M 540 IF S=FNM(D+4) THEN 590 550 E=FNM(D+4) 560 M=E 570 GOSUB 700 580 REM 590 E=FNM(D+6) 600 M=E 610 GOSUB 700 620 PRI1 PRINT CHR$(26):WIDTH 80 2 PRINT TAB(30);"TIC-TAC-TOE":PRINT 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 6 PRINT:PRINT:PRINT 8 PRINT "THE BOARD IS NUMBERED:" 10 PRINT " 1 2 3" 12 PRINT " 4 5 6" 14 PRINT " 7 8 9" 16 PRINT:PRINT:PRINT 20 DIM S(9) 50 INPUT"DO YOU WANT 'X' OR 'O'";C$ 55 IF C$="X"THEN 475 60 P$="O":Q$="X" 100 G=-1:H=1:IF S(5)<>0 THEN 103 102 S(5)=-1:GOTO 195 103 IF S(5)<>1 THEN 106 104 IF S(1)<>0 THEN 110 105 S(1)=-1:GOTO 195 106 IF S(2)=1 AND S(1)=0 THEN 181 107 IF S(4)=1 AND S(1)=0 THEN 181 108 IF S(6)=1 AND S(9)=0 THEN 189 109 IF S(8)=1 AND S(9)=0 THEN 189 110 IF G=1 THEN 112 111 GOTO 118 112 J=3*INT((M-1)/3)+1 113 IF 3*INT((M-1)/3)+1=M THEN K=1 114 IF 3*INT((M-1)/3)+2=M THEN K=2 115 IF 3*INT((M-1)/3)+3=M THEN K=3 116 GOTO 120 118 FOR J=1 TO 7 STEP 3:FOR K=1 TO 3 120 IF S(J)<>G THEN 130 122 IF S(J+2)<>G THEN 135 126 IF S(J+1)<>0 THEN 150 128 S(J+1)=-1:GOTO 195 130 IF S(J)=H THEN 150 131 IF S(J+2)<>G THEN 150 132 IF S(J+1)<>G THEN 150 133 S(J)=-1:GOTO 195 135 IF S(J+2)<>0 THEN 150 136 IF S(J+1)<>G THEN 150 138 S(J+2)=-1:GOTO 195 150 IF S(K)<>G THEN 160 152 IF S(K+6)<>G THEN 165 156 IF S(K+3)<>0 THEN 170 158 S(K+3)=-1:GOTO 195 160 IF S(K)=H THEN 170 161 IF S(K+6)<>G THEN 170 162 IF S(K+3)<>G THEN 170 163 S(K)=-1:GOTO 195 165 IF S(K+6)<>0 THEN 170 166 IF S(K+3)<>G THEN 170 168 S(K+6)=-1:GOTO 195 170 GOTO 450 171 IF S(3)=G AND S(7)=0 THEN 187 172 IF S(9)=G AND S(1)=0 THEN 181 173 IF S(7)=G AND S(3)=0 THEN 183 174 IF S(9)=0 AND S(1)=G THEN 189 175 IF G=-1 THEN G=1:H=-1:GOTO 110 176 IF S(9)=1 AND S(3)=0 THEN 182 177 FOR I=2 TO 9:IF S(I)<>0 THEN 179 178 S(I)=-1:GOTO 195 179 NEXT I 181 S(1)=-1:GOTO 195 182 IF S(1)=1 THEN 177 183 S(3)=-1:GOTO 195 187 S(7)=-1:GOTO 195 189 S(9)=-1 195 PRINT:PRINT"THE COMPUTER MOVES TO..." 202 GOSUB 1000 205 GOTO 500 450 IF G=1 THEN 465 455 IF J=7 AND K=3 THEN 465 460 NEXT K,J 465 IF S(5)=G THEN 171 467 GOTO 175 475 P$="X":Q$="O" 500 PRINT:INPUT"WHERE DO YOU MOVE";M 502 IF M=0 THEN PRINT"THANKS FOR THE GAME.":GOTO 2000 503 IF M>9 THEN 506 505 IF S(M)=0 THEN 510 506 PRINT"THAT SQUARE IS OCCUPIED.":PRINT:PRINT:GOTO 500 510 G=1:S(M)=1 520 GOSUB 1000 530 GOTO 100 1000 PRINT:FOR I=1 TO 9:PRINT" ";:IF S(I)<>-1 THEN 1014 1012 PRINT Q$" ";:GOTO 1020 1014 IF S(I)<>0 THEN 1018 1016 PRINT" ";:GOTO 1020 1018 PRINT P$" "; 1020 IF I<>3 AND I<>6 THEN 1050 1030 PRINT:PRINT"---+---+---" 1040 GOTO 1080 1050 IF I=9 THEN 1080 1060 PRINT"!"; 1080 NEXT I:PRINT:PRINT:PRINT 1095 FOR I=1 TO 7 STEP 3 1100 IF S(I)<>S(I+1)THEN 1115 1105 IF S(I)<>S(I+2)THEN 1115 1110 IF S(I)=-1 THEN 1350 1112 IF S(I)=1 THEN 1200 1115 NEXT I:FOR I=1 TO 3:IF S(I)<>S(I+3)THEN 1150 1130 IF S(I)<>S(I+6)THEN 1150 1135 IF S(I)=-1 THEN 1350 1137 IF S(I)=1 THEN 1200 1150 NEXT I:FOR I=1 TO 9:IF S(I)=0 THEN 1155 1152 NEXT I:GOTO 1400 1155 IF S(5)<>G THEN 1170 1160 IF S(1)=G AND S(9)=G THEN 1180 1165 IF S(3)=G AND S(7)=G THEN 1180 1170 RETURN 1180 IF G=-1 THEN 1350 1200 PRINT"YOU BEAT ME!! GOOD GAME.":GOTO 2000 1350 PRINT"I WIN, TURKEY!!!":GOTO 2000 1400 PRINT"IT'S A DRAW. THANK YOU." 2000 PRINT:INPUT "PLAY AGAIN";ANS$ 2005 PRINT:PRINT:PRINT 2010 IF LEFT$(ANS$,1)="Y" THEN FOR I=1 TO 9:S(I)=0:NEXT:GOTO 50 ELSE RUN "MENU" UT "PLAY AGAIN";ANS$ 2005 PRINT Q$" ";:GOTO 1020 1014 IF S(I)<>0 THEN 1018 1016 PRINT" ";:GOTO 1020 1018 PRINT P$" "; 1020 IF I<>3 AND I<>6 THEN 1050 1030 PRINT:PRINT"---+---+---" 1040 GOTO 1080 1050 IF I=9 THEN 1080 1060 PRINT"!"; 1080 NEXT I:PRINT:PRINT:PRINT 1095 FOR I=1 TO 7 STEP 3 1100 IF S(I)<>S(I+1)THEN 1115 1105 IF S(I)<>S(I+2)THEN 1115 1110 IF S(I)=-1 THEN 1350 1112 IF S(I)=1 THEN 1200 1115 NEXT I:FOR I=1 TO 3:IF S(I)<>S(I+3)THEN 1150 1130 IF S(I)<>S(I+6)THEN 1150 1135 IF S(I)=-1 THEN 1350 1137 IF S(I)=1 THEN 1200 1150 NEXT I:FOR I=1 TO 9:IF S(I)=0 THEN 1155 1152 NEXT I:GOTO 1400 1155 IF S(5)<>G THEN 1170 1160 IF S(1)=G AND S(9)=G THEN 1180 1165 IF S(3)=G AND S(7)=G THEN 1180 1170 RETURN 1180 IF G=-1 THEN 1350 1200 PRINT"YOU BEAT ME!! GOOD GAME.":GO!5 PRINT CHR$(26):WIDTH 80 6 DIM T(7,3) 10 PRINT TAB(33);"TOWERS":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 90 PRINT 100 REM*** INITIALIZE 110 FOR I1=0 TO 7:FOR I2=0 TO 3:T(I1,I2)=0:NEXT:NEXT 120 E=0 130 FOR D=1 TO 7 140 FOR N=1 TO 3 150 T(D,N)=0 160 NEXT N 170 NEXT D 180 PRINT "TOWERS OF HANOI PUZZLE.": PRINT 200 PRINT "YOU MUST TRANSFER THE DISKS FROM THE LEFT TO THE RIGHT" 205 PRINT "TOWER, ONE AT A TIME, NEVER PUTTING A LARGER DISK ON A" 210 PRINT "SMALLER DISK.": PRINT 215 INPUT "HOW MANY DISKS DO YOU WANT TO MOVE (7 IS MAX)";S 220 PRINT 230 M=0 240 FOR Q=1 TO 7 250 IF Q=S THEN 350 260 NEXT Q 270 E=E+1 280 IF E>2 THEN 310 290 PRINT "SORRY, BUT I CAN'T DO THAT JOB FOR YOU.": GOTO 215 310 PRINT "ALL RIGHT, WISE GUY, IF YOU CAN'T PLAY THE GAME RIGHT, I'LL" 320 PRINT "JUST TAKE MY PUZZLE AND GO HOME. SO LONG.": RUN "MENU" 340 REM *** STORE DISKS FROM SMALLEST TO LARGEST 350 PRINT "IN THIS PROGRAM, WE SHALL REFER TO DISKS BY NUMERICAL CODE." 355 PRINT "3 WILL REPRESENT THE SMALLEST DISK, 5 THE NEXT SIZE," 360 PRINT "7 THE NEXT, AND SO ON, UP TO 15. IF YOU DO THE PUZZLE WITH" 365 PRINT "2 DISKS, THEIR CODE NAMES WOULD BE 13 AND 15. WITH 3 DISKS" 370 PRINT "THE CODE NAMES WOULD BE 11, 13 AND 15, ETC. THE NEEDLES" 375 PRINT "ARE NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE WILL" 380 PRINT "START WITH THE DISKS ON NEEDLE 1, AND ATTEMPT TO MOVE THEM" 385 PRINT "TO NEEDLE 3." 390 PRINT: PRINT "GOOD LUCK!": PRINT 395 LINE INPUT "ENTER 'RETURN' TO START THE GAME. ";RESP$ 400 Y=7: D=15 420 FOR X=S TO 1 STEP -1 430 T(Y,1)=D: D=D-2: Y=Y-1 460 NEXT X 470 GOSUB 1230 480 PRINT:PRINT:PRINT "WHICH DISK WOULD YOU LIKE TO MOVE";:E=0 500 INPUT D 510 IF (D-3)*(D-5)*(D-7)*(D-9)*(D-11)*(D-13)*(D-15)=0 THEN 580 520 PRINT "ILLEGAL ENTRY... YOU MAY ONLY TYPE 3,5,7,9,11,13, OR 15." 530 E=E+1: IF E>1 THEN 560 550 GOTO 500 560 PRINT "STOP WASTING MY TIME. GO BOTHER SOMEONE ELSE.":RUN "MENU" 580 REM *** CHECK IF REQUESTED DISK IS BELOW ANOTHER  590 FOR R=1 TO 7 600 FOR C=1 TO 3 610 IF T(R,C)=D THEN 640 620 NEXT C: NEXT R 640 FOR Q=R TO 1 STEP -1 645 IF T(Q,C)=0 THEN 660 650 IF T(Q,C)1 THEN 780 750 PRINT "I'LL ASSUME YOU HIT THE WRONG KEY THIS TIME. BUT WATCH IT," 760 PRINT "I ONLY ALLOW ONE MISTAKE.": GOTO 705 780 PRINT "I TRIED TO WARN YOU, BUT YOU WOULDN'T LISTEN." 790 PRINT "BYE BYE, BIG SHOT.":RUN "MENU" 800 FOR R=1 TO 7 810 IF T(R,N)<>0 THEN 840 820 NEXT R 830 GOTO 880 835 REM *** CHECK IF DISK TO BE PLACED ON A LARGER ONE 840 IF D0 THEN 970 950 NEXT U 960 U=7: GOTO 980 965 REM *** MOVE DISK AND SET OLD LOCATION TO 0 970 U=U-1 980 T(U,N)=T(V,W): T(V,W)=0 995 REM *** PRINT OUT CURRENT STATUS 1000 GOSUB 1230 1018 REM *** CHECK IF DONE 1020 M=M+1 1030 FOR R=1 TO 7: FOR C=1 TO 2 1050 IF T(R,C)<>0 THEN 1090 1060 NEXT C: NEXT R 1080 GOTO 1120 1090 IF M<=128 THEN 480 1100 PRINT "SORRY, BUT I HAVE ORDERS TO STOP IF YOU MAKE MORE THAN" 1110 PRINT "128 MOVES.":RUN "MENU" 1120 IF M<>2^S-1 THEN 1140 1130 PRINT:PRINT "CONGRATULATIONS!!":PRINT 1140 PRINT "YOU HAVE PERFORMED THE TASK IN";M;"MOVES." 1150 PRINT: PRINT "TRY AGAIN (YES OR NO)";: INPUT A$ 1160 IF LEFT$(A$,1)="N" THEN 1390 1170 IF LEFT$(A$,1)="Y" THEN PRINT CHR$(26):GOTO 90 1180 PRINT: PRINT "'YES' OR 'NO' PLEASE";: INPUT A$: GOTO 1160 1230 REM *** PRINT SUBROUTINE 1235 PRINT CHR$(26):FOR XX=1 TO 7:PRINT:NEXT 1240 FOR K=1 TO 7 1250 Z=10 1260 FOR J=1 TO 3 1270 IF T(K,J)=0 THEN 1330 1280 PRINT TAB(Z-INT(T(K,J)/2)); 1290 FOR V=1 TO T(K,J) 1300 PRINT CHR$(22);"*";CHR$(22); 1310 NEXT V 1320 GOTO 1340 1330 PRINT TAB(Z);CHR$(22);"*";CHR$(22); 1340 Z=Z+21 1350 NEXT J 1360 PRINT 1370 NEXT K 1380 RETURN 1390 PRINT: PRINT "THANKS FOR THE GAME!": PRINT:RUN "MENU" ; 1340 Z=Z+21 1350 NEXT J 1360 PRINT 1370 NEXT K 1380 RETURN 1390 PRINT: PRINT "THANKS FOR THE GAME!": PRINT:R 1090 IF M<=128 THEN 480 1100 PRINT "SORRY, BUT I HAVE ORDERS TO STOP IF YOU MAKE MORE THAN" 1110 PRINT "128 MOVES.":RUN "MENU" 1120 IF M<>2^S-1 THEN 1140 1130 PRINT:PRINT "CONGRATULATIONS!!":PRINT 1140 PRINT "YOU HAVE PERFORMED THE TASK IN";M;"MOVES." 1150 PRINT: PRINT "TRY AGAIN (YES OR NO)";: INPUT A$ 1160 IF LEFT$(A$,1)="N" THEN 1390 1170 IF LEFT$(A$,1)="Y" THEN PRINT CHR$(26):GOTO 90 1180 PRINT: PRINT "'YES' OR 'NO' PLEASE";: INPUT A$: GOTO 1160 1230 REM *** PRINT SUBROUTINE 1235 PRINT CHR$(26):FOR XX=1 TO 7:PRINT:NEXT 1240 FOR K=1 TO 7 1250 Z=10 1260 FOR J=1 TO 3 1270 IF T(K,J)=0 THEN 1330 1280 PRINT TAB(Z-INT("0 RANDOMIZE 1 PRINT CHR$(26):WIDTH 80:PRINT TAB(33);"TRAIN":PRINT 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3 PRINT: PRINT: PRINT 4 PRINT "TIME - SPEED DISTANCE EXERCISE": PRINT 10 C=INT(25*RND(1))+40 15 D=INT(15*RND(1))+5 20 T=INT(19*RND(1))+20 25 PRINT " A CAR TRAVELING";C;"MPH CAN MAKE A CERTAIN TRIP IN" 30 PRINT D;"HOURS LESS THAN A TRAIN TRAVELING AT";T;"MPH." 33 PRINT 35 PRINT "HOW LONG DOES THE TRIP TAKE BY CAR"; 40 INPUT A 45 V=D*T/(C-T) 50 E=INT(ABS((V-A)*100/A)+.5) 55 IF E>5 THEN 70 60 PRINT "GOOD! ANSWER WITHIN";E;"PERCENT." 65 GOTO 80 70 PRINT "SORRY. YOU WERE OFF BY";E;"PERCENT." 80 PRINT "CORRECT ANSWER IS";V;"HOURS." 90 PRINT 95 PRINT "ANOTHER PROBLEM (YES OR NO)"; 100 INPUT A$ 105 PRINT 110 IF LEFT$(A$,1)="Y" THEN PRINT:GOTO 10 999 RUN "MENU"  95 PRINT "ANOTHER PROBLEM (YES OR NO)"; 100 INPUT A$ 105 PRINT 110 IF LEFT$0 RANDOMIZE 1 PRINT CHR$(26):WIDTH 80:PRINT TAB(34);"TRAP":PRINT 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3 PRINT:PRINT:PRINT 10 G=6 20 N=100 30 REM-TRAP 40 REM-STEVE ULLMAN, 8-1-72 50 PRINT " DO YOU WANT INSTRUCTIONS"; 60 INPUT Z$ 70 IF LEFT$(Z$,1)<>"Y" THEN 180 80 PRINT:PRINT "I AM THINKING OF A NUMBER BETWEEN 1 AND";N;CHR$(8);".":PRINT 90 PRINT "TRY TO GUESS MY NUMBER. ON EACH GUESS," 100 PRINT "YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP" 110 PRINT "MY NUMBER BETWEEN THE TWO NUMBERS. I WILL" 120 PRINT "TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY" 130 PRINT "NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF" 140 PRINT "MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS." 145 PRINT 150 PRINT "IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE" 160 PRINT "YOUR GUESS FOR BOTH YOUR TRAP NUMBERS." 165 PRINT 170 PRINT "YOU GET";G;"GUESSES TO GET MY NUMBER." 180 X=INT(N*RND(1))+1 190 FOR Q=1 TO G 200 PRINT 210 PRINT "GUESS #";Q; 220 INPUT A,B 230 IF A=B AND X=A THEN 400 240 IF A <= B THEN 260 250 GOSUB 360 260 IF A <= X AND X <= B THEN 320 270 IF XL(J) THEN 340 320 REM 330 GOTO 290 340 NEXT K 350 NEXT J 360 P=P+1 370 M1=L(P) 380 P=P+1 390 M2=L(P) 400 PRINT 420 PRINT "YOU: ";A$(M1),"COMPUTER: ";A$(M2) 430 N1=INT((M1-.5)/4) 440 N2=INT((M2-.5)/4) 450 IF N1>=N2 THEN 490 460 A1=A1+1 470 PRINT "THE COMPUTER WINS!!! YOU HAVE";B1;"AND THE COMPUTER HAS";A1; CHR$(8);"." 480 GOTO 540 490 IF N1=N2 THEN 530 500 B1=B1+1 510 PRINT "YOU WIN. YOU HAVE";B1;"AND THE COMPUTER HAS";A1;CHR$(8);"." 520 GOTO 540 530 PRINT "TIE. NO SCORE CHANGE." 540 IF L(P+1)=0 THEN 610 550 PRINT "DO YOU WANT TO CONTINUE"; 560 INPUT V$ 570 IF LEFT$(V$,1)="Y" THEN 360 580 IF LEFT$(V$,1)="N" THEN 650 590 PRINT "YES OR NO, PLEASE. "; 600 GOTO 540 610 PRINT 620 PRINT 630 PRINT "WE HAVE RUN OUT OF CARDS. FINAL SCORE: YOU: ";B1; 640 PRINT " THE COMPUTER: ";A1:PRINT 650 PRINT "THANKS FOR PLAYING. IT WAS FUN." 655 PRINT 660 DATA "S-2","H-2","C-2","D-2","S-3","H-3","C-3","D-3" 670 DATA "S-4","H-4","C-4","D-4","S-5","H-5","C-5","D-5" 680 DATA "S-6","H-6","C-6","D-6","S-7","H-7","C-7","D-7" 690 DATA "S-8"#,"H-8","C-8","D-8","S-9","H-9","C-9","D-9" 700 DATA "S-10","H-10","C-10","D-10","S-J","H-J","C-J","D-J" 710 DATA "S-Q","H-Q","C-Q","D-Q","S-K","H-K","C-K","D-K" 720 DATA "S-A","H-A","C-A","D-A" 999 RUN "MENU" "H-J","C-J","D-J" 710 DATA "S-Q","H-Q","PUTER HAS";A1; CHR$(8);"." 480 GOTO 540 490 IF N1=N2 THEN 530 500 B1=B1+1 510 PRINT "YOU WIN. YOU HAVE";B1;"AND THE COMPUTER HAS";A1;CHR$(8);"." 520 GOTO 540 530 PRINT "TIE. NO SCORE CHANGE." 540 IF L(P+1)=0 THEN 610 550 PRINT "DO YOU WANT TO CONTINUE"; 560 INPUT V$ 570 IF LEFT$(V$,1)="Y" THEN 360 580 IF LEFT$(V$,1)="N" THEN 650 590 PRINT "YES OR NO, PLEASE. "; 600 GOTO 540 610 PRINT 620 PRINT 630 PRINT "WE HAVE RUN OUT OF CARDS. FINAL SCORE: YOU: ";B1; 640 PRINT " THE COMPUTER: ";A1:PRINT 650 PRINT "THANKS FOR PLAYING. IT WAS FUN." 655 PRINT 660 DATA "S-2","H-2","C-2","D-2","S-3","H-3","C-3","D-3" 670 DATA "S-4","H-4","C-4","D-4","S-5","H-5","C-5","D-5" 680 DATA "S-6","H-6","C-6","D-6","S-7","H-7","C-7","D-7" 690 DATA "S-8"2 F$=" ## ## ##" 5 PRINT CHR$(26):WIDTH 80 10 PRINT TAB(32);"WEEKDAY":PRINT 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 100 PRINT "WEEKDAY IS A COMPUTER DEMONSTRATION THAT" 110 PRINT"GIVES FACTS ABOUT A DATE OF INTEREST TO YOU." 120 PRINT 130 PRINT "ENTER TODAY'S DATE IN THE FORM: 3,24,1979 "; 140 INPUT M1,D1,Y1 150 REM THIS PROGRAM DETERMINES THE DAY OF THE WEEK 160 REM FOR A DATE AFTER 1582 170 DEF FNA(A)=INT(A/4) 180 DIM T(12) 190 DEF FNB(A)=INT(A/7) 200 REM SPACE OUTPUT AND READ IN INITIAL VALUES FOR MONTHS. 210 FOR I= 1 TO 12 220 READ T(I) 230 NEXT I 240 PRINT"ENTER DAY OF BIRTH (OR OTHER DAY OF INTEREST)"; 250 INPUT M,D,Y 260 PRINT CHR$(26) 270 LET I1 = INT((Y-1500)/100) 280 REM TEST FOR DATE BEFORE CURRENT CALENDAR. 290 IF Y-1582 <0 THEN 1300 300 LET A = I1*5+(I1+3)/4 310 LET I2=INT(A-FNB(A)*7) 320 LET Y2=INT(Y/100) 330 LET Y3 =INT(Y-Y2*100) 340 LET A =Y3/4+Y3+D+T(M)+I2 350 LET B=INT(A-FNB(A)*7)+1 360 IF M > 2 THEN 470 370 IF Y3 = 0 THEN 440 380 LET T1=INT(Y-FNA(Y)*4) 390 IF T1 <> 0 THEN 470 400 IF B<>0 THEN 420 410 LET B=6 420 LET B = B-1 430 GOTO 470 440 LET A = I1-1 450 LET T1=INT(A-FNA(A)*4) 460 IF T1 = 0 THEN 400 470 IF B <>0 THEN 490 480 LET B = 7 490 IF (Y1*12+M1)*31+D1<(Y*12+M)*31+D THEN 550 500 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 530 510 PRINT M;"/";D;"/";Y;" WAS A "; 520 GOTO 570 530 PRINT M;"/";D;"/";Y;" IS A "; 540 GOTO 570 550 PRINT M;"/";D;"/";Y;" WILL BE A "; 560 REM PRINT THE DAY OF THE WEEK THE DATE FALLS ON. 570 IF B <>1 THEN 590 580 PRINT "SUNDAY." 590 IF B<>2 THEN 610 600 PRINT "MONDAY." 610 IF B<>3 THEN 630 620 PRINT "TUESDAY." 630 IF B<>4 THEN 650 640 PRINT "WEDNESDAY." 650 IF B<>5 THEN 670 660 PRINT "THURSDAY." 670 IF B<>6 THEN 690 680 GOTO 1250 690 IF B<>7 THEN 710 700 PRINT "SATURDAY." 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120 720 LET I5=Y1-Y 730 PRINT 740 LET I6=M1-M 750 LET I7=D1-D 760 IF I7>=0 THEN 790 770 LET I6= I6-1 780 LET I7=I7+30  790 IF I6>=0 THEN 820 800 LET I5=I5-1 810 LET I6=I6+12 820 IF I5<0 THEN 1310 830 IF I7 <> 0 THEN 850 835 IF I6 <> 0 THEN 850 840 PRINT"***HAPPY BIRTHDAY***" 850 PRINT " "," ","YEARS","MONTHS","DAYS" 855 PRINT " "," ","-----","------","----" 860 PRINT "YOUR AGE (IF BIRTHDATE) ",:PRINT USING F$;I5,I6,I7 870 LET A8 = (I5*365)+(I6*30)+I7+INT(I6/2) 880 LET K5 = I5 890 LET K6 = I6 900 LET K7 = I7 910 REM CALCULATE RETIREMENT DATE. 920 LET E = Y+65 930 REM CALCULATE TIME SPENT IN THE FOLLOWING FUNCTIONS. 940 LET F = .35 950 PRINT "YOU HAVE SLEPT ", 960 GOSUB 1370 970 LET F = .17 980 PRINT "YOU HAVE EATEN ", 990 GOSUB 1370 1000 LET F = .23 1010 IF K5 > 3 THEN 1040 1020 PRINT "YOU HAVE PLAYED", 1030 GOTO 1080 1040 IF K5 > 9 THEN 1070 1050 PRINT "YOU HAVE PLAYED/STUDIED", 1060 GOTO 1080 1070 PRINT "YOU HAVE WORKED/PLAYED", 1080 GOSUB 1370 1085 GOTO 1530 1090 PRINT "YOU HAVE RELAXED ",:PRINT USING F$;K5,K6,K7 1100 PRINT 1110 PRINT TAB(16);"*** YOU MAY RETIRE IN";E;" ***" 1120 PRINT 1140 PRINT 1200 LINE INPUT "ENTER 'RETURN' TO DISPLAY THE MENU."; RESP$ 1210 PRINT 1220 PRINT 1230 PRINT 1240 RUN "MENU" 1250 IF D=13 THEN 1280 1260 PRINT "FRIDAY." 1270 GOTO 710 1280 PRINT "FRIDAY THE THIRTEENTH---BEWARE!" 1290 GOTO 710 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXXXII. " 1310 GOTO 1140 1320 REM TABLE OF VALUES FOR THE MONTHS TO BE USED IN CALCULATIONS. 1330 DATA 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 1340 REM THIS IS THE CURRENT DATE USED IN THE CALCULATIONS. 1350 REM THIS IS THE DATE TO BE CALCULATED ON. 1360 REM CALCULATE TIME IN YEARS, MONTHS, AND DAYS 1370 LET K1=INT(F*A8) 1380 LET I5 = INT(K1/365) 1390 LET K1 = K1- (I5*365) 1400 LET I6 = INT(K1/30) 1410 LET I7 = K1 -(I6*30) 1420 LET K5 = K5-I5 1430 LET K6 =K6-I6 1440 LET K7 = K7-I7 1450 IF K7>=0 THEN 1480 1460 LET K7=K7+30 1470 LET K6=K6-1 1480 IF K6>0 THEN 1510 1490 LET K6=K6+12 1500 LET K5=K5-1 1510 PRINT USING F$;I5,I6,I7 1520 RETURN 1530 IF K6=12 THEN 1550 1540 GOTO 1090 1550 LET K5=K$5+1 1560 LET K6=0 1570 GOTO 1090 1580 REM 1590 RUN "MENU" 0 RETURN 1530 IF K6=12 THEN 1550 1540 GOTO 1090 1550 LET K5=K 1250 IF D=13 THEN 1280 1260 PRINT "FRIDAY." 1270 GOTO 710 1280 PRINT "FRIDAY THE THIRTEENTH---BEWARE!" 1290 GOTO 710 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXXXII. " 1310 GOTO 1140 1320 REM TABLE OF VALUES FOR THE MONTHS TO BE USED IN CALCULATIONS. 1330 DATA 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 1340 REM THIS IS THE CURRENT DATE USED IN THE CALCULATIONS. 1350 REM THIS IS THE DATE TO BE CALCULATED ON. 1360 REM CALCULATE TIME IN YEARS, MONTHS, AND DAYS 1370 LET K1=INT(F*A8) 1380 LET I5 = INT(K1/365) 1390 LET K1 = K1- (I5*365) 1400 LET I6 = INT(K1/30) 1410 LET I7 = K1 -(I6*30) 1420 LET K5 = K5-I5 1430 LET K6 =K6-I6 1440 LET K7 = K7-I7 1450 IF K7>=0 THEN 1480 1460 LET K7=K7+30 1470 LET K6=K6-1 1480 IF K6>0 THEN 1510 1490 LET K6=K6+12 1500 LET K5=K5-1 1510 PRINT USING F$;I5,I6,I7 1520 RETURN 1530 IF K6=12 THEN 1550 1540 GOTO 1090 1550 LET K5=K0 RANDOMIZE 1 PRINT CHR$(26):WIDTH 80 2 PRINT TAB(33);"WORD":PRINT 3 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 4 PRINT: PRINT: PRINT 5 DIM S(7),A(7),L(7),D(7),P(7) 10 PRINT "I AM THINKING OF A WORD -- YOU GUESS IT. I WILL GIVE YOU" 15 PRINT "CLUES TO HELP YOU GET IT.":PRINT 16 PRINT "TO QUIT, ENTER 'QUIT' FOR YOUR GUESS.":PRINT 17 PRINT "GOOD LUCK!":PRINT:PRINT 20 REM 30 PRINT: PRINT: PRINT "YOU ARE STARTING A NEW GAME..." 35 RESTORE 40 READ N 50 C=INT(RND(1)*N+1) 60 FOR I=1 TO C 70 READ S$ 80 NEXT I 90 G=0 95 S(0)=LEN(S$) 100 FOR I=1 TO LEN(S$): S(I)=ASC(MID$(S$,I,1)): NEXT I 110 FOR I=1 TO 5 120 A(I)=45 130 NEXT I 140 FOR J=1 TO 5 144 P(J)=0 146 NEXT J 150 PRINT "GUESS A FIVE LETTER WORD"; 160 INPUT L$ 165 IF L$="QUIT" THEN RUN "MENU" 170 G=G+1 172 IF S$=G$ THEN 500 173 FOR I=1 TO 7: P(I)=0: NEXT I 175 L(0)=LEN(L$) 180 FOR I=1 TO LEN(L$): L(I)=ASC(MID$(L$,I,1)): NEXT I 190 IF L(1)=63 THEN 300 200 IF L(0)<>5 THEN 400 205 M=0: Q=1 210 FOR I=1 TO 5 220 FOR J=1 TO 5 230 IF S(I)<>L(J) THEN 260 231 P(Q)=L(J) 232 Q=Q+1 233 IF I<>J THEN 250 240 A(J)=L(J) 250 M=M+1 260 NEXT J 265 NEXT I 270 A(0)=5 272 P(0)=M 275 A$="": FOR I=1 TO A(0): A$=A$+CHR$(A(I)): NEXT I 277 P$="": FOR I=1 TO P(0): P$=P$+CHR$(P(I)): NEXT I 280 PRINT "THERE WERE";M;"MATCHES AND THE COMMON LETTERS WERE...";P$ 285 PRINT "FROM THE EXACT LETTER MATCHES, YOU KNOW................";A$ 286 IF A$=S$ THEN 500 287 IF M>1 THEN 289 288 PRINT: PRINT "IF YOU GIVE UP, TYPE '?' FOR YOUR NEXT GUESS." 289 PRINT 290 GOTO 150 300 S$="": FOR I=1 TO 7: S$=S$+CHR$(S(I)): NEXT I 310 PRINT "THE SECRET WORD IS ";S$: PRINT 320 GOTO 30 400 PRINT "YOU MUST GUESS A 5 LETTER WORD. START AGAIN." 410 PRINT: G=G-1: GOTO 150 500 PRINT "YOU HAVE GUESSED THE WORD. IT TOOK";G;"GUESSES!": PRINT 510 INPUT "WANT TO PLAY AGAIN";Q$ 520 IF LEFT$(Q$,1)="Y" THEN 30 530 DATA 12,"DINKY","SMOKE","WATER","GRASS","TRAIN","MIGHT","FIRST" 540 DATA "CANDY","CHAMP","WOULD","CLUMP","DOPEY" 999 RUN "MENU"  12,"DINKY This is the release date of the disk. MENU DOC ANDY-500BAS ANDY-500DOC FASTLIFEASM FASTLIFECOM FASTLIFEDOC FSTLIFE DOC QUBIC BAS QUEEN BAS ROCKET BAS " ROULETTEBAS &RUSROU BAS .SALVO BAS /#SINEWAVEBAS 8QUEEN .BAS 2F F1 4480 35 ROCKET .BAS B8 0D 3456 27 ROULETTE.BAS 3F 28 7296 57 RUSROU .BAS 2F B1 896 7 SALVO .BAS B7 5C 9088 71 SINEWAVE.BAS BF 55 640 5 SLALOM .BAS 8E E2 5120 40 SLOTS .BAS DF 70 2944 23 SPLAT .BAS F8 64 6016 47 STARS .BAS AF AA 1792 14 STARTREK.BAS 2F 1C 23424 183 STARTREK.DOC 51 A9 5248 41 TREKINS  Fog Library Disk FOG-CPM.063 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. MBasic games for most CP/M computers. Filename Description -06-00 .86 This is the release date of the disk%. -CPM063 .DOC This is the description of the disk contents. MENU .BAS 9226 1K [MBasic games 1 of 24] Modify this menu to include other games or the delete those you don't want to play. MENU .DOC 7F73 1K [MBasic games 2 of 24] QUBIC .BAS 2964 8K [MBasic games 3 of 24] Cubic tic - tac - toe game. QUEEN .BAS 2FF1 5K [MBasic games 4 of 24] Chess queen move game. ROCKET .BAS B80D 4K [MBasic games 5 of 24] Lunar landing game. ROULETTE.BAS 3F28 8K [MBasic games 6 of 24] The favorite casino game. RUSROU .BAS 2FB1 1K [MBasic games 7 of 24] Russian Roulette game. SALVO .BAS B75C 9K [MBasic games 8 of 24] Battleship game. SINEWAVE.BAS BF55 1K [MBasic games 9 of 24] Game by David Ahl (Creative Computing). SLALOM .BAS 8EE2 5K  [MBasic games 10 of 24] Olympic skier game. SLOTS .BAS DF70 3K [MBasic games 11 of 24] One armed bandit game. SPLAT .BAS F864 6K [MBasic games 12 of 24] Parachute jump game. STARS .BAS AFAA 2K [MBasic games 13 of 24] Number guessing game. STOCK .BAS 3D4F 8K [MBasic games 14 of 24] Stock market simulation game. SYNONYM .BAS 9AAB 3K [MBasic games 15 of 24] Vocabulary game. TARGET .BAS B701 3K [MBasic games 16 of 24] Test your phasor accuracy. TICTAC1 .BAS E4C2 2K [MBasic games 17 of 24] One version of this game. TICTAC2 .BAS B3E7 4K [MBasic games 18 of 24] Another version of the game. TOWERS .BAS 1208 5K [MBasic games 19 of 24] Tower of Hanoi game. TRAIN .BAS E41D 1K [MBasic games 20 of 24]  Time and distance guessing game. TRAP .BAS C637 2K [MBasic games 21 of 24] Number guessing game. WAR .BAS B489 3K [MBasic games 22 of 24] Card game of War. WEEKDAY .BAS 65D7 5K [MBasic games 23 of 24] This game gives facts about the days you input. WORD .BAS 94F3 2K [MBasic games 24 of 24] Word guessing game. ANDY-500.BAS C27A 5K [Andy-500 1 of 2] MBasic game where you steer your car down a roadway. ANDY-500.DOC CCB8 1K [Andy-500 2 of 2] FASTLIFE.COM 82B0 2K [Fast LIFE 1 of 4] A Z80 (Osborne 1) version of a game which shows cellular generation and growth. Number pad replaces joy-stick. ASM source code is included so you can modify the program. FASTLIFE.ASM C8B2 6K [Fast LIFE 2 of 4] FASTLIFE.DOC 9D76 1K [Fast LIFE 3 of 4] FSTLIFE .DOC D9C6 1K  [Fast LIFE 4 of 4] STARTREK.BAS 2F1C 23K [StarTrek 1 of 3] You pilot the Enterprise and fight Klingons. Mbasic game. STARTREK.DOC 51A9 6K [StarTrek 2 of 3] TREKINS .BAS D722 6K [StarTrek 3 of 3] STARTRK2.BAS FAC1 22K Another version in a galaxy far away. Mbasic game. o you can modify the program. FASTLIFE.ASM C8B2 6K [Fast LIFE 2 of 4] FASTLIFE.DOC 9D76 1K [Fast LIFE 3 of 4] FSTLIFE .DOC D9C6 1K &'