PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #203)

[PCjs Machine "ibm5150"]

Waiting for machine "ibm5150" to load....

Information about “GAME SERIES NO 14”

This entry in our Game series offers you ADVEN1,a version of the classic
Adventure, and a related game, SURVIVAL, both should present you with a
challenge.  The classic Lunar Lander is here also, accompanied by an
ASTEROID game to keep you space-jockeys happy.  Many other challenges
await you here, try it and see!

System Requirements: Some programs require BASIC, color graphics.

How to Start:  For instructions on running BASIC programs, please refer
to the GETTING STARTED section in this catalog.

File Descriptions:

ASTEROID BAS  Asteroid Pilot by Dorn Stickle & R A Bower (Color req)
ADVEN1   BAS  Adventure by Scott Adams
SLOTCOLR BAS  Color graphics slotmachine  (Modified by Arnold Thomson)
NEWCHESS BAS  Chess game by M. C. Rakaska  (Modified by S. W. Huggins)
MOON     BAS  Lunar lander  (Color graphics) (Allan & Andrew Lee)
HINT3    DOC  Part of ADVENT1.BAS
HINT2    DOC  Part of ADVENT1.BAS
HINT1    DOC  Part of ADVENT1.BAS
FLY      BAS  Simple fly swatting game  (Color graphics)
BLESS    BAS  God Bless America  (With flag display)
SOLITAIR BAS  Klondyke solitaire  (Jeff Littlefield, Ken Handzik)
SURVIVAL BAS  Space adventure-like game  (Allan and Andrew Lee)
TRAILER  BAS  Trailer for rent
TRUMPET  BAS  Trumpeters Lullaby  (Leroy Anderson)
WHEEL    BAS  Wheel of Fortune  (David Lien)
WELLTEMP BAS  Praeludium I from The Well-Tempered Clavier by J S Bach
WORDPLAY BAS  Generates sentences from lists of nouns,adjectives,verbs

ADVEN1.BAS

30 IL=60:CL=151:NL=59:RL=33:MX=5:AR=11:TT=13:LN=3:LT=125:ML=71:TR=3
31 DIM NV(1),C0%(151),C1%(151),C2%(151),C3%(151),C4%(151),C5%(151),C6%(151),C7%(151)
32 DIM NV$(59,1),IA$(60),IA(60),RS$(33),RM(33,5),MS$(71),NT$(1),I2(60)
43 SCREEN 0,0,0,0:COLOR 7,0,0:WIDTH 80:RESET
44 KEY OFF:KEY 1,"LIST ":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34)+"B:":KEY 4,"SAVE"+CHR$(34)+"B:":KEY 5,"GOSUB ":KEY 6,"RETURN":KEY 7,"FILES "+CHR$(34)+"B:*.*":KEY 8,"EDIT ":KEY 9,"CLS":KEY 10,"SYSTEM"
45 DEF SEG=&H40:RANDOMIZE PEEK(&H6D)*256!+PEEK(&H6C)-32768!
79 LOCATE ,,0:CLS:GOTO 100
80 GOSUB 99:REM single character input, lower case converted to uppercase
81 IN$=INKEY$:IF IN$="" THEN 81 ELSE SOUND 1000,1
82 IF ASC(IN$)=27 THEN RUN
83 IF ASC(IN$)>96 THEN IN$=CHR$(ASC(IN$)-32):REM Lower case to upper case.
84 RETURN
96 GOSUB 99:LOCATE 24,1,0:PRINT"************************** ";:COLOR 18,0:PRINT"Press any key to continue";:COLOR 7,0:PRINT" **************************";:BEEP
97 IN$=INKEY$:IF IN$="" THEN 97 ELSE CLS:SOUND 1000,1:RETURN
99 IN$=INKEY$:IF IN$<>"" THEN 99 ELSE LOCATE ,,1:RETURN
100 REM
150 X=Y=Z:K=R=V:N=LL=F:TP$=K$:W=IP=P:GOSUB 190:GOSUB 2210 ' *****
160 GOSUB 96
180 CLS:GOTO 350
190 CLS:LOCATE ,28:COLOR 0,7:PRINT" W E L C O M E   T O ";:COLOR 7,0:PRINT:LOCATE 3,27:COLOR 0,7:PRINT" A D V E N T U R E - 1 ";:COLOR 7,0:PRINT
200 LOCATE 7,1:PRINT"The object of your adventure is to find treasures and return them
210 PRINT"to the proper place for you to accumulate points.  I'm your clone.  Give me
220 PRINT"commands that consist of a verb & noun, i.e. GO EAST, TAKE KEY, CLIMB TREE,
230 PRINT"SAVE GAME, TAKE INVENTORY, FIND AXE, etc.":PRINT
240 PRINT"You'll need some special items to do some things, but I'm sure that you'll be
250 PRINT"a good adventurer and figure these things out (which is most of the fun of
260 PRINT"this game).":PRINT
270 PRINT"Note that going in the opposite direction won't always get you back to where
280 PRINT"you were.":PRINT:PRINT:A$="HAPPY ADVENTURING!!!":LOCATE ,40-((LEN(A$))/2):PRINT A$
285 LOCATE 24,31:COLOR 18:PRINT" < INITIALIZING > ";:COLOR 7:
290 RETURN
350 R=AR:LX=LT:DF=0:SF=0:PRINT:PRINT "Use saved game (Y or N)? ";:GOSUB 80:K$=IN$:PRINT K$
360 PRINT:IF LEFT$(K$,1) <> "Y" THEN CLS:GOTO 420
370 PRINT"Is previously saved game now on the disk in drive B:? ";:GOSUB 80:K$=IN$:PRINT K$:IF LEFT$(K$,1) <> "Y" THEN 350
380 OPEN "B:ADVEN-1.DAT" FOR INPUT AS 1
390 INPUT#1,SF,LX,DF,R
400 FOR X=0 TO IL:INPUT#1,IA(X):NEXT X
410 CLOSE 1:CLS
420 LOCATE ,,0:GOSUB 600:GOTO 490
430 PRINT:BEEP:INPUT "Tell me what to do";TP$:PRINT:GOSUB 500
440 IF F THEN PRINT "You use word(s) I don't know.!":GOTO 430
450 GOSUB 760:IF IA(9)=-1 THEN LX=LX-1:GOTO 470
460 GOTO 490
470 IF LX<0 THEN PRINT "light has run out!":IA(9)=0:GOTO 490
480 IF LX<25 THEN PRINT"light runs out in";LX;"turns!"
490 NV(0)=0:GOSUB 760:GOTO 430
500 K=0:NT$(0)="":NT$(1)=""
510 FOR X=1 TO LEN(TP$):K$=MID$(TP$,X,1):IF K$=" " THEN K=1:GOTO 530
520 NT$(K)=LEFT$(NT$(K)+K$,LN)
530 NEXT X:FOR X=0 TO 1:NV(X)=0:IF NT$(X)="" THEN 590
540 FOR Y=0 TO NL:K$=NV$(Y,X):IF LEFT$(K$,1)="*" THEN K$=MID$(K$,2)
550 IF X=1 AND Y<7 THEN K$=LEFT$(K$,LN)
560 IF NT$(X)=K$ THEN NV(X)=Y:GOTO 580
570 NEXT Y:GOTO 590
580 IF LEFT$(NV$(NV(X),X),1)="*" THEN NV(X)=NV(X)-1:GOTO 580
590 NEXT X:F=NV(0)<1 OR LEN(NT$(1))>0 AND NV(1)<1:RETURN
600 IF DF THEN IF IA(9)<>-1 AND IA(9)<>R THEN PRINT "I can't see.  It's too dark!":RETURN
610 K=-1:IF LEFT$(RS$(R),1)="*" THEN PRINT MID$(RS$(R),2);:GOTO 630
620 PRINT "I'm in a ";RS$(R);
630 FOR Z=0 TO IL:IF K THEN IF IA(Z)=R THEN PRINT :PRINT :PRINT "VISIBLE ITEMS HERE:":K=0
640 GOTO 690
650 TP$=IA$(Z):IF RIGHT$(TP$,1)<>"/" THEN RETURN
660 FOR W=LEN(TP$)-1 TO 1 STEP -1:IF MID$(TP$,W,1)="/" THEN TP$=LEFT$(TP$,W-1):RETURN
670 NEXT W
680 RETURN
690 IF IA(Z)<>R THEN 720
700 GOSUB 650:IF POS(0)+LEN(TP$)+3>39 THEN PRINT
710 PRINT TP$;".  ";
720 NEXT:PRINT
730 K=-1:FOR Z=0 TO 5:IF K THEN IF RM(R,Z)<>0 THEN PRINT :PRINT "Obvious exits: ":K=0
740 IF RM(R,Z)<>0 THEN PRINT NV$(Z+1,1);" ";
750 NEXT :PRINT :PRINT :RETURN
760 F2=-1:F=-1:F3=0:IF NV(0)=1 AND NV(1)<7 THEN 1240
770 FOR X=0 TO CL:V=INT(C0%(X)/150):IF NV(0)=0 THEN IF V<>0 THEN RETURN
780 IF NV(0)<>V THEN 830
790 N=C0%(X)-V*150
800 IF NV(0)=0 THEN F=0:GOTO 820
810 GOTO 840
820 IF INT(RND(1)*100+1)<=N THEN 850
830 NEXT X:GOTO 1760
840 IF N<>NV(1) AND N<>0 THEN 830
850 F2=-1:F=0:F3=-1:FOR Y=1 TO 5:ON Y GOTO 860,870,880,890,900
860 W=C1%(X):GOTO 910
870 W=C2%(X):GOTO 910
880 W=C3%(X):GOTO 910
890 W=C4%(X):GOTO 910
900 W=C5%(X):GOTO 910
910 LL=INT(W/20):K=W-LL*20:F1=-1
920 ON K+1 GOTO 1110,990,1010,1030,1050,1060,1070,1080,1090,1100,950,970
930 IF K<12 THEN 950
940 ON K-11 GOTO 1000,1020,1040
950 F1=-1:FOR Z=0 TO IL:IF IA(Z)=-1 THEN 1110
960 NEXT :F1=0:GOTO 1110
970 F1=0:FOR Z=0 TO IL:IF IA(Z)=-1 THEN 1110
980 NEXT :F1=-1:GOTO 1110
990 F1=IA(LL)=-1:GOTO 1110  '  *****
1000 F1=IA(LL)<>-1 AND IA(LL)<>R:GOTO 1110
1010 F1=IA(LL)=R:GOTO 1110  '  *****
1020 F1=IA(LL)<>0:GOTO 1110
1030 F1=IA(LL)=R OR IA(LL)=-1:GOTO 1110 '  *****
1040 F1=IA(LL)=0:GOTO 1110  '  *****
1050 F1=R=LL:GOTO 1110	'  *****
1060 F1=IA(LL)<>R:GOTO 1110
1070 F1=IA(LL)<>-1:GOTO 1110
1080 F1=R<>LL:GOTO 1110
1090 F1=SF AND INT(2^LL+.5):F1=F1<>0:GOTO 1110
1100 F1=SF AND INT(2^LL+.5):F1=F1=0  '  *****
1110 F2=F2 AND F1:IF F2 THEN NEXT Y:GOTO 1130
1120 GOTO 830
1130 IP=0:FOR Y=1 TO 4:K=INT((Y-1)/2+6):ON Y GOTO 1140,1150,1160,1170
1140 AC=INT(C6%(X)/150):GOTO 1180
1150 AC=C6%(X)-INT(C6%(X)/150)*150:GOTO 1180
1160 AC=INT(C7%(X)/150):GOTO 1180
1170 AC=C7%(X)-INT(C7%(X)/150)*150
1180 IF AC>101 THEN 1230
1190 IF AC=0 THEN 1720
1200 IF AC<52 THEN PRINT MS$(AC):GOTO 1720
1210 ON AC-51 GOTO 1340,1380,1450,1470,1480,1490,1500,1470,1520,1540,1550
1220 ON AC-62 GOTO 1560,1580,1590,1640,1680,1690,1700,1710,1390,1460
1230 PRINT MS$(AC-50):GOTO 1720
1240 L=DF:IF L THEN L=DF AND IA(9)<>R AND IA(9)<>-1:GOTO 1260
1250 GOTO 1270
1260 IF L THEN PRINT "Dangerous to move in the dark!"
1270 IF NV(1)<1 THEN PRINT "Give me a direction too.":GOTO 1800
1280 K=RM(R,NV(1)-1)
1290 IF K>=1 THEN 1320
1300 IF L THEN PRINT "I fell down and broke my neck.":K=RL:DF=0:GOTO 1320
1310 PRINT"I can't go in that direction.":GOTO 1800
1320 IF NOT L THEN CLS
1330 R=K:GOSUB 600:GOTO 1800
1340 L=0:FOR Z=1 TO IL:IF IA(Z)=-1 THEN L=L+1
1350 NEXT Z
1360 IF L>=MX THEN PRINT "I've too much to carry!":GOTO 1730
1370 GOSUB 1810:IA(P)=-1:GOTO 1720
1380 GOSUB 1810:IA(P)=R:GOTO 1720
1390 PRINT "Is disk drive B: ready to receive the saved game? ";:GOSUB 80:K$=IN$:PRINT K$:IF LEFT$(K$,1)<>"Y" THEN 1440
1410 OPEN "B:ADVEN-1.DAT" FOR OUTPUT AS 1
1420 PRINT#1,SF:PRINT#1,LX:PRINT#1,DF:PRINT#1,R
1430 FOR W=0 TO IL:PRINT#1,IA(W):NEXT W:CLOSE 1
1440 PRINT:GOTO 1720
1450 GOSUB 1810:R=P:GOTO 1720
1460 GOSUB 1810:L=P:GOSUB 1810:Z=IA(P):IA(P)=IA(L):IA(L)=Z:GOTO 1720
1470 GOSUB 1810:IA(P)=0:GOTO 1720
1480 DF=-1:GOTO 1720
1490 DF=0:GOTO 1720
1500 GOSUB 1810
1510 SF=INT(.5+2^P) OR SF:GOTO 1720
1520 GOSUB 1810
1530 SF=SF AND NOT INT(.5+2^P):GOTO 1720
1540 PRINT"I'm dead...":R=RL:DF=0:GOTO 1580
1550 GOSUB 1810:L=P:GOSUB 1810:IA(L)=P:GOTO 1720
1560 PRINT "The game is now over.":PRINT"Another game? ";:GOSUB 80:K$=IN$:PRINT K$:IF LEFT$(K$,1)="N" THEN 9999
1570 FOR X=0 TO IL:IA(X)=I2(X):NEXT :GOTO 350
1580 GOSUB 600:GOTO 1720
1590 L=0:FOR Z=1 TO IL:IF IA(Z)=TR THEN IF LEFT$(IA$(Z),1)="*" THEN L=L+1
1600 NEXT Z:PRINT"I've stored";L;"treasures.  On a scale
1610 PRINT"of 0 to 100, that rates a";INT(L/TT*100);"."
1620 IF L=TT THEN PRINT "Well done. ":GOTO 1560
1630 GOTO 1720
1640 PRINT"I'm carrying:":K$="Nothing!":FOR Z=0 TO IL:IF IA(Z)<>-1 THEN 1670
1650 GOSUB 650:IF LEN(TP$)+POS(0)>39 THEN PRINT
1660 PRINT TP$;".",;:K$=""
1670 NEXT :PRINT K$:GOTO 1720
1680 P=0:GOTO 1510
1690 P=0:GOTO 1530
1700 LX=LT:IA(9)=-1:GOTO 1720
1710 CLS:GOTO 1720
1720 NEXT Y
1730 IF NV(0)<>0 THEN 1760
1740 GOTO 830
1760 IF NV(0)=0 THEN 1800
1770 GOSUB 1900
1780 IF F THEN PRINT "I don't understand your command.":GOTO 1800
1790 IF NOT F2 THEN PRINT "I can't do that yet.":GOTO 1800
1800 RETURN
1810 IP=IP+1
1820 ON IP GOTO 1830,1840,1850,1860,1870
1830 W=C1%(X):GOTO 1880
1840 W=C2%(X):GOTO 1880
1850 W=C3%(X):GOTO 1880
1860 W=C4%(X):GOTO 1880
1870 W=C5%(X):GOTO 1880
1880 P=INT(W/20):M=W-P*20:IF M<>0 THEN 1810
1890 RETURN
1900 IF NV(0)<>10 AND NV(0)<>18 OR F3 THEN 2120
1910 IF NV(1)=0 THEN PRINT "What?":GOTO 2060
1920 IF NV(0)<>10 THEN 1950
1930 L=0:FOR Z=0 TO IL:IF IA(Z)=-1 THEN L=L+1
1940 NEXT :IF L>=MX THEN PRINT "I've too much to carry!":GOTO 2060
1950 K=0:FOR X=0 TO IL:IF RIGHT$(IA$(X),1)<>"/" THEN 2070
1960 LL=LEN(IA$(X))-1:TP$=MID$(IA$(X),1,LL):FOR Y=LL TO 2 STEP -1
1970 IF MID$(TP$,Y,1)<>"/" THEN NEXT Y:GOTO 2070
1980 TP$=LEFT$(MID$(TP$,Y+1),LN)
1990 IF TP$<>NV$(NV(1),1) THEN 2070
2000 IF NV(0)=10 THEN 2030
2010 IF IA(X)<>-1 THEN K=1:GOTO 2070
2020 IA(X)=R:K=3:GOTO 2050
2030 IF IA(X)<>R THEN K=2:GOTO 2070
2040 IA(X)=-1:K=3
2050 PRINT"OK, "
2060 F=0:RETURN
2070 NEXT X
2080 IF K=1 THEN PRINT "I'm not carrying it!"
2090 IF K=2 THEN PRINT "I don't see it here."
2100 IF K=0 THEN IF NOT F3 THEN PRINT "It's beyond my power to do that.":F=0
2110 IF K<>0 THEN F=0
2120 RETURN
2210 FOR X=0 TO CL STEP 2:Y=X+1
2220 READ C0%(X),C1%(X),C2%(X),C3%(X),C4%(X),C5%(X),C6%(X),C7%(X)
2230 READ C0%(Y),C1%(Y),C2%(Y),C3%(Y),C4%(Y),C5%(Y),C6%(Y),C7%(Y):NEXT X
2240 FOR X=0 TO NL STEP 10:FOR Y=0 TO 1
2250 READ NV$(X,Y),NV$(X+1,Y),NV$(X+2,Y),NV$(X+3,Y),NV$(X+4,Y),NV$(X+5,Y)
2260 READ NV$(X+6,Y),NV$(X+7,Y),NV$(X+8,Y),NV$(X+9,Y):NEXT Y,X
2270 FOR X=0 TO RL:READ RM(X,0),RM(X,1),RM(X,2),RM(X,3),RM(X,4),RM(X,5),RS$(X):NEXT
2280 FOR X=0 TO ML:READ MS$(X):NEXT X
2290 FOR X=0 TO IL:READ IA$(X),IA(X):I2(X)=IA(X):NEXT X:RETURN
2310 DATA 75,161,386,160,200,0,17612,0
2320 DATA 10,401,420,400,146,0,1852,8850
2330 DATA 8,421,0,0,0,0,2011,0
2340 DATA 8,521,520,260,0,0,2609,7800
2350 DATA 100,108,760,820,420,100,8312,9064
2360 DATA 100,484,0,0,0,0,5613,0
2370 DATA 5,141,140,20,246,0,6062,0
2380 DATA 5,406,426,400,442,146,7845,0
2390 DATA 8,482,152,0,0,0,2311,0
2400 DATA 100,104,0,0,0,0,8550,0
2410 DATA 50,161,246,160,1100,0,7259,7800
2420 DATA 100,148,140,940,500,0,9062,9900
2430 DATA 30,841,426,406,400,0,7845,0
2440 DATA 50,542,141,0,0,0,10504,9150
2450 DATA 100,248,642,720,640,700,8005,7950
2460 DATA 100,248,542,1040,540,0,8005,0
2470 DATA 100,28,49,20,40,0,6360,8700
2480 DATA 100,288,260,280,0,0,7860,9150
2490 DATA 100,248,240,0,0,0,9660,0
2500 DATA 100,269,260,0,0,0,16558,17357
2510 DATA 100,28,48,20,40,0,4110,9000
2520 DATA 4366,22,0,0,0,0,6900,0
2530 DATA 4374,0,0,0,0,0,9750,0
2540 DATA 4404,682,0,0,0,0,6900,0
2550 DATA 4407,82,0,0,0,0,6900,0
2560 DATA 1521,142,421,420,140,0,8902,450
2570 DATA 1542,462,146,482,0,0,2311,0
2580 DATA 1521,142,401,400,140,0,8902,450
2590 DATA 2742,461,460,502,780,500,8864,8005
2600 DATA 2742,461,460,0,0,0,7950,0
2610 DATA 1523,482,146,0,0,0,2311,0
2620 DATA 1523,482,141,266,0,0,2400,0
2630 DATA 1523,482,141,261,260,520,8902,0
2640 DATA 1533,0,0,0,0,0,9900,0
2650 DATA 4350,0,0,0,0,0,10564,0
2660 DATA 5100,0,0,0,0,0,9900,0
2670 DATA 3450,581,344,460,0,0,8118,8614
2680 DATA 2125,623,566,0,0,0,2850,0
2690 DATA 2125,621,561,620,0,0,3021,9209
2700 DATA 6794,0,0,0,0,0,17100,0
2710 DATA 2125,622,561,620,240,0,10555,8720
2720 DATA 184,404,702,380,0,0,8170,9600
2730 DATA 1525,24,806,0,0,0,2400,0
2740 DATA 1525,24,801,800,620,0,8902,0
2750 DATA 2725,621,620,800,0,0,8902,3450
2760 DATA 2125,362,561,0,0,0,3300,0
2770 DATA 6803,0,0,0,0,0,17100,0
2780 DATA 185,384,0,0,0,0,3750,0
2790 DATA 1510,762,760,505,0,0,7800,0
2800 DATA 2710,761,760,582,20,0,7986,8700
2810 DATA 6343,921,920,0,0,0,509,0
2820 DATA 1513,122,261,260,240,0,8902,0
2830 DATA 900,384,420,726,0,0,8164,0
2840 DATA 900,424,380,0,0,0,8164,0
2850 DATA 185,424,502,0,0,0,3900,0
2860 DATA 185,424,505,440,0,0,8170,9600
2870 DATA 5265,0,0,0,0,0,10650,0
2880 DATA 204,682,0,0,0,0,7650,0
2890 DATA 2723,521,502,520,480,280,4259,8008
2900 DATA 1513,122,266,0,0,0,2400,0
2910 DATA 5751,62,0,0,0,0,300,0
2920 DATA 207,40,102,0,0,0,8170,9600
2930 DATA 2713,241,240,260,0,0,8902,4350
2940 DATA 1528,442,440,200,0,0,8319,8294
2950 DATA 1257,100,102,292,80,221,8303,1050
2960 DATA 5870,104,322,286,0,0,900,0
2970 DATA 5570,104,322,286,0,0,900,0
2980 DATA 3611,221,60,220,0,0,4558,7950
2990 DATA 5870,322,281,320,340,0,8303,9600
3000 DATA 2737,721,685,720,0,0,7950,0
3010 DATA 900,384,721,0,0,0,5011,0
3020 DATA 2737,721,1120,900,680,720,8003,8309
3030 DATA 1537,722,720,0,0,0,4852,0
3040 DATA 3300,0,0,0,0,0,5100,0
3050 DATA 3900,0,0,0,0,0,9813,0
3060 DATA 1510,762,502,0,0,0,3900,0
3070 DATA 2710,761,585,820,760,0,5303,8850
3080 DATA 1050,68,765,60,0,0,16710,0
3090 DATA 4800,68,60,542,0,0,5910,0
3100 DATA 4950,0,0,0,0,0,9750,0
3110 DATA 7050,401,0,0,0,0,16613,15750
3120 DATA 7050,421,0,0,0,0,16613,15750
3130 DATA 184,364,0,0,0,0,15300,0
3140 DATA 1554,682,0,0,0,0,7650,0
3150 DATA 7650,502,860,360,500,0,6212,8250
3160 DATA 2723,521,542,480,880,540,8003,8293
3170 DATA 7350,68,60,0,0,0,9001,16607
3180 DATA 5870,342,0,0,0,0,9600,0
3190 DATA 166,702,380,0,0,0,10554,9600
3200 DATA 1050,68,760,100,80,502,8308,4710
3210 DATA 6761,0,0,0,0,0,16614,0
3220 DATA 5400,0,0,0,0,0,197,0
3230 DATA 207,82,60,0,0,0,8170,9600
3240 DATA 1257,102,221,100,80,281,8303,1200
3250 DATA 6038,502,0,0,0,0,3947,0
3260 DATA 6039,542,0,0,0,0,5897,0
3270 DATA 6313,241,240,260,0,0,509,7800
3280 DATA 6313,122,0,0,0,0,450,0
3290 DATA 6342,461,460,0,0,0,509,0
3300 DATA 7500,322,68,320,340,60,8303,810
3310 DATA 4050,524,10,0,0,0,4950,0
3320 DATA 4050,524,11,200,0,0,8170,9600
3330 DATA 1200,226,0,0,0,0,5700,0
3340 DATA 6600,943,221,220,500,140,2762,8700
3350 DATA 6600,221,527,220,500,0,2762,9900
3360 DATA 4217,183,0,0,0,0,7650,0
3370 DATA 1521,142,140,0,0,0,7800,0
3380 DATA 4217,203,169,960,160,0,7403,8700
3390 DATA 4217,203,228,0,0,0,150,0
3400 DATA 4217,203,208,220,660,960,7558,8159
3410 DATA 4217,203,188,200,660,980,7558,8159
3420 DATA 4217,203,168,980,180,0,7403,8700
3430 DATA 7650,401,400,420,0,0,462,8902
3440 DATA 7650,421,0,0,0,0,463,9150
3450 DATA 4050,527,0,0,0,0,15300,0
3460 DATA 3450,586,0,0,0,0,150,0
3470 DATA 6600,0,0,0,0,0,150,0
3480 DATA 2117,183,0,0,0,0,1500,0
3490 DATA 6807,0,0,0,0,0,15450,0
3500 DATA 2723,521,480,520,260,0,8009,7800
3510 DATA 6780,0,0,0,0,0,15450,0
3520 DATA 6771,0,0,0,0,0,15450,0
3530 DATA 7200,0,0,0,0,0,15600,0
3540 DATA 207,224,560,0,0,0,8170,9600
3550 DATA 7050,524,0,0,0,0,16605,16350
3560 DATA 7050,224,0,0,0,0,16605,0
3570 DATA 7050,384,0,0,0,0,16605,0
3580 DATA 7050,464,0,0,0,0,16606,0
3590 DATA 7050,264,0,0,0,0,16609,0
3600 DATA 7050,344,0,0,0,0,16609,0
3610 DATA 7050,304,0,0,0,0,16609,0
3620 DATA 7050,424,0,0,0,0,16605,0
3630 DATA 7050,164,0,0,0,0,16608,0
3640 DATA 5570,281,322,340,320,0,8005,0
3650 DATA 206,342,120,0,0,0,8156,10564
3660 DATA 2117,201,200,180,0,0,8902,1500
3670 DATA 2119,181,180,200,0,0,8902,1350
3680 DATA 1551,62,0,0,0,0,1711,0
3690 DATA 166,1042,480,0,0,0,8170,9600
3700 DATA 1549,0,0,0,0,0,16611,0
3710 DATA 2100,561,365,0,0,0,3600,0
3720 DATA 7650,0,0,0,0,0,150,0
3730 DATA 3450,581,347,340,0,0,8118,8464
3740 DATA 7050,24,0,0,0,0,16605,0
3750 DATA 3611,226,0,0,0,0,5700,0
3760 DATA 7050,404,0,0,0,0,16616,15450
3770 DATA 6774,0,0,0,0,0,9750,0
3780 DATA 166,84,100,0,0,0,8170,9600
3790 DATA 1542,462,460,0,0,0,7800,0
3800 DATA 7050,0,0,0,0,0,150,0
3810 DATA 1200,0,0,0,0,0,197,0
3820 DATA 3600,0,0,0,0,0,16800,0
3830 REM VOCABULARY
3840 DATA AUT,GO,*ENT,*RUN,*WAL,*CLI,JUM,BEA,CHO,*CUT
3850 DATA ANY,NORTH,SOUTH,EAST,WEST,UP,DOWN,NET,FIS,AWA
3860 DATA TAK,*GET,*PIC,*CAT,LIG,*TUR,*LAM,*BUR,DRO,*REL
3870 DATA MIR,AXE,AXE,WAT,BOT,GAM,HOL,LAM,*ON,OFF
3880 DATA *SPI,*LEA,STO,AWA,THR,TOS,QUI,SWI,RUB,LOO
3890 DATA DOO,MUD,*MED,BEE,SCO,GAS,FLI,EGG,OIL,*SLI
3900 DATA *SHO,*SEE,DRA,SCO,INV,SAV,WAK,UNL,REA,OPE
3910 DATA KEY,HEL,BUN,INV,LED,THR,CRO,BRI,BEA,DRA
3920 DATA ATT,*KIL,DRI,*GAT,BUN,FIN,*LOC,HEL,SAY,WIN
3930 DATA RUG,RUB,HON,FRU,OX,RIN,CHI,*BIT,BRA,SIG
3940 DATA DOO,SCR,*YEL,*HOL," "," "," "," "," "," "
3950 DATA BLA,WEB,*WRI,SWA,LAV,ARO,HAL,TRE,*STU,FIR
3960 REM ROOMS
3970 DATA 0,7,10,1,0,24," "
3980 DATA 23,1,1,25,0,0,"dismal swamp."
3990 DATA 0,0,0,0,0,1,"*I'm in the top of a tall cypress tree."
4000 DATA 1,1,1,1,1,4,"large hollow damp stump in the swamp."
4010 DATA 0,0,0,0,3,5,"root chamber under the stump."
4020 DATA 0,0,0,0,4,0,"semi-dark hole by the root chamber."
4030 DATA 0,0,0,0,5,7,"long down-sloping hall."
4040 DATA 8,9,0,27,6,12,"large cavern."
4050 DATA 0,7,0,0,0,0,"large 8-sided room."
4060 DATA 7,0,0,0,20,0,"royal anteroom."
4070 DATA 11,10,0,1,0,26,"*I'm on the shore of a lake."
4080 DATA 11,11,23,11,0,0,"forest."
4090 DATA 13,15,15,0,0,13,"maze of pits."
4100 DATA 0,0,0,14,12,0,"maze of pits."
4110 DATA 17,12,13,16,16,17,"maze of pits."
4120 DATA 12,0,13,12,13,0,"maze of pits."
4130 DATA 0,17,0,0,14,17,"maze of pits."
4140 DATA 17,12,12,15,14,18,"maze of pits."
4150 DATA 0,0,0,0,17,0
4160 DATA "bottom of a chasm.  Above 2 ledges.  One has a bricked up window."
4170 DATA 0,0,0,20,0,0
4180 DATA "*I'm on a narrow ledge by a chasm.  Across the chasm is a throne room."
4190 DATA 0,0,0,0,0,9,"royal chamber."
4200 DATA 0,0,0,0,0,0,"I'm on a narrow ledge by the throne room-across chasm-ledge."
4210 DATA 0,0,0,21,0,0,"throne room."
4220 DATA 10,1,10,11,0,0,"sunny meadow."
4230 DATA 0,0,0,0,0,0
4240 DATA "*I think I'm in real trouble.  Here's a guy with a pitchfork!"
4250 DATA 11,0,1,11,0,0,"hidden grove."
4260 DATA 0,0,0,0,0,0,"quick-sand bog."
4270 DATA 0,0,7,0,0,0,"memory RAM of an IBM-PC.  I took a wrong turn!"
4280 DATA 0,0,0,0,0,11
4290 DATA "branch on the top of an old oak tree.                                           To the east I see a meadow beyond a lake."
4300 DATA 0,0,0,0,0,0," "
4310 DATA 0,0,0,0,0,0," "
4320 DATA 0,0,0,0,0,0," "
4330 DATA 0,0,0,0,0,0," "
4340 DATA 0,24,11,24,28,24
4350 DATA "large misty room with strange letters over the exits."
4360 REM MESSAGES
4370 DATA " ",Nothing happens,CHOP IT DOWN!,Boy that really hit the spot!
4380 DATA Dragon smells something - awakens - attacks me!,Lock shatters.
4390 DATA I can't.  It's locked.
4400 DATA TIMBER...  Something fell from the treetop and vanished!
4410 DATA TIMBER...,Lamp is off,Flameless lamp is on.
4420 DATA I'm bit by a spider.,My chigger bites are now infected.
4430 DATA The bites have rotted my whole body.,The bear eats the honey and falls asleep.
4440 DATA Bees sting me,I've no container.,The bees all suffocated.
4450 DATA Something I'm holding vibrated and...,Nothing to light it with.
4460 DATA Gas bladder blew up.,in my hands!
4470 DATA Gas needs to be contained before it will burn.,Gas dissipates.
4480 DATA That won't ignite.,How?  Jump?
4490 DATA The bear won't let me.,Don't waste *HONEY*.  Get mad instead.  Dam lava!
4500 DATA Bees madden the bear.  Bear then attacks me!,It soaks into the ground.
4510 DATA In one word tell me what.,Oh no...Bear dodges...CRASH!,It's heavy!
4520 DATA Something's too heavy.  I fall.,To stop game say -QUIT-
4530 DATA The mirror hits the floor and shatters into a million pieces.
4540 DATA "Mirror lands softly on the rug - lights up and says:"
4550 DATA You lost *ALL* treasures.,Not carrying the axe.  TAKE INVENTORY!
4560 DATA It doesn't bother him at all.,The mud dried up and fell off.
4570 DATA The bear got startled and fell off the ledge!
4580 DATA *DRAGON STINGS* and fades.  I don't get it - hope you do.
4590 DATA The bees attack the dragon which gets up and flies away...
4600 DATA Magic oil attracts magic lamp.  Lamp is now full.
4610 DATA I'm bit by chiggers.
4620 DATA There's something there all right!  Maybe I should go there?
4630 DATA Maybe if I threw something?...,Too dry.  Fish die.
4640 DATA A glowing genie appears - drops something - then vanishes.
4650 DATA A genie appears - says 'boy you're selfish' - takes something - then vanishes!
4660 DATA NO!  It's too hot.,Not here.,Try the swamp,Use one word.
4670 DATA "Try:  LOOK,JUMP,SWIM,CLIMB,THROW,FIND,GO,TAKE,INVENTORY,SCORE."
4680 DATA Only 3 things will wake the dragon.  One of them is dangerous!
4690 DATA "If you need a hint on something, try 'HELP'."
4700 DATA Read the sign in the meadow!,You may need magic words here.
4710 DATA A voice booms out ...,PLEASE LEAVE IT ALONE!,Can only throw axe.
4720 DATA Medicine is good for bites.,I don't know where it is.
4730 DATA Treasures have an * in their name.  Say 'SCORE',Blow it up.
4740 DATA Fish escape back to the lake.
4750 DATA " "," "," "," "
4760 REM ITEMS
4770 DATA " ",0,"dark hole",4,*POT OF RUBIES*/RUB/,4
4780 DATA "spider web with writing on it.",2
4790 DATA "Hollow stump and remains of a felled tree.",0,"cypress tree",1
4800 DATA "water",10,"evil smelling mud/MUD/",1,*GOLDEN FISH*/FIS/,10
4810 DATA "lit brass lamp/LAM/",0,"old fashoned brass lamp/LAM/",3
4820 DATA "rusty axe (magic word- BUNYON -on it)/AXE/",10
4830 DATA "bottle of water/BOT/",3,"empty bottle/BOT/",0
4840 DATA "ring of skeleton keys/KEY/",2
4850 DATA "sign- LEAVE TREASURE HERE - (say 'SCORE')",3
4860 DATA "locked door",5,"open door with a hallway beyond",0,"swamp gas",1
4870 DATA *GOLDEN NET*/NET/,18,"chigger bites",0,"infected chigger bites",0
4880 DATA "floating patch of oily slime",1,*ROYAL HONEY*/HON/,8
4890 DATA "large african bees",8,"thin black bear",21,"bees in a bottle/BOT/",0
4900 DATA "large sleeping dragon",23,"flint and steel/FLI/",13
4910 DATA *THICK PERSIAN RUG*/RUG/,17
4920 DATA "sign- MAGIC WORD IS AWAY. LOOK LA -(rest of sign is missing)",18
4930 DATA "distended gas bladder/BLA/",0,"bricked up window",20
4940 DATA "sign here says- IN SOME CASES MUD IS GOOD, IN OTHERS...",23
4950 DATA "stream of lava",18
4960 DATA "bricked up window with a hole in it.  Beyond is a ledge.",0
4970 DATA "loose fire bricks",0,*GOLD CROWN*/CRO/,22,*MAGIC MIRROR*,21
4980 DATA "sleeping bear",0,"empty wine bladder/BLA/",9,"broken glass",0
4990 DATA "chiggers/CHI/",1,"dead bear",0,*DRAGON EGGS* (very rare)/EGG/,0
5000 DATA "lava stream with a brick dam",0,*JEWELED FRUIT*/FRU/,25
5010 DATA *SMALL STATUE OF A BLUE OXE*/OXE/,26,*DIAMOND RING*/RIN/,0
5020 DATA *DIAMOND BRACELET*/BRA/,0
5030 DATA "strange scratchings on rock reveals- ALADDIN WAS HERE -",14
5040 DATA "sign says- LIMBO.  FIND RIGHT EXIT AND LIVE AGAIN!",33
5050 DATA "smoking hole.  Pieces of dragon and gore.",0
5060 DATA "sign says- NO SWIMMING ALLOWED -",10,"arrow pointing down",17
5070 DATA "dead fish/FIS/",0,*FIRESTONE* (cold now)/FIR/,0
5080 DATA "sign says- S PLACE -",25,"trees",11," ",0," ",0
9999 WIDTH 80:COLOR 7,0:KEY ON:LOCATE ,,1,8,11:END

ASTEROID.BAS

1 'SAVE "Asteroid
2 REM Copyright 1983 by Dorn W. Stickle
20 GOSUB 710
30 SCREEN 1:CLS:KEY OFF
40 LOCATE 2,1: PRINT "ASTEROID PILOT";
50 LOCATE 3,1: PRINT "Copyright 1982";
60 LOCATE 5,1: PRINT "by R.A.Bower";
61 LOCATE 18,12:PRINT "USE SHIFT KEY TO CONTROL PATH THROUGH    THE ASTEROIDS"
62 LOCATE 20,12:PRINT "OBJECT OF GAME IS TO REACH RIGHT SIDE OF ASTEROIDS FIELD"
70 S1=1:SKIL=10: TOT%=0: SUC%=0
75 IF INKEY$="" THEN 75
80 GOSUB 690
90 DV=0 'Top of main loop
100 TOT%=TOT%+1
110 LINE (0,0)-(319,199),0,BF  'Graphic CLS
120 FOR A%=1 TO 15+SKIL 'Asteriods
130   X$=INKEY$
140   X=40+RND*279 : Y=RND*199
142 IF 3=POINT(X,Y) GOTO 140
150   CIRCLE (X,Y),1+RND*(25-SKIL/6),3: PAINT (X,Y),3
160   ' Add dust
170   FOR B%=0 TO SKIL\4:PSET (1+2*INT(RND*159),RND*199),1: NEXT
180 NEXT
190 LINE (0,0)-(319,199),3,B
200 'LOCATE 8,1: PRINT CHR$(7) "Hit any key to begin..or ESC to QUIT.";
205 DEF SEG=&H40
206 K$=INKEY$:IF LEN(K$)<>1 THEN 206
207 IF ASC(K$)=27 THEN KEY ON:SYSTEM
210 IF K$="" THEN 220
220 'LOCATE 8,1: PRINT SPACE$(39),CHR$(29)
230 Y=20: XO=1: YO=20: S2=S1: HIT%=0: HIT1%=0
240 FOR X=1 TO 318 STEP 1
250   IF 0=(15 AND PEEK(&H17)) THEN DV=DV+0.2 ELSE DV=DV-0.2: SOUND 37+400*S2*ABS(DV),0.1
260   Y=Y+S2*DV
270   IF Y<=0.5 OR Y>=198.5 GOTO 590
280   IF POINT(X,Y)=3 GOTO 480  'Hit Asteriod
290   IF POINT(X,Y)<>1 GOTO 330
300   HIT%=(HIT%+1) MOD 2:HIT1%=1  'Hit dust
310   CIRCLE (X,Y),5,2: SOUND 5000,1: PAINT (X,Y),2: DV=0
320   IF HIT%=1 THEN S2=0.1*S1 ELSE S2=S1
330   LINE (XO,YO)-(X,Y),3-HIT%
340   XO=X: YO=Y
350   FOR I=1 TO (70-SKIL)\2:NEXT
360 NEXT
370 REM ---Success
380 SOUND 500,5
390 S1=S1*1.1*1.1:SKIL=SKIL+4
400 SUC%=SUC%+1
410 IF HIT1%=1 GOTO 570
420 PAINT (5,1),2,3
430 LINE (XO,YO)-(320,Y0),2
440 PSET (0,20),2
450 PAINT (5,199),1,2
460 GOSUB 670
470 GOTO 570
480 REM -----Hit-----
490 IF SKIL>0 THEN S1=S1/1.1:SKIL=SKIL-2
500 GOSUB 670
510 FOR I=1 TO 20
520   LINE (X,Y)-STEP (10-RND*80,40-RND*80),2
530   FOR J=1 TO 5
540     SOUND 1000+400*RND,0.02
550   NEXT
560 NEXT
570 FOR I=1 TO 2000: NEXT
580 GOTO 90
590 X=FRE(""):PLAY "mb" '----Outside----
600 IF Y>100 GOTO 630
610 FOR I=37 TO 6000 STEP 100:SOUND I,0.1: NEXT
620 GOTO 640
630 FOR I=6000 TO 37 STEP -100:SOUND I,0.1: NEXT
640 IF SKIL>0 THEN S1=S1/1.1:SKIL=SKIL-2
650 GOSUB 670
660 GOTO 570
670 REM Subroutine to update status
680 LOCATE 15,1: PRINT "You have won" SUC% "of" TOT% "tries."
690 LOCATE 13,1: PRINT "Skill level:" USING "###";SKIL\2;
700 RETURN
710 REM ATTACH color screen for graphics
720 DEF SEG=0: A=PEEK(&H410)
730 REM COLOR - Switch to Color Monitor
740 'POKE &H410,(A AND &HCF) OR &H20
750 KEY OFF:SCREEN 0
760 SCREEN 1: LOCATE ,,1,6,7
770 DEF SEG=0: A=PEEK(&H410)
780 REM MONO - switch to monochrome
790 'POKE &H410,(A OR &H30)
800 LOCATE ,,1,12,13
810 SCREEN 0,0,0
820 WIDTH 80
830 RETURN

BLESS.BAS

5 KEY OFF
10 A$ = "mbo3f2e4d4e8.d16c1g2
15 PLAY A$
20 GOSUB 500
30 B$ = "f4g4a1g8a8b-4d2b-4a4c2f8g8a4g8f8g4f8e8f1
40 PLAY B$
50 C$ = "e8.f16g4c2f8.g16a4c2g8.a16b-4e2a8.b-16o4c1d2c4o3b-4a8g8f2b-2
60 PLAY C$
70 D$ = "a2g2o4c1d2c4o3b-4a8g8f2b-4a2g2f1
80 PLAY D$
85 LOCATE 1,1:PRINT " God Bless America"
90 FOR N = 1 TO 21:PRINT " God Bless America":NEXT N
94 COLOR 0,7:LOCATE 25,10: PRINT ">>>>>>This message is brought to you by capitalism":COLOR 7,0
100 END
500 CLS
510 R = 5:COL = 30
520 R1 = R
530 FOR N = 1 TO 6
540 R = R1 - 1 + N
541 LOCATE R, COL
542 PRINT STRING$(15,"*");
560 PRINT STRING$(34,223)
570 NEXT N
571 R1 = R
572 FOR N = 1 TO 6
573 R = R1  + N
574 LOCATE R, COL
575 PRINT STRING$(49 ,223)
576 NEXT N
580 RETURN

CRC.TXT

PC-SIG Disk No. #203, version V1.1

The following is a list of the file checksums which should be produced by
the CRCK4 program on this disk.  If the CRC numbers do not match the following
list you may have a bad file.  To use type:  CRCK4 <filespec>

CRCK4 output for this disk:


CRCK ver 4.2B (MS DOS VERSION )
CTL-S pauses, CTL-C aborts

--> FILE:  ADVEN1  .BAS         CRC = D9 62

--> FILE:  ASTEROID.BAS         CRC = 6E 7D

--> FILE:  FLY     .BAS         CRC = 35 44

--> FILE:  HINT1   .DOC         CRC = 5B 59

--> FILE:  HINT2   .DOC         CRC = 29 97

--> FILE:  HINT3   .DOC         CRC = 5C 11

--> FILE:  MOON    .BAS         CRC = A8 3B

--> FILE:  NEWCHESS.BAS         CRC = 4B 6C

--> FILE:  SLOTCOLR.BAS         CRC = FC 51

--> FILE:  SOLITAIR.BAS         CRC = 25 C2

--> FILE:  SURVIVAL.BAS         CRC = 4F A6

--> FILE:  WHEEL   .BAS         CRC = 75 07

--> FILE:  WORDPLAY.BAS         CRC = 47 8C

--> FILE:  XXX     .            CRC = 29 5D

--> FILE:  BLESS   .BAS         CRC = 9C 78

--> FILE:  TRAILER .BAS         CRC = 8D 5F

--> FILE:  TRUMPET .BAS         CRC = 5F 4D

--> FILE:  WELLTEMP.BAS         CRC = 19 1E

 ---------------------> SUM OF CRCS = 4B B6

DONE

These and other Public Domain and user-supported programs from:

PC Software Interest Group (PC-SIG)
1125 Stewart Ct  Suite G
Sunnyvale, CA 94086
(408) 730-9291

FLY.BAS

10 '*****************
20 '**     FLY     **
30 '*****************
40 '
50 CLEAR
60 GOSUB 1730
70 SCREEN 1
80 KEY OFF
90 CLS
100 COLOR 1,7
110 OPTION BASE 1
120 DEFINT X,Y
130 DIM FLY0(21),FLY1(21),FLY2(21)
140 DIM SWAT(714)
150 DIM X(3),Y(3)
160 DELAY=3000
170 '
180 ' Build the fly images
190 BODY$="c1u5be1d6r1u6bf1d5"
200 URWING$="c3bu3br1e3r1g3r1e3"
210 ULWING$="bg3bl7h3l1f3l1h3"
220 DRWING$="c3br6h3l1f3l1h3"
230 DLWING$="bl5g3l1e3l1g3"
240 DRAW BODY$+URWING$+ULWING$
250 DRAW "bd20br6"
260 DRAW BODY$+DRWING$+DLWING$
270 GET (131,91)-(152,103),FLY0
280 GET (151,91)-(172,103),FLY1
290 GET (151,105)-(172,117),FLY2
300 '
310 ' Build the swatter image
320 CLS
330 LINE (0,50)-(75,135),3,BF
340 FOR X = 5 TO 65 STEP 10
350 FOR Y = 55 TO 125 STEP 10
360 LINE (X,Y)-(X+5,Y+5),0,BF
370 NEXT Y,X
380 FOR Y = 106 TO 135
390 IF Y < 111 THEN CLR=3 ELSE CLR=0
400 DRAW "c=clr; bm0,=y; m+25,25 m+25,0 m+25,-25"
410 NEXT Y
420 LINE (30,136)-(45,199),1,BF
430 GET (0,50)-(75,199),SWAT
440 '
450 ' Draw the screen border
460 CLS
470 LINE(0,0)-(319,199),2,BF
480 LINE(9,9)-(310,190),3,BF
490 '
500 ' Next fly appears
510 LINE(15,15)-(304,184),0,BF
520 FOR I = 1 TO 7+5*RND
530 FLY=INT(3*RND+1)
540 BUZZ=0
550 SOUND 47,0
560 SOUND 63+7*RND,999
570 WHILE BUZZ < DELAY
580 PUT(74*FLY,67),FLY1,PSET
590 PUT(74*FLY,67),FLY2,PSET
600 BUZZ=BUZZ+99
610 WEND
620 SOUND 47,0
630 PUT(74*FLY,67),FLY0,PSET
640 NEXT I
650 '
660 ' Swatters schwaapf into screen
670 FOR SWIPE = 1 TO 3
680 SOUND 999,1
690 PUT (87*SWIPE-51,35),SWAT
700 NEXT SWIPE
710 '
720 ' How well did you follow the fly?
730 K$ = INKEY$
740 IF K$ <> "" THEN 730
750 LOCATE 3,7
760 PRINT "CHECK WHICH SWATTER (1,2,3) ?
770 K$=INKEY$
780 IF K$ = "" THEN 770
790 IF K$<>"1" AND K$<>"2" AND K$<>"3" THEN 770
800 GUESS=VAL(K$)
810 LINE (87*GUESS-51,35)-(87*GUESS+24,184),0,BF
820 IF GUESS <> FLY THEN 1260
830 '
840 ' Another one bytes the dust
850 DELAY=.7370001*DELAY
860 GOSUB 1490
870 LOCATE 3,7
880 PRINT "GOT IT !!!";TAB(37);
890 SPOT=74*GUESS+9
900 FOR I = 0 TO 40
910 FREQ=99*SIN(2.1-I/17)^3+678
920 SOUND 99,0
930 SOUND FREQ,2
940 IF I MOD 3 = 0 THEN DRAW "bm=spot;,67"
950 CLR=INT(3*RND+1)
960 DX=INT(9*RND-4)
970 DY=INT(9*RND-4)
980 DRAW "c=clr; m+=dx;,=dy;"
990 NEXT I
1000 LINE (15,15)-(304,184),0,BF
1010 IF RANK=99 THEN 1620
1020 IF RANK <> 11 THEN 1100
1030 '
1040 ' You mad it past the first level of proficiency
1050 RANK=1
1060 LINE (15,15)-(304,184),0,BF
1070 LOCATE 12,4
1080 PRINT "YOU JUST MADE 'SENIOR DE-BUGGER'!!!"
1090 PLAY"MF O3 T200 L5 MS cde.cffcd.cde.cffcd..."
1100 IF RANK <> 12 THEN 1180
1110 '
1120 ' You made it past the second level of proficiency
1130 RANK=2
1140 LINE (15,15)-(304,184),0,BF
1150 LOCATE 12,4
1160 PRINT "WOW! WHAT A PROFESSIONAL! BUZZ ON!";
1170 PLAY"MF O3 T200 L5 MS ccg.ccg.efgedccffcd..."
1180 LINE (15,15)-(304,184),0,BF
1190 LOCATE 12,4
1200 PRINT "OH OH! HERE COMES A FASTER FLY ...";
1210 FOR I = 1 TO 999
1220 NEXT I
1230 GOTO 510
1240 '
1250 ' Missed it
1260 DELAY=1.47*DELAY
1270 IF DELAY > 3000 THEN DELAY=3000
1280 GOSUB 1490
1290 LINE (87*FLY-51,35)-(87*FLY+24,184),0,BF
1300 LOCATE 3,7
1310 PRINT "WHOOPS, IT GOT AWAY.";TAB(37);
1320 SOUND 57,47
1330 FOR I = 1 TO 100
1340 PUT (74*FLY,67),FLY1,PSET
1350 PUT (74*FLY,67),FLY2,PSET
1360 NEXT I
1370 LINE (15,15)-(304,184),0,BF
1380 LOCATE 12,7
1390 IF DELAY = 3000 THEN MISS$="HERE COMES ANOTHER ONE ..."
1400 IF DELAY < 3000 THEN MISS$="HERE COMES A SLOWER FLY ..."
1410 PRINT MISS$;
1420 IF SPEED < 9000 THEN RANK=1
1430 IF SPEED < 8000 THEN RANK=0
1440 FOR I = 1 TO 999
1450 NEXT I
1460 GOTO 510
1470 '
1480 ' Compute score and rank
1490 SPEED=(3000-DELAY)*10/3
1500 IF SPEED < 0 THEN SPEED=0
1510 LOCATE 25,5
1520 PRINT USING "SPEED = ####";SPEED;
1530 IF SPEED > RECORD THEN RECORD=SPEED
1540 LOCATE 25,22
1550 PRINT USING "RECORD = ####";RECORD;
1560 IF SPEED > 8000 AND RANK < 1 THEN RANK=11
1570 IF SPEED > 9000 AND RANK < 2 THEN RANK=12
1580 IF SPEED > 9999 THEN RANK=99
1590 RETURN
1600 '
1610 ' Best score possible!
1620 LOCATE 10,5
1630 PRINT "YOU DID IT!!! NO BUGS LEFT!!!"
1640 LOCATE 12,5
1650 PRINT "WELCOME TO THE S.W.A.T. TEAM !"
1660 PLAY "T169 L9 MS abcdefgacegecacgfedfdfdgdccedabbcaegfc"
1670 BGD = INT(RND * 6)
1680 PLT = INT(RND * 2)
1690 COLOR BGD,PLT
1700 GOTO 1660
1710 '
1720 ' Subroutine, reset random number sequence
1730 RANDOMIZE VAL(MID$(TIME$,4,2) +RIGHT$(TIME$,2))
1740 RETURN

HINT1.DOC



10 KEY OFF:CLS:COLOR 0,7:PRINT" ADVENTURE #1  -  HINT #1 ";:COLOR 7,0:PRINT:PRINT:PRINT:COLOR 15,0:PRINT"From the forest (beginning), go to the swamp & investigate everything there!";:COLOR 7,0
20 PRINT:PRINT:PRINT:PRINT"Hint #2 will appear mysteriously on this HOSTCOM in a week or so.":LOCATE 25,75:PRINT"Phil";:LOCATE 22
INT:PRINT:PRINT:PRINT"Hint #2 will appear mysteriousl

HINT2.DOC



10 KEY OFF:CLS:COLOR 0,7:PRINT" ADVENTURE #1  -  HINT #2 ";:COLOR 7,0:PRINT:PRINT:PRINT:COLOR 15,0:PRINT"Another name for rug is CARPET!    (use magic)";:COLOR 7,0
20 PRINT:PRINT:PRINT:PRINT"Hint #3 will appear mysteriously on this HOSTCOM in a week or so.":LOCATE 2:PRINT"Phil";:LOCATE 22
0 PRINT:PRINT:PRINT:PRINT"Hint #3 will appear mysteriously on this HOSTCOM in a week or

HINT3.DOC



10 KEY OFF:CLS:COLOR 0,7:PRINT" ADVENTURE #1  -  HINT #3 ";:COLOR 7,0:PRINT:PRINT:PRINT:COLOR 15,0:PRINT"Most movable items found on your journey are to use at a later ADVENTURE point.
15 PRINT:PRINT"Containers can be used for items other than the present contents.";:COLOR 7,0
20 PRINT:PRINT:PRINT:PRINT:PRINT"This is the last of the hints!  You have the idea now!":LOCATE 25,75:PRINT"Phil";:LOCA2
,0
20 PRINT:PRINT:PRINT:PRINT:PRINT"This is the last of the hints!  You have the idea now!":LOCATE 25,75

MOON.BAS

10 KEY OFF:SCREEN 0:WIDTH 40:CLS:FOR X=1 TO 10:KEY X,"":NEXT X:PLAY"mb"
20 LOCATE 1,6,0:PRINT"██     ██ █████ █████ ██   █":PRINT TAB(6)"█ █   █ █ █   █ █   █ █ █  █":PRINT TAB(6)"█  █ █  █ █   █ █   █ █  █ █":PRINT TAB(6)"█   █   █ █   █ █   █ █   ██":PRINT TAB(6)"█       █ █████ █████ █    █"
30 LOCATE 8,1:PRINT"██     ██ █ █████ █████ █ █████ ██   █":PRINT"█ █   █ █ █ █     █     █ █   █ █ █  █":PRINT"█  █ █  █ █ █████ █████ █ █   █ █  █ █":PRINT"█   █   █ █     █     █ █ █   █ █   ██":PRINT"█       █ █ █████ █████ █ █████ █    █"
50 LOCATE 21,8:PRINT"BY ALLAN AND ANDREW LEE"
60 LOCATE 24,6:PRINT"Press <ESC> for instructions.";:LOCATE 25,9:PRINT"Press <ENTER> to begin.";
70 A$=INKEY$:IF A$="" THEN 70 ELSE IF ASC(A$)=13 THEN 130 ELSE IF ASC(A$)=27 THEN 80 ELSE GOTO 70
80 CLS:LOCATE 25,9:PRINT"Press <ENTER> to begin.";
90 LOCATE 6,6:PRINT"You are the commander of the":PRINT TAB(5)"USS COLUMBIA and must land it":PRINT TAB(5)"safely on the moon.":PRINT TAB(6)"You may control your ship"
100 PRINT TAB(5)"by using the cursor pad to:":LOCATE 12,12:PRINT CHR$(27);" to move left":PRINT TAB(12)CHR$(26);" to move right":PRINT TAB(12)CHR$(24);" to move up":PRINT TAB(12)CHR$(25);" to move down."
105 LOCATE 17,3:PRINT"A beep indicates that fuel is low"
110 PRINT TAB(14)"or is gone."
120 A$=INKEY$:IF A$="" THEN 120 ELSE IF ASC(A$)=27 THEN 80 ELSE GOTO 70
130 SCREEN 1:DIM CUR%(20),BAC%(20),Q(20),W(20),PR(20),PS(20):Q$="AAA":PSCORE=1000
140 VX=0:VY=0:TIME=0:CX=0:CY=0:AS=0:AW=0:CLS:DEF SEG=0:POKE 1050,PEEK(1052):GOSUB 440
150 FUEL=50:GRAVITY=.2:TINC=.3
160 WHILE AS<3 AND AW<3
170 TIME=TIME+TINC
180 PX=CX:PY=CY:CX=CX+VX:CY=CY+VY
190 VX=VX+AX:VY=VY+AY+GRAVITY*TINC
200 LOCATE 25,1:PRINT USING "+##.##";VY;
210 AX=0:AY=0:VX=VX-VX*.05*TINC
220 IF CX<4 THEN CX=4:VX=-VX ELSE IF CX>315 THEN CX=315:VX=-VX
230 IF CY<4 THEN CY=4:VY=-VY/2 ELSE IF CY>182 THEN CY=182
240 PUT(PX-4,PY-4),CUR%:PUT(CX-4,CY-4),CUR%,XOR
250 GOSUB 340
260 AS=POINT(CX-4,CY+5):AW=POINT(CX+4,CY+5)
270 WEND
280 IF VY<=1 AND CX<=165 AND CX>=155 THEN LOCATE 7,13:SCORE=INT(500000!/TIME):PRINT"SCORE";SCORE:GOTO 580
290 LOCATE 9,17:IF CX>165 OR CX<155 THEN PRINT"MISSED!!":IF VY<1 THEN FOR X=1 TO 1000:NEXT X:GOTO 140
300 LOCATE 10,17
310 IF VY>2 THEN PRINT"KAA";
320 IF VY>1 THEN PRINT"BOOM!!!":FOR AS=1 TO 2:SOUND 80^1.5*AS,1:NEXT AS:GOTO 550
340 A$=INKEY$:IF A$=""THEN RETURN
350 IF LEN(A$)<>2 THEN RETURN ELSE A=ASC(RIGHT$(A$,1))
360 FUEL=FUEL-1*TINC
370 IF FUEL<=0 THEN SOUND 150,3:RETURN
380 IF FUEL<5 THEN SOUND 1100,1:SOUND 1400,2
390 IF A=72 THEN AY=AY-1*TINC:GOTO 340
400 IF A=80 THEN AY=AY+1*TINC:GOTO 340
410 IF A=75 THEN AX=AX-1*TINC:GOTO 340
420 IF A=77 THEN AX=AX+1*TINC
430 GOTO 340
440 GET(0,0)-(8,8),BAC%
450 FOR X=1 TO 25:WX=INT(RND(1)*319+1):WY=INT(RND(1)*150+1):PSET(WX,WY),1:NEXT X
460 LINE(3,7)-(0,8):LINE(5,7)-(8,8):CIRCLE(4,4),4:LINE(3,3)-(5,5),,B
470 GET(0,0)-(8,8),CUR%:CX=4:CY=4
480 DRAW"bm0,165m+10,+15r10m+10,-7r2f10e2m+10,+5r18m+5,+2e6m+5,-2m+5,-2f6m+5,-2r15m+4,+3r3e1r5r1e3m+4,-3r35e3r6r15m+6,+2r6f3r20m+14,+3f3r14e3m+14,-10r10e10m+10,-5m319,165
490 LINE(0,190)-(319,190):PAINT(188,188),3
500 DRAW"c0bm43,183f5bm102,180g15bm292,173m+10,+10r15
510 LOCATE 25,16:PRINT Q$;" ";PSCORE;
520 LINE(155,170)-(155,178),1
530 LINE(165,170)-(165,178),1
540 RETURN
550 PUT(CX-4,CY-4),BAC%:RANDOMIZE TIME*VX*VY:FOR Y=1 TO 20:A=RND(1)*3.14:D=RND(1)*4:Q(Y)=SIN(A)*D:W(Y)=COS(A)*D:NEXT Y
560 FOR X=1 TO 10:FOR Y=1 TO 20:PR(Y)=PR(Y)+W(Y):PS(Y)=PS(Y)+Q(Y):R=Y MOD 2+1:LINE(CX,CY+4)-(CX+PR(Y),CY-PS(Y)),R:NEXT Y,X:ERASE PR,PS:DIM PR(20),PS(20)
570 FOR X=1 TO 100:NEXT X:GOTO 620
580 N=0:FOR X=1 TO 1000:NEXT X:POKE 1050,PEEK(1052):IF SCORE>PSCORE THEN LOCATE 1,3:PLAY"mbc16p16c16p16d-16p16d-16e6c8":PRINT"YOU HAVE GAINED THE HIGH SCORE.":LOCATE 2,8:PRINT"INPUT YOUR INITIALS.":LOCATE 4,17:PRINT"_" ELSE 620
590 QR$=INKEY$:IF QR$="" THEN 590 ELSE IF QR$>="a"AND QR$<="z" THEN QR$=CHR$(ASC(QR$)-32) ELSE IF ASC(QR$)<65 AND ASC(QR$)<>32 OR ASC(QR$)>90 THEN 590
600 N=N+1:LOCATE 4,16+N:PRINT QR$:MID$(Q$,N,1)=QR$:IF N=3 THEN 610 ELSE LOCATE 4,17+N:PRINT"_":GOTO 590
610 FOR X=1 TO 1000:NEXT X:PSCORE=SCORE
620 LOCATE 25,1:PRINT SPC(39);:LOCATE 25,14:PRINT"PLAY AGAIN?";
630 A$=INKEY$:IF A$="Y"OR A$="y"THEN 140 ELSE IF A$="N"OR A$="n"THEN CLS:SCREEN 0:WIDTH 80:END ELSE 630

NEWCHESS.BAS



0 ' exit on error
1 CLEAR ,,2048:KEY OFF
2 CLS:COLOR 0,7:LOCATE 1,6:PRINT SPACE$(68)
3 LOCATE 2,6:PRINT" ********* Chess *********   By: M. C. Rakaska, Ides of March, 1980 "
4 LOCATE 3,6:PRINT SPACE$(68):LOCATE 4,6:PRINT"      Adapted for the IBM PC by  S. W. Huggins, December, 1981      "
5 LOCATE 5,6:PRINT SPACE$(68)
6 LOCATE 6,6:PRINT"                   <D-o-w-n-l-o-a-d-e-d  F-r-o-m>                   "
12 LOCATE 7,6:PRINT SPACE$(68):LOCATE 8,6:PRINT"  PC-NET #1 of Denver, Co.   303-773-2699 or Voice at 303-694-9038  ":LOCATE 9,6:PRINT SPACE$(68)
20 DEFINT A-Z:A=0:B=0:X=0:Y=0:S=0:A0=0:T=0:A8=0:A1=0:A2=0:A3=0:A4=0:B1=0:B6!=0:           H=0:M=0:N=0:P=0:W=0:A5=0:I=1:DIM C(64), A(10,10), B(10,10), T(10,10), S(8,8)
25 COLOR 7,0:LOCATE 18,1:PRINT"Important:  Use Caps Lock key to shift to UPPER CASE before continuing...."
30 LOCATE 21,1:INPUT "DO YOU WANT INSTRUCTIONS ";IN$:IN$=LEFT$(IN$,1):             IF IN$="Y" THEN GOSUB 2220
40 CL$="N"
50 CLS:INPUT "YOUR NAME IS ";B$:IF B$="" THEN B$=" HUMAN " ELSE B$=LEFT$(B$,9)
60 CLS:PRINT "LEVEL OF PLAY";:INPUT B8!:IF B8!=0 THEN B8!=1:B7!=1+RND(0)/2:ELSE    B7!=(B8!+1)/2+RND(0)/2
70 CLS:PRINT "DO YOU WANT WHITE ";B$;" ";:INPUT C$:GOSUB 790:IF LEFT$(C$,1)<>"N"   THEN GOSUB 900:GOTO 190
80 GOSUB 890:IF CL$="Y" THEN LOCATE 25,6,0:                                        PRINT "START ";TIME$;
100 F!=-99:A0=0:FOR J=1 TO 8:FOR K=1 TO 8:IF A(J,K)=99 THEN A6=J:A7=K
110 NEXT:NEXT
120 FOR X=1 TO 8:FOR Y=1 TO 8:IF A(X,Y)<0 THEN GOSUB 270:                           IF F!>=B7! THEN GOTO 150
130 NEXT:NEXT:IF F!>=-9 THEN GOTO 150 ELSE GOSUB 900
140 LOCATE 25,62,0: PRINT "I CONCEED    ";:GOTO 2190
150 A(R,U)=A(E,Q):A(E,Q)=1:IF A(R,U)=-2 AND U=1 THEN A(R,U)=-9
160 X=R:Y=U:A0=4:GOSUB 270:LOCATE 25,62,0:PRINT "IS MY MOVE    ";:                  LOCATE 25,51,0:PRINT CHR$(E+64);Q;"- "CHR$(R+64);U;
170 IF CL$="Y" THEN LOCATE 25,31,0:PRINT "STOP ";TIME$;
180 X=E:Y=Q:GOSUB 910:X=R:Y=U:GOSUB 910:IF C=1 THEN LOCATE 24,1,1:                  PRINT "CHECK ";:C=0 ELSE LOCATE 24,1,1:PRINT "      ";
190 IF X$="S" THEN GOSUB 1830:B7!=3*RND(0):LOCATE 25,1,1:PRINT "SELF-PLAYING";: GOSUB 2480:GOTO 100
195 LOCATE 25,1,1:PRINT "MOVE "+CHR$(7);B$;:GOSUB 1590:D=0:B4=A:B9=B:B5=0:IF A(X,Y)=2 AND Y=5 AND B=6 AND A(A,B)=1 AND ABS(A-X)=1 THEN B5=1:GOTO 220
200 IF X$="K" OR X$="Q" THEN GOSUB 900:LOCATE 25,1,0:PRINT STRING$(14," ");:        GOTO 100
210 IF X$="S" THEN CL$="N":GOTO 190:ELSE A0=3:GOSUB 250:                            IF D=0 THEN LOCATE 25,31,0:PRINT "ILLEGAL       ";:GOTO 190
220 LOCATE 25,31,1:PRINT "OK            ";:A=B4:B=B9:A(A,B)=A(X,Y):A(X,Y)=1:        GOSUB 910:X=A:Y=B:GOSUB 910:IF N$="N" THEN GOSUB 900:N$=" "
230 IF A(A,B)=2 AND B=8 THEN LOCATE 25,31,1:PRINT "WHAT PIECE";:GOSUB 2100:         X=A:Y=B:GOSUB 910:LOCATE 25,31,1:PRINT "              ";
240 IF B5=1 THEN A(A,B-1)=1:X=A:Y=B-1:GOSUB 910:GOTO 100:ELSE GOTO 100
250 LOCATE 1,78,0:PRINT "$ ";:                                                      ON A(X,Y) GOTO 0, 480, 0, 380, 330, 0, 280, 0, 330:GOTO 460
270 ON -A(X,Y) GOTO 0, 530, 0, 380, 330, 0, 280, 0, 330:GOTO 460
280 B=Y:FOR A=X+1 TO 8:GOSUB 640:IF S=0 THEN NEXT ELSE GOTO 290
290 FOR A=X-1 TO 1 STEP -1:GOSUB 640:IF S=0 THEN NEXT ELSE GOTO 300
300 A=X:FOR B=Y+1 TO 8:GOSUB 640:IF S=0 THEN NEXT ELSE GOTO 310
310 FOR B=Y-1 TO 1 STEP -1:GOSUB 640:IF S=0 THEN NEXT:RETURN ELSE RETURN
330 B=Y:FOR A=X+1 TO 8:B=B+1:GOSUB 640:IF S=0 THEN NEXT ELSE GOTO 340
340 B=Y:FOR A=X-1 TO 1 STEP -1:B=B-1:GOSUB 640:IF S=0 THEN NEXT ELSE GOTO 350
350 B=Y:FOR A=X-1 TO 1 STEP -1:B=B+1:GOSUB 640:IF S=0 THEN NEXT ELSE GOTO 360
360 B=Y:FOR A=X+1 TO 8:B=B-1:GOSUB 640: IF S=0 THEN NEXT ELSE GOTO 370
370 IF ABS(A(X,Y))=9 THEN GOTO 280:ELSE RETURN
380 A=X+2:B=Y+1:IF A<9 AND B<9 THEN GOSUB 650 ELSE GOTO 390
390 B=B-2:IF B>0 AND A<9 THEN GOSUB 650 ELSE GOTO 400
400 A=A-4:IF A>0 AND B>0 THEN GOSUB 650 ELSE GOTO 410
410 B=B+2:IF B<9 AND A>0 THEN GOSUB 650 ELSE GOTO 420
420 A=A+1:B=B+1:IF A>0 AND A<9 AND B<9 THEN GOSUB 650 ELSE GOTO 430
430 B=B-4:IF B>0 AND A>0 AND A<9 THEN GOSUB 650 ELSE GOTO 440
440 A=A+2:IF A>0 AND A<9 AND B>0 THEN GOSUB 650 ELSE GOTO 450
450 B=B+4:IF B<9 AND A>0 AND A<9 THEN GOSUB 650:RETURN ELSE RETURN
460 FOR A=X-1 TO X+1:FOR B=Y-1 TO Y+1:IF A(A,B)<>0 THEN GOSUB 650
470 NEXT:NEXT:RETURN
480 A=X:IF Y>2 THEN GOTO 500 ELSE GOTO 490
490 B=Y+1:IF A(A,B)=1 THEN GOSUB 660:B=B+1:IF A(A,B)=1 THEN GOSUB 660:GOTO 510:     ELSE GOTO 510:ELSE GOTO 510
500 B=Y+1:IF A(A,B)=1 THEN GOSUB 660 ELSE GOTO 510
510 A=X+1:B=Y+1:IF A(A,B)<0 THEN GOSUB 660 ELSE GOTO 520
520 A=A-2:IF A(A,B)<0 THEN GOSUB 660:RETURN:ELSE RETURN
530 A=X:IF Y<7 THEN GOTO 550 ELSE GOTO 540
540 B=Y-1:IF A(A,B)=1 THEN GOSUB 660:B=B-1:IF A(A,B)=1 THEN GOSUB 660:GOTO 560:     ELSE GOTO 560:ELSE GOTO 560
550 B=Y-1:IF A(A,B)=1 THEN GOSUB 660 ELSE GOTO 560
560 A=X-1:B=Y-1:IF A(A,B)>1 THEN GOSUB 660 ELSE GOTO 570
570 A=A+2:IF A(A,B)>1 THEN GOSUB 660:RETURN:ELSE GOTO 590
580 T=A(A,B):IF T=-99 THEN B1=T:RETURN:ELSE GOTO 590
590 A5=S:IF ABS(T)<=A(X,Y) THEN A(A,B)=A(X,Y):A(X,Y)=1:GOTO 610:ELSE GOTO 600
600 IF T<B1 THEN B1=T:S=A5:RETURN:ELSE S=A5:RETURN
610 A1=X:A2=Y:A3=A:A4=B:A8=T:A0=2:FOR X=1 TO 8:FOR Y=1 TO 8:                        IF A(X,Y)<0 THEN GOSUB 270:IF T=0 THEN GOTO 630
620 NEXT:NEXT
630 X=A1:Y=A2:A=A3:B=A4:A0=5:A(X,Y)=A(A,B):A(A,B)=A8:GOTO 600
640 S=0:IF A(A,B)=1 THEN GOTO 660 ELSE IF A(A,B)=0 THEN S=1:RETURN:                 ELSE IF SGN(A(A,B))=SGN(A(X,Y)) THEN S=1:RETURN:ELSE S=1:GOTO 660
650 IF A(A,B)=1 THEN GOTO 660 ELSE IF SGN(A(A,B))=SGN(A(X,Y)) THEN RETURN:          ELSE GOTO 660
660 LOCATE 1,78,0:PRINT "  ";:ON A0 GOTO 670, 680, 690, 700, 710:GOTO 720
670 IF A6=A AND A7=B THEN B1=B1+1:RETURN:ELSE RETURN
680 IF A3=A AND A4=B THEN T=0:RETURN:ELSE RETURN
690 IF B4=A AND B9=B THEN D=1:RETURN:ELSE RETURN
700 IF A6=A AND A7=B THEN C=1:RETURN:ELSE RETURN
710 IF A(A,B)<0 THEN GOTO 580 ELSE RETURN
720 B3=S:W=X:M=Y:N=A:H=B:P=A(A,B):A(A,B)=A(X,Y):A(X,Y)=1:B1=0
730 A0=5:FOR X=1 TO 8:FOR Y=1 TO 8:IF A(X,Y)>1 THEN GOSUB 250
740 NEXT:NEXT:X=N:Y=H:A0=1:GOSUB 270:A0=0:S=B3:X=W:Y=M:A=N:B=H:A(X,Y)=A(A,B):       A(A,B)=P
750 B6!=1/(ABS(4.5-A)+ABS(4.5-B)+1):IF A(X,Y)<-2 AND A(X,Y)>-9 THEN                 B6!=B6!+1/(ABS(A6-A)+ABS(A7-B)+5)+RND(0)/15
760 G!=P+B1+B6!:IF P=99 THEN GOSUB 900:                                             LOCATE 25,1,1:PRINT "MATE ";B$;:GOTO 2190
770 IF G!<=F! THEN RETURN
780 F!=G!:E=X:Q=Y:R=A:U=B:RETURN
790 CLS
800 Y=0:FOR J=896 TO 0 STEP -128:Y=Y+1:X=0:FOR K=J TO 42+J STEP 6:X=X+1:            T(X,Y)=K:NEXT:NEXT
810 Y=0:FOR J=960 TO 64 STEP -128:Y=Y+1:X=0:FOR K=J TO 42+J STEP 6:X=X+1:            B(X,Y)=K:NEXT:NEXT
820 DATA -7, -4, -5, -9, -99, -5, -4, -7
830 DATA -2, -2, -2, -2, -2, -2, -2, -2
840 DATA 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
850 DATA 2, 2, 2, 2, 2, 2, 2, 2
860 DATA 7, 4, 5, 9, 99, 5, 4, 7
870 FOR Y=8 TO 1 STEP -1:FOR X=1 TO 7 STEP 2:S(X,Y)=I:S(X+1,Y)=-I:NEXT:I=-I:NEXT
880 FOR Y=8 TO 1 STEP -1:FOR X=1 TO 8:READ A(X,Y):NEXT:NEXT:RETURN
890 I=-I:A(4,1)=99:A(5,1)=9:A(4,8)=-99:A(5,8)=-9
900 FOR Y=1 TO 8:FOR X=1 TO 8:GOSUB 910:NEXT:NEXT:RETURN
910 IF S(X,Y)>0 THEN GOTO 940
920 ON ABS(A(X,Y)) GOSUB 980, 1040, 0, 1340, 1440, 0, 1540, 0, 1140                   :IF ABS(A(X,Y))=99 THEN GOSUB 1240:RETURN ELSE RETURN
940 ON ABS(A(X,Y)) GOSUB 960, 990, 0, 1290, 1390, 0, 1490, 0, 1090                    :IF ABS(A(X,Y))=99 THEN GOSUB 1190:RETURN ELSE RETURN
960 IF S(X,Y)<0 THEN GOTO 980
970 LOCATE 25-Y*3,X*8+1,0
971 PRINT STRING$(8,CHR$(219));
972 LOCATE 26-Y*3,X*8+1,0
973 PRINT STRING$(8,CHR$(219));
974 LOCATE 27-Y*3,X*8+1,0
975 PRINT STRING$(8,CHR$(219));:RETURN
980 LOCATE 25-Y*3,X*8+1,0
981 PRINT STRING$(8," ");
982 LOCATE 26-Y*3,X*8+1,0
983 PRINT STRING$(8," ");
984 LOCATE 27-Y*3,X*8+1,0
985 PRINT STRING$(8," ");:RETURN
990 IF I*A(X,Y)<0 THEN GOTO 1020
1000 LOCATE 25-Y*3,X*8+1,0
1001 PRINT STRING$(8,CHR$(219));
1010 LOCATE 26-Y*3,X*8+1,0
1011 PRINT STRING$(3,CHR$(219));CHR$(2);STRING$(4,CHR$(219));
1012 LOCATE 27-Y*3,X*8+1,0
1013 PRINT STRING$(8,CHR$(219)):RETURN
1020 LOCATE 25-Y*3,X*8+1,0
1021 PRINT STRING$(8,CHR$(219));
1030 LOCATE 26-Y*3,X*8+1,0
1031 PRINT STRING$(3,CHR$(219));CHR$(1);STRING$(4,CHR$(219));
1032 LOCATE 27-Y*3,X*8+1,0
1033 PRINT STRING$(8,CHR$(219));:RETURN
1040 IF I*A(X,Y)<0 THEN GOTO 1070
1050 LOCATE 25-Y*3,X*8+1,0
1051 PRINT STRING$(8,CHR$(32));
1060 LOCATE 26-Y*3,X*8+1,0
1061 PRINT STRING$(3,CHR$(32));CHR$(2);STRING$(4,CHR$(32));
1062 LOCATE 27-Y*3,X*8+1,0
1063 PRINT STRING$(8,CHR$(32)):RETURN
1070 LOCATE 25-Y*3,X*8+1,0
1071 PRINT STRING$(8,CHR$(32));
1080 LOCATE 26-Y*3,X*8+1,0
1081 PRINT STRING$(3,CHR$(32));CHR$(1);STRING$(4,CHR$(32));
1082 LOCATE 27-Y*3,X*8+1,0
1083 PRINT STRING$(8,CHR$(32));:RETURN
1090 IF I*A(X,Y)<0 THEN GOTO 1120
1100 LOCATE 25-Y*3,X*8+1,0
1101 PRINT STRING$(2,CHR$(219));STRING$(3,CHR$(178));STRING$(3,CHR$(219));
1110 LOCATE 26-Y*3,X*8+1,0
1111 PRINT CHR$(219)+"QUEEN"+CHR$(219);CHR$(219);
1112 LOCATE 27-Y*3,X*8+1,0
1113 PRINT STRING$(2,CHR$(219));STRING$(3,CHR$(178));STRING$(3,CHR$(219));          :RETURN
1120 LOCATE 25-Y*3,X*8+1,0
1121 PRINT STRING$(2,CHR$(219));STRING$(3,CHR$(176));STRING$(3,CHR$(219));
1130 LOCATE 26-Y*3,X*8+1,0
1131 PRINT CHR$(219)+"QUEEN"+CHR$(219);CHR$(219);
1132 LOCATE 27-Y*3,X*8+1,0
1133 PRINT STRING$(2,CHR$(219));STRING$(3,CHR$(176));STRING$(3,CHR$(219));          :RETURN
1140 IF I*A(X,Y)<0 THEN GOTO 1170
1150 LOCATE 25-Y*3,X*8+1,0
1151 PRINT STRING$(2,CHR$(32));STRING$(3,CHR$(178));STRING$(3,CHR$(32));
1160 LOCATE 26-Y*3,X*8+1,0
1161 PRINT CHR$(32)+"QUEEN"+CHR$(32);CHR$(32);
1162 LOCATE 27-Y*3,X*8+1,0
1163 PRINT STRING$(2,CHR$(32));STRING$(3,CHR$(178));STRING$(3,CHR$(32));            :RETURN
1170 LOCATE 25-Y*3,X*8+1,0
1171 PRINT STRING$(2,CHR$(32));STRING$(3,CHR$(176));STRING$(3,CHR$(32));
1180 LOCATE 26-Y*3,X*8+1,0
1181 PRINT CHR$(32)+"QUEEN"+CHR$(32);CHR$(32);
1182 LOCATE 27-Y*3,X*8+1,0
1183 PRINT STRING$(2,CHR$(32));STRING$(3,CHR$(176));STRING$(3,CHR$(32));            :RETURN
1190 IF I*A(X,Y)<0 THEN GOTO 1220
1200 LOCATE 25-Y*3,X*8+1,0
1201 PRINT STRING$(2,CHR$(219));STRING$(4,CHR$(178));STRING$(2,CHR$(219));
1210 LOCATE 26-Y*3,X*8+1,0
1211 PRINT CHR$(219);CHR$(178)+"KING"+CHR$(178);CHR$(219);
1212 LOCATE 27-Y*3,X*8+1,0
1213 PRINT STRING$(2,CHR$(219));STRING$(4,CHR$(178));STRING$(2,CHR$(219));          :RETURN
1220 LOCATE 25-Y*3,X*8+1,0
1221 PRINT STRING$(2,CHR$(219));STRING$(4,CHR$(176));STRING$(2,CHR$(219));
1230 LOCATE 26-Y*3,X*8+1,0
1231 PRINT CHR$(219);CHR$(176)+"KING"+CHR$(176);CHR$(219);
1232 LOCATE 27-Y*3,X*8+1,0
1233 PRINT STRING$(2,CHR$(219));STRING$(4,CHR$(176));STRING$(2,CHR$(219));          :RETURN
1240 IF I*A(X,Y)<0 THEN GOTO 1270
1250 LOCATE 25-Y*3,X*8+1,0
1251 PRINT STRING$(2,CHR$(32));STRING$(4,CHR$(178));STRING$(2,CHR$(32));
1260 LOCATE 26-Y*3,X*8+1,0
1261 PRINT CHR$(32);CHR$(178)+"KING"+CHR$(178);CHR$(32);
1262 LOCATE 27-Y*3,X*8+1,0
1263 PRINT STRING$(2,CHR$(32));STRING$(4,CHR$(178));STRING$(2,CHR$(32));            :RETURN
1270 LOCATE 25-Y*3,X*8+1,0
1271 PRINT STRING$(2,CHR$(32));STRING$(4,CHR$(176));STRING$(2,CHR$(32));
1280 LOCATE 26-Y*3,X*8+1,0
1281 PRINT CHR$(32);CHR$(176)+"KING"+CHR$(176);CHR$(32);
1282 LOCATE 27-Y*3,X*8+1,0
1283 PRINT STRING$(2,CHR$(32));STRING$(4,CHR$(176));STRING$(2,CHR$(32));            :RETURN
1290 IF I*A(X,Y)<0 THEN GOTO 1320
1300 LOCATE 25-Y*3,X*8+1,0
1301 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(178));STRING$(3,CHR$(219));
1310 LOCATE 26-Y*3,X*8+1,0
1311 PRINT CHR$(219)+"KNIGHT"+CHR$(219);
1312 LOCATE 27-Y*3,X*8+1,0
1313 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(178));STRING$(3,CHR$(219));          :RETURN
1320 LOCATE 25-Y*3,X*8+1,0
1321 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(176));STRING$(3,CHR$(219));
1330 LOCATE 26-Y*3,X*8+1,0
1331 PRINT CHR$(219)+"KNIGHT"+CHR$(219);
1332 LOCATE 27-Y*3,X*8+1,0
1333 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(176));STRING$(3,CHR$(219));          :RETURN
1340 IF I*A(X,Y)<0 THEN GOTO 1370
1350 LOCATE 25-Y*3,X*8+1,0
1351 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(178));STRING$(3,CHR$(32));
1360 LOCATE 26-Y*3,X*8+1,0
1361 PRINT CHR$(32)+"KNIGHT"+CHR$(32);
1362 LOCATE 27-Y*3,X*8+1,0
1363 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(178));STRING$(3,CHR$(32));            :RETURN
1370 LOCATE 25-Y*3,X*8+1,0
1371 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(176));STRING$(3,CHR$(32));
1380 LOCATE 26-Y*3,X*8+1,0
1381 PRINT CHR$(32)+"KNIGHT"+CHR$(32);
1382 LOCATE 27-Y*3,X*8+1,0
1383 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(176));STRING$(3,CHR$(32));            :RETURN
1390 IF I*A(X,Y)<0 THEN GOTO 1420
1400 LOCATE 25-Y*3,X*8+1,0
1401 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(178));STRING$(3,CHR$(219));
1410 LOCATE 26-Y*3,X*8+1,0
1411 PRINT CHR$(219)+"BISHOP"+CHR$(219);
1412 LOCATE 27-Y*3,X*8+1,0
1413 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(178));STRING$(3,CHR$(219));          :RETURN
1420 LOCATE 25-Y*3,X*8+1,0
1421 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(176));STRING$(3,CHR$(219));
1430 LOCATE 26-Y*3,X*8+1,0
1431 PRINT CHR$(219)+"BISHOP"+CHR$(219);
1432 LOCATE 27-Y*3,X*8+1,0
1433 PRINT STRING$(3,CHR$(219));STRING$(2,CHR$(176));STRING$(3,CHR$(219));          :RETURN
1440 IF I*A(X,Y)<0 THEN GOTO 1470
1450 LOCATE 25-Y*3,X*8+1,0
1451 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(178));STRING$(3,CHR$(32));
1460 LOCATE 26-Y*3,X*8+1,0
1461 PRINT CHR$(32)+"BISHOP"+CHR$(32);
1462 LOCATE 27-Y*3,X*8+1,0
1463 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(178));STRING$(3,CHR$(32));            :RETURN
1470 LOCATE 25-Y*3,X*8+1,0
1471 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(176));STRING$(3,CHR$(32));
1480 LOCATE 26-Y*3,X*8+1,0
1481 PRINT CHR$(32)+"BISHOP"+CHR$(32);
1482 LOCATE 27-Y*3,X*8+1,0
1483 PRINT STRING$(3,CHR$(32));STRING$(2,CHR$(176));STRING$(3,CHR$(32));            :RETURN
1490 IF I*A(X,Y)<0 THEN GOTO 1520
1500 LOCATE 25-Y*3,X*8+1,0
1501 PRINT CHR$(219);CHR$(219);CHR$(178);CHR$(219);CHR$(219);CHR$(178);              CHR$(219);CHR$(219);
1510 LOCATE 26-Y*3,X*8+1,0
1511 PRINT CHR$(219);CHR$(219)+"ROOK"+CHR$(219);CHR$(219);
1512 LOCATE 27-Y*3,X*8+1,0
1513 PRINT STRING$(2,CHR$(219));STRING$(4,CHR$(178));STRING$(2,CHR$(219));          :RETURN
1520 LOCATE 25-Y*3,X*8+1,0
1521 PRINT CHR$(219);CHR$(219);CHR$(176);CHR$(219);CHR$(219);CHR$(176);              CHR$(219);CHR$(219);
1530 LOCATE 26-Y*3,X*8+1,0
1531 PRINT CHR$(219);CHR$(219)+"ROOK"+CHR$(219);CHR$(219);
1532 LOCATE 27-Y*3,X*8+1,0
1533 PRINT STRING$(2,CHR$(219));STRING$(4,CHR$(176));STRING$(2,CHR$(219));          :RETURN
1540 IF I*A(X,Y)<0 THEN GOTO 1570
1550 LOCATE 25-Y*3,X*8+1,0
1551 PRINT CHR$(32);CHR$(32);CHR$(178);CHR$(32);CHR$(32);CHR$(178);                  CHR$(32);CHR$(32);
1560 LOCATE 26-Y*3,X*8+1,0
1561 PRINT CHR$(32);CHR$(32)+"ROOK"+CHR$(32);CHR$(32);
1562 LOCATE 27-Y*3,X*8+1,0
1563 PRINT STRING$(2,CHR$(32));STRING$(4,CHR$(178));STRING$(2,CHR$(32));            :RETURN
1570 LOCATE 25-Y*3,X*8+1,0
1571 PRINT CHR$(32);CHR$(32);CHR$(176);CHR$(32);CHR$(32);CHR$(176);                  CHR$(32);CHR$(32);
1580 LOCATE 26-Y*3,X*8+1,0
1581 PRINT CHR$(32);CHR$(32)+"ROOK"+CHR$(32);CHR$(32);
1582 LOCATE 27-Y*3,X*8+1,0
1583 PRINT STRING$(2,CHR$(32));STRING$(4,CHR$(176));STRING$(2,CHR$(32));            :RETURN
1590 LOCATE 25,31,1:PRINT STRING$(10," ");
1600 X$=INKEY$:IF X$="N" THEN N$=X$
1610 IF X$>="A" AND X$<="H" THEN X=VAL(CHR$(ASC(X$)-16)):GOTO 1730
1620 IF X$="N" THEN GOSUB 2030
1630 IF X$="K" AND A(5,1)=99 AND A(8,1)=7 THEN A(5,1)=1:A(8,1)=1:A(7,1)=99          :A(6,1)=7:GOTO 1800
1640 IF X$="Q" AND A(5,1)=99 AND A(1,1)=7 THEN A(5,1)=1:A(1,1)=1:A(3,1)=99          :A(4,1)=7:GOTO 1800
1650 IF X$="K" AND A(4,1)=99 AND A(1,1)=7 THEN A(4,1)=1:A(1,1)=1:A(2,1)=99          :A(3,1)=7:GOTO 1800
1660 IF X$="Q" AND A(4,1)=99 AND A(8,1)=7 THEN A(4,1)=1:A(8,1)=1:A(6,1)=99          :A(5,1)=7:GOTO 1800
1670 IF X$="X" THEN GOSUB 1830:LOCATE 25,1,0:PRINT "EXCHANGING         ";           :GOSUB 2480:IF CL$="Y" THEN LOCATE 25,50,0:PRINT "START ";TIME$;:GOTO 100       :ELSE:GOTO 100
1680 IF X$="S" THEN GOTO 1820
1690 IF X$="M" THEN GOSUB 1840
1700 IF X$="I" THEN GOSUB 2220:CLS:GOSUB 900:LOCATE 25,1,1                          :PRINT "MOVE "+CHR$(7);B$;
1710 IF X$="L" THEN GOSUB 2040
1720 GOTO 1600
1730 LOCATE 25,21,1:PRINT X$;:LOCATE 25,31,1:PRINT "            ";
1740 Y=VAL(INKEY$):IF Y=0 THEN GOTO 1740
1750 LOCATE 25,22,1:PRINT Y;:LOCATE 25,25,1:PRINT "-";
1760 IF A(X,Y)<2 OR A(X,Y)>99 THEN LOCATE 25,31,1:PRINT "ENTRY ERROR ";             :GOTO 1590
1770 A$=INKEY$:IF A$<"A" OR A$>"H" THEN GOTO 1770 ELSE A=VAL(CHR$(ASC(A$)-16))
1780 LOCATE 25,27,1:PRINT A$;
1790 B=VAL(INKEY$):IF B=0 THEN GOTO 1790 ELSE LOCATE 25,28,1:PRINT B;
1800 IF X$="K" OR X$="Q" THEN LOCATE 25,20,1:PRINT "CSTL. ";X$;"-SIDE";             :GOSUB 1830 ELSE GOSUB 1830
1810 IF CL$="Y" THEN LOCATE 25,50,0:PRINT "START ";TIME$;
1820 RETURN
1830 LOCATE 25,1,1:PRINT STRING$(79," ");:RETURN
1840 GOSUB 1830:LOCATE 25,1,1:PRINT "MODIFYING          ";
1850 GOSUB 2010:IF M$<"A" OR M$>"H" THEN GOTO 1850
1860 X=VAL(CHR$(ASC(M$)-16)):LOCATE 25,21,1:PRINT M$;
1870 M$=INKEY$:IF M$<"1" OR M$>"8" THEN GOTO 1870
1880 Y=VAL(M$):LOCATE 25,23,1:PRINT M$;" = ";
1890 M$=INKEY$:IF M$="C" OR M$="P" OR M$="E" THEN S1$=M$:LOCATE 25,27,1             :PRINT M$;:ELSE GOTO 1890
1900 M$=INKEY$:IF M$="S" OR M$="P" OR M$="N" OR M$="B" OR M$="R" OR M$="Q" OR        M$="K" THEN V$=M$:LOCATE 25,29,1:PRINT M$; ELSE GOTO 1900
1910 IF V$="P" THEN V1=2
1920 IF V$="N" THEN V1=4
1930 IF V$="B" THEN V1=5
1940 IF V$="R" THEN V1=7
1950 IF V$="Q" THEN V1=9
1960 IF V$="K" THEN V1=99
1970 IF V$="S" THEN V1=1
1980 IF S1$="C" AND V1<>1 THEN V1=-V1
1990 A(X,Y)=V1:IF S1$="E" THEN A(X,Y)=1
2000 GOSUB 910:GOTO 1840
2010 M$=INKEY$:IF M$="N" THEN GOSUB 2030:GOTO 2010:ELSE IF M$="Z" THEN               GOSUB 1830:LOCATE 25,20,1:PRINT "         ";:GOSUB 900:ELSE RETURN
2020 IF CL$="Y" THEN LOCATE 25,51,0:PRINT "START ";TIME$;:GOTO 100 ELSE GOTO 100
2030 FOR J=1 TO 8:FOR K=1 TO 8:K$=STR$(K)
2031 LOCATE 27-K*3,J*8+1,0
2032 PRINT CHR$(J+64);RIGHT$(K$,1);:NEXT:NEXT:RETURN
2040 GOSUB 1830:LOCATE 25,20,1:PRINT "LEVEL=";B8!;:PRINT "CHANGE LEVELS?";
2050 C$=INKEY$:IF C$="N" THEN GOTO 2090 ELSE IF C$="Y" THEN LOCATE 25,27,1          :PRINT "       ";:GOSUB 1830:ELSE GOTO 2050
2060 L1$=INKEY$:IF L1$="" THEN GOTO 2060 ELSE IF L1$>="0" AND L1$<="9" THEN          LOCATE 25,27,1:PRINT L1$;:ELSE GOTO 2060
2070 L2$=INKEY$:IF L2$="" THEN GOTO 2070 ELSE IF L2$<"0" OR L2$>"9" THEN L2$=L1$    :L1$="0"
2080 B8!=VAL(L1$)*10+VAL(L2$):B7!=B8!/2:LOCATE 25,27,0:PRINT L1$;L2$;
2090 GOSUB 1830:LOCATE 25,20,0:PRINT "              ";:LOCATE 25,1,1                :PRINT "MOVE ";B$;:RETURN
2100 REM *** PROMOTION ROUTINE ***
2110 LOCATE 2,1,1:PRINT "P, N, B, R, Q ";
2120 Z$=INKEY$:IF Z$="P" THEN A(A,B)=2:GOTO 2180
2130 IF Z$="N" THEN A(A,B)=4:GOTO 2180
2140 IF Z$="B" THEN A(A,B)=5:GOTO 2180
2150 IF Z$="R" THEN A(A,B)=7:GOTO 2180
2160 IF Z$="Q" THEN A(A,B)=9:GOTO 2180
2170 GOTO 2120
2180 RETURN
2190 IF CL$="Y" THEN LOCATE 25,61,1:PRINT "STOP ";TIME$;
2200 LOCATE 25,1,1:PRINT "HIT (P) TO PLAY OR HIT (B) FOR BASIC";
2210 A$=INKEY$:IF A$="" THEN GOTO 2210 ELSE IF A$="B" THEN CLS:END                   ELSE IF A$="P" THEN RUN ELSE GOTO 2210
2220 CLS
2221 PRINT "1. USE LIST TO INSURE LOADED RIGHT, THE LAST LINE IS 65529 "
2230 PRINT "2. ALSE NOTE MEMORY SIZE AS A DOUBLE CHECK "
2240 PRINT "3. SPECIAL COMMANDS DURING PLAYER'S MOVE ARE:"
2250 PRINT "   TYPE 'N' - TO NUMBER THE BOARD "
2260 PRINT "        'K' - TO CASTLE KING SIDE "
2270 PRINT "        'Q' - TO CASTLE QUEEN SIDE "
2280 PRINT "        'X' - TO EXCHANGE PIECES AND LET COMPUTER MOVE"
2290 PRINT "        'S' - TO LET THE COMPUTER PLAY BY ITSELF "
2300 PRINT "        'M' - TO MODIFY THE BOARD, ENTER THE SQUARE FOLLOWED BY"
2310 PRINT "                 C, P, OR E  FOR COMPUTER, PLAYER, OR EMPTY"
2320 PRINT "                 AND S,P,N,B,R,Q,K  FOR SQUARE,PAWN, ETC..."
2330 PRINT "        'Z' - TO ESCAPE MODIFY AND LET COMPUTER MOVE"
2340 PRINT "        'I' - TO GET INSTRUCTIONS AGAIN"
2350 PRINT "        'L' - TO LOOK AT OR CHANGE LEVEL OF PLAY"
2360 REM ********************************************************************
2370 INPUT "HIT ENTER TO CONTINUE";EN$:PRINT
2380 PRINT "4. TO PROMOTE TO P,N,B,R,Q ENTER THE LETTER WHEN PROMOTED"
2390 PRINT "5. TO CAPTURE 'EN PASSANT' SPECIFY THE 'FROM' - 'TO' SQUARES"
2400 PRINT "6. LEVELS OF PLAY ARE FROM 01 TO 24"
2410 PRINT "7. COMPUTER ASSUMES MATE IF KING IS LEFT IN CHECK SO BE SURE TO "
2411 PRINT "    WATCH FOR CHECK MESSAGE"
2420 PRINT "8. IF A MOVE IS ILLEGAL OR AN ENTRY ERROR IS MADE SIMPLY TYPE IN"
2421 PRINT "    A NEW MOVE.  A MOVE MAY BE STARTED OVER BY FORCING AN ERROR. (E.G. '9')."
2430 PRINT "9. IF <BREAK> IS HIT DURING THE GAME, TYPE 'GOSUB 900:CONT' TO"
2435 PRINT "    DRAW BOARD AND CONTINUE"
2440 PRINT "10. YOU HAVE A CHOICE OF BLACK OR WHITE, THE COMPUTER WILL ALWAYS"
2441 PRINT "     BE AT THE TOP OF THE SCREEN"
2450 PRINT:PRINT:INPUT "HIT ENTER TO CONTINUE GAME";EN$
2460 RETURN
2480 I=-I:GOSUB 2490:GOSUB 900:RETURN
2490 L=0:FOR J=1 TO 8:FOR K=1 TO 8:L=L+1:IF A(J,K)<>1 THEN C(L)=-A(J,K)             :ELSE C(L)=A(J,K)
2500 NEXT:NEXT
2510 L=65:FOR J=1 TO 8: FOR K=1 TO 8:L=L-1:A(J,K)=C(L):NEXT:NEXT
2520 RETURN
65529 END


SLOTCOLR.BAS

10 M=25
20 RANDOMIZE INT(VAL(MID$(TIME$,7,2)))
30 PRINT "Sound effects (Y/N) ?"
40 NS$=INKEY$: IF NS$="" GOTO 40
50 WIDTH 80:SCREEN 0,1,0,0:COLOR 7,0,2:CLS
60 KEY OFF:GOSUB 1620:COLOR 7,0:CLS
70 REM 'CONVERTED FOR IBM-PC FROM 101 BASIC COMPUTER GAMES BY DIGITAL
80 REM 'EQUIPMENT CORP. SUBMITTED TO DIGITAL BY ROB HOFFBERG OF ROSLYN N.Y.
90 REM 'AUTHOR UNKNOWN
100 REM 'ENHANCED FOR COLOR AND SOUND BY ARNOLD THOMSEN OF SCOTTSDALE, AZ
110 PRINT "OK ";N$;" Here are the odds:"
120 LOCATE 5,10:PRINT "SYMBOL     HOW MANY     PAYOUT"
130 LOCATE 6,10:PRINT "111111111111111111111111111111"
140 LOCATE 7,10:PRINT "CHERRY         3         $2.00"
150 LOCATE 8,10:PRINT "CHERRY         2         $1.00   LEFT & MID WINDOWS ONLY!"
160 LOCATE 9,10:PRINT "CHERRY         1         $0.50   LEFT WINDOW ONLY!"
170 LOCATE 11,10:PRINT "PLUM           3         $5.00"
180 LOCATE 12,10:PRINT "ORANGE         3         $7.50"
190 LOCATE 13,10:PRINT "*BAR*          3        $10.00"
200 LOCATE 15,10:COLOR 6: PRINT "      LEMONS ALWAYS LOOSE":COLOR 7,0
210 LOCATE 20,5:PRINT "When the message PULL appears, press ENTER to PULL."
220 LOCATE 21,5:PRINT "Or type END to end the session."
230 LOCATE 23,5:PRINT "When you are ready to begin press ENTER.";:INPUT Z9$
240 L$=CHR$(186)
250 S$=CHR$(205)
260 B$=CHR$(186)
270 DIM W$(4)
280 W$(1)=" CHERRY ":W$(2)="      ":W$(3)=" *BAR*  ":W$(4)="  PLUM  "
290 REM "WHEEL ONE
300 DIM V$(7)
310 V$(1)=" ORANGE ":V$(2)="  PLUM  ":V$(3)=" LEMON  ":V$(4)=" *BAR*  "
320 V$(7)=" CHERRY ":V$(5)=" CHERRY ":V$(6)=" CHERRY "
330 REM "WHEEL TWO
340 DIM V1$(7)
350 V1$(1)=" *BAR*  ":V1$(2)=" LEMON  ":V1$(3)="  PLUM  "
360 V1$(4)=" CHERRY ":V1$(5)="  PLUM  ":V1$(6)=" ORANGE ":V1$(7)=" CHERRY "
370 REM "WHEEL THREE
380 DIM V3$(5)
390 V3$(1)="  PLUM  ":V3$(2)=" *BAR*  ":V3$(3)=" CHERRY ":V3$(4)=" LEMON  "
400 V3$(5)=" ORANGE "
410 COLOR 15,0:CLS
420 Y=16:FOR X=1 TO 18:LOCATE X,Y:PRINT S$:NEXT X
430 X=18:FOR Y=17 TO 50:LOCATE X,Y:PRINT B$:NEXT Y
440 Y=51:FOR X=18 TO 1 STEP-1:LOCATE X,Y:PRINT S$:NEXT X
450 X=1:FOR Y=50 TO 17 STEP-1:LOCATE X,Y:PRINT L$:NEXT Y
460 COLOR 4,1
470 FOR X = 2 TO 17
480 LOCATE X,17
490 FOR Z = 1 TO 17:PRINT CHR$(36);CHR$(1);:NEXT Z
500 NEXT X
510 Q$ = "QUALITY"
520 LOCATE 3,30:COLOR 15,1:PRINT Q$
530 GOSUB 550:GOTO 590
540 REM "ARM
550 LOCATE 14,52:PRINT "/";
560 Y=52:FOR X=13 TO 8 STEP-1:LOCATE X,Y:PRINT "//";:Y=Y+1:NEXT X
570 FOR X=7 TO 6 STEP-1:LOCATE X,57:PRINT STRING$(3,196):NEXT X
580 FOR X = 1 TO 512:NEXT:RETURN
590 LOCATE 13,28:COLOR 15,1:PRINT "P A Y O U T":LOCATE 14,33
600 X=15:FOR Y=24 TO 42:LOCATE X,Y:PRINT L$:NEXT Y
610 FOR X=15 TO 17:LOCATE X,43:PRINT S$:NEXT X
620 FOR Y=42 TO 24 STEP-1:LOCATE 17,Y:PRINT B$:NEXT Y
630 FOR X=17 TO 15 STEP-1:LOCATE X,23:PRINT S$:NEXT X
640 COLOR 15,0
650 REM "******LEFT WINDOW*****
660 FOR Y=18 TO 26:LOCATE 5,Y:PRINT L$:NEXT Y
670 FOR X=5 TO 7:LOCATE X,27:PRINT S$:NEXT X
680 FOR Y=26 TO 18 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y
690 FOR X=7 TO 5 STEP-1:LOCATE X,18:PRINT S$:NEXT X
700 REM "*****MID WINDOW*****
710 FOR Y=30 TO 37:LOCATE 5,Y:PRINT L$:NEXT Y
720 FOR X=5 TO 7:LOCATE X,38:PRINT S$:NEXT X
730 FOR Y=37 TO 30 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y
740 FOR X=7 TO 5 STEP-1:LOCATE X,29:PRINT S$:NEXT X
750 REM "*****RIGHT WINDOW*****
760 FOR Y=41 TO 48:LOCATE 5,Y:PRINT L$:NEXT Y
770 FOR X=5 TO 7:LOCATE X,49:PRINT S$:NEXT X
780 FOR Y=48 TO 41 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y
790 FOR X=7 TO 5 STEP-1:LOCATE X,40:PRINT S$:NEXT X
800 REM "DO YOU PULL OR END
810 LOCATE 21,24:PRINT "YOU NOW HAVE ";:PRINT USING "$$###.##";M
815 IF M=0 THEN LOCATE 23,12:PRINT "YOU ARE BROKE! AT ";TIME$;" ON ";DATE$:END
820 LOCATE 22,26:PRINT "PULL(ENTER)/END";:INPUT A$
830 IF A$="END" OR A$="E" THEN 1570
840 COLOR 0,0:LOCATE 22,26:PRINT "PULL(ENTER)/END? ":GOSUB 550
850 LOCATE 16,24:COLOR 0,0:E$="    ":PRINT E$;E$;E$;E$;"   "
860 LOCATE 6,19:PRINT E$;E$:LOCATE 6,30:PRINT E$;E$:LOCATE 6,41:PRINT E$;E$
870 COLOR 15,1:GOSUB 550
880 REM " * PICK THE WHEELS
890 FOR I=1 TO 2:Z(I)=INT((RND*7)+1):NEXT I
900 Z(3)=INT((RND*5)+1)
910 COLOR 7,0
920 REM "***** ROLL ALL WINDOWS AND PICK LEFT *****
930 FOR X=1 TO 10:FOR Y=1 TO 4:LOCATE 6,19:PRINT W$(Y)
940 LOCATE 6,30:PRINT W$(Y):LOCATE 6,41:PRINT W$(Y):NEXT Y:NEXT X
950 IF V$(Z(1)) = " CHERRY " THEN COLOR 12,0
960 IF V$(Z(1)) = " ORANGE " THEN COLOR 12,6
970 IF V$(Z(1)) = "  PLUM  " THEN COLOR 9,4
980 IF V$(Z(1)) = " LEMON  " THEN COLOR 14,0
990 IF V$(Z(1)) = " *BAR*  " THEN COLOR 31,0
1000 LOCATE 6,19:PRINT V$(Z(1)):COLOR 7,0
1010 IF NS$ = "N" OR NS$ = "n" GOTO 1030 ELSE SOUND 200,2
1020 REM " ***** ROLL MID AND RIGHT AND PICK MID *****
1030 FOR X=1 TO 15:FOR Y=1 TO 4
1040 LOCATE 6,30:PRINT W$(Y):LOCATE 6,41:PRINT W$(Y):NEXT Y:NEXT X
1050 IF V1$(Z(2)) = " CHERRY " THEN COLOR 12,0
1060 IF V1$(Z(2)) = " ORANGE " THEN COLOR 12,6
1070 IF V1$(Z(2)) = "  PLUM  " THEN COLOR 9,4
1080 IF V1$(Z(2)) = " LEMON  " THEN COLOR 14,0
1090 IF V1$(Z(2)) = " *BAR*  " THEN COLOR 31,0
1100 LOCATE 6,30:PRINT V1$(Z(2)):COLOR 7,0
1110 IF NS$ = "N" OR NS$ = "n" GOTO 1130 ELSE SOUND 300,2
1120 REM "***** ROLL RIGHT AND PICK RIGHT *****
1130 FOR X=1 TO 20:FOR Y=1 TO 4
1140 LOCATE 6,41:PRINT W$(Y):NEXT Y:NEXT X
1150 IF V3$(Z(3)) = " CHERRY " THEN COLOR 12,0
1160 IF V3$(Z(3)) = " ORANGE " THEN COLOR 12,6
1170 IF V3$(Z(3)) = "  PLUM  " THEN COLOR 9,4
1180 IF V3$(Z(3)) = " LEMON  " THEN COLOR 14,0
1190 IF V3$(Z(3)) = " *BAR*  " THEN COLOR 31,0
1200 LOCATE 6,41:PRINT V3$(Z(3)):COLOR 7,0
1210 COLOR 7,0
1220 IF NS$ = "N" OR NS$ = "n" GOTO 1240 ELSE SOUND 400,2
1225 FOR X= 1 TO 512:NEXT X 'DELAY
1230 REM "DO I HAVE 3 OF A KIND
1240 IF V$(Z(1))<>V1$(Z(2)) THEN 1370
1250 IF V1$(Z(2))<>V3$(Z(3)) THEN 1370
1260 IF V$(Z(1))<>" CHERRY " THEN 1280
1270 LOCATE 16,27:PRINT "YOU WIN $2.00   ":M=M+2:GOSUB 5100:GOTO 800
1280 IF V$(Z(1))<>"  PLUM  " THEN 1300
1290 LOCATE 16,27:PRINT "YOU WIN $5.00   ":M=M+5:GOSUB 4000:GOTO 800
1300 IF V$(Z(1))<>" ORANGE " THEN 1320
1310 LOCATE 16,27:PRINT "YOU WIN $7.50   ":M=M+7.5:GOSUB 3000:GOTO 800
1320 IF V$(Z(1))<>" *BAR*  " THEN 1340
1330 LOCATE 16,27:PRINT "YOU WIN $10.00  ":M=M+10:GOSUB 2000:GOTO 800
1340 REM "LEMONS
1350 LOCATE 16,28:PRINT "LEMONS LOSE!":M=M-.25:GOTO 800
1360 REM
1370 REM "DO I HAVE CHERRIES
1380 IF V$(Z(1))<>" CHERRY " THEN 1460
1390 IF V1$(Z(2))<>" CHERRY " THEN 1440
1400 REM
1410 REM "2 CHERRIES
1420 LOCATE 16,27:PRINT "YOU WIN $1.00   ":M=M+1:GOSUB 5000:GOTO 800
1430 REM
1440 REM " 1  CHERRY
1450 LOCATE 16,27:PRINT "YOU WIN $0.50   ":M=M+.5:GOTO 800
1460 REM
1470 REM " GOT SCHMALTZ
1480 ON Z(3) GOSUB 1500,1510,1520,1530,1540,1550,1560
1490 M=M-.25:GOTO 800
1500 LOCATE 16,25:FG=3:COLOR FG,0:PRINT "TRY BINGO INSTEAD ":RETURN
1510 LOCATE 16,25:FG=6:COLOR FG,0:PRINT "HA HA YOU LOSE    ":RETURN
1520 LOCATE 16,25:FG=5:COLOR FG,0:PRINT "ZILCH-O           ":RETURN
1530 LOCATE 16,25:FG=4:COLOR FG,0:PRINT "TRY AGAIN SUCKER  ":RETURN
1540 LOCATE 16,24:FG=1:COLOR FG,7:PRINT "TRY VEGAS INSTEAD  ":RETURN
1550 LOCATE 16,25:FG=2:COLOR FG,0:PRINT "YOU GOT SCHMALTZ  ":RETURN
1560 LOCATE 16,25:FG=23:COLOR FG,0:PRINT "BACK TO STAR TREK":RETURN
1570 LOCATE 16,24:COLOR 15,1:PRINT "     BYE-BYE       "
1580 LOCATE 17,29:PRINT N$
1590 A$=INKEY$:IF A$="" THEN GOTO 1590
1600 END
1610 END
1620 FOR J=2 TO 22
1630 LOCATE 2,2:PRINT CHR$(201):LOCATE 2,79:PRINT CHR$(187)
1640 LOCATE 23,2:PRINT CHR$(200):LOCATE 23,79:PRINT CHR$(188)
1650 LOCATE J,2:PRINT CHR$(186)
1660 LOCATE J,79:PRINT CHR$(186)
1670 NEXT J
1680 FOR J=3 TO 78
1690 LOCATE 2,J:PRINT CHR$(205)
1700 LOCATE 23,J:PRINT CHR$(205)
1710 NEXT J
1720 COLOR 5
1730 LOCATE 4,4:PRINT "W E L C O M E  T O . . ."
1740 LOCATE 8,30:PRINT "I B M ' S  C A S I N O"
1750 LOCATE 17,4:PRINT "Today you will lose your money at IBM's famous slot machine."
1760 LOCATE 18,4:PRINT "You have been given a credit line of $25.00. Therefore at 25 a pull you"
1770 LOCATE 19,4:PRINT "have a minimum of 100 pulls!"
1780 LOCATE 20,4:PRINT "By the way what is your name";:INPUT N$
1790 RETURN
2000 IF NS$="N" OR NS$="n" THEN RETURN 'STARS AND STRIPES FOREVER
2010 PLAY "T220 L4 C2 O3 B-AA2 G+ A A..... G+A A2 G+ A "
2020 PLAY "O4 C O3 A. O4 C O3 B-1 G P4 G2 F+ G G2 F+G"
2030 PLAY "B-..... A G A O4 C2.D2. D O3 G.... P4"
2040 PLAY "O4 C2 C2 O3 B- A A2 G+ A A..... G+ A A2 G+ A B- AGE"
2050 PLAY "G1 F P4 F2 F2 EF A-2 GF O4 F.... O3 FGA O4 C"
2060 PLAY "P2 P4 O3 CDA G2 F O4 F8"
2070 RETURN
3000 IF NS$="N" OR NS$="n" THEN RETURN 'ENTERTAINER
3010 A$="O3 D8 D+8 E8 O4 C O3 E8 O4 C O3 E8 O4 C2."
3020 PLAY "T160 L4;XA$; O4 L8 CDD+ECDE4 O3 B O4 DC2."
3030 PLAY "XA$;L8 O3 AGF+A O4 C E4 DC O3 A O4 D2."
3040 PLAY "XA$; O4 L8 CDD+ECDE4 O3 B O4 D"
3050 PLAY "C2.CDECDE4CDCECDE4CDCECDE4 O3 B O4 D4 C2."
3060 RETURN
4000 IF NS$="N" OR NS$="n" THEN RETURN 'I LEFT MY HEART IN SAN FRANCISCO
4005 S1$ = "F2..GAB-GC1CO2B O3 C"
4010 PLAY "T100 O3 L4 DE-G;XS1$;G....B-A.F8D....P8"
4020 PLAY "L4 DE-EL8FE-DE-L4F....G"
4030 PLAY "L8 AGFGA2. AG+ A8 B-....    C 03 A. C8 F2.. G8 F8 E- D E-G"
4040 PLAY "O3;XS1$; A.... AB- O4CD.... P8 DC+DE-2. D O3 B O4 CDC"
4050 PLAY "O3 G... P8 GF+G O4 E-... O3 G O4 D2 D2 O3 B-...."
4060 RETURN
5000 IF NS$="N" OR NS$="n" THEN RETURN 'SIDEWALKS
5010 PLAY "T200 L2 O4 G.E.D.C.DC4 O3 A B4 O4 C...":RETURN
5100 IF NS$="N" OR NS$="n" THEN RETURN 'DONNA E MOBILE
5110 PLAY "T200 L4 O4 EEE G8 F8 D2 DDD F8 E8 C2 EDC C8"
5120 PLAY "O3 B8 B2 O4 DC O3 A A8 G8 G2"
5130 RETURN

SOLITAIR.BAS

10 REM $LINESIZE:132
20 REM ----------------------------------------------------------------------
30 REM
40 REM		 The Game of Klondyke Solitar
50 REM		 By:  Jeff Littlefield
60 REM		 For: the IBM PC and the Color Graphics Card
70 REM
80 REM		 FOR PUBLIC USE    MAY NOT BE SOLD
90 REM		 ALL  RIGHTS  RESERVED
100 REM
110 REM  Modified by Ken Handzik 11/27/83 to display card suits
120 REM  Revised by Jeff Littlefield 2/2/84 to give better instructions
130 REM ---------------------------------------------------------------------
140 DEFINT  A-Z
150 FALSE=0:TRUE = NOT FALSE : ABORT = FALSE : WON = FALSE : PARDON$="Pardon me while I shuffle the deck."
160 DIM DECK$(52), STACK$(7,21),CARD$(52),TOP$(4),STACKPTR(7),VISIPTR(7),XYARR$(82)
170 NOT.READ=TRUE
180 SCREEN 0,1,0,0:KEY OFF:COLOR 7,1,1:CLS
190 PRINT "Would You Like Instructions? ";
200 A$=INKEY$:IF A$="" THEN 200 ELSE IF A$="y" OR A$="Y" THEN CLS:INSTRUC=TRUE:GOSUB 880
210 KEY OFF : ON KEY(1) GOSUB 1110
220 RANDOMIZE(VAL(MID$(TIME$,7,2))+(VAL(MID$(TIME$,4,2))*60))
230 COLOR 7,1,1:CLS:PRINT PARDON$
240 IF NOT INSTRUC THEN GOSUB 880 ELSE INSTRUC = FALSE
250 GOSUB 350		 	    'SHUFFLE THE DECK
260 CLS
270 GOSUB 640		 	    'PRINT OUT THE PLAYING TABLE
280 WON = FALSE
290 GOTO 1130
300 IF FLAG=1 THEN GOSUB 2590 ELSE GOSUB 2230
310 IF ABORT THEN ABORT = FALSE : GOTO 290
320 FLAG=0:GOSUB 2480		'ASK IF THEY WANT TO PLAY AGAIN
330 IF ABORT THEN ABORT = FALSE : GOTO 290
340 IF FLAG=1 AND WON THEN 230 ELSE IF FLAG=1 THEN CLS:PRINT PARDON$:GOTO 250 ELSE COLOR 7,0,0:CLS:SYSTEM
350 Z = 2
360 FOR I=1 TO 52
370 IF (I MOD 13) - 1 = 0 THEN RESTORE:Z = Z + 1
380 READ ZZ$
390 CARD$(I) = ZZ$+CHR$(Z)
400 NEXT I
410 FOR I= 52 TO 1 STEP -1
420	X=INT(RND(1)*I)+1	'PICK NUMBER FROM 1 TO I
430	DECK$(I)=CARD$(X)	'PICK THAT CARD OUT OF THE PILE
440	CARD$(X)=CARD$(I)	'MOVE LAST CARD TO WHERE PREVIOUS ONE WAS
450 NEXT I
460 X=1 			'DECK COUNTER
470 FOR I=1 TO 7		'NUMBER OF STACKS
480   FOR J=1 TO I		'NUMBER OF CARDS IN THAT STACK
490	STACK$(I,J)=DECK$(X)	'ASSIGN CARDS TO STACK
500	X=X+1
510   NEXT J
520   STACKPTR(I)=I		'SET STACKPTR(I) TO LAST CARD IN EACH STACK
530   VISIPTR(I)=I		'SAME WITH VISIPTR(I)
540 NEXT I
550 DECKPTR=31:ENDDECK=52:DECK$(28)="   ":NC=24
560 DATA" A"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10"," J"," Q"," K"
570 FOR I=1 TO 7
580   STACK$(I,0)="   "
590 NEXT I
600 FOR I=1 TO 4
610   TOP$(I)="   "
620 NEXT I
630 RETURN
640 COLOR 3,1 :LOCATE 1,4:PRINT"TOP:":LOCATE 1,65:PRINT "Time: "
650 LOCATE 3,1:PRINT"STACKS:"
660 FOR I=7 TO 1 STEP -1
670   LOCATE  3,(45-(5*I))
680   PRINT I;
690 NEXT I
700 COLOR 7,1
710 FOR I=1 TO 7
720  FOR J=I TO 7
730	LOCATE (I+3),(45-(J*5))
740	IF VISIPTR(J)=I THEN C$=STACK$(J,I):GOSUB 2840:PRINT STACK$(J,I);:COLOR 7,1 ELSE FOR X=1 TO 3:PRINT CHR$(254);:NEXT X
750  NEXT J
760 NEXT I
770 COLOR 3,1
780 LOCATE 10 ,53:PRINT"PILE:";
790 COLOR 7,1
800 LOCATE 10,59:C$=DECK$(DECKPTR):GOSUB 2840:PRINT DECK$(DECKPTR);:COLOR 3,1:LOCATE 10,65:PRINT"Count: ";:COLOR 7:PRINT NC;:COLOR 3
810 LOCATE 11,64:PRINT"Card #: ";:COLOR 7:PRINT DECKPTR-28;"  ";
820 COLOR 3:LOCATE 12,50:PRINT"COMMAND: __  ";
830 COLOR 2
840 LOCATE 24,26:PRINT"Press F1 For Instructions";
850 COLOR 7
860 LOCATE 12,59
870 RETURN
880 SCREEN 0,1,1,0
890 CLS:KKKS$="  K L O N D Y K E   S O L I T A I R E  "
900 LOCATE ,11:COLOR 10:PRINT"The Game Of  ";:COLOR 12,7:PRINT"";:COLOR 5:PRINT KKKS$;:COLOR 0,7:PRINT"":COLOR 10,1
910 LOCATE 3,1:PRINT"R U L E S :":COLOR 7:LOCATE 4,3:PRINT"1. Cards are played alternating colors on the stack; by suit on the Top."
920 LOCATE 5,3:PRINT "2. Stacks are played in descending order; Top is in ascending order."
930 LOCATE 6,3:PRINT "3. Only Kings can be moved to an empty stack; only Aces can be":LOCATE 7,6:PRINT "moved to an empty Top."
940 LOCATE 8,3:PRINT "4. The Game can be claimed Victory when all cards are uncovered and":LOCATE 9,6:PRINT "no cards are in the pile."
950 LOCATE 10,3:PRINT"5. Commands are 1 - 2 characters. Illegal moves sound the BUZZER."
960 LOCATE 11,3:PRINT"6. When you Quit two short beeps warn you of this."
970 LOCATE 13,1:COLOR 10:PRINT"C O M M A N D S :":COLOR 7
980 LOCATE 15,10:PRINT"C    Claim Victory"
990 LOCATE 16,10:PRINT"N    Show the Next Card on the Pile"
1000 LOCATE 17,10:PRINT"P#   Card on Pile to Stack No. #"
1010 LOCATE 18,10:PRINT"PT   Card on Pile to Top"
1020 LOCATE 19,10:PRINT"##   Visible Cards on Stack #1 to Stack #2"
1030 LOCATE 20,10:PRINT"#T   Bottom Card on Stack #1 to the Top"
1040 LOCATE 21,10:PRINT"Q    Quit This Game (and Try Again or Exit)"
1050 LOCATE 22,10:PRINT"F1   For This Screen"
1060 COLOR 12:LOCATE 23,10:PRINT"Esc  Abort Quit and Return to Present Game
1070 COLOR 13:LOCATE 25,28:PRINT"Press Any Key To Continue";:COLOR 7
1080 IF INSTRUC THEN 1110
1090 SCREEN 0,1,0,0
1100 KEY (1) ON :RETURN
1110 KEY (1) OFF : LOCATE ,,0: SCREEN 0,1,0,1
1120 A$=INKEY$:IF A$="" THEN 1120 ELSE 1090
1130 FLAG=0:GOSUB 1800:IF FLAG=1 THEN 300
1140 LOCATE 12,59:PRINT"__  ";:LOCATE 12,59
1150 K$=INKEY$:IF K$="" THEN LOCATE 1,71:PRINT TIME$;:LOCATE 12,59:GOTO 1150 ELSE PRINT K$;
1160 IF K$="N" OR K$="n" THEN 1220
1170 IF K$="P" OR K$="p" THEN 1300
1180 IF K$>="1"AND K$<="7" THEN 1860
1190 IF K$="Q" OR K$="q" THEN FLAG=0:GOTO 300
1200 IF K$="C" OR K$="c" THEN  2610
1210 SOUND 50,5:GOTO 1140
1220 IF DECKPTR+3>ENDDECK THEN DECKPTR=28
1230 X=ENDDECK-28
1240 IF X <=3 THEN DECKPTR=ENDDECK ELSE DECKPTR=DECKPTR+3
1250 LOCATE 10,59
1260 C$=DECK$(DECKPTR):GOSUB 2840:PRINT DECK$(DECKPTR):COLOR 7,1
1270 LOCATE 11,72:PRINT DECKPTR-28;"  ";
1280 GOTO 1140
1290 K$=INKEY$:IF K$="" THEN 1290 ELSE PRINT K$;:RETURN
1300 GOSUB 1290
1310 IF(K$="t" OR K$="T") OR (K$>="1" AND K$<="7") THEN 1320 ELSE SOUND 50,5:GOTO 1140
1320 W$=DECK$(DECKPTR)
1330 SUIT$=MID$(W$,3,1):SIZE$=MID$(W$,2,1)
1340 IF K$="T" OR K$="t" THEN GOSUB 1520:GOTO 1420
1350 K=VAL(K$)
1360 W1$=STACK$(K,STACKPTR(K))
1370 SUITST$=MID$(W1$,3,1):SIZEST$=MID$(W1$,2,1)
1380 FLAG=0:GOSUB 1590:IF FLAG=0 THEN SOUND 50,5 :GOTO 1130
1390 STACKPTR(K)=STACKPTR(K)+1
1400 STACK$(K,STACKPTR(K))=W$
1410 LOCATE STACKPTR(K)+3,(45-(K*5)):C$=W$:GOSUB 2840:PRINT W$:COLOR 7,1
1420 DECKPTR=DECKPTR-1:GOSUB 1460
1430 LOCATE 10,59:IF DECKPTR>28 THEN C$=DECK$(DECKPTR):GOSUB 2840:PRINT DECK$(DECKPTR):COLOR 7,1 ELSE PRINT"   "
1440 LOCATE 11,72:PRINT DECKPTR-28;"  ";
1450 GOTO 1130
1460 IF DECKPTR+1=ENDDECK THEN 1500
1470 FOR I= DECKPTR+2 TO ENDDECK
1480 DECK$(I-1)=DECK$(I)
1490 NEXT I
1500 ENDDECK=ENDDECK-1:NC=NC-1:LOCATE 10,72:PRINT NC;
1510 RETURN
1520 IF SUIT$=CHR$(5) THEN N=1:GOTO 1560
1530 IF SUIT$=CHR$(4) THEN N=2:GOTO 1560
1540 IF SUIT$=CHR$(3) THEN N=3:GOTO 1560
1550 N=4
1560 SIZEST$=MID$(TOP$(N),2,1)
1570 FLAG=0:GOSUB 1710:IF FLAG=0 THEN SOUND 50,5:GOTO 1130
1580 TOP$(N)=W$:LOCATE 1,10+(10*(N-1)):C$=W$:GOSUB 2840:PRINT W$:COLOR 7,1:RETURN
1590 IF(SUIT$=CHR$(3) OR SUIT$=CHR$(4))AND(SUITST$=CHR$(3) OR SUITST$=CHR$(4)) THEN RETURN
1600 IF(SUIT$=CHR$(5) OR SUIT$=CHR$(6))AND(SUITST$=CHR$(5) OR SUITST$=CHR$(6)) THEN RETURN
1610 IF SIZE$>"9" THEN 1650
1620 IF SIZE$="0" AND SIZEST$="J" THEN 1700
1630 IF SIZE$="9" AND SIZEST$="0" THEN 1700
1640 IF SIZE$="A" AND SIZEST$="2" THEN 1700
1650 IF SIZE$="J" AND SIZEST$="Q" THEN 1700
1660 IF SIZE$="Q" AND SIZEST$="K" THEN 1700
1670 IF SIZE$="K" AND SIZEST$=" " THEN 1700
1680 IF SIZEST$<"A" AND (ASC(SIZEST$)-ASC(SIZE$))=1 THEN 1700
1690 RETURN
1700 FLAG=1:RETURN
1710 IF SIZE$="A" AND SIZEST$=" " THEN 1790
1720 IF SIZE$="2" AND SIZEST$="A" THEN 1790
1730 IF SIZE$="0" AND SIZEST$="9" THEN 1790
1740 IF SIZE$="J" AND SIZEST$="0" THEN 1790
1750 IF SIZE$="Q" AND SIZEST$="J" THEN 1790
1760 IF SIZE$="K" AND SIZEST$="Q" THEN 1790
1770 IF SIZE$<"A" AND (ASC(SIZE$)-ASC(SIZEST$))=1 THEN 1790
1780 RETURN
1790 FLAG=1:RETURN
1800 REM  CHECK TO SEE IF THE GAME IS OVER
1810 FOR I=1 TO 4
1820 IF MID$(TOP$(I),2,1)<>"K" THEN RETURN
1830 NEXT I
1840 REM GAME OVER AND PLAYER WON
1850 FLAG=1:RETURN
1860 REM STACK TO STACK MOVE OR STACK TO TOP
1870 STKNUM1=VAL(K$)
1880 GOSUB 1290
1890 IF (K$>="1" AND K$<="7") OR (K$="T" OR K$="t") THEN 1910
1900 SOUND 50,5:GOTO 1140
1910 IF K$="t" OR K$="T" THEN W$=STACK$(STKNUM1,STACKPTR(STKNUM1)):GOTO 1930
1920 W$=STACK$(STKNUM1,VISIPTR(STKNUM1))
1930 SUIT$=MID$(W$,3,1)
1940 SIZE$=MID$(W$,2,1)
1950 IF K$="T" OR K$="t" THEN GOSUB 1520:GOTO 2180
1960 STKNUM2=VAL(K$)
1970 W$=STACK$(STKNUM2,STACKPTR(STKNUM2))
1980 SUITST$=MID$(W$,3,1)
1990 SIZEST$=MID$(W$,2,1)
2000 FLAG=0:GOSUB 1590
2010 IF FLAG=0 THEN SOUND 50,5:GOTO 1140
2020 IF VISIPTR(STKNUM1)=0 THEN VISIPTR(STKNUM1)=1
2030 FOR I=VISIPTR(STKNUM1) TO STACKPTR(STKNUM1)
2040 STACKPTR(STKNUM2)=STACKPTR(STKNUM2)+1
2050 LOCATE I+3,45-(STKNUM1*5):PRINT"   ";
2060 STACK$(STKNUM2,STACKPTR(STKNUM2))=STACK$(STKNUM1,I)
2070 LOCATE STACKPTR(STKNUM2)+3,45-(STKNUM2*5)
2080 C$ =  STACK$(STKNUM2,STACKPTR(STKNUM2)):GOSUB 2840
2090 PRINT STACK$(STKNUM2,STACKPTR(STKNUM2));:COLOR 7,1
2100 NEXT I
2110 IF VISIPTR(STKNUM1)>0 THEN VISIPTR(STKNUM1)=VISIPTR(STKNUM1)-1
2120 STACKPTR(STKNUM1)=VISIPTR(STKNUM1)
2130 IF STACKPTR(STKNUM1)<1 THEN 1130
2140 LOCATE STACKPTR(STKNUM1)+3,45-(STKNUM1*5)
2150 C$ =  STACK$(STKNUM1,STACKPTR(STKNUM1)):GOSUB 2840
2160 PRINT STACK$(STKNUM1,STACKPTR(STKNUM1));:COLOR 7,1
2170 GOTO 1130
2180 LOCATE STACKPTR(STKNUM1)+3,45-(STKNUM1*5)
2190 PRINT"   ";
2200 IF STACKPTR(STKNUM1)=VISIPTR(STKNUM1) THEN 2110
2210 STACKPTR(STKNUM1)=STACKPTR(STKNUM1)-1
2220 GOTO 1130
2230 REM PRINT OUT THE TABLE
2240 COLOR 2 : SEEN = FALSE
2250 LOCATE 24,24:PRINT"Would you like to see the cards? "; :SOUND 1975,.5:GOSUB 2720 : SOUND 1975,.5
2260 A$=INKEY$:IF A$="" THEN 2260
2270 IF A$=CHR$(27) THEN ABORT=TRUE : LOCATE 24,24:PRINT SPACE$(40);:COLOR 7 : RETURN :ELSE ABORT=FALSE
2280 IF A$<>"y" AND A$<>"Y" AND A$<>"N" AND A$<>"n" THEN SOUND 50,5:GOTO 2260
2290 IF A$="N" OR A$="n" THEN 2460
2300 SEEN = TRUE : LOCATE 24,24:PRINT "                                    ";
2310 FOR I=7 TO 1 STEP -1
2320 X=1
2330 WHILE VISIPTR(I)>X
2340 LOCATE X+3,45-(I*5)
2350 PRINT STACK$(I,X);:X=X+1
2360 WEND
2370 NEXT I
2380 LOCATE 18,50:PRINT"Pile: "
2390 X=0:RR=18
2400 FOR I=29 TO ENDDECK
2410 IF X+56>76 THEN RR=RR+1:X=0
2420 LOCATE RR,X+56
2430 IF DECK$(I)="   "THEN 2460 ELSE PRINT DECK$(I);:X=X+4
2440 NEXT I
2450 COLOR 7
2460 RETURN
2470 COLOR 2
2480 IF SCR.WIDTH=40 THEN SCR.WIDTH =80:LOCATE 24,15:PRINT"Play Again?";:GOTO 2500 ELSE LOCATE 24,24
2490 LOCATE 24,24:PRINT"     Do you want to play again?                     ";
2500 A$=INKEY$:IF A$="" THEN 2500
2510 IF NOT WON THEN COLOR 7
2520 IF A$<>CHR$(27) THEN 2560 ELSE IF NOT SEEN AND NOT WON THEN ABORT=TRUE :LOCATE 24,28:PRINT SPACE$(30);:RETURN
2530 IF WON THEN SOUND 50,5: GOTO 2500
2540 SOUND 50,5:LOCATE 24,17:PRINT"Cheater... Shame Shame!  You've already seen the cards!";:DT!=2000:GOSUB 2740
2550 LOCATE 24,17 : PRINT SPACE$(60);:GOTO 2480
2560 IF A$="y" OR A$="Y" THEN FLAG=1: IF WON THEN GOSUB 3030:RETURN ELSE RETURN
2570 IF A$="N" OR A$="n" THEN GOSUB 3030:RETURN
2580 SOUND 50,5:GOTO 2500
2590 GOSUB 2870
2600 RETURN
2610 'CHECK TO SEE IF CLAIMED VICTORY
2620 FLAG=0
2630 IF NC>0 THEN 2680
2640 FOR I=1 TO 7
2650 IF VISIPTR(I)>1 THEN 2680
2660 NEXT I
2670 FLAG=1:GOTO 300
2680 SOUND 50,5:LOCATE 14,50:PRINT"You Have Not Won Yet!!!"
2690 DT! = 2000 : GOSUB 2740
2700 LOCATE 14,50:PRINT SPC(25);
2710 GOTO 1140
2720 'DELAY TIME ROUTINE FOR (DT!) MILLISECONDS
2730 DT!=100
2740 DV!=DT!*18.2/1000
2750 DEF SEG = &H40
2760 WHILE DV!>0
2770	A! = O
2780	FOR ID = O TO 3
2790	A! = A!*256 + PEEK(&H6F-ID)
2800	NEXT ID
2810	IF A! <> AOLD! THEN DV! = DV! - 1 : AOLD! = A!
2820 WEND
2830 DEF SEG : RETURN
2840 C$=MID$(C$,3,1)
2850 IF C$=CHR$(3) OR C$=CHR$(4) THEN COLOR 12,7 ELSE COLOR 0,7
2860 RETURN
2870 REM 'DISPLAY WON SCREEN'
2880 IF NOT.READ THEN FOR I = 1 TO 82 : READ XYARR$(I) : NEXT : NOT.READ=FALSE
2890 SCREEN 1,0 : COLOR 1,0
2900 FOR I = 82 TO 1 STEP -1
2910 FOR J = 1 TO 45
2920 X=RND(1)*320:Y=RND(1)*200:C=C+1:IF C=4 THEN C=1
2930 PSET (X,Y),C
2940 NEXT J
2950 LL = INT(RND(1)*I)+1
2960 XYPOS$=XYARR$(LL)
2970 XYARR$(LL)=XYARR$(I)
2980 Y = VAL(LEFT$(XYPOS$,1))+8
2990 X= VAL(RIGHT$(XYPOS$,2))
3000 LOCATE Y,X:PRINT "*";
3010 NEXT I
3020 SCR.WIDTH=40 : WON = TRUE : RETURN
3030 SCREEN 0,1:WIDTH 80:RETURN
3040  DATA "002","006","009","010","011","014","018","023","027","030"
3050  DATA "031","032","035","039","103","105","108","112","114"
3060  DATA "118","123","127","129","133","135","136","139","204","208"
3070  DATA "212","214","218","223","225","227","229","233","235","236"
3080  DATA "237","239","304","308","312","314","318","323","325","327"
3090  DATA "329","333","335","337","338","339","404","408","412","414"
3100  DATA "418","423","425","427","429","433","435","438","439","504"
3110  DATA "509","510","511","515","516","517","524","526","530","531"
3120  DATA "532","535","539"

SURVIVAL.BAS

10 CLEAR 2000:DIM T$(47),M(42,8),O(14):SCREEN 0:WIDTH 40:KEY OFF:COLOR 7,0:CLS:LOCATE 10,16:PRINT"SURVIVAL":LOCATE 16,4:PRINT"Translated by Allan & Andrew Lee":LOCATE 18,4:PRINT"Welcome to the game of survival."
20 LOCATE 20,7,0:PRINT"Do you want instructions? ";:D$=INPUT$(1):PRINT D$:IF D$="Y"OR D$="y"THEN GOSUB 2320
30 FOR I=1 TO 47:READ T$(I):NEXT I:FOR I=1 TO 42:FOR J=1 TO 8:READ M(I,J):NEXT J,I
40 P=1:C=2:T1=0:T2=300:P1=230:P2=230:V=0:F0=1:O(1)=21:O(2)=19:O(3)=99:O(4)=6:O(5)=32:O(6)=0:O(7)=38:O(8)=35:O(9)=0:O(10)=35:O(11)=99:O(12)=33:O(13)=34:O(14)=37:M(14,4)=0:M(14,8)=M(14,7)+1:M(2,8)=M(2,7)+1:F1=0:F2=0:F4=0:F7=0:F9=0
50 CLS:COLOR 0,7:PRINT"Elapsed time:";:COLOR 7,0:PRINT T1;" minutes":IF P>21 AND P<38 OR P>38 THEN 120
60 IF O(11)=99 THEN COLOR 0,7:PRINT"Power unit:";:COLOR 7,0:PRINT P1;" units"
70 IF O(14)=99 THEN COLOR 0,7:PRINT"Power pack:";:COLOR 7,0:PRINT P2;" units"
80 IF O(11)=99 AND P1>5 THEN P1=P1-5
90 IF O(14)=99 AND P2>5 THEN P2=P2-5
100 IF O(11)=99 AND P1=0 THEN 1570
110 IF O(14)=99 AND P2=0 THEN 1570
120 T1=T1+5:IF T1>400 THEN 1310
130 IF T1>350 THEN 1620
140 IF T1>200 THEN 1600
150 IF P>=1 AND P<=18 OR P=38 OR F9=1 THEN F0=1 ELSE F0=0
160 IF F0=1 THEN T2=T2-5
170 IF T2<0 THEN T2=0
180 IF F0=0 THEN 200
190 IF T2>0 THEN 240
200 IF F9=0 THEN 230
210 PRINT T2;IF P>21 THEN 1270
220 IF P<18 THEN 1270
230 IF P=38 THEN 670
240 IF P=38 THEN 1540
250 IF F0=1 THEN COLOR 0,7:PRINT"Oxygen remaining:";:COLOR 7,0:PRINT T2;"minutes"
260 COLOR 0,7:PRINT"Present location status:";:COLOR 7,0:PRINT" You are":FOR I=M(P,7) TO M(P,8):PRINT T$(I):NEXT I:PRINT
270 IF P=2 THEN 770
280 FOR I=1 TO 14:IF O(I)<>P THEN 300
290 GOSUB 1880:PRINT"There is ";B$;" here."
300 NEXT I:GOTO 790
310 INPUT">",B$:I=0:IF LEN(B$)<>1 THEN 490
320 IF B$="n"THEN I=1
330 IF B$="s"THEN I=2
340 IF B$="e"THEN I=3
350 IF B$="w"THEN I=4
360 IF B$="u"THEN I=5
370 IF B$="d"THEN I=6
380 IF B$="q"THEN END
390 IF I=0 THEN 630
400 IF M(P,I)=0 THEN 480
410 IF M(P,I)=99 THEN 1290
420 Q=M(P,I):IF P=12 THEN 1350
430 IF P=13 THEN 1390
440 IF P=22 THEN 1440
450 IF P=23 THEN 1480
460 IF P=29 THEN 1500
470 R=P:P=Q:GOTO 50
480 PRINT"You cannot go in that direction!":GOTO 310
490 C$=LEFT$(B$,3):IF C$="loo"THEN 50
500 IF C$="des"THEN 50
510 IF C$="get"OR C$="tak"OR C$="kee"THEN 910
520 IF C$="dro"OR C$="lea"OR C$="put"THEN 1120
530 IF C$="inv"THEN 1230
540 IF C$="qui"OR C$="end"THEN END
550 IF C$="tra"THEN 690
560 IF C$="dig"THEN 750
570 IF C$="deb"THEN 650
580 IF C$="fue"THEN 1700
590 IF C$="rea"THEN 1790
600 IF C$="dea"THEN 1640
610 IF C$="bla"THEN 1730
620 IF C$="up"OR C$="dow"OR C$="nor"OR C$="sou"OR C$="eas"OR C$="wes"THEN 660
630 PRINT"Invalid command!":GOTO 310
640 PRINT"I cannot process your request!":GOTO 310
650 PRINT"Enter location":INPUT P:GOTO 50
660 D$=B$:B$=D$:GOTO 320
670 IF R<>39 THEN 1270
680 GOTO 240
690 IF P<>36 THEN 730
700 IF O(8)=99 THEN 640
710 P=O(8)
720 PRINT"Beaming in process.":GOSUB 2490:IF P=35 THEN V=V+1:GOTO 50
730 IF P<>O(8) THEN 640
740 P=36:GOTO 720
750 IF P<>10 THEN 640
760 O(9)=10:GOTO 270
770 IF O(4)<>99 THEN 280
780 O(4)=100:PRINT"You dropped your illuminator!  You":PRINT"cannot retrieve it.":C=C-1:GOTO 280
790 IF O(5)=28 THEN O(5)=35
800 IF O(5)=42 THEN O(5)=28
810 IF O(5)=41 THEN O(5)=42
820 IF O(5)=27 THEN O(5)=41
830 IF O(5)=25 THEN O(5)=27
840 IF O(5)<>35 THEN 870
850 IF P<>28 THEN 310
860 M(28,1)=35:GOTO 310
870 IF O(5)<>32 THEN 310
880 IF P<>32 THEN 310
890 O(5)=25:IF O(13)=99 THEN 310
900 PRINT"Robot fails to recognize you.  It":PRINT"fires a phasor weapon at you!":GOTO 1320
910 GOSUB 2030:IF I>0 THEN 950
920 IF I<0 THEN 940
930 PRINT"I don't recognize ";RIGHT$(B$,LEN(B$)-J);".":GOTO 310
940 PRINT"What item?":GOTO 310
950 IF O(I)<>P THEN 1030
960 IF C>3 THEN 1040
970 IF I=5 THEN 1050
980 IF I=10 THEN 1060
990 IF I=11 THEN 1070
1000 IF I=14 THEN 1090
1010 C=C+1:O(I)=99:IF I=3 THEN FO=1
1020 PRINT"O.K.":GOTO 310
1030 PRINT"There is no ";RIGHT$(B$,LEN(B$)-J);" here!":GOTO 310
1040 PRINT"You can't carry any more!":GOTO 310
1050 PRINT"You can't carry a robot !":GOTO 310
1060 PRINT"You can't get the message,  it's":PRINT"on the terminal screen.":GOTO 310
1070 IF O(14)=99 THEN 1110
1080 O(11)=99:GOTO 1010
1090 IF O(11)=99 THEN 1110
1100 O(14)=99:GOTO 1010
1110 PRINT"You can't have more than one":PRINT"power supply.":GOTO 310:GOTO 470
1120 GOSUB 2030:IF I>0 THEN 1150
1130 IF I<0 THEN 940
1140 GOTO 930
1150 IF O(I)<>99 THEN 1200
1160 C=C-1:O(I)=P:IF I=3 THEN F0=0
1170 IF I=11 THEN 1210
1180 IF I=14 THEN 1210
1190 GOTO 1020
1200 PRINT"You don't have ";RIGHT$(B$,LEN(B$)-J);"!":GOTO 310
1210 IF P<22 OR P=38 OR F9=1 THEN 1260
1220 GOTO 1020
1230 FOR I=1 TO 14:IF O(I)<>99 THEN 1250
1240 GOSUB 1880:PRINT"You have ";B$;"."
1250 NEXT I:GOTO 310
1260 PRINT"You have no power or power pack.":PRINT"You have frozen to death.":GOTO 1320
1270 PRINT"Oxygen required here, none available.":GOTO 1320
1280 PRINT"A nuclear detonation has just occurred.":GOTO 1320
1290 PRINT"You have fallen to your death.":GOTO 1320
1300 PRINT"You have been zapped by the laser.":GOTO 1320
1310 PRINT"The moon base has just been destroyed":PRINT"by a large asteroid."
1320 PRINT"You have failed to survive."
1330 PRINT"Do you wish to try again?":D$=INPUT$(1):PRINT D$:IF D$="y"THEN 40
1340 END
1350 IF M(P,I)<>13 THEN 470
1360 IF F2=1 THEN 470
1370 PRINT"There is a meteor shower, your space":PRINT"suit has developed a leak!":GOSUB 2250:IF I<>2 THEN 1320
1380 PRINT"Your suit is now sealed.":GOSUB 2490:F2=1:GOTO 470
1390 IF M(P,I)<>22 THEN 470
1400 IF F1=1 THEN 470
1410 PRINT"The shed is locked.":GOSUB 2250:IF I<>1 THEN 1430
1420 PRINT"You are in the shed air lock.":GOSUB 2490:F1=1:GOTO 470
1430 PRINT"Your attempt fails.":GOTO 310
1440 IF M(P,I)<>23 THEN 470
1450 IF F4=1 THEN 470
1460 PRINT"It is dangerous to proceed in the dark!":GOSUB 2250:IF I<>4 THEN 1290
1470 PRINT"The shaft is now illuminated.":GOSUB 2490:F4=1:GOTO 470
1480 IF O(4)<>99 THEN 1290
1490 GOTO 470
1500 IF M(P,I)<>37 THEN 470
1510 IF F3=1 THEN 470
1520 PRINT"There is a laser beam here.  Passage is":PRINT"not possible with beam present.":GOSUB 2250:IF I<>12 THEN 1300
1530 PRINT"The beam is now deflected.":GOSUB 2490:F3=1:GOTO 470
1540 IF R<>29 THEN 250
1550 IF F9=1 THEN 250
1560 F9=1:PRINT"You have just blown the air seal in":PRINT"the space station.":GOTO 250
1570 IF P<22 THEN 1260
1580 IF F9=1 THEN 1260
1590 GOTO 120
1600 IF F5=1 THEN 160
1610 O(6)=14:M(2,8)=M(2,7):M(14,8)=M(14,7):M(14,4)=2:F5=1:GOTO 160
1620 IF F7=0 THEN 1280
1630 GOTO 160
1640 IF O(6)<>99 THEN 1670
1650 IF O(7)<>99 THEN 1690
1660 F7=1:PRINT"Bomb is now deactivated.":GOTO 310
1670 PRINT"You have done nothing to do it with!":GOTO 310
1680 PRINT"There is nothing to do it to!":GOTO 310
1690 PRINT"You can't do it from here!":GOTO 310
1700 IF P<>19 THEN 1690
1710 IF O(9)<>99 THEN 1670
1720 O(9)=98:PRINT"Fuel is now loaded.":GOTO 310
1730 IF P<>21 THEN 1690
1740 IF O(9)<>98 THEN 1780
1750 IF F7=1 THEN 1770
1760 PRINT"Repairs not yet complete.":GOTO 310
1770 PRINT"Congratulations.  You have just blasted":PRINT"off and are now on your way to earth.":PRINT"Your escape time:";T1;"minutes.":GOTO 1330
1780 PRINT"You're space craft has no fuel!":GOTO 310
1790 IF P<>35 THEN 1690
1800 GOSUB 2030:IF I<>10 THEN 1680
1810 IF V<>1 THEN 1830
1820 PRINT"Bomb de-activator is located somewhere":PRINT"east of the space station, on the moon's";:PRINT"surface.":GOTO 1860
1830 IF V<>2 THEN 1850
1840 PRINT"Local fuel source:  Dilithium crystal.":GOTO 1860
1850 PRINT"Dilithium found in soft surfaces."
1860 IF F7=1 THEN PRINT"Spacecraft repairs completed."
1870 GOTO 310
1880 IF I=1 THEN B$="an electronic key"
1890 IF I=2 THEN B$="sealant"
1900 IF I=3 THEN B$="an oxygen module"
1910 IF I=4 THEN B$="an illuminator"
1920 IF I=5 THEN B$="a robot"
1930 IF I=6 THEN B$="a deactivator"
1940 IF I=7 THEN B$="a nuclear bomb"
1950 IF I=8 THEN B$="a transporter unit"
1960 IF I=9 THEN B$="dilithium cyrstals"
1970 IF I=10 THEN B$="a computer message"
1980 IF I=11 THEN B$="a power unit"
1990 IF I=12 THEN B$="a mirror"
2000 IF I=13 THEN B$="a coded badge"
2010 IF I=14 THEN B$="a power pack"
2020 RETURN
2030 FOR J=1 TO LEN(B$):IF MID$(B$,J,1)=" "THEN 2050
2040 NEXT J:I=-1:RETURN
2050 C$=MID$(B$,J+1,3):I=0:IF C$="ele"THEN I=1
2060 IF C$="key"THEN I=1
2070 IF C$="sea"THEN I=2
2080 IF C$="oxy"THEN I=3
2090 IF C$="mod"THEN I=3
2100 IF C$="ill"THEN I=4
2110 IF C$="rob"THEN I=5
2120 IF C$="dea"THEN I=6
2130 IF C$="nuc"THEN I=7
2140 IF C$="bom"THEN I=7
2150 IF C$="tra"THEN I=8
2160 IF C$="dil"THEN I=9
2170 IF C$="cyr"THEN I=9
2180 IF C$="com"THEN I=10
2190 IF C$="mes"THEN I=10
2200 IF C$="uni"THEN I=11
2210 IF C$="mir"THEN I=12
2220 IF C$="bad"THEN I=13
2230 IF C$="pac"THEN I=14
2240 RETURN
2250 INPUT">",B$:C$=LEFT$(B$,3):IF C$="try"THEN 2280
2260 IF C$="use"THEN 2280
2270 I=-1:RETURN
2280 GOSUB 2030:RETURN
2290 IF I<1 THEN 2320
2300 IF O(I)=99 THEN RETURN
2310 PRINT"You don't have ";RIGHT$(B$,LEN(B$)-J);"!":GOTO 2270:PRINT"You're attempt fails!":GOTO 2270
2320 CLS:PRINT:PRINT:PRINT TAB(4)"  You have crash landed on the":PRINT TAB(4)"Earth's moon.  You have limited":PRINT TAB(4)"supplies and time in which to":PRINT TAB(4)"survive.  To travel,  you may"
2330 PRINT TAB(4)"enter directives such as north":PRINT TAB(4)"or n, as well as s,  e,  w and":PRINT TAB(4)"u,  and d (up and down).  You":PRINT TAB(4)"will encounter various items":PRINT TAB(4)"and situations during your"
2340 PRINT TAB(4)"travels.  To communicate, enter":PRINT TAB(4)"commands (verbs),  followed by":PRINT TAB(4)"object names,  if applicable.":PRINT TAB(4)"For example,  get xxx,  leave,":PRINT TAB(4)"use,  and inventory.":PRINT
2350 PRINT TAB(4)"  Once you have survived,  the":PRINT TAB(4)"object then is to acheive the":PRINT TAB(4)"optimum survival time.  Good":PRINT TAB(4)"luck!!!":LOCATE 25,7,0:PRINT"PRESS ANY KEY TO CONTINUE.";:A$=INPUT$(1):RETURN
2360 DATA"at Mare Serenitatis.","on the rim of Pasidonius.","total darkness to the east.","twixt Dawes and Plinus.","at a pass in Haemus mountains.","at crater Manilus.","at Mare Vaporum.","at Mount Eudoxus."
2370 DATA"inside Aristoteles.","in changing area.","in Lacus Somniorum.","at Lacus Mortis.","The surface is very soft here.","at the east side of Mare Imbrium.","at the base of Plato crater. A"
2380 DATA"shiny object is seen to the west.","before a metal shed.  A","signs reads ventilation shaft #2.","east of Mare Serenitatis.","There is total darkness.","at the crash site of a space craft."
2390 DATA"the ship entrance is before you.","at the center of Mare Imbrium.","in the air lock chamber of the ship.","in the aft cargo and fuel storage room.","in the engine room of the spacecraft."
2400 DATA"in the ship's control room.","in an air lock chamber.","inside a ventilator shed.  A ladder","leads down into a large metal shaft.","in a ventilator passage.","in a ventilator opening.  Through the"
2410 DATA"opening a lit passageway can be seen.","in a lighted space station corridor.","in the space station infirmary.","in the recreation room and library.","in the mess hall.  Abandoned food trays"
2420 DATA"are still on the tables.","in the storage room and supply area.","in the sleeping quarters.","in an elevator at the subsurface level.","in an elevator at the surface level.","in the station control center."
2430 DATA"in the transporter room.","in the space station laboratory.","in the hangar area.  The launch area","is just south of here.",7,4,2,15,0,0,1,1,9,3,14,1,0,0,2,3,2,5,14,4,0,0,4,4,1,5,3,0,0,0,5,5
2440 DATA 4,0,3,6,0,0,6,6,0,0,5,0,0,0,7,7,8,1,9,11,0,0,8,8,0,7,10,0,0,0,9,9,10,2,14,7,0,0,11,11,0,9,14,8,0,0,12,13,12,15,7,16,0,0,14,14,0,11,0,13,0,0,15,16,0,16,12,22,0,0,17,18
2450 DATA 99,99,99,99,0,0,19,20,11,18,1,0,0,0,21,22,17,16,7,16,0,0,23,23,16,17,11,17,0,0,23,23,15,19,0,0,0,0,24,24,18,0,20,0,0,0,25,25,0,0,0,19,21,0,26,26,0,0,0,0,0,20,27,27,0,0,13,0,0,23,29,30
2460 DATA 24,0,0,0,22,0,31,31,25,23,0,0,0,0,32,33,27,26,33,32,24,0,34,34,25,0,30,31,0,0,34,34,34,25,41,0,0,0,34,34,0,29,42,36,0,0,34,34,28,38,40,37,0,0,34,34,0,0,0,26,0,0,35,35,0,0,26,0,0,0,36,36
2470 DATA 0,0,25,0,0,0,37,38,0,0,0,25,0,0,40,40,0,27,0,0,0,0,39,39,0,28,0,0,24,0,43,43,0,0,28,0,0,0,44,44,0,0,29,0,0,0,45,45,29,0,39,0,0,0,46,47,40,0,0,38,0,0,28,28,0,39,0,29,0,0,10,10
2480 DATA 0,0,0,27,42,0,41,41,0,0,0,28,0,41,42,42
2490 FOR QQ=1 TO 500:NEXT QQ:RETURN

TRAILER.BAS

10 A$ = "o4l16p8d8o3a8.f#8e8f#g4..
20 PLAY A$
30 B$ = "p8o4c#8.o3abad8dd.."
40 PLAY B$
50 PLAY A$
60 C$ = "p16aa4o4c#4d4e4dc#8o3ab8"
70 PLAY C$
80 D$ = "o4l16p8do3a8.f#8e8f#g8ge8
90 PLAY D$
100 E$ = "p8o4c#8.o3abad8dd8f#a8
110 PLAY E$
120 F$ = "p8o4f#4e8d8d8do3b8.p8.o4e8dc#8d2
130 PLAY F$

TRUMPET.BAS

1 KEY OFF
2 CLS
3 LOCATE 10,20
4 COLOR 0,7
5 PRINT "A TRUMPETER'S LULLABY"
6 COLOR 7,0
7 LOCATE 12,29
8 PRINT "by"
9 LOCATE 13,23
10 PRINT "Leroy Anderson
100 SET$ = "mbo3l8t120" 'music background, octave 3, length eighth note, tempo is 120 quarter notes/sec
105 PLAY SET$
110 A$ = "msbb16b16bbmnbo4do3mlbgmsaa16a16aamnamso4cmlo3af#g2." 'music legato,stacato and normal
115 PLAY "d"
120 PLAY A$
130 B$ = "mnd16e16f#16g16a16b16o4c16msdd16d16ddmndmsgmldo3bo4mscc16c16ccmncmsemlco3amnb1.p4"
135 PLAY "p8p2p16"
140 PLAY B$
150 C$ = "p4go4msee16e16eemnegf#ef#msd16d16df#mnecdo3bo4co3msa16a16ao4cmno3bagea1.p4"
160 PLAY C$
165 PLAY "d"
170 PLAY A$
180 D$ = "gabo4dco3bo4co3b4..ef#gbagag4..p8
190 PLAY D$
200 E$ = "msd16d16o4do3dado4do3d
205 E1$ = "b2p4"
210 PLAY E$
215 PLAY E1$
220 F$ = "msd16d16o4do3dado4do3dbd16d16do4do3bd16d16dbg4.p4"
230 PLAY F$
240 SET2$ = "t138"
250 PLAY SET2$
260 G$ = "p4.p16msa16a16af#ao4d16d16do3ao4af#16f#16af#do3af#a
270 PLAY G$
280 H$ = "p4p16g16g16gego4c16c16co3go4ce16e16geco3geg"
290 PLAY H$
300 I$ = "p16o4d16d16o3bo4df#a16a16af#do3b16b16bo4df#4"
310 PLAY I$
320 J$ = "p8c16c16o3ao4ceg16g16geco3a16a16ao4cep8o3mng.a.o4e.d2p2o3d2e32d32c#32d32
330 PLAY J$
340 K$ = "d#16e16f16f#16g16g#16ab."
350 PLAY K$
360 PLAY "t120"
370 PLAY A$
380 PLAY B$
390 PLAY C$
400 PLAY D$
410 PLAY E$
420 PLAY E1$
430 PLAY E$
440 L$ = "bo4d16d16dgdo3b16b16bp8b8b16b16bo4do3bg16g16gp8"
450 PLAY L$
455 CLS
460 M$ = "p8g16g16gbgd16d16dbgd16d16dbgd16.d16.d16.dbg2."
470 PLAY M$

WELLTEMP.BAS

100 ' PRAELUDIUM I FROM THE WELL-TEMPERED CLAVIER BY J. S. BACH
101 ' TRANSCRIBED FOR PC BY JOHN D. BRINK, RIVER FOREST, IL. 0CTOBER 1983
102 '
103 SCREEN 0,1: WIDTH 80: COLOR 5,1,2: KEY OFF: CLS
104 PLAY "MB L16 T110 MS"
105 FOR I=1 TO 35
106     READ M$
107     PRINT I;" ";M$
108     PLAY M$
109     NEXT I
110 PLAY " MF P1 P1 P1 "
112 '
113 DATA " O2 C E G O3 C E O2 G O3 C E   O2 C E G O3 C E O2 G O3 C E "
114 DATA " O2 C D A O3 D F O2 A O3 D F   O2 C D A O3 D F O2 A O3 D F "
115 DATA " O1BO2D G O3 D F O2 G O3 D F   O1BO2D G O3 D F O2 G O3 D F "
116 DATA " O2 C E G O3 C E O2 G O3 C E   O2 C E G O3 C E O2 G O3 C E "
117 DATA " O2 C E A O3 E A O2 A O3 E A   O2 C E A O3 E A O2 A O3 E A "
118 DATA " O2 C D F#A O3 D O2 F#A O3 D   O2 C D F#A O3 D O2 F#A O3 D "
119 DATA " O1BO2D G O3 D G O2 G O3 D G   O1BO2D G O3 D G O2 G O3 D G "
120 DATA " O1BO2C E G O3 C O2 E G O3 C   O1BO2C E G O3 C O2 E G O3 C "
121 '
122 DATA " O1AO2C E G O3 C O2 E G O3 C   O1AO2C E G O3 C O2 E G O3 C "
123 DATA "O1D AO2D F#O3 C O2 D F#O3 C   O1D AO2D F#O3 C O2 D F#O3 C "
124 DATA "O1 G B O2 D G B D G B         O1 G B O2 D G B D G B "
125 DATA "O1GA#O2E G O3 C#O2 E G O3 C#  O1GA#O2E G O3 C#O2 E G O3 C#"
126 DATA "O1F AO2D A O3 D O2 D A O3 D   O1F AO2D A O3 D O2 D A O3 D "
127 DATA "O1 F G#O2 D F B D F B         O1 F G#O2 D F B D F B "
128 DATA "O1EG O2C G O3 C O2 C G O3 C   O1EG O2C G O3 C O2 C G O3 C "
129 DATA "O1 E F A O2 C F O1 A O2 C F   O1 E F A O2 C F O1 A O2 C F "
130 '
131 DATA "O1 D F A O2 C F O1 A O2 C F   O1 D F A O2 C F O1 A O2 C F "
132 DATA "O0GO1D G B O2 F O1 G B O2 F   O0GO1D G B O2 F O1 G B O2 F "
133 DATA "O1 C E G O2 C E O1 G O2 C E   O1 C E G O2 C E O1 G O2 C E "
134 DATA "O1 C G A#O2 C E O1 A#O2 C E   O1 C G A#O2 C E O1 A#O2 C E "
135 DATA "O0FO1F A O2 C E O1 A O2 C E   O0FO1F A O2 C E O1 A O2 C E "
136 DATA "O0F#O1CA O2 C D#O1 A O2 C D#  O0F#O1CA O2 C D#O1 A O2 C D#"
137 DATA "O0G O1D#B O2C D#O1 B O2 C D#  O0G O1D#B O2C D#O1 B O2 C D#"
138 DATA "O0G#O1FB O2 C D O1 B O2 C D   O0G#O1FB O2 C D O1 B O2 C D "
139 '
140 DATA "O0G O1FG B O2 D O1 G B O2 D   O0G O1FG B O2 D O1 G B O2 D "
141 DATA "O0G O1EG O2 C E O1 G O2 C E   O0G O1EG O2 C E O1 G O2 C E "
142 DATA "O0G O1DG O2 C F O1 G O2 C F   O0G O1DG O2 C F O1 G O2 C F "
143 DATA "O0G O1DG B O2 F O1 G B O2 F   O0G O1DG B O2 F O1 G B O2 F "
144 DATA "O0G O1D#A O2C F#O1 A O2 C F#  O0G O1D#A O2C F#O1 A O2 C F#"
145 DATA "O0G O1E G O2C G O1 G O2 C G   O0G O1E G O2C G O1 G O2 C G "
146 DATA "O0G O1D G O2C F O1 G O2 C F   O0G O1D G O2C F O1 G O2 C F "
147 DATA "O0G O1DG B O2 F O1 G B O2 F   O0G O1DG B O2 F O1 G B O2 F "
148 '
149 DATA "O0C O1CG A#O2 E O1 G A#O2 E   O0C O1CG A#O2 E O1 G A#O2 E "
150 DATA "T105 O0C O1C F A O2C F C O1A  O2C O1A F A F D F D "
151 DATA "T090 O0C B O2G B O3D F D O2B  O3D O2B G B D F E D C1"
152 '
153 '
154 ' PRAELUDIUM II FROM THE WELL-TEMPERED CLAVIER BY J. S. BACH
155 ' TRANSCRIBED FOR PC BY JOHN D. BRINK, OCTOBER 1983
156 SOUND 60,0:    COLOR 5,2,1: CLS: PLAY "MB L32 T90 MS"
157 FOR I=1 TO 74: READ M$:  PRINT I;" ";M$:            PLAY M$:  NEXT I
158 PLAY " MF T100 P1 P1 P1 ": COLOR 7,0,0:  KEY ON:   CLS:  END
159 DATA " O3C O1C O2D#O1G O2D O1F O2D#O1G   O2C O1D#O2D#O1G O2D O1F O2D#O1G "
160 DATA " O3C O1C O2D#O1G O2D O1F O2D#O1G   O2C O1D#O2D#O1G O2D O1F O2D#O1G "
161 DATA " O2G#O1C O2F O1G#O2E O1G O2F O1G#  O2C O1F O2F O1G#O2E O1G O2F O1G#"
162 DATA " O2G#O1C O2F O1G#O2E O1G O2F O1G#  O2C O1F O2F O1G#O2E O1G O2F O1G#"
163 DATA " O2B O1C O2F O1G#O2D#O1G O2F O1G#  O2D O1F O2F O1G#O2D#O1G O2F O1G#"
164 DATA " O2B O1C O2F O1G#O2D#O1G O2F O1G#  O2D O1F O2F O1G#O2D#O1G O2F O1G#"
165 DATA " O3C O1C O2G O1D#O2F O1D O2G O1D#  O2D#O1G O2G O1D#O2F O1D O2G O1D#"
166 DATA " O3C O1C O2G O1D#O2F O1D O2G O1D#  O2D#O1G O2G O1D#O2F O1D O2G O1D#"
167 '
168 DATA " O3D#O1C O2G#  C   G O1A#O2G#  C   O2D#O1G#O2G#  C   G O1A#O2G#  C "
169 DATA "O3D#O1C O2G#  C   G O1A#O2G#  C   O2D#O1G#O2G#  C   G O1A#O2G#  C "
170 DATA "O3D O1C O2F#O1A O2E O1G O2F#O1A   O2D O1F#O2F#O1A O2E O1G O2F#O1A "
171 DATA "O3D O1C O2F#O1A O2E O1G O2F#O1A   O2D O1F#O2F#O1A O2E O1G O2F#O1A "
172 DATA "O3D O0A#O2G O1A#O2F#O1A O2G O1A#  O2D O1G O2G O1A#O2F#O1A O2G O1A#"
173 DATA "O3D O0A#O2G O1A#O2F#O1A O2G O1A#  O2D O1G O2G O1A#O2F#O1A O2G O1A#"
174 DATA "O3C O0A#O2E O1G O2D O1F O2E O1G   O2C O1E O2E O1G O2D O1F O2E O1G "
175 DATA "O3C O0A#O2E O1G O2D O1F O2E O1G   O2C O1E O2E O1G O2D O1F O2E O1G "
176 '
177 DATA "O3C O0G#O2F O1G#O2E O1G O2F O1G#  O2C O1F O2F O1G#O2E O1G O2F O1G#"
178 DATA "O3C O0G#O2F O1G#O2E O1G O2F O1G#  O2C O1F O2F O1G#O2E O1G O2F O1G#"
179 DATA "O2A#O0G#O2F O1D O2D#O1C O2F O1D   O2D O1F O2F O1D O2D#O1C O2F O1D "
180 DATA "O2A#O0G#O2F O1D O2D#O1C O2F O1D   O2D O1F O2F O1D O2D#O1C O2F O1D "
181 DATA "O2A#O0G O2G O1D#O2F O1D O2G O1D#  O2D#O1G O2G O1D#O2F O1D O2G O1D#"
182 DATA "O2A#O0G O2G O1D#O2F O1D O2G O1D#  O2D#O1G O2G O1D#O2F O1D O2G O1D#"
183 DATA "O2G#O1C O2G O1D#O2F O1D O2G O1D#  O2D#O1G#O2G O1D#O2F O1D O2G O1D#"
184 DATA "O2G#O1C O2G O1D#O2F O1D O2G O1D#  O2D#O1G#O2G O1D#O2F O1D O2G O1D#"
185 '
186 DATA "O2G#O1D O2D O1F O2C O1D#O2D O1F     A#  G#O2D O1F O2C O1D#O2D O1F "
187 DATA "O2G#O1D O2D O1F O2C O1D#O2D O1F     A#  G#O2D O1F O2C O1D#O2D O1F "
188 DATA "O2G O1D#  A#  G   G#  F   A#  G   O2D#O1G#  A#  G   G#  G   A#  G "
189 DATA "O2G O1D#  A#  G   G#  F   A#  G   O2D#O1G#  A#  G   G#  G   A#  G "
190 DATA "O2F O1D#O2C O1A   A#  G O2C O1G     A   F O2C O1A   A#  G O2C O1A "
191 DATA "O2F O1D#O2C O1A   A#  G O2C O1G     A   F O2C O1A   A#  G O2C O1A "
192 DATA "O2F O1D O2D O1F O2C O1D#O2D O1F     B   G#O2D O1F O2C O1D#O2D O1F "
193 DATA "O2F O1D O2D O1F O2C O1D#O2D O1F     B   G#O2D O1F O2C O1D#O2D O1F "
194 '
195 DATA "O2F O1C O2D O1F O2C O1E O2D O1F     B   G#O2D O1F O2C O1E O2D O1F "
196 DATA "O2F O1C O2D O1F O2C O1E O2D O1F     B   G#O2D O1F O2C O1E O2D O1F "
197 DATA "O2D#O1C O2C O1D#  B O1D O2C O1D#    G   F O2C O1D#  B O1D O2C O1D#"
198 DATA "O2D#O1C O2C O1D#  B O1D O2C O1D#    G   F O2C O1D#  B O1D O2C O1D#"
199 DATA "O1F O0G#O2D#O1C O2D O0B O2D#O1C   O2F O1F O2D#O1C O2D O0B O2D#O1C "
200 DATA "O1F O0G#O2D#O1C O2D O0B O2D#O1C   O2F O1F O2D#O1C O2D O0B O2D#O1C "
201 DATA "O1F#O0A O2C O1D#  B   D O2C O1D#  O2D#O1C O2C O1D#  B O1D O2C O1D#"
202 DATA "O1F#O0A O2C O1D#  B   D O2C O1D#  O2D#O1C O2C O1D#  B O1D O2C O1D#"
203 '
204 DATA "O2D#O0G O2C O1D#  B   D O2C O1D#    G   F O2C O1D#  B O1D O2C O1D#"
205 DATA "O2D#O0G O2C O1D#  B   D O2C O1D#    G   F O2C O1D#  B O1D O2C O1D#"
206 DATA "O2F#O0G O2C O1D#  B   D O2C O1D#    A   C O2C O1D#  B O1D O2C O1D#"
207 DATA "O2F#O0G O2C O1D#  B   D O2C O1D#    A   C O2C O1D#  B O1D O2C O1D#"
208 DATA "O2G O0G O2C O1D#  B   D O2C O1D#  O2D O1F O2C O1D#  B O1D O2C O1D#"
209 DATA "O2G O0G O2C O1D#  B   D O2C O1D#  O2D O1F O2C O1D#  B O1D O2C O1D#"
210 DATA "O2G#O0G O2C O1D#  B   D O2C O1D#  O2D O1F O2C O1D#  B O1D O2C O1D#"
211 DATA "O2G#O0G O2C O1D#  B   D O2C O1D#  O2D O1F O2C O1D#  B O1D O2C O1D#"
212 '
213 DATA "O0G   G   B   B O1D   D   F   F     G#  G#  F   F   E   E   F   F "
214 DATA "O1B   B   F   F O2D   D O1B   B     G#  G#  F   F   E   E   F   F "
215 DATA "O0G   G O1C   C   D#  D#  G   G   O2C   C O1G   G   F#  F#  G   G "
216 DATA "O2D#  D#  C   C   G   G   D#  D#    C   C O1G#  G#  G   G   G#  G#"
217 DATA "O0G   G   A   A O1F#  F#O2C   C     D#  D#  C   C O1B   B O2C   C "
218 DATA "O2F#  F#  C   C   A   A   F#  F#    D#  D#  C   C O1B   B O2C   C "
219 '
220 DATA "O0G   G O3D O0G O3C O0G O3D O0G   O3D#O0G O3C O0G O2B O0G O3C O0G "
221 DATA "O2A O0G O3C O0G O2B O0G O3C O0G   O3D O0G O2B O0G O2A O0G O2B O0G "
222 DATA "O2G O0G O2B   D   A   C   B   D   O3C O2D#  A   C O1B O2G O2A   C "
223 DATA "O2F#O1A O2A   C   G O1B O2A   C   O2B   D   G O1B O2F#O1A O2G O1B "
224 DATA "O2D O1G O3G O1B O3F O1A O3G O1B   O3G#O2C O3F O1G#O3D#O1G O3F O1G#"
225 DATA "O3D O1F O3F O1A O3D#O1G O3F O1A   O3G O1B O3D#O1G O3D O1F O3D#O1G "
226 '
227 DATA "O3C O1D#O3D#O2G O3D O2F O3D#O2G   O3F O2G#O3D O2F O3C O2D#O3D O2F "
228 DATA "O2B   D O3D O2F O3C O2D#O3D O2F   O3D#O2G O3C O2D#  B O2D O3C O2D#"
229 DATA "O2G   C O3C O2D#  B   D O3C O2D#    G#  F O3F O2D O3D#O2C O3F O2D "
230 DATA "O2G   D#O3D#O2C O3D O1B O3D#O2C     F   D O3D O1B O3C O1A O3D O1B "
231 DATA "O2D#  C O3C O2D#  B   D O3C O2D#    G#O1F O2F   D   D#  C   F   D "
232 DATA "O2G O1D#O2D#  C   D O1B O2D#  C     F O1D O2D O1B O2C O1A O2D O1B "
233 '
234 DATA "O2 ML E8 MS ECDE FGG#A# O3C O2 A#G#GF16 L32 GE "
235 DATA "O2 ML F8 MS FGFEFGG#G FD#DD#FDD#F"
236 DATA "L16 O1 B O0 C B O1 D F G#G F B F O2 D O1F B G#G F "
237 DATA "T88 O1 E O2 C# O1 A#G O2 C O1 G#F G#G A#G E G#F D F "
238 DATA "T80 O1 E G E C F D O0 B O1 D O0 C G O1 C D E G A# G"
239 DATA "T72 O1 G# O2 C F D F G# O3 C O2 B O3 C. O2 G. F. D. L32"
240 DATA "O2EO1CO0C O2EO1CO0C O2EO1CO0C O2EO1CO0C O2EO0CO1C"
241 DATA "O2EO1CO0C O2EO1CO0C O2EO1CO0C O2E4.."
242 '
243 '   THAT'S ALL, FOLKS!

WHEEL.BAS

1 REM * COPYRIGHT (C) 1982 BY D. A. LIEN.  ALL RIGHTS RESERVED. *
3 REM             <<<<< THE WHEEL OF FORTUNE >>>>>
5 RANDOMIZE
10 DIM A(60)
20 CLS:KEY OFF
30 PRINT "                 STEP RIGHT UP, STRANGER.  TRY YOUR HAND AT THE ":PRINT:PRINT
40 LOCATE 4,24:COLOR 0,7:PRINT " W H E E L   O F   F O R T U N E ":PRINT:PRINT:COLOR 7,0
50 PRINT "         PAYOFFS IN DOLLARS FOR A $1 BET ARE $1, $2, $5, $10, AND $20."
60 PRINT:PRINT "         SPECIALS ARE THE JOKER (13) AND THE IBM (99), EACH PAYING $40."
70 PRINT:INPUT "               ENTER YOUR CHOICE AS A 1, 2, 5, 10, 13, 20, OR 99"; G
80 IF G=1 OR G=2 OR G=5 OR G=10 OR G=13 OR G=20 OR G=99 THEN 90 ELSE 70
90 CLS
100 T=65:P=INT(RND*54+1)
110 COLOR 31:PRINT TAB(32)"WHEEL OF FORTUNE":COLOR 7
120 LOCATE 3,36:PRINT ">>----<<"
130 RESTORE:FOR I=1 TO 54:READ A(I):NEXT I
140 RESTORE:FOR I=55 TO 60:READ A(I):NEXT I
150 FOR J=1 TO 48:READ K:NEXT J
160 FOR C=1 TO 7
170 READ Y,X
180 LOCATE Y,X
190 GOSUB 600
200 NEXT C
210 LOCATE 16,26:PRINT "ROUND AND ROUND IT GOES . . .";
220 LOCATE 20,34:PRINT " JOKER (13) &"
230 LOCATE 21,36:PRINT " IBM (99)"
240 LOCATE 22,32:PRINT " BOTH PAY 40 TO 1";
250 FOR I=0 TO 6
260 READ Y(I),X(I)
270 NEXT I
280 FOR S=1 TO 100 + INT(RND*2+1)
290 FOR I=0 TO 6
300 LOCATE Y(I),X(I)
310 PRINT A(P+I);:NEXT I
320 IF S<T THEN 370
330 R=(S-T)^2
340 IF S>98 THEN LOCATE 16,27:PRINT "    PAYOFFS GO TO THE":GOTO 360
350 LOCATE 16,22:PRINT "         ALMOST THERE . . . .                   ";
360 IF S<102 THEN FOR Z=1 TO R:NEXT Z
370 P=P-1:IF P=0 THEN P=54
380 NEXT S:PRINT:PRINT TAB(38);:Q=A(P+4):GOSUB 500:X=0
390 LOCATE 20,30:PRINT "  YOUR CHOICE WAS ";:Q=G:GOSUB 500
400 LOCATE 21,35:PRINT STRING$(20,32);
410 LOCATE 20,30:IF G=A(P+4) THEN PRINT "YOU WIN AT"; ODDS; "TO 1  ":               LOCATE 22,32:PRINT STRING$(20,32);:GOTO 430
420 LOCATE 22,32:PRINT "     YOU LOSE        "
430 LOCATE 25,28:PRINT "PRESS <";
440 COLOR 31
450 PRINT"ENTER";:COLOR 7:INPUT"> TO CONTINUE";A$
460 GOTO 20
470 DATA 1,2,99,1,5,1,2,1,10,1,2,1,5,1,2,1,5,1,2,1,20,1,2,10
480 DATA 1,2,1,5,1,2,1,5,1,2,13,1,2,1,10,1,2,1,2
490 DATA 1,20,1,2,5,1,2,10,1,2,5
500 ODDS=Q:IF (Q=13)=(Q=99) THEN PRINT " ";Q:RETURN
510 ODDS=40:A$="JOKER":IF Q=99 THEN A$="IBM"
520 PRINT A$:RETURN
530 DATA 10,1,7,12,5,24,4,36,5,48,7,60,10,72
540 DATA 12,3,9,14,7,26,6,38,7,50,9,62,12,74
600 REM DRAW THE STRINGS
610 PRINT STRING$(8,220);
620 FOR TOP=1 TO 3
630 LOCATE Y+TOP,X:PRINT CHR$(221)STRING$(6,32)CHR$(222);
640 NEXT TOP
650 LOCATE Y+TOP,X:PRINT STRING$(8,223);
660 RETURN

WORDPLAY.BAS

100 '*** Sentence:  Created 9-17-82 by Robert Parnell ***
110 '
120 RANDOMIZE VAL(RIGHT$(TIME$,2))*VAL(MID$(TIME$,4,2)): DEFINT A-Z
130 DEF FNUPS$(X$)=CHR$(ASC(X$)+32*(ASC(X$)>96 AND ASC(X$)<123)): DEF SEG
140 DIM WORD$[3,200]: PART$[1]="adjective": PART$[2]="noun": PART$[3]="verb"
150 FOR X=1 TO 3: ON ERROR GOTO 170: OPEN "I",#1,LEFT$(PART$[X],8)+".DAT"
160 IF EOF(1) THEN 190 ELSE N[X]=N[X]+1: LINE INPUT #1,WORD$[X,N[X]]: GOTO 160
170 RESUME 180
180 OPEN "O",#1,LEFT$(PART$[X],8)+".DAT"
190 CLOSE: COLOR 10: CLS: COLOR 13: POKE 91,4: ON ERROR GOTO 0
200 COLOR 14: PRINT "Enter "PART$[X]"s (There are"N[X]"on file)."
210 PRINT "Type a null RETURN to end."CHR$(13): L[X]=N[X]: LOCATE ,,1
220 COLOR 13: PRINT USING "###";L[X]+1;: PRINT ">";: COLOR 10: A$=""
230 Q$=FNUPS$(INPUT$(1)): L=LEN(A$): IF Q$<>CHR$(27) THEN 250
240 LOCATE ,5: PRINT SPC(L);: LOCATE ,5: A$="": GOTO 230
250 IF Q$<>CHR$(8) THEN 270 ELSE LOCATE ,L+4-(L=0): PRINT " ";
260 LOCATE ,L+4-(L=0): IF L<>0 THEN A$=LEFT$(A$,L-1): GOTO 230 ELSE 230
270 IF Q$=CHR$(13) THEN 290 ELSE IF ASC(Q$)<32 OR L=75 THEN 230
280 PRINT Q$;: A$=A$+Q$: GOTO 230
290 PRINT: IF L=0 THEN 320 ELSE FOR Z=1 TO L[X]
300 IF WORD$[X,Z]=A$ THEN COLOR 14: PRINT "Duplicate entry": GOTO 220
310 NEXT: L[X]=L[X]+1: WORD$[X,L[X]]=A$: GOTO 220
320 IF L[X]=0 THEN BEEP: GOTO 220 ELSE COLOR 13
330 LOCATE ,,0: POKE 91,1: NEXT X
340 PRINT CHR$(13)"Output to (P)rinter or (S)creen? ";
350 Q$=FNUPS$(INPUT$(1)): P=INSTR("SP",Q$)-1: IF P=-1 THEN 350
360 COLOR 10: IF P=0 THEN 470 ELSE COLOR 10: PRINT "P"CHR$(13)
370 FOR X=1 TO 6: COLOR X: LOCATE ,19: PRINT "Align printer and press";
380 PRINT " any key when ready.";: Q$=INKEY$: IF Q$="" THEN NEXT X: GOTO 370
390 COLOR 13: LOCATE ,1: PRINT "Press ESC to exit."SPC(25);CHR$(13): COLOR 10
400 L$="THE "+WORD$[1,RND*L[1]+.5]+" "+WORD$[2,RND*L[2]+.5]+" "
410 L$=L$+WORD$[3,RND*L[3]+.5]+" THE "+WORD$[1,RND*L[1]+.5]+" "
420 L$=L$+WORD$[2,RND*L[2]+.5]+"."+CHR$(13)
430 IF P THEN LPRINT L$ ELSE PRINT L$
440 IF CSRLIN<22 OR P=1 THEN 480
450 COLOR 16,13: PRINT "Press any key to continue.";: COLOR ,0
460 Q$=INPUT$(1): IF Q$=CHR$(27) THEN 490
470 CLS: COLOR 13: PRINT "Press ESC to exit."CHR$(13): COLOR 14
480 IF INKEY$<>CHR$(27) THEN 400
490 COLOR 10: CLS: LOCATE 12: COLOR 13: FOR X=1 TO 3: IF L[X]-N[X]=0 THEN 520
500 OPEN LEFT$(PART$[X],8)+".DAT" FOR APPEND AS #1
510 FOR Y=N[X]+1 TO L[X]: PRINT #1,WORD$[X,Y]: NEXT
520 PRINT L[X]-N[X]"new "PART$[X];: IF L[X]-N[X]<>1 THEN PRINT "s";
530 PRINT " added to the list.": CLOSE: NEXT: COLOR 10: PRINT

Directory of PC-SIG Library Disk #0203

 Volume in drive A has no label
 Directory of A:\

ADVEN1   BAS     22896   1-21-85   8:45a
ASTEROID BAS      2422   2-01-84   1:36a
BLESS    BAS       640  11-08-82  11:29p
CRC      TXT      1430   1-21-85   8:54a
CRCK4    COM      1536  10-21-82   5:50p
FLY      BAS      4608   1-01-80  12:27a
HINT1    DOC       384   3-02-83   1:29a
HINT2    DOC       384   3-02-83   1:30a
HINT3    DOC       512   3-02-83   1:31a
MOON     BAS      4352   4-16-83   8:49a
NEWCHESS BAS     21504   2-21-83   6:08p
SLOTCOLR BAS      9511   1-01-80  12:59a
SOLITAIR BAS     13312   4-10-84   5:58p
SURVIVAL BAS     12672   2-19-83   4:26p
TRAILER  BAS       384  10-02-82
TRUMPET  BAS      1536   4-07-83   9:45p
WELLTEMP BAS      8485   1-01-80   1:50a
WHEEL    BAS      2048   3-11-84   1:17p
WORDPLAY BAS      2571  12-09-82   4:34a
XXX               1280   6-18-84  12:46a
       20 file(s)     112467 bytes
                       45056 bytes free