PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #100)

[PCjs Machine "ibm5150"]

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

Information about “JUKEBOX”

Here is another mixed bag of early day games and music pieces programmed
in BASIC. The games can be fun, if a little mild compared to what game-
players are used to now.  But anyone interested in programming in BASIC
has some excellent examples of various music and games routines to study
and adapt or adopt at will or whimsy.

System Requirements:  Some programs require CGA color (+); BASIC

How to Start: To read DOC or TXT files, enter TYPE filename.ext and
press <ENTER>.  For instructions on running BASIC programs, please
refer to the GETTING STARTED section in this catalog.

File Descriptions:

BAGPIPES BAS  Plays the bagpipes
MENU     PGM  Menu program for running programs on this disk
*        MUS  Music for JUKEBOX.BAS (10 files)
JUKEBOX  BAS  Jukebox music player
ALIEN    SPC  Files for ALIEN.BAS
ALIEN    BAS  Adventure type game
3DTT     BAS+ Play 3-D tic-tac-toe on a 4x4x4 board
A2       SPC  Files for ALIEN.BAS
ALIEN    DOC  Files for ALIEN.BAS
CIA      BAS  Adventure type game
TRADER   BAS  Interstellar trading game
MANOR    BAS  Adventure type game
EGGS     DOC  Brief description of EGGS.BAS
EGGS     BAS+ Draws patterns of eggs on graphics screen
ANIMATE  BAS+ Animation demo

3DTT.BAS

10  '********************************************
20  '*                                          *
30  '*           3D TIC-TAC-TOE                 *
40  '*                                          *
50  '*       (C) 1982 Reza Beheshti             *
60  '*                                          *
70  '*  3504 Pence Ct.                          *
80  '*  Annandale, VA.  22003                   *
90  '*  (703) 560-4821                          *
100 '*                                          *
110 '********************************************
120 '
130 ' System requirments:
140 '
150 ' IBM PC 64K MEM. Min.
160 ' 1 Disk drive
170 ' Color/Graphic Board
180 ' 80 Column monitor (RGB Recommanded)
190 ' Run under "BASICA"
200 '
210 ' ------ ENJOY IT -----
220 '
230 '
240 '
250 '
260 SCREEN 1,0:KEY OFF
270 ON ERROR GOTO 3720
280 CLS:RANDOMIZE 12
290 DEFINT A-Y:DEFDBL Z:DIM AA(3000),A(514),NAM$(11),LOS(11),WIN(11),SCR(11)
300 COLOR 0,0:Y=1:N=0:T=0:W=0:X=0:INSTFL=0:DIFFL=0:WELFL=0
310 IF DIFFL<> 0 THEN 700
320 DIFFL=1
330 GOSUB 3700
340 DRAW "c1bl90bu30r30f3d20g3f3d25g3l30"
350 DRAW "u5r24e3u21l25u5r25u20l27u3"
360 DRAW "br60bd30r40u4l40d4"
370 DRAW "bu4br60nu25d28r30e4u45h4l30"
380 DRAW "bu4r32f7d47g7l36u61r4"
390 DRAW "c2bl120bd2e15r25f3d32g3f3d19g9"
400 DRAW"u24h3e3u20h4l29"
410 DRAW "br59bd26e15r36d9g10u4l40" '- shade
420 DRAW "bu29br55e15r34f7d60g11l8e7u49h7l35" ' d shade
430 PAINT(110,100),2 '3 shade
440 PAINT(100,110),1 ' 3 itself
450 PAINT(150,99),1  '- itself
460 PAINT(150,82),2  ' - shade
470 PAINT(187,82),1 ' d shade
480 PAINT(230,70),2  ' d itself
490 LOCATE 22,12,0:PRINT" TIC - TAC - TOE"
500 Y1=5:Y2=Y1+32:FL=1:GOSUB 980
510 GET(65,45)-(250,133),AA
520 FOR I=1 TO 800:NEXT
530 GOSUB 3700
540 PUT (65,45),AA,XOR
550 XX=65:YY=65
560 FOR KI=1 TO 3
570 FOR K=1 TO 3
580 PUT (XX,YY),AA:XX=XX+15:YY=YY-15:NEXT K
590 FOR I=1 TO 700:NEXT
600 XX=XX-15:YY=YY+15
610 GOSUB 3700
620 FOR K=1 TO 2
630 PUT (XX,YY),AA,XOR:XX=XX-15:YY=YY+15:NEXT K
640 NEXT KI
650 DIFFL=1
660 GOSUB 3700
670 CLS:LOCATE 12,7,0:PRINT"WELCOM TO 3D TIC-TAC-TOE"
680 LOCATE 24,3,0:PRINT "(C) 1982  Reza Beheshti"
690 FOR I=1 TO 2500:NEXT I
700 FOR I=1 TO 514:A(I)=0:NEXT I
710 GOSUB 1310
720 SCREEN 1,0,0:CLS
730 GOSUB 790
740 REM do human's move
750 REM see if tie game though
760 YZ=YZ+1:IF (YZ=9)*(V=1)+(YZ=33)*(V>1) THEN 3260
770 GOSUB 1660
780 GOTO 1750
790 COLOR 1,0
800 Y1=10:Y2=Y1+32:FL=1
810 GOSUB 980
820 Y1=50:Y2=Y1+32:FL=1
830 GOSUB 980
840 Y1=90:Y2=Y1+32:FL=1
850 GOSUB 980
860 Y1=130:Y2=Y1+32:FL=1
870 GOSUB 980
880 LOCATE 1,22,0:PRINT"1   2   3   4"
890 LOCATE 2,18,0:PRINT"1"
900 LOCATE 3,16:PRINT"2"
910 LOCATE 4,14:PRINT"3"
920 LOCATE 5,12:PRINT"4"
930 LOCATE 3,37:PRINT"(1)"
940 LOCATE 8,37:PRINT"(2)"
950 LOCATE 13,37:PRINT"(3)"
960 LOCATE 18,37:PRINT"(4)"
970 RETURN
980 LINE (160,Y1)-(272,Y1)
990 LINE -(205,Y2)
1000 LINE -(95,Y2)
1010 LINE -(160,Y1)
1020 IF FL=1 THEN PAINT (161,Y1+1),2,3
1030 LINE (188,Y1)-(123,Y2),3
1040 LINE (216,Y1)-(151,Y2),3
1050 LINE (244,Y1)-(179,Y2),3
1060 LINE (143,Y1+8)-(255,Y1+8),3
1070 LINE (126,Y1+16)-(238,Y1+16)
1080 LINE (110,Y1+24)-(222,Y1+24)
1090 RETURN
1100 END
1110 ' display X or O subroutine
1120 ULX=160                    'upper left coord. of board
1130 ULY=(BORD-1)*40+10            '
1140 ULY=ULY+(ROW-1)*8            'upper left coord. of box
1150 ULX=ULX+(COL-1)*28-(ROW-1)*16  '
1160 IF FG=0 GOTO 1220
1170 IF FG=2 GOTO 1270
1180 ' print an X
1190 LINE (ULX,ULY)-(ULX+11,ULY+8),3   ' ul-lr line
1200 LINE (ULX-16,ULY+8)-(ULX+27,ULY),3 ' ll-ur line
1210 RETURN
1220 ' Print an ellipse
1230 FOR P=1 TO 15
1240 COLOR  ,0:CIRCLE (ULX+5,ULY+4),8,1,,,.36
1250 CIRCLE (ULX+5,ULY+4),8,0,,,.36:NEXT P
1260 RETURN
1270 ' print the winning marks on screnn
1280 GOSUB 3700
1290 COLOR ,1:CIRCLE (ULX+5,ULY+4),8,0,,,.2
1300 RETURN
1310 SCREEN 0,0,0:COLOR 0,4,0
1320 WIDTH 80:CLS
1330 LOCATE 3,15,0:PRINT"WELCOME TO ":COLOR 1 :LOCATE 3,28
1340 PRINT"T I C  -  T A C  -  T O E"
1350 IF INSTFL<>0 THEN 1540
1360 COLOR 2:INSTFL=1
1370 PRINT:PRINT TAB(5)"My name is ";:COLOR 1:PRINT"WIZY ";
1380 COLOR 2:PRINT"and I will be your opponent"
1390 PRINT:INPUT"What is your name";NA$
1400 LOCATE 7,5,0:PRINT:PRINT"Do you need instructions ";NA$
1410 INPUT K$:K$=LEFT$(K$,1)
1420 IF K$="y" OR K$="n" OR K$="Y" OR K$="N" THEN 1460
1430 BEEP:PRINT "Please answer with a YES or NO":FOR I=1 TO 950:NEXT
1440 FOR J=8 TO 10:LOCATE J,1,0:PRINT"                                      ":NEXT J
1450 GOTO 1400
1460 IF K$="n" OR K$="N" THEN 1540
1470 PRINT:PRINT TAB(3)"3-D TIC-TAC-TOE is played on four boards. You must get 4 in"
1480 PRINT TAB(3)"a row to win. (Horizonal, Vertical, or Diagonally)"
1490 PRINT TAB(3)"There are 4 rows and 4 columns on each board, you enter your choice of"
1500 PRINT TAB(3)"box by a three digit number indicating the row, column, and board number"
1510 PRINT TAB(3)" i.e. [231] is row 2, column 3, on board 1"
1520 PRINT TAB(3)"You will play the 'X' and I will take 'O' and I let you play first"
1530 INSTFL=1
1540 LOCATE 18,3,0:PRINT"There are 2 versions available as follows:"
1550 PRINT TAB(5)"1) Moderately hard to beat"
1560 PRINT TAB(5)"2) Hardest to beat"
1570 LOCATE 21,3,0:PRINT NA$;" Which one would you like";:INPUT V
1580 IF V>0 AND V<3 THEN 1620
1590 BEEP:PRINT"Please chose 1 or 2 only":FOR I=1 TO 999:NEXT
1600 FOR K=21 TO 24:LOCATE K,1:PRINT"                                    ":NEXT
1610 GOTO 1570
1620 LOCATE 25,3,0:PRINT"One moment.."
1630 GOSUB 3360
1640 V=V+1:LOCATE 25,2,0:PRINT"Hit [ENTER] to start";:BEEP:INPUT XXX
1650 SCREEN 1,0,0:RETURN
1660 REM Input query starts here.
1670 CODE=0:LOCATE 23,3,0:INPUT"Which box [RCB]";BOX$
1680 GOSUB 1790   ' to subroutine for valid input check
1690 IF CODE=1 THEN 1670
1700 GOSUB 1980
1710 IF A(D)<>0 THEN 3600
1720 A(D)=1:FG=1:GOSUB 1110
1730 LOCATE 23,1,0:PRINT" I'm thinking .......       ":FOR I=1 TO 1500:NEXT I
1740 RETURN
1750 REM evaluate all moves
1760 GOSUB 2620
1770 GOSUB 2090                  ' do computers move
1780 GOTO 750                    ' to -> see if tie game though
1790 ' Subroutine to check VALID input from the player.
1800 LN=LEN(BOX$):IF LN=3 THEN 1840
1810 BEEP:LOCATE 23,24,0:BEEP:PRINT"Bad Input":FOR I=1 TO 1500:NEXT
1820 LOCATE 23,15,0:PRINT"                    "
1830 CODE=1:RETURN
1840 R$=MID$(BOX$,1,1):ROW=VAL(R$)
1850 C$=MID$(BOX$,2,1):COL=VAL(C$)
1860 B$=MID$(BOX$,3,1):BORD=VAL(B$)
1870 RER$=" ":CER$=" ":BER$=" "
1880 IF ROW<1 OR ROW>4 THEN RER$=" ROW   "
1890 IF COL<1 OR COL>4 THEN CER$=" COLUMN"
1900 IF BORD<1 OR BORD>4 THEN BER$=" BOARD "
1910 IF RER$=" " AND CER$=" " AND BER$=" " THEN RETURN
1920 CODE=1
1930 LOCATE 23,1,0
1940 BEEP:PRINT"Invalid  "+RER$+CER$+BER$+"    "
1950 FOR I=1 TO 2000:NEXT:LOCATE 24,1,0
1960 LOCATE 23,1,0:PRINT"                                 ":RETURN
1970 ' **** Subroutine to convert to RCB input
1980 CON1=(BORD-1)*16
1990 CON2=(COL-1)*4
2000 D=CON1+CON2+ROW
2010 RETURN
2020 ' ******* Subroutine to convert from RCB
2030 ZUM1=D/16:BORD=INT(ZUM1+.9899999)
2040 B1=BORD-1:B2=B1*16:B3=D-B2:ZUM1=B3/4:COL=INT(ZUM1+.9899999)
2050 B5=COL-1:B6=B5*4:ROW=B3-B6
2060 RETURN
2070 REM
2080 REM---main logic subroutines---
2090 REM make computer move.
2100 REM
2110 REM see if we have a must block condition
2120 IF (YZ<3)*(V>1)+(YZ=1) THEN 2560
2130 IF Q=0 THEN 2200
2140 FOR G=0 TO 3
2150 E=A(65+G+(Q-1)*4)
2160 REM find empty box to block with
2170 IF A(E)=0 THEN K=E : G=4
2180 NEXT G
2190 GOTO 2590
2200 REM clear box value array
2210 FOR I=1 TO 64 : A(450+I)=0:NEXT I
2220 REM if u=0 then cats game
2230 U=0
2240 REM compute value for each box as it appears in the win array
2250 FOR I=1 TO (-10*(V=1)-76*(V<>1)) STEP (1-3*(V=2))
2260 B=A(370+I)
2270 REM if value of win combo is zero then forget it
2280 IF B=0 THEN U=1:GOTO 2460
2290 REM get strategy value of this win combo in f
2300 F=0
2310 IF (B=1) + (B=5) THEN F=1
2320 IF B=2 THEN F=4
2330 IF B=3 THEN STOP
2340 IF B=10 THEN F=2
2350 IF F=0 THEN 2460
2360 U=1
2370 REM increment each box in win combo by win value
2380 E=(I-1)*4+65
2390 FOR G=0 TO 3
2400 REM get box number in c
2410 C=A(E+G)
2420 REM see if this box is used
2430 IF A(C) <> 0 THEN 2450
2440 A(450+C)=A(450+C)+F
2450 NEXT G
2460 NEXT I
2470 REM see if cats game
2480 IF (U=0)*(V<>2) THEN 3260
2490 REM get best box now
2500 L=0
2510 FOR I=1 TO 64
2520 IF A(450+I)>L THEN L=A(450+I):K=I
2530 NEXT I
2540 REM see if any move found. if not do a random move
2550 IF L>0 THEN 2590
2560 GOSUB 3660
2570 IF A(I)=0 THEN K=I:GOTO 2590
2580 GOTO 2560
2590 REM do computer move in k
2600 GOSUB 2970
2610 RETURN
2620 REM
2630 REM evaluate all moves
2640 REM
2650 Q=0:R=0
2660 REM skip first move on version 1
2670 IF (YZ<3)*(V>1) THEN 2870
2680 K1LL=0 'if set then we are to get out of do loop
2690 FOR I=1 TO (V<>1)*-76+(V=1)*-10
2700 IF K1LL=1 THEN 2840  'human won, we done! if wizy won .                        keep checking to make sure human didn't win first.
2710 E=(I-1)*4+65
2720 F=370+I
2730 C=0
2740 FOR J=0 TO 3
2750 C=C+A(A(J+E))
2760 NEXT J
2770 REM see if wizy lost
2780 A(F)=C
2790 IF C=4 THEN R=I:K1LL=1:GOTO 2840
2800 REM must block if human has three in a row
2810 IF C=3 THEN Q=I
2820 REM see if comy won
2830 IF C=15 THEN R=I:K1LL=2:GOTO 2840
2840 NEXT I
2850 IF K1LL=1 THEN 3230
2860 IF K1LL=2 THEN 2890
2870 RETURN
2880 REM wizy won. find empty box!
2890 FOR H=0 TO 3
2900 C=A(65+H+(R-1)*4)
2910 IF A(C)=0 THEN K=C:H=4
2920 NEXT H
2930 REM do wizy move
2940 GOSUB 2970
2950 REM wizy won.
2960 GOTO 3050
2970 REM
2980 REM do wizy move specify in k
2990 REM
3000 D=K:A(D)=5
3010 GOSUB 2020
3020 FG=0:GOSUB 1110
3030 LOCATE 23,1,0:PRINT"COMPY takes box ";ROW;COL;BORD:FOR I=1 TO 4000:NEXT
3040 GOSUB 3630:RETURN
3050 REM
3060 REM wizy won/lost
3070 REM
3080 FG=2:GOSUB 3300    ' subroutine to mark thru winning boxes
3090 LOCATE 23,1,0:PRINT"HURRAH I WON !!!";:X=X+1:FOR I=1 TO 9000:NEXT
3100 CLS:LOCATE 4,1,0:PRINT"Wins: ";W;" Losses: ";X;" Ties: ";T
3110 LOCATE 7,2,0:PRINT"Do you want to play again ";NA$
3120 INPUT AN$:AN$=LEFT$(AN$,1)
3130 IF AN$="y" OR AN$="Y" THEN 310
3140 IF AN$="n" OR AN$="N" THEN 3180
3150 BEEP:LOCATE 10,3,0:PRINT"Yes/No please":FOR I=1 TO 1500:NEXT
3160 LOCATE 10,3,0:PRINT"               "
3170 GOTO 3110
3180 CLS:LOCATE 9,1,0:PRINT"I liked playing with you..."
3190 PRINT:PRINT"See you soon!"
3200 LOCATE 23,1,0
3210 CLS:RUN "MENU.PGM"
3220 REM wizy lost
3230 FG=2:GOSUB 3300  ' *********  mark the winning boxes
3240 LOCATE 23,1,0:PRINT"BOO-HOO I LOST .....":W=W+1:FOR I=1 TO 9000:NEXT I
3250 GOTO 3100
3260 LOCATE 23,1,0:PRINT"Tie game ...":FOR I=1 TO 9000:NEXT I
3270 GOSUB 3630
3280 GOTO 3100
3290 REM
3300 REM mark thru wins
3310 REM
3320 FOR H=0 TO 3:D=A(65+H+(R-1)*4)
3330 GOSUB 2020  ' convert d to rcb
3340 F=2:GOSUB 1110  ' mark thru wins
3350 NEXT H:RETURN
3360 REM
3370 REM setup win array
3380 REM
3390 RESTORE
3400 FOR I=1 TO 10:FOR C=0 TO 3:READ A(65+C+(I-1)*4):NEXT C:NEXT I
3410 FOR I=57 TO 76:FOR C=0 TO 3
3420 READ A(65+C+(I-1)*4)
3430 NEXT C:NEXT I
3440 FOR I=1 TO 3:FOR C=1 TO 10:FOR E=0 TO 3
3450 A(E+65+(C+I*10-1)*4)=A(E+65+(C-1)*4)+16*I
3460 NEXT E:NEXT C:NEXT I
3470 FOR I=41 TO 56:FOR C=0 TO 3
3480 A(65+C+(I-1)*4)=C*16+I-40:NEXT C:NEXT I
3490 RETURN
3500 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,5,9,13,2
3510 DATA 6,10,14
3520 DATA 3,7,11,15,4,8,12,16,1,6,11,16,4,7,10,13,1,22,43,64
3530 DATA 5,22,39,56,9,26,43,60,13,26,39,52,2,22,42,62,14,26
3540 DATA 38,50
3550 DATA 3,23,43,63,15,27,39,51,4,23,42,61,8,23,38,53,12,27
3560 DATA 42,57,16,27,38,49
3570 DATA 1,21,41,61,1,18,35,52,4,19,34,49,4,24,44,64
3580 DATA 13,25,37,49,13,30,47,64,16,31,46,61,16,28,40,52
3590 REM
3600 LOCATE 23,1,0:BEEP:PRINT"Box already taken!":FOR I=1 TO 1500:NEXT I
3610 GOSUB 3630
3620 GOTO 1670
3630 ' subroutine to clean up line 23 on screen
3640 LOCATE 23,1,0:PRINT"                              "
3650 RETURN
3660 Z1=(RND*100)
3670 I=INT(Z1):IF I<1 OR I>64 THEN 3660
3680 RETURN
3690 REM Subroutine to play the music
3700 PLAY "MBL12T128O3CDEFGABFEDCBADO4C"
3710 RETURN
3720 REM error handling routine
3730 CLS
3740 IF ERR=53 THEN 3830
3750 IF ERR=61 THEN 3860
3760 IF ERR=70 THEN 3910
3770 IF ERR=71 THEN 3940
3780 IF ERR=73 THEN 3970
3790 XX=ERR
3800 PRINT:PRINT"UNEXPECTED error number [";XX;"]"
3810 PRINT:PRINT"Please look it up in your basic manual"
3820 PRINT" in Appendix A.":END
3830 PRINT" Seems like you have the wrong disk in drive 'A`"
3840 PRINT "Please double check it."
3850 GOTO 3990
3860 PRINT"Opps... Your disk space is full, please make "
3870 PRINT" sure you have the right diskette in drive 'A`"
3880 PRINT" or you have to erase some data from the diskette"
3890 PRINT" in drive 'A` before you could save any more data on it."
3900 GOTO 3990
3910 PRINT" Diskette write protection notch is covered and I can "
3920 PRINT"not record your score unless you remove it."
3930 GOTO 3990
3940 PRINT" Drive 'A` is not ready, please insert the right "
3950 PRINT "diskette in, or make sure the drive door is closed."
3960 GOTO 3990
3970 PRINT" Advanced BASIC is required. Please load BASICA and rerun"
3980 END
3990 PRINT:PRINT
4000 INPUT"Please fix the errror "
4010 RETURN

ALIEN.BAS

10 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
20 LOCATE 7,8 ,0:PRINT "General  utility  programs"
30 COLOR 7 ,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
40 LOCATE 11,9,0:PRINT CHR$(179)+"       ALIEN         "+CHR$(179)
50 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
60 COLOR 7,0:LOCATE 13,9,0:PRINT CHR$(179)+"     Version  2B     "+CHR$(179)
70 BEEP
80 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
90 COLOR 15,0,1:LOCATE 17,7,0:PRINT "MARCH 5, 1982     MAV-5-5-K "
100 COLOR 7,0:LOCATE 23,6,0:PRINT "Press space bar to continue..."
110 IF INKEY$ <> "" THEN GOTO 110
120 CMD$ = INKEY$
130 IF CMD$ = "" THEN GOTO 120
140 IF CMD$ = CHR$(27) THEN GOTO 160
150 IF CMD$ <> " " THEN GOTO 120
160 REM TRANSFER COMMAND
600 '**ADVENTURE 2000***
610 '**STARTED 3/5/82***
620 '**EXPERIMENTAL*****
630 'SCREEN 1:COLOR 7,0:CLS
631 CLS
640 LOCATE 25,1:PRINT"press space bar to continue...":LOCATE 2,1
650 DIM A$(100),B$(100):Q=1
660 'BACKROUND
670 PRINT"Welcome to ADVENTURE...":PRINT:PRINT"This is a type of game that has its":PRINT"roots in ths fantasy roll-playing   "
680 PRINT"of 'D&D'(Dungeons and dragons). But":PRINT"the computer versions are really quite "
690 PRINT"different.":PRINT:PRINT
700 PRINT"In this game you will assume the roll":PRINT"of a character faced with a series of"
710 PRINT"situations requiring decisions and":PRINT"quick, intelligent reactions. The":PRINT"computer gives you descriptions of"
720 PRINT"various places, objects, and events.":PRINT"You react to the stimulus and tell ":PRINT"the computer what you want to do."
730 X$=INPUT$(1):IF X$=" " THEN 750
740 GOTO 730
750 CLS:LOCATE 25,1:PRINT"press space bar to continue..."
760 LOCATE 3,1
770 PRINT"One letter commands:":PRINT:PRINT"N for 'walk north'":PRINT"E for 'walk east'":PRINT"W for 'walk west'":PRINT"S for 'walk south'"
775 PRINT" Other commands, help,quit,look,shoot,blast,grab,etc"
780 PRINT"L for 'look'":PRINT:PRINT:PRINT"The computer will understand many words":PRINT"so don't hesitate to tell it what":PRINT"you want it to do in two-word commands."
790 PRINT:PRINT:PRINT"Good luck..."
800 X$=INPUT$(1):IF X$=" " THEN 830
810 SCREEN 1,0,0,0
820 GOTO 800
830 RUN "A2.SPC"

ALIEN.DOC

PROGRAM NAME: ALIEN.BAS
OTHER FILES NEEDED: ALIEN.SPC, A2.SPC, A5.SPC
ABSTRACT: This is an adventure type of game. You are the only
survivor of a space crash, and must avoid storms, battle strange
creatures, and find safe places to hide until you are rescued.
REQUIRES: BASIC language, and the four files named above.


ANIMATE.BAS

1 REM This is a sample program that illustrates how to use several of
2 REM the BASICA graphics commands.  Specifically, animation of objects
3 REM is presented ... along with how to display lines, boxes, and circles.
4 REM
5 REM
6 REM  The following statement defines the Graphics Array where objects will
7 REM  be saved.
8 REM
10 DIM OBJ$(1000)
11 REM
12 REM  The following statement sets up error handling.
13 REM
15 ON ERROR GOTO 20000
16 REM
17 REM  The following few statements check to see if the color monitor
18 REM  is being used.  If it is, control is transferred to stmt 140.
19 REM  If not, BASIC statements are executed that cause the color
20 REM  monitor to be activated.
21 REM
25 DEF SEG=0
30 IF (PEEK(&H410) AND &H30) <> &H30 THEN DEF SEG: GOTO 140
40 KEY OFF
50 CLS
60 WIDTH 80: DEF SEG=0: A=PEEK(&H410): POKE &H410,(A AND &HCF) OR &H20
70 WIDTH  40 :SCREEN 1: SCREEN 0: LOCATE ,,1,6,7
80 KEY OFF
90 SCREEN 0,1
100 COLOR 15,9,4
110 WIDTH 40
140 REM
141 REM The following statements set the appropriate color for the
142 REM program and screen width.  COLOR  0,0 means that background
143 REM is going to be black, with color palette 0 chosen.  This palette
144 REM allows us to use the colors black, green, red, and brown.
145 REM
150 WIDTH 40:COLOR 0,0:SCREEN 1,0:CLS:LOCATE 2,1
160 REM
161 REM Now we begin doing some real graphics processing.  We will begin
162 REM by drawing the object we wish to animate.  Then we will store it
163 REM into our array (obj$) for use later in the program.
164 REM
170 LINE (1,1)-(31,31),3,B ' draw a box
180 CIRCLE (16,16),14,2  ' draw a circle within the box
185 PAINT (16,16),2
190 GET (1,1)-(31,31),OBJ$ ' save object into array
200 CLS
260 REM
261 REM Now we get down to business.  We begin by drawing some lines on the
262 REM screen that will be used as a background.  These lines need not be
263 REM here, but are used for visual effect.
264 REM
270 FOR X%=1 TO 319 STEP 15
280 LINE (X%,1)-(X%,199),1
290 NEXT
300 FOR Y%=1 TO 199 STEP 15
310 LINE (1,Y%)-(319,Y%),1
320 NEXT
400 REM
401 REM Now we begin doing the animation process.  This particular program
402 REM allows the object to randomly move about the screen until it "hits"
403 REM the edge of the screen.  Once this occurs, the direction changes
404 REM and movement continues.  To stop the program requires the ESC key
405 REM to be pressed.
406 REM
410 X%=100:Y%=100:PUT (X%,Y%),OBJ$,XOR
420 DIREC%=1:YDIREC%=0:QUITIT=0:SPEED%=1
430 WHILE QUITIT=0
440 NEWX%=X%+DIREC%*SPEED%:IF NEWX%>287 THEN DIREC%=-1:GOTO 440 ELSE IF NEWX%<1 THEN DIREC%=1:GOTO 440  ' compute new x coordinate
450 NEWY%=Y%+YDIREC%*SPEED%:IF NEWY%>167 THEN YDIREC%=-1:GOTO 450 ELSE IF NEWY%<1 THEN YDIREC%=1:GOTO 450   ' compute new y coordinate
455 REM Check for arrow keys or carrots (<,>). Arrows control direction.
456 REM Carrots control speed (<=slow down, >=speed up)
460 K$=INKEY$:IF K$="" THEN 540
470 IF K$=CHR$(0)+CHR$(77) THEN DIREC%=1
480 IF K$=CHR$(0)+CHR$(75) THEN DIREC%=-1
490 IF K$=CHR$(0)+CHR$(72) THEN YDIREC%=-1
500 IF K$=CHR$(0)+CHR$(80) THEN YDIREC%=1
510 IF K$=CHR$(62) THEN SPEED%=SPEED%+1
520 IF K$=CHR$(60) THEN SPEED%=SPEED%-1:IF SPEED%<0 THEN SPEED%=0
530 IF K$=CHR$(27) THEN QUITIT=1
531 REM
532 REM Display graphics image at new location
533 REM
540 PUT (NEWX%,NEWY%),OBJ$,XOR
541 REM
542 REM Erase graphics image at old location
543 REM
550 PUT (X%,Y%),OBJ$,XOR
560 X%=NEWX%:Y%=NEWY%
570 WEND
580 LOCATE 23,1
590 CLS:RUN "MENU.PGM"
20000 PRINT "error encountered";ERL;"=error line";:RESUME

BAGPIPES.BAS

10   '***********************************************************************
20   '*                                                                     *
30   '*            ADVANCED BASIC MUSIC FOR PC-DOS VERSION 1.1              *
40   '*                                                                     *
50   '***********************************************************************
60   '
70   '
80   '     The purpose of this program is to demonstrate the PLAY instuction.
90   ' The program was written using Advanced Basic version 1.1.  It can only
100  ' been used with BASIC A1.10 (Advanced Basic) because BASIC D1.10 (Disk
110  ' Basic) does not support the PLAY instruction.
120  '
130  '                            A Quick and Dirty program by the,
131  '                            Sleepy Elves
132  '
170 CLS
171 COLOR 0,7,0
180 LOCATE 12,28
190 PRINT " MUSIC FOR YOUR PC "
191 COLOR 7,0,0
200 A$ ="O2L8AO3L4DL8DDEFL4EL8DL4DL8O2AO3DEFGAB-L2AP8"
210 B$ ="O3L8AO4L4DL8DDCO3B-L4AL8AL4AL8FL4AL8AGFEL4FL8DL4D"
220 C$ ="O3L8EL4FL8FGAB-L4AL8AO4L4DP8O3L8DEFGFEDCL2DP8L8DL2EP8L8EFGFEDCL2D"
230 PLAY "T200MNXA$;XB$;XC$;"
240 PLAY "T200MNXA$;XB$;XC$;L1D"
261 LOCATE 18,20
270 PRINT "The speaker on my PC sounds like bagpipes!"
281 COLOR 0,7,0
290 LOCATE 20,10
300 PRINT "Designed and programmed by elves in the Black Forest at night."
301 COLOR 7,0,0
310 RUN "menu.pgm"

CIA.BAS

1 REM  Translated from TRS-80 version on CPMNET BBS
2 REM  Pete Wohlmut 10-3-82
3 DEF SEG= &H40
4 POKE(&H17),PEEK(&H17) OR &H20  ' set Num Lock
5 POKE (&H17),PEEK(&H17) OR &H40 ' set Caps Lock
6 DEF SEG
10 CLEAR:CLS:RANDOMIZE VAL(RIGHT$(TIME$,2)):DEFINT A-Z:GOTO 40
20 Z9=0:FOR R=1 TO 50:IF V1$=N$(R) AND (N(R)=LO OR N(R)=-1) THEN Z9=1:RETURN
30 NEXT:PRINT"I DON'T SEE THAT HERE.":Z9=2:RETURN
40 PRINT "        C.I.A  ADVENTURE"
50 DIM N1$(50),N$(50),N(50),V$(18),LO(30,4),LO$(30):FL=1:DR=0:DG=-1:T=0:EL=0:BU=0:DO=0:CA=0:BA=0:TE=0:GL=0
60 PA=0:RO=0:FOR R=1 TO 5:R1=INT(9*RND(9)):CO$=CO$+STR$(R1):NEXT:LO=1:A9$=">"+STRING$(62,"-")+"<"
70 R=LEN(CO$):CO$=RIGHT$(CO$,R-1)
80 FOR R=1 TO 50:READ N1$(R),N$(R),N(R):NEXT
90 FOR R=1 TO 30:READ LO$(R),LO(R,1),LO(R,2),LO(R,3),LO(R,4):NEXT
100 FOR R=1 TO 18:READ V$(R):NEXT
110 REM
120 PRINT"WE ARE ";LO$(LO);"."
130 FOR R=1 TO 46:IF N(R)=LO THEN PRINT"I CAN SEE ";N1$(R);"."
140 NEXT:B=0:FOR R=1 TO 4:IF LO(LO,R)>0 THEN B=1
150 NEXT:IF B=0 THEN 200
160 PRINT"WE COULD EASILY GO: ";:IF LO(LO,1)>0 THEN PRINT"NORTH  ";
170 IF LO(LO,2)>0 THEN PRINT"SOUTH  ";
180 IF LO(LO,3)>0 THEN PRINT"EAST  ";
190 IF LO(LO,4)>0 THEN PRINT"WEST  ";
200 PRINT:PRINT A9$
210 T=T+1:IF DG>0 THEN DG=DG-1
220 IF T=1 THEN INPUT"ENTER YOUR NAME PARTNER";NA$
230 GOTO 1760
240 N=0:FOR R=1 TO 46:IF N(R)=-1 THEN N=N+1
250 NEXT
260 PRINT:INPUT"WHAT DO YOU THINK WE SHOULD DO";A$
270 GOSUB 1890:V$=LEFT$(A$,3):GOSUB 1950:FOR R=1 TO 18:IF V$=V$(R) THEN 300 ELSE NEXT
280 IF V$="ORD" THEN 2210
290 PRINT"I DON'T KNOW HOW TO DO THAT.":GOTO 260
300 IF V$="QUI" THEN 1650
310 V=R:FOR R=1 TO LEN(A$):IF MID$(A$,R,1)=" " THEN 360 ELSE NEXT
320 IF V$="LOO" THEN 110
330 IF V$="BON" THEN 1670
340 IF V$="INV" THEN 1690
350 PRINT"PLEASE USE 2 WORD COMMANDS SO I CAN UNDERSTAND YOU.":GOTO 260
360 V1$=MID$(A$,R+1,3):FOR R=1 TO 49:IF V1$=N$(R) THEN 390 ELSE NEXT
370 IF V1$="NOR" OR V1$="SOU" OR V1$="EAS" OR V1$="WES" THEN 390
380 PRINT"I DON'T KNOW WHAT IT IS YOU ARE TALKING ABOUT.":GOTO 260
390 ON V GOTO 400,530,620,680,800,840,1040,1140,1300,1320,1360,1450,1490,1540,1600,1650,1670,1690
400 IF V1$="NOR" AND LO(LO,1)>0 THEN LO=LO(LO,1):GOTO 110
410 IF V1$="SOU" AND LO(LO,2)>0 THEN LO=LO(LO,2):GOTO 110
420 IF V1$="EAS" AND LO(LO,3)>0 THEN LO=LO(LO,3):GOTO 110
430 IF V1$="WES" AND LO(LO,4)>0 THEN LO=LO(LO,4):GOTO 110
440 IF V1$="NOR" OR V1$="SOU" OR V1$="EAS" OR V1$="WES" THEN 520
450 GOSUB 20:IF Z9=2 THEN 210
460 IF R=8 THEN LO=5:GOTO 110
470 IF R=37 AND RO=1 AND LO=20 THEN LO=21:GOTO 110
480 IF R=10 THEN LO=11:GOTO 110
490 IF R=14 THEN LO=13:GOTO 110
500 IF R=33 THEN LO=3:GOTO 110
510 IF R=34 AND DO=1 THEN LO=9:GOTO 110
520 PRINT"I CAN'T GO THAT WAY AT THE MOMENT.":GOTO 210
530 GOSUB 20:IF Z9=2 THEN 210
540 IF R=2 OR R=3 OR R=4 OR R=6 OR R=15 OR R=16 OR R=20 OR R=21 OR R=22 OR R=23 OR R=25 OR R=26 OR R=27 OR R=28 OR R=30 OR R=31 OR R=37 OR R=39 OR R=40 OR R=42 OR R=44 OR R=45 OR R=46 THEN 560
550 PRINT"I CAN'T CARRY THAT!":GOTO 210
560 IF N(R)=-1 THEN PRINT"I ALREADY HAVE IT.":GOTO 210
570 IF N>=5 THEN PRINT"I CAN'T CARRY ANYMORE.":GOTO 210
580 PRINT"O.K.":N(R)=-1
590 IF V1$="PAI" AND PA=0 THEN PRINT"SOMETHING FELL FROM THE FRAME!":N(31)=LO:PA=1
600 IF V1$="TEL" THEN TE=0
610 GOTO 210
620 FOR R=1 TO 46:IF V1$=N$(R) AND N(R)=-1 THEN 640 ELSE NEXT
630 PRINT"I DON'T SEEM TO BE CARRYING IT.":GOTO 210
640 IF R=30 THEN PRINT"I DROPPED THE CUP BUT IT BROKE INTO SMALL PEICES.":PRINT"THE COFFEE SOAKED INTO THE GROUND.":N(30)=0:DR=0:GOTO 210
650 IF R=45 THEN GL=0
660 IF R=31 AND N(30)=-1 THEN PRINT"O.K. I DROPPED IT.":PRINT"BUT IT FELL IN THE COFFEE!":N(31)=0:DR=1:GOTO 210
670 PRINT"O.K. I DROPPED IT.":N(R)=LO:GOTO 210
680 IF V1$="BUT" AND LO=3 AND DO=0 THEN PRINT"THE DOORS OPEN WITH A WHOOSH!":DO=1:GOTO 210
690 IF N(46)=-1 AND V1$="BUT" THEN PRINT"I PUSH THE BUTTON ON THE BOX AND":GOTO 770
700 GOSUB 20
710 IF Z9=2 THEN 210
720 IF R=17 AND GL<>1 THEN PRINT"THERE'S ELECTRICITY COURSING THRU THE SQUARE!":PRINT"I'M BEING ELECTROCUTED!":GOTO 2330
730 IF R=35 AND BU=0 THEN PRINT"THE BUTTON ON THE WALL GOES IN .....":PRINT"CLICK! SOMETHING SEEMS DIFFFERENT NOW.":BU=1:GOTO 210
740 IF R=47 AND FL<>1 THEN LO(9,1)=3:FL=1:GOTO 790
750 IF R=48 AND FL<>2 THEN LO(9,1)=8:FL=2:GOTO 790
760 IF R=49 AND FL<>3 THEN LO(9,1)=10:FL=3:GOTO 790
770 IF N(46)=-1 AND (LO=6 OR LO=29)THEN PRINT"THERE IS A BLINDING FLASH....":FORR=1TO3000:NEXT:LO=1:FL=1:LO(9,1)=3:GOTO 110
780 PRINT"NOTHING HAPPENS.":GOTO 210
790 PRINT"THE DOORS CLOSE AND I FEEL AS IF THE ROOM IS MOVING.":PRINT"SUDDENLY THE DOORS OPEN AGAIN.":FOR R=1 TO 5000:NEXT:GOTO 110
800 GOSUB 20:IF Z9=2 THEN 210
810 IF R=18 AND GL<>1 THEN PRINT"THE LEVER HAS ELECTRICITY COURSING THRU IT!":PRINT"I'M BEING ELECTROCUTED!":GOTO 2330
820 IF R=18 AND EL=0 THEN PRINT"THE LEVER GOES ALL THE WAY UP AND CLICKS.":PRINT"SOMETHING SEEMS DIFFERENT NOW.":EL=1:GOTO 210
830 PRINT"NOTHING HAPPENS.":GOTO 210
840 REM
850 IF V1$="DRA" AND LO=5 THEN PRINT"IT LOOKS FRAGILE.":GOTO 210
860 GOSUB 20:IF Z9=2 THEN 210
870 IF R=1 AND BA<>1 THEN PRINT"THERE'S NO POWER FOR IT.":GOTO 210
880 IF R=1 AND TE<>1 THEN PRINT"THERE'S NO T.V. TO WATCH ON.":GOTO 210
890 IF R=6 THEN PRINT"IT LOOKS HEAVY.":GOTO 210
900 IF R=7 THEN PRINT"IT'S LOCKED.":GOTO 210
910 IF R=13 THEN PRINT"IT'S A VERY STRONG BAG.":GOTO 210
920 IF R=19 THEN PRINT"I CAN SEE A LOCKED DRAWER IN IT.":GOTO 210
930 IF R=22 OR R=27 THEN PRINT"THERE'S WRITING ON IT.":GOTO 210
940 IF R=34 AND DO=1 THEN PRINT"THE DOORS ARE OPEN.":GOTO 210
950 IF R=24 THEN PRINT"I CAN SEE A GLEAMING STONE IN IT.":GOTO 210
960 IF R=9 THEN PRINT"THERE IS A SMALL SLIT NEAR THE DOOR.":GOTO 210
970 IF R=34 THEN PRINT"THERE'S A BUTTON NEAR THE DOORS.":GOTO 210
980 IF R=41 AND BU=1 THEN PRINT"THE SCREEN IS DARK.":GOTO 210
990 IF R=41 THEN PRINT"I SEE A METAL PIT 1000'S OF FEET DEEP ON ONE MONITOR.":PRINT"ON THE OTHER SIDE OF THE PIT,I SEE A LARGE HOOK.":GOTO 210
1000 IF R=43 AND BU=1 THEN PRINT"THE SCREEN IS DARK.":GOTO 210
1010 IF R=43 THEN PRINT"I SEE A ROOM WITH A CASE ON A PEDESTAL IN IT.":GOTO 210
1020 IF R=44 THEN PRINT"I SEE A PICTURE OF A GRINNING JACKAL.":GOTO 210
1030 PRINT"I SEE NOTHING OF INTEREST.":GOTO 210
1040 GOSUB 20:IF Z9=2 THEN 210
1050 IF R<>3 AND R<>2 AND R<>4 AND R<>28 THEN PRINT"I CAN'T INSERT THAT!":GOTO 210
1060 INPUT"TELL ME, IN ONE WORD, INTO WHAT";A3$:A3$=LEFT$(A3$,3)
1070 R1=R:V1$=A3$:GOSUB 20:IF Z9=2 THEN 210
1080 IF R1=3 AND R=1 THEN PRINT"O.K.":BA=1:N(3)=0:BA=1:GOTO 210
1090 IF R1=4 AND R=50 AND DG<=0 THEN PRINT"THE GUARD WON'T LET ME!":GOTO 210
1100 IF R1=2 AND R=1 THEN PRINT"O.K. THE TAPE IS IN THE RECORDER.":N(2)=0:TA=1:GOTO 210
1110 IF R1=4 AND R=50 THEN PRINT"POP! A SECTION OF THE WALL OPENS.....":PRINT"REVEALING SOMETHING VERY INTERESTING.":N(4)=0:N(5)=LO:GOTO 210
1120 IF R1=28 AND R=29 THEN PRINT"POP! A CUP OF COFFEE COMES OUT OF THE MACHINE.":N(28)=0:N(30)=LO:GOTO 210
1130 PRINT"NOTHING HAPPENED.":GOTO 210
1140 REM
1150 IF V1$="DRA" AND LO=5 AND N(23)=0 THEN PRINT"IT's STUCK.":GOTO 210
1160 GOSUB 20:IF Z9=2 THEN 210
1170 IF R=7 OR R=9 OR R=13 OR R=15 OR R=23 OR R=32 OR R=5 THEN 1190
1180 PRINT"I CAN'T OPEN THAT!":GOTO 210
1190 IF R=7 AND N(16)=-1 THEN PRINT"O.K. I OPENED THE DOOR.":N(7)=0:N(8)=4:GOTO 210
1200 IF R=9 THEN PRINT"I CAN'T. IT DOESN'T WORK.":GOTO 210
1210 IF R=13 AND N(16)=-1 THEN PRINT"O.K. THE CLOSET IS OPENED.":N(13)=0:N(14)=14:GOTO 210
1220 IF R=15 THEN PRINT"I CAN'T. IT'S TOO STRONG.":GOTO 210
1230 IF R=23 THEN PRINT"IT'S STUCK.":GOTO 210
1240 IF R=32 AND N(28)=0 AND N(4)=0 AND SC=1 THEN PRINT "I OPEN THE SCULPTURE.":PRINT"SOMETHING FALLS OUT.":N(28)=LO:N(4)=LO:GOTO 210
1250 IF R<>5 THEN 1290
1260 INPUT"WHAT'S THE COMBINATION";C$
1270 IF C$=CO$ THEN PRINT"THE DOOR IS SLOWLY OPENING.":N(5)=0:N(9)=0:N(10)=10:GOTO 210
1280 PRINT"YOU MUST HAVE THE WRONG COMBINATION OR YOU ARE NOT":PRINT"SAYING IT RIGHT.":GOTO 210
1290 PRINT"I CAN'T DO THAT......YET!":GOTO 210
1300 IF V1$="GLO" AND N(45)=-1 THEN PRINT"O.K. I'M NOW WEARING THE GLOVES.":GL=1:GOTO 210
1310 PRINT"I CAN'T WEAR THAT!":GOTO 210
1320 IF V1$<>"SIG" AND V1$<>"NOT" THEN PRINT"I CAN'T READ THAT.":GOTO 210
1330 GOSUB 20:IF Z9=2 THEN 210
1340 IF R=22 THEN PRINT"IT SAYS:":PRINT NA$;",":PRINT"  WE HAVE DISCOVERED ONE OF CHAOSES SECRET WORDS.":PRINT"IT IS: BOND-007- .TO BE USED IN A -TASTEFUL- SITUATION.":GOTO 210
1350 IF R=27 THEN PRINT"IT SAYS: WATCH OUT! DANGEROUS!":GOTO 210
1360 IF V1$<>"REC" THEN PRINT"I CAN'T START THAT.":GOTO 210
1370 GOSUB 20:IF Z9=2 THEN 210
1380 IF BA<>1 OR TE<>1 OR TA<>1 THEN 1440
1390 PRINT"THE RECORDER STARTS UP AND PRESENTS A SHORT MESSAGE:"
1400 PRINTNA$;","
1410 PRINT"WE HAVE UNCOVERED A NUMBER THAT MAY HELP YOU."
1420 PRINT"THAT NUMBER IS:";CO$;". PLEASE WATCH OUT FOR HIDDEN TRAPS."
1430 PRINT"ALSO, THERE IS SOMETHING IN THE SCULPTURE.":SC=1:GOTO 210
1440 PRINT"NOTHING HAPPENED.":GOTO 210
1450 IF V1$<>"DRA" THEN PRINT"I'M TRYING TO BREAK IT, BUT I CAN'T.":GOTO 210
1460 IF N(6)<>-1 THEN PRINT"I CAN'T DO THAT YET.":GOTO 210
1470 IF LO=5 THEN PRINT"IT'S HARD....BUT I GOT IT. TWO THINGS FELL OUT.":N(3)=LO:N(22)=LO:N(23)=LO:GOTO 210
1480 PRINT"NOTHING HAPPENS.":GOTO 210
1490 GOSUB 20:IF Z9=2 THEN 210
1500 IF R<>15 AND R<>24 THEN PRINT"I'M TRYING. IT DOESN'T WORK.":GOTO 210
1510 IF N(25)<>-1 THEN PRINT"I CAN'T DO THAT YET.":GOTO 210
1520 IF R=15 THEN PRINT"RIP! THE BAG GOES TO PIECES, AND SOMETHING FALLS OUT!":N(15)=0:N(2)=LO:GOTO 210
1530 IF R=24 THEN PRINT"I CUT THE CASE AND REACH IN TO PULL SOMETHING OUT.":N(26)=-1:GOTO 210
1540 IF V1$<>"ROP" THEN PRINT"I CAN'T THROW THAT.":GOTO 210
1550 IF N(37)<>-1 THEN PRINT"I CAN'T DO THAT YET.":GOTO 210
1560 INPUT"TELL ME,IN ONE WORD,AT WHAT";A3$:A3$=LEFT$(A3$,3)
1570 IF A3$<>"HOO" THEN PRINT"O.K. I THREW IT.":N(37)=LO:GOTO 210
1580 IF LO<>20 THEN PRINT"I CAN'T DO THAT YET.":GOTO 210
1590 PRINT"I THREW THE ROPE AND IT SNAGGED ON THE HOOK.":RO=1:N(37)=LO:GOTO 210
1600 IF V1$<>"TEL" THEN PRINT"I CAN'T CONNECT THAT.":GOTO 210
1610 IF N(40)<>LO THEN PRINT"I DON'T SEE THE TELEVISION HERE.":GOTO 210
1620 IF TE=1 THEN PRINT"I DID THAT ALREADY.":GOTO 210
1630 IF LO<>2 THEN PRINT"I CAN'T DO THAT....YET!":GOTO 210
1640 PRINT"O.K. THE T.V. IS CONNECTED.":TE=1:GOTO 210
1650 PRINT"WHAT? YOU WOULD LEAVE ME HERE TO DIE ALONE?"
1660 PRINT"JUST FOR THAT, I'M GOING TO DESTROY THE GAME.":PRINT:PRINT:PRINT:PRINT"BOOOOOOOOOOOOM!":FOR R=1 TO 5000:NEXT:GOTO 2370
1670 IF LO=14 THEN PRINT"WHOOPS! A TRAP DOOR OPENED UNDERNEATH ME AND":PRINT"I FIND MYSELF FALLING.":FOR R=1 TO 4000:NEXT:LO=17:GOTO 110
1680 PRINT"NOTHING HAPPENED.":GOTO 210
1690 Z8=0:PRINT"WE ARE PRESENTLY CARRYING:":FOR R=1 TO 46
1700 IF N(R)<>-1 THEN 1730
1710 PRINT N1$(R);:IF R=45 AND GL=1 THEN PRINT". WHICH I'M WEARING."ELSE PRINT" "
1720 Z8=1
1730 NEXT
1740 IF Z8=0 THEN PRINT"NOTHING"
1750 GOTO 210
1760 IF LO=3 AND N(39)=-1 THEN PRINT"THE DOOR MAN LOOKS AT MY BADGE AND THEN THROWS ME OUT.":FOR R=1 TO 5000:NEXT:LO=1:GOTO 110
1770 IF LO=10 AND N(42)<>-1 THEN PRINT"THE GUARD LOOKS AT ME SUSPICIOUSLY, THEN THROWS ME BACK.":FOR R=1 TO 4000:NEXT:LO=9:GOTO 110
1780 IF LO=6 AND BU<>1 THEN PRINT"SIRENS GO OFF ALL AROUND ME!":PRINT"GUARDS RUN IN AND SHOOT ME TO DEATH!":GOTO 2330
1790 IF LO=11 AND EL<>1 THEN PRINT"THE FLOOR IS WIRED WITH ELECDRICITY!":PRINT"I'M BEING ELECTROCUTED!":GOTO 2330
1800 IF LO=10 AND N(30)=-1 AND DR=1 THEN PRINT"THE GUARD TAKES MY COFFEE":PRINT"AND FALLS TO SLEEP RIGHT AWAY.":DG=5+INT(10*RND(10)):N(11)=0:N(12)=10:DR=0:N(30)=0:GOTO 240
1810 IF DG=0 THEN PRINT"I HEAR A NOISE LIKE SOMEONE IS YAWNING.":N(11)=10:N(12)=0:GU=-2:DG=-1:GOTO 240
1820 IF LO=1 AND N(26)=-1 THEN PRINT"HURRAY! YOU'VE RECOVERED THE RUBY!":PRINT"YOU WIN!":GOTO 2350
1830 IF T>375 THEN PRINT"I THINK THEY ARE ON TO ME....I HEAR NOISES."
1840 IF T=400 THEN PRINT"OH NO! THEY CAUGHT UP TO ME! HELP! THEY'RE PULLING OUT GUNS!":GOTO 2330
1850 IF T=1 THEN PRINT"WRITING ON THE WALL SAYS:":PRINT"IF YOU WANT INSTRUCTIONS TYPE:ORDERS PLEASE"
1860 IF LO=6 AND LO(6,2)<>0 THEN PRINT"A SECRET DOOR SLAMS DOWN BEHIND ME!":LO(6,2)=0:GOTO 240
1870 IF LO=10 AND GU=-2 THEN PRINT"THE GUARD DRAWS HIS GUN AND SHOOTS ME!":GOTO 2330
1880 GOTO 240
1890 IF A$="N" THEN A$="GO NORTH":RETURN
1900 IF A$="S" THEN A$="GO SOUTH":RETURN
1910 IF A$="E" THEN A$="GO EAST":RETURN
1920 IF A$="W" THEN A$="GO WEST":RETURN
1930 IF A$="I" THEN A$="INV":RETURN
1940 RETURN
1950 IF V$="WAL" OR V$="RUN" THEN V$="GO ":RETURN
1960 IF V$="TAK" OR V$="CAR" THEN V$="GET":RETURN
1970 IF V$="LEA" THEN V$="DRO":RETURN
1980 IF V$="PRE" THEN V$="PUS":RETURN
1990 IF V$="EXA" THEN V$="LOO":RETURN
2000 IF V$="PUT" THEN V$="INS":RETURN
2010 IF V$="UNL" THEN V$="OPE":RETURN
2020 IF V$="PLA" THEN V$="STA":RETURN
2030 IF V$="SMA" THEN V$="BRE":RETURN
2040 IF V$="ATT" THEN V$="CON":RETURN
2050 IF V$="LIS" THEN V$="INV":RETURN
2060 RETURN
2070 DATA A VIDEO CASSETTE RECORDER,REC,2,A VIDEO TAPE,TAP,0,A LARGE BATTERY,BAT,0,A BLANK CREDIT CARD,CAR,0,AN ELECTRONIC LOCK,LOC,0,AN ELABORATE PAPER WEIGHT,WEI,5,A LOCKED WOODEN DOOR,DOO,4,AN OPEN WOODEN DOOR,DOO,0,A SOLID LOOKING DOOR,DOO,10
2080 DATA AN OPEN DOOR,DOO,0,AN ALERT SECURITY GUARD,GUA,10,A SLEEPING SECURITY GUARD,GUA,0,A LOCKED MAINTENANCE CLOSET,CLO,14,A MAINTENANCE CLOSET,CLO,0,A PLASTIC BAG,BAG,13,AN OLDE FASHIONED KEY,KEY,9,A SMALL METAL SQUARE ON THE WALL,SQU,16
2090 DATA A LEVER ON THE SQUARE,LEV,16,AN OLD MAHOGANY DESK,DES,5,A BROOM,BRO,13,A DUSTPAN,DUS,13,A SPIRAL NOTEBOOK,NOT,0,A MAHOGANY DRAWER,DRA,0,A GLASS CASE ON A PEDESTAL,CAS,6,A RAZOR BLADE,BLA,27,A VERY LARGE RUBY,RUB,0,A SIGN ON THE SQUARE
2100 DATA SIG,16,A QUARTER,QUA,0,A COFFEE MACHINE,MAC,8,A CUP OF STEAMING HOT COFFEE,CUP,0,A SMALL CAPSULE,CAP,0,A LARGE SCULPTURE,SCU,3,A TALL OFFICE BUILDING,BUI,1,A PAIR OF SLIDING DOORS,DOO,3,A LARGE BUTTON ON THE WALL
2110 DATA BUT,29,A PANEL OF BUTTONS NUMBERED ONE THRU THREE,PAN,9,A STRONG NYLON ROPE,ROP,17,A LARGE HOOK WITH A ROPE HANGING FROM IT,HOO,21,A C.I.A. IDENTIFICATION BADGE,BAD,-1,A PORTABLE TELEVISION,TEL,7
2120 DATA A BANK OF MONITORS,MON,7,A CHAOS I.D. CARD
2130 DATA CAR,30,A BANK OF MONITORS,MON,19,A SMALL PAINTING,PAI,23,A PAIR OF RUBBER GLOVES,GLO,13,A BOX WITH A BUTTON ON IT,BOX,24,ONE,ONE,9,TWO,TWO,9,THREE,THR,9,SLIT,SLI,10,ON A BUSY STREET,0,0,0,0,IN A VISITOR'S ROOM,0,0,3,0
2140 DATA IN THE LOBBY OF THE BUILDING,1,0,4,2,IN A DINGY ANTE ROOM,0,0,0,3
2150 DATA IN THE COMPANY PRESIDENT'S OFFICE,0,0,0,4,IN A SMALL SOUND PROOFED CUBICLE,0,12,0,0,IN A SECURITY OFFICE,0,0,8,0,IN A SMALL HALLWAY,0,14,9,7,IN A SMALL ROOM,3,0,0,0,IN A SHORT CORRIDOR,0,15,0,9,IN A HALLWAY MADE OF METAL,0,0,12,10
2160 DATA IN A SMALL PLAIN ROOM,6,0,0,11
2170 DATA IN A MAINTENANCE CLOSET,0,0,14,0,IN A CAFETERIA,8,0,0,0,IN A SIDE CORRIDOR,10,0,16,0,IN A POWER GENERATOR ROOM,0,0,0,15,IN A SUB-BASEMENT BELOW THE CHUTE,0,0,18,0,IN THE ENTRANCE TO THE SECRET COMPLEX,0,20,19,17
2180 DATA IN A SECRET MONITORING ROOM,0,0,0,18,ON A LEDGE IN FRONT OF A METAL PIT 1000'S OF FEET DEEP,18,0,0,0,ON THE OTHER SIDE OF THE PIT,0,0,22,0,IN A LONG CORRIDOR,0,25,23,21,IN A LARGE ROOM,0,26,0,22,IN A SECRET LABORATORY,0,0,25,0
2190 DATA IN A NARROW CROSS CORRIDOR,22,0,0,24,IN A CROSS EXAMINATION ROOM,23,28,0,0,IN A SMALL BATHROOM,0,0,28,0,IN THE OFFICE OF THE CHIEF OF CHAOS,26,30,0,27,IN THE CHAOS CONTROL ROOM,0,0,30,0,NEAR THE END OF THE COMPLEX,28,0,0,29
2200 DATA "GO ",GET,DRO,PUS,PUL,LOO,INS,OPE,WEA,REA,STA,BRE,CUT,THR,CON,QUI,BON,INV
2210 PRINT"YOUR MISSION,";NA$;",IS TO RECOVER A RUBY THAT IS BEING"
2220 PRINT"USED IN TOP SECRET GOVERNMENT PROJECTS AS A PART IN A"
2230 PRINT"LASER PROJECTOR."
2240 PRINT"  YOU WILL HAVE A PARTNER WHO IS NOT TOO BRIGHT AND NEEDS"
2250 PRINT"YOU TO TELL HIM WHAT TO DO. USE TWO WORD COMMANDS LIKE:"
2260 PRINT:PRINT"              GET NOTEBOOK   GO WEST  LOOK DOOR"
2270 PRINT:PRINT"SOME COMMANDS USE ONLY ONE WORD. EXAMPLE: INVENTORY"
2280 PRINT"  IF YOU WANT TO SEE CHANGES IN YOUR SURROUNDINGS TYPE: LOOK"
2290 PRINT"THE RUBY HAS BEEN CAPTURED BY A SECRET SPY RING KNOWN AS"
2300 PRINT"CHAOS. WE SUSPECT THEY ARE UNDER COVER SOMEWHERE IN THIS"
2310 PRINT"NEIGHBORHOOD. GOOD LUCK!"
2320 GOTO 240
2330 FOR R=1 TO 5000:NEXT:PRINT"I'M DEAD!"
2340 PRINT"YOU DIDN'T WIN."
2350 INPUT"WOULD YOU LIKE TO TRY AGAIN (Y/N)";Z$
2360 IF Z$="Y" THEN RUN
2370 END

CRC.TXT

PC-SIG Disk No. #100, version v1

The following is a list of the file checksums which should be produced by
the CRCK4 program on disk #9 (and others).  If the CRC numbers do not match
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:  MENU    .PGM         CRC = AF 2D

--> FILE:  BAGPIPES.BAS         CRC = A8 CA

--> FILE:  JUKEBOX .BAS         CRC = B1 86

--> FILE:  JUKEDOWN.MUS         CRC = E4 7B

--> FILE:  JUKEGARO.MUS         CRC = DA 19

--> FILE:  JUKESATI.MUS         CRC = 28 54

--> FILE:  JUKESOUN.MUS         CRC = 14 70

--> FILE:  JUKECARA.MUS         CRC = B3 98

--> FILE:  JUKEIMPO.MUS         CRC = E0 37

--> FILE:  JUKESUNR.MUS         CRC = 3E 0C

--> FILE:  JUKESECO.MUS         CRC = 1D EC

--> FILE:  JUKETHIR.MUS         CRC = EB 0E

--> FILE:  JUKETAKE.MUS         CRC = 67 52

--> FILE:  ALIEN   .BAS         CRC = C7 C8

--> FILE:  ALIEN   .SPC         CRC = 79 D1

--> FILE:  ALIEN   .DOC         CRC = B3 AF

--> FILE:  A2      .SPC         CRC = 53 16

--> FILE:  A5      .SPC         CRC = 0A B9

--> FILE:  3DTT    .BAS         CRC = 19 DA

--> FILE:  ANIMATE .BAS         CRC = 44 54

--> FILE:  EGGS    .BAS         CRC = A3 85

--> FILE:  EGGS    .DOC         CRC = 39 5D

--> FILE:  MANOR   .BAS         CRC = 37 D1

--> FILE:  TRADER  .BAS         CRC = F1 36

--> FILE:  CIA     .BAS         CRC = BD DE

 ---------------------> SUM OF CRCS = BC 08

DONE

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

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

EGGS.BAS

5 ' A simple passive demo ("eggs")
10 SCREEN 1
20 CLS
45 C=RND(I)*15
46 P=RND(I)*2.5
47 COLOR C,P
49 FOR I=1 TO 8
50 XC=RND(I)*319
60 YC=RND(I)*199
70 R=5+RND(I)*50
75 C=RND(I)*3
77 A=.2+RND(I)*5
80 CIRCLE (XC,YC),R,C,,,A
85 C2=RND(I)*3
90 PAINT (XC,YC),C2,C
100 NEXT I
110 GOTO 45

EGGS.DOC

PROGRAM NAME: EGGS.BAS
AUTHOR:
ABSTRACT: This is a very short and simple graphics display program
		to generate random eggs (elipses) of random colors.
		It is of little or no practical use to anyone, but is
		interesting to watch for a while.  Also, beginning
		programmers may learn a little about the RND function,
		and the CIRCLE and PAINT commands.
REQUIRES: Basica and a color graphics board and monitor.
INSTRUCTIONS: Just start your system with BASICA, and type RUN"EGGS <cr>
		Alternatively, from one of the menu programs, just type
		the name of this program (EGGS)


JUKEBOX.BAS

10 REM  ====>  IBM-PC JUKEBOX -- MAIN PROGRAM
20 SCREEN 0,1: WIDTH 80: COLOR 7,0,1: KEY OFF: LOCATE ,,0: CLS
30 GOSUB 690: REM  ====>  PROGRAM TITLE
40 GOSUB 230: REM  ====>  MENU OUTLINE
50 COLOR 15: LOCATE 13,3: PRINT "===> SELECTION:    <===";
60 SONG$=INKEY$: IF SONG$="" THEN 60
70 COLOR 23: LOCATE 13,20: PRINT SONG$;: COLOR 7
75 IF SONG$="G" OR SONG$="g" THEN GOTO 210: 'END PROGRAM
80 GOSUB 550: REM  ====>  KEYBOARD
90 IF SONG$="A" OR SONG$="a" THEN CHAIN "a:JUKEDOWN.MUS"
100 IF SONG$="B" OR SONG$="b" THEN CHAIN "a:JUKEGARO.MUS"
110 IF SONG$="C" OR SONG$="c" THEN CHAIN "a:JUKESATI.MUS"
120 IF SONG$="D" OR SONG$="d" THEN CHAIN "a:JUKESOUN.MUS"
130 IF SONG$="E" OR SONG$="e" THEN CHAIN "a:JUKECARA.MUS"
140 IF SONG$="F" OR SONG$="f" THEN CHAIN "a:JUKEIMPO.MUS"
150 IF SONG$="G" OR SONG$="g" THEN GOTO 210: 'END PROGRAM
160 IF SONG$="H" OR SONG$="h" THEN CHAIN "a:JUKESUNR.MUS"
170 IF SONG$="J" OR SONG$="j" THEN GOTO 210: 'CHAIN "a:JUKEMOON.MUS"
180 IF SONG$="K" OR SONG$="k" THEN CHAIN "a:JUKESECO.MUS"
190 IF SONG$="L" OR SONG$="l" THEN CHAIN "a:JUKETHIR.MUS"
200 IF SONG$="M" OR SONG$="m" THEN CHAIN "a:JUKETAKE.MUS"
210 CLS : RUN "MENU.PGM"
220 REM  ====>  MENU OUTLINE
230 COLOR 7
240 LOCATE 1,1: PRINT CHR$(201)+STRING$(25,205)+CHR$(203)+STRING$(25,205)+             CHR$(203)+STRING$(25,205)+CHR$(187);
250 FOR R=2 TO 11: C=1: FOR K=1 TO 4
260 LOCATE R,C: PRINT CHR$(186);: C=C+26
270 NEXT: NEXT
280 LOCATE 12,1: PRINT CHR$(200)+STRING$(25,205)+CHR$(202)+STRING$(25,205)+            CHR$(202)+STRING$(25,205)+CHR$(188);
290 GOSUB 340: REM  ====>  CLASSICAL SELECTIONS
300 GOSUB 410: REM  ====>  MUSICAL SELECTIONS
310 GOSUB 480: REM  ====>  POPULAR SELECTIONS
320 RETURN
330 REM  ====>  CLASSICAL SELECTIONS  (A-H)
340 COLOR 7: LOCATE 2,11: PRINT "POPULAR": COLOR 7
350 LOCATE 4,3: PRINT "A -- Downtown"
360 LOCATE 6,3: PRINT "B -- Garota de Ipanema"
370 LOCATE 8,3: PRINT "C -- Satisfaction"
380 LOCATE 10,3: PRINT "D -- Sounds of Silence"
390 RETURN
400 REM  ====>  MUSICAL SELECTIONS  (J-R)
410 COLOR 7: LOCATE 2,37: PRINT "MUSICAL": COLOR 7
420 LOCATE 4,29: PRINT "E -- Cabaret"
430 LOCATE 6,29: PRINT "F -- Impossible Dream"
440 LOCATE 8,29: PRINT "G -- Return Main Menu"
450 LOCATE 10,29: PRINT "H -- Sunrise, Sunset"
460 RETURN
470 REM  ====>  POPULAR SELECTIONS  (S-Z)
480 COLOR 7: LOCATE 2,60: PRINT "MISCELLANEOUS": COLOR 7
490 LOCATE 4,55: PRINT "J -- Moonlight Sonata"
500 LOCATE 6,55: PRINT "K --    second movement"
510 LOCATE 8,55: PRINT "L --    third movement"
520 LOCATE 10,55: PRINT "M -- Take Five"
530 RETURN
540 REM  ====>  KEYBOARD
550 COLOR 15
560 FOR K=1 TO 38: FOR R=15 TO 23
570 LOCATE R,2*K: PRINT CHR$(222)+CHR$(219);
580 NEXT: NEXT
590 COLOR 7,0
600 FOR K=1 TO 37: FOR R=15 TO 19
610 IF (K MOD 7)=2 OR (K MOD 7)=5 THEN 630
620 LOCATE R,2*K+1: PRINT CHR$(221)+CHR$(32);
630 NEXT: NEXT
640 COLOR 7,0
650 LOCATE 25,2: FOR O=1 TO 5: PRINT " A B C D E F G";: NEXT: PRINT " A B C";
660 COLOR 7
670 RETURN
680 REM  ====>  PROGRAM TITLE
690 COLOR 7
700 LOCATE 14,1: PRINT CHR$(201)+STRING$(77,205)+CHR$(187);
710 FOR R=15 TO 23
720 LOCATE R,1: PRINT CHR$(186);: LOCATE ,79: PRINT CHR$(186);
730 NEXT
740 LOCATE 24,1: PRINT CHR$(200)+STRING$(77,205)+CHR$(188);
750 COLOR 7,0
760 FOR I=1 TO 64
770 R=15+(8.5*RND-0.49999): C=3+(73.5*RND-0.49999)
780 LOCATE R,C: PRINT CHR$(14);
790 NEXT
800 COLOR 7,0
810 LOCATE 18,23: PRINT CHR$(32)+CHR$(201)+STRING$(31,205)+CHR$(187)                   +CHR$(32);
820 LOCATE 19,23: PRINT CHR$(32)+CHR$(186)+" I B M - P C   J U K E   B O X "           +CHR$(186)+CHR$(32);
830 LOCATE 20,23: PRINT CHR$(32)+CHR$(200)+STRING$(31,205)+CHR$(188)                   +CHR$(32);
840 COLOR 7,0
850 RETURN

MANOR.BAS

10 CLS:L=9:DIM I$(33),O$(33),O(33),L$(37),D$(3,37),D(3,37)
100 SCREEN 0:WIDTH 40:KEY OFF:RANDOMIZE VAL(RIGHT$(TIME$,2))
110 LOCATE 11,11,0:PRINT"STONEVILLE MANOR"
120 LOCATE 20,4:PRINT"Translated by Allan & Andrew Lee."
400 FOR X=1 TO 33:READ I$(X),O$(X),O(X):NEXT X
430 FOR X=1 TO 37:READ L$(X):NEXT X
460 FOR Y=1 TO 37:FOR X=1 TO 3:READ D$(X,Y),D(X,Y):NEXT X:NEXT Y
490 FOR X=1 TO 3:READ P$(X):NEXT X
520 FOR X=1 TO 8:READ VE(X):NEXT X
550 FOR X=1 TO 3:Z=INT(89*RND(1))+11:N(X)=Z:NEXT X
590 FOR X=1 TO 3
600 Z=INT(3*RND(1))+1
610 IF SQ(Z)=Z THEN 600 ELSE S(Z)=N(Z):SQ(Z)=Z:NEXT X
660 LOCATE 23,8:INPUT"Do you want instructions";C$:IF LEFT$(C$,1)="y" OR LEFT$(C$,1)="Y" THEN GOSUB 7500
700 CLS:LOCATE 12,2:INPUT"Do you want to continue an old game";C$:IF LEFT$(C$,1)="y" OR LEFT$(C$,1)="Y" THEN GOSUB 8300
1000 RANDOMIZE VAL(TIME$):CLS
1010 PRINT:COLOR 0,7:PRINT"Location:":COLOR 7,0:PRINT L$(L)
1020 PRINT:COLOR 0,7:PRINT"Directions:":COLOR 7,0
1030 FOR X=1 TO 3:GOSUB 5010:NEXT X
1060 PRINT:COLOR 0,7:PRINT"Visible objects:":COLOR 7,0
1070 IF L=30 AND O(13)<>0 THEN 1190
1075 IF L=31 AND O(13)<>0 THEN 1190
1085 FOR X=1 TO 33:IF O(X)=L THEN PRINT O$(X)
1087 NEXT X
1100 GOSUB 5210
1190 PRINT:INPUT">",C$
1220 IF LEFT$(C$,3)="get" THEN 2030
1225 IF C$="drop snorkel"THEN 3640
1230 IF LEFT$(C$,4)="drop"THEN 2190
1240 IF LEFT$(C$,8)="take inv"THEN 2350
1260 IF C$="enter vent"THEN 2395
1270 IF C$="enter balloon"THEN 2540
1280 IF C$="enter lake"THEN 2600
1290 IF C$="enter door"THEN 2650
1300 IF C$="enter store"THEN 2680
1320 IF LEFT$(C$,5)="enter"THEN 2750
1340 IF LEFT$(C$,8)="examine"THEN 2840
1350 IF LEFT$(C$,5)="look "THEN 2850
1360 IF LEFT$(C$,6)="go jog"THEN 3000
1370 IF LEFT$(C$,4)="go e"AND L=32 THEN 3950
1380 IF LEFT$(C$,4)="go o"THEN 3030
1390 IF LEFT$(C$,2)="go"THEN 3080
1400 IF C$="pet serval"THEN 3130
1410 IF C$="feed serval"THEN 3150
1420 IF C$="give trout"THEN 3150
1430 IF LEFT$(C$,8)="cut tree"THEN 3190
1435 IF LEFT$(C$,10)="climb tree"THEN 3800
1440 IF LEFT$(C$,9)="chop tree"THEN 3190
1450 IF LEFT$(C$,4)="dive"THEN 3210
1460 IF C$="end game"THEN CLS:KEY ON:END
1470 IF LEFT$(C$,3)="buy"AND L=10 THEN 2060
1475 IF C$="remove cover"THEN 3250
1480 IF LEFT$(C$,9)="open vent" THEN 3250
1485 IF C$="open book"THEN 2850
1490 IF C$="open door"THEN 3295
1495 IF C$="open credenza"THEN 2850
1500 IF C$="open bag"THEN 2850
1510 IF C$="open safe"THEN 7000
1520 IF C$="unlock door"THEN 3295
1540 IF C$="inflate raft"THEN 3350
1550 IF C$="inflate balloon"THEN 3380
1560 IF C$="build balloon"THEN 3380
1570 IF C$="fly balloon"THEN 3460
1580 IF C$="sail balloon"THEN 3460
1590 IF C$="read will"AND F=1 THEN 7200
1600 IF C$="read book"THEN 2850
1605 IF C$="read sign"THEN 3900
1610 IF C$="save game"THEN 8400
1620 IF C$="clear screen"THEN 1000
1990 PRINT"I don't understand.":GOTO 1190
2030 IF C$="get trout"AND L=29 AND O(10)<>0 THEN PRINT"It slipped out of your hands.":GOTO 1190
2035 IF C$="get picture"AND L=16 THEN PRINT"Too valuable.":GOTO 1190
2040 IF L=10 THEN PRINT"Can only buy from the store.":GOTO 1190
2045 IF C$="get table"AND L=37 THEN PRINT"It's nailed down.":GOTO 1190
2050 IF S=1 THEN 6000
2055 IF I=4 THEN PRINT"Inventory too heavy.":GOTO 1190
2060 IF C$="get mask"THEN 6150
2065 IF C$="get snorkel"THEN 6100
2070 FOR X=1 TO 19
2080 G=LEN(I$(X))
2090 IF MID$(C$,5,G)=I$(X) AND O(X)=0 THEN PRINT"Already have object.":X=19:HERP=1:GOTO 2110
2100 IF MID$(C$,5,G)=I$(X) AND O(X)=L THEN O(X)=0:I=I+1:X=19:HERP=2
2110 NEXT X:IF HERP=1 THEN HERP=0:GOTO 1190 ELSE IF HERP=2 THEN HERP=0:GOTO 1000
2120 IF C$="get serval"AND O(30)=L THEN 6210
2130 IF C$="get credenza"AND L=14 THEN PRINT"Can't lift it.":GOTO 1190
2140 IF C$="get case"AND O(26)=L THEN PRINT"Not thirsty.":GOTO 1190
2150 IF C$="get safe"AND O(25)=L THEN PRINT"Safe is secured to wall.":GOTO 1190
2170 GOTO 1990
2190 FOR X=1 TO 19
2200 G=LEN(I$(X))
2210 IF MID$(C$,6,G)=I$(X)AND O(X)=0 THEN P=X:X=19:HERP=1
2220 NEXT X:IF HERP=1 THEN HERP=0:X=P:GOTO 2240
2230 GOTO 1990
2240 IF X=8 AND L=28 THEN O(8)=5:I=I-1:COLOR 23,0:PRINT"Raft drifts away!":FOR X=1 TO 3000:NEXT X:COLOR 7,0:GOTO 1000
2245 IF X=8 AND L=29 THEN O(8)=5:I=I-1:COLOR 23,0:PRINT"Raft drifts away!":FOR X=1 TO 3000:NEXT X:COLOR 7,0:GOTO 1000
2270 I=I-1
2280 IF L=28 THEN O(X)=30:GOTO 1000
2290 IF L=29 THEN O(X)=31:GOTO 1000
2300 O(X)=L:GOTO 1000
2350 FOR X=1 TO 19
2360 IF O(X)=0 THEN PRINT O$(X)
2370 NEXT X
2380 GOTO 1190
2395 FOR X=1 TO 8
2400 IF VE(X)=L THEN HERP=1:X=8
2405 NEXT X:IF HERP=1 THEN HERP=0:GOTO 2415
2410 GOTO 1990
2415 IF O(8)=0 AND R=1 THEN PRINT P$(2):GOTO 1190
2420 FOR X=1 TO 4
2425 IF O(X)=0 THEN PRINT P$(2):HERP=1:X=4
2430 NEXT X:IF HERP=1 THEN HERP=0:GOTO 1190
2450 IF L=13 AND C1=0 THEN PRINT P$(1):GOTO 1190
2460 IF L=14 AND C2=0 THEN PRINT P$(1):GOTO 1190
2470 IF L=17 AND C3=0 THEN PRINT P$(1):GOTO 1190
2480 IF L=18 AND C4=0 THEN PRINT P$(1):GOTO 1190
2485 IF W=0 THEN PRINT"You weigh too much.":GOTO 1190
2490 IF L=13 AND C1=1 THEN L=21:GOTO 1000
2500 IF L=14 AND C2=1 THEN L=24:GOTO 1000
2510 IF L=17 AND C3=1 THEN L=26:GOTO 1000
2520 IF L=18 AND C4=1 THEN L=27:GOTO 1000
2530 GOTO 1990
2540 IF H=0 THEN PRINT"Not ready yet.":GOTO 1190
2550 IF L=8 THEN L=34:GOTO 1000
2560 IF L=36 THEN L=5:GOTO 1000
2570 PRINT"Can't find.":GOTO 1190
2600 IF L<>5 THEN 1990
2610 IF O(8)<>0 THEN PRINT"Need something to float on.":GOTO 1190
2630 IF R=0 THEN PRINT"Raft is too flat.":GOTO 1190
2640 L=28:GOTO 1000
2650 IF L=16 AND K=0 THEN PRINT"Door is locked.":GOTO 1190
2655 IF L=20 THEN L=16:K=1:GOTO 1000
2660 IF L=16 THEN L=20:GOTO 1000
2670 GOTO 1990
2680 IF L<>9 THEN 1990
2690 FOR X=1 TO 19
2700 IF O(X)=0 THEN PRINT"Can't enter store with inventory.":HERP=1:X=19
2710 NEXT X:IF HERP=1 THEN HERP=0:GOTO 1190
2720 L=10:GOTO 1000
2750 IF C$="enter manor"AND L=9 THEN L=12:GOTO 1000
2760 IF C$="enter manor"AND L=1 THEN L=17:GOTO 1000
2770 IF C$="enter hospital"AND L=9 THEN L=11:GOTO 1000
2780 IF C$="enter tunnel"AND L=31 AND O(13)=0 THEN L=32:GOTO 1000
2790 IF C$="enter creek"AND L=4 THEN COLOR 23,1:PRINT"You slipped and fell.":FOR X=1 TO 3000:NEXT X:COLOR 7,0:S=1:L=11:GOTO 1000
2800 IF C$="enter gorge"AND L=8 THEN PRINT"Too steep.":GOTO 1190
2810 IF C$="enter shack"AND L=36 THEN L=37:GOTO 1000
2820 GOTO 1990
2840 G=LEN(C$)-8:Q$=MID$(C$,9,G):GOTO 2860
2850 G=LEN(C$)-5:Q$=MID$(C$,6,G)
2860 FOR X=1 TO 33
2870 IF Q$=I$(X) AND O(X)=L THEN HERP=1:X=33:GOTO 2880
2875 IF Q$=I$(X) AND O(X)=0 THEN HERP=1:X=33
2880 NEXT X:IF HERP=1 THEN HERP=0:GOTO 2900
2890 GOTO 1990
2900 IF Q$="bottle"THEN PRINT P$(3);N(1):GOTO 1190
2910 IF Q$="goblet"THEN PRINT P$(3);N(2):GOTO 1190
2920 IF Q$="table"THEN PRINT"On top is a note with the number ";N(3):GOTO 1190
2930 IF Q$="case"THEN PRINT"One bottle is missing.":GOTO 1190
2940 IF Q$="book"THEN 6550
2950 IF Q$="credenza"AND O(13)=40 THEN PRINT"Inside is a swim mask.":GOTO 1190
2960 IF Q$="bag"AND O(19)=40 THEN PRINT"Inside is a snorkel.":GOTO 1190
2970 IF Q$="picture"THEN PRINT"Behind picture is a safe.":E=1:GOTO 1190
2980 PRINT"Nothing unusual.":GOTO 1190
3000 IF O(11)<>0 THEN PRINT"Need shoes.":GOTO 1190
3010 IF L>9 THEN PRINT"Can't jog here.":GOTO 1190
3015 W=1:PRINT"Whew!...done.":GOTO 1190
3020 IF L=28 THEN L=5 GOTO 1000
3025 GOTO 1990
3030 IF S=1 THEN PRINT"Not well.":GOTO 1190
3040 IF L=21 AND C1=0 THEN PRINT P$(1):GOTO 1190
3050 IF L=24 AND C2=0 THEN PRINT P$(1):GOTO 1190
3060 IF L=26 AND C3=0 THEN PRINT P$(1):GOTO 1190
3070 IF L=27 AND C4=0 THEN PRINT P$(1):GOTO 1190
3080 IF LEFT$(C$,4)="go e"AND L=18 THEN 6300
3090 FOR X=1 TO 3
3100 IF MID$(C$,4,1)=D$(X,L)THEN L=D(X,L):HERP=1:X=3
3110 NEXT X:IF HERP=1 THEN HERP=0:GOTO 1000
3120 PRINT"Direction not clear.":GOTO 1190
3130 IF V=0 AND L=18 THEN 6200
3140 GOTO 1990
3150 IF V=1 THEN 1990
3160 IF L<>18 THEN 1990
3170 IF O(14)<>0 OR L<>18 THEN PRINT"Need food.":GOTO 1190
3180 COLOR 23,0:PRINT"Serval took trout and escaped!":IF O(14)=0 THEN I=I-1
3185 V=1:O(14)=40:O(30)=40:FOR X=1 TO 3000:NEXT X:COLOR 7,0:GOTO 1000
3190 IF L=2 AND O(12)=0 OR O(12)=L THEN O(4)=2:GOTO 1000
3200 GOTO 1990
3210 IF L=8 AND O(8)=0 AND O(19)=0 THEN O(8)=5:I=I-1:L=30:COLOR 23,0:PRINT"Raft drifts away.":FOR X=1 TO 3000:NEXT X:COLOR 7,0:GOTO 1000
3215 IF L=29 AND O(8)=0 AND O(19)=0 THEN O(8)=5:I=I-1:L=31:COLOR 23,0:PRINT"Raft drifts away.":FOR X=1 TO 3000:NEXT X:COLOR 7,0:GOTO 1000
3220 IF L=28 AND O(19)=0 THEN L=30:GOTO 1000
3225 IF L=29 AND O(19)=0 THEN L=31:GOTO 1000
3230 IF L=28 OR L=29 THEN PRINT"Need snorkel.":GOTO 1190
3240 GOTO 1990
3250 IF L=13 THEN C1=1:GOTO 1000
3255 IF L=21 THEN C1=1:GOTO 1000
3260 IF L=14 THEN C2=1:GOTO 1000
3265 IF L=24 THEN C2=1:GOTO 1000
3270 IF L=17 THEN C3=1:GOTO 1000
3275 IF L=26 THEN C3=1:GOTO 1000
3280 IF L=18 THEN C4=1:GOTO 1000
3285 IF L=27 THEN C4=1:GOTO 1000
3290 GOTO 1990
3295 IF L=16 OR L=20 THEN 3305
3300 GOTO 1990
3305 IF L=16 AND K=0 THEN PRINT"Can't, door is locked from other side.":GOTO 1190
3310 PRINT"O.K.":GOTO 1190
3350 IF L<>5 THEN PRINT"Not here.":GOTO 1190
3360 IF R=1 THEN PRINT"Already inflated.":GOTO 1190
3370 PRINT"O.K.":R=1:GOTO 1190
3380 IF L<>8 THEN PRINT"Not here.":GOTO 1190
3390 FOR X=1 TO 6
3395 IF O(X)=0 OR O(X)=8 THEN HB=HB+1
3400 NEXT X
3405 IF HB=6 THEN 3420
3410 PRINT"Not ready.":HB=0:GOTO 1190
3420 FOR X=1 TO 6
3425 IF O(X)=0 THEN I=I-1
3430 O(X)=40
3440 NEXT X
3450 H=1:GOTO 1000
3460 IF H=0 THEN PRINT"Not ready.":GOTO 1190
3470 IF L=8 OR L=36 THEN PRINT"Need to get in first.":GOTO 1190
3480 IF L=34 THEN 3500
3485 IF L=35 THEN 3570
3490 GOTO 1990
3500 CLS:Y=0:FOR H=6 TO -6 STEP -1:Z=ABS(H):Y=Y+2:GOSUB 6420:NEXT H
3550 CLS
3560 L=35:GOTO 1000
3570 CLS:Y=29:FOR H=6 TO -6 STEP -1:Z=ABS(H):Y=Y-2:GOSUB 6420:NEXT H
3620 CLS
3630 L=34:GOTO 1000
3640 IF O(19)<>0 THEN PRINT"Don't have.":GOTO 1190
3650 IF L>27 AND L<32 THEN PRINT"You quickly grab it back.":GOTO 1190
3660 O(19)=L:I=I-1:GOTO 1000
3800 IF L<>2 THEN 1990
3810 COLOR 23,0:PRINT"You fell off.":FOR X=1 TO 3000:NEXT X:COLOR 7,0:S=1:L=11:GOTO 1000
3900 IF O(9)=0 OR O(9)=L THEN PRINT"Sign says:An appropriate place.":GOTO 1190
3910 PRINT"Can't find.":GOTO 1190
3950 IF O(19)=0 THEN 3080
3960 PRINT"Need snorkel.":GOTO 1190
5010 IF D$(X,L)="-"THEN RETURN
5020 IF D$(X,L)="o"THEN PRINT"Out":RETURN
5030 IF D$(X,L)="n"THEN PRINT"North":RETURN
5040 IF D$(X,L)="e"THEN PRINT"East":RETURN
5050 IF D$(X,L)="s"THEN PRINT"South":RETURN
5060 IF D$(X,L)="w"THEN PRINT"West":RETURN
5070 IF D$(X,L)="u"THEN PRINT"Up":RETURN
5080 IF D$(X,L)="d"THEN PRINT"Down":RETURN
5210 IF O(13)=0 AND L=31 THEN PRINT"an underwater tunnel":RETURN
5220 IF L=13 OR L=14 OR L=17 OR L=18 THEN PRINT"vent"
5230 IF L=13 AND C1=1 THEN PRINT"vent cover":RETURN
5240 IF L=14 AND C2=1 THEN PRINT"vent cover":RETURN
5250 IF L=17 AND C3=1 THEN PRINT"vent cover":RETURN
5260 IF L=18 AND C4=1 THEN PRINT"vent cover":RETURN
5270 IF H=1 AND L=8 OR L=36 THEN PRINT"hot air balloon":RETURN
5280 Z=INT(10*RND(1))+1
5290 IF L=6 AND Z=1 THEN PRINT"the butler with two sticks of dynamite":RETURN
5300 IF L=3 AND Z=3 THEN PRINT"the maid with a pack of bloodhounds":RETURN
5310 IF L=7 AND Z=5 THEN PRINT"the gardener with a bulldozer":RETURN
5320 IF L=33 AND Z<5 THEN PRINT"A bat passes close by.":RETURN
5330 IF L=27 AND Z<3 THEN PRINT"You have cobwebs in your hair.":RETURN
5340 IF L=25 AND Z<3 THEN PRINT"A rodent brushes your leg.":RETURN
5350 IF L=4 AND Z=7 THEN PRINT"A toad jumps across the creek.":RETURN
5360 IF L=8 AND O(14)=0 AND Z<5 THEN PRINT"A hungry gull circles overhead.":RETURN
5370 IF L=2 AND Z=6 THEN PRINT"A primate watches from above.":RETURN
5390 RETURN
6000 IF C$="get well"THEN S=0:PRINT"Recovered.":GOTO 1190
6020 GOTO 1990
6100 IF O(19)=0 THEN PRINT"Already have object.":GOTO 1190
6115 IF O(19)=40 AND O(7)=0 THEN O(19)=0:I=I+1:GOTO 1000
6120 IF O(19)=40 AND O(7)=L THEN O(19)=0:I=I+1:GOTO 1000
6130 IF O(19)=L THEN O(19)=0:I=I+1:GOTO 1000
6140 GOTO 1990
6150 IF O(13)=0 THEN PRINT"Already have.":GOTO 1190
6160 IF O(13)=40 AND L=14 THEN O(13)=0:I=I+1:GOTO 1000
6170 IF O(13)=L THEN O(13)=0:I=I+1:GOTO 1000
6180 GOTO 1990
6210 COLOR 23,1:PRINT"You have just enough strength to get away.":FOR X=1 TO 3000:NEXT X:COLOR 7,0:S=1:L=11:GOTO 1000
6300 IF V=0 THEN PRINT"Serval won't let you.":GOTO 1190
6310 L=19:GOTO 1000
6420 LOCATE Z+1,Y:PRINT SPC(10):LOCATE Z+2,Y:PRINT"   ┌───┐   "
6425 LOCATE Z+3,Y-1:PRINT"   /     \   "
6430 LOCATE Z+4,Y-1:PRINT"   ═══════   "
6440 LOCATE Z+5,Y-1:PRINT"   \     /   "
6445 LOCATE Z+6,Y:PRINT"   \   /   "
6450 LOCATE Z+7,Y+1:PRINT"   ├─┤   "
6455 LOCATE Z+8,Y+1:PRINT"   │ │   "
6460 LOCATE Z+9,Y+1:PRINT"   ╓─╖   "
6470 LOCATE Z+10,Y+1:PRINT"   ***   "
6480 LOCATE Z+11,Y+1:PRINT"   ╙─╜   ":LOCATE Z+12,Y-1:PRINT"            "
6490 RETURN
6500 FOR X=1 TO 20:PLAY"o6d64":FOR Y=1 TO 50:NEXT Y:NEXT X
6510 RETURN
6550 CLS
6560 PRINT:PRINT TAB(5)"How to build a hot air balloon"
6570 PRINT:PRINT TAB(8)"#1 Balloon"
6575 PRINT TAB(8)"#2 Heat source"
6580 PRINT TAB(8)"#3 Fuel"
6585 PRINT TAB(8)"#4 Gondola or container"
6590 PRINT TAB(8)"#5 Cable or twine"
6595 PRINT TAB(8)"#6 Matches or lighter"
6600 PRINT "Build at an appropriate place."
6605 LOCATE 25,8:PRINT"Press return to continue";:C$=INPUT$(1)
6620 GOTO 1000
7000 IF E=0 THEN PRINT"Can't find.":GOTO 1190
7010 IF E=0 THEN PRINT"Can't find.":GOTO 1190
7030 IF L<>16 THEN PRINT"Not here.":GOTO 1190
7040 PRINT"Combination lock"
7050 INPUT"Enter first number--",F(1)
7055 GOSUB 6500
7060 IF F(1)<>S(1)THEN PRINT"Not correct":GOTO 1190
7070 INPUT"Enter second number--",F(2)
7075 GOSUB 6500
7080 IF F(2)<>S(2)THEN PRINT"Not correct":GOTO 1190
7090 INPUT"Enter last number--",F(3)
7095 GOSUB 6500
7100 IF F(3)<>S(3)THEN PRINT"Not correct":GOTO 1190
7105 F=1
7110 PRINT"Click!.................Inside is a will":GOTO 1190
7200 CLS
7210 LOCATE 6,1:PRINT"┌─────────────────────────────────────┐"
7225 PRINT"│";SPC(37);"│"
7230 PRINT"│                 WILL                │"
7235 PRINT"│";SPC(37);"│"
7240 PRINT"│  I,Mr. Stone,leave all my worldly   │"
7245 PRINT"│ possesions to whomever opens this   │"
7250 PRINT"│ safe.                               │"
7255 PRINT"│";SPC(37);"│"
7260 PRINT"└─────────────────────────────────────┘"
7265 PRINT"         <<<Congratulations>>>":KEY ON:END
7500 CLS:PRINT
7510 PRINT"Welcome to Stoneville.You have recently"
7520 PRINT"learned that wealthy Mr. Stone died and"
7530 PRINT"rumor has it that this eccentric miser"
7540 PRINT"has left his entire estate to whomever"
7550 PRINT"finds and opens his safe.":PRINT
7570 PRINT"To play,you must manipulate objects and"
7580 PRINT"explore your surroundings by using two"
7590 PRINT"word commands.For example,'get basket'"
7600 PRINT"or 'go south'.To speed up directional"
7605 PRINT"movement,'go'commands may be shortened"
7610 PRINT"to include one letter such as 'go s'.":PRINT
7615 PRINT"The command'save game' will preserve"
7620 PRINT"your progress for play at a later time"
7625 PRINT"or if you prefer to just end the game"
7630 PRINT"then enter 'end game'.And,if needed"
7640 PRINT"'clear screen'will reset your location."
7670 LOCATE 25,8:PRINT"Press any key to continue";:C$=INPUT$(1):RETURN
8000 DATA balloon,fallen weather balloon,3,stove,small wood burning stove,1,basket,large wicker basket,12
8010 DATA logs,logs,40,twine,roll of twine,17,matches,book of matches,15
8020 DATA bag,burlap bag,18,raft,inflatable raft,1,sign,sign,8
8030 DATA net,fish net,7,shoes,jogging shoes,10,axe,axe,10
8040 DATA mask,swim mask,40,trout,trout,29,goblet,crystal goblet,19
8050 DATA bottle,empty bottle of chablis,33,book,book,14,picture,picture of Mr.  Stone,16
8060 DATA snorkel,snorkel,40,manor,Stoneville Manor,9,manor,Stoneville Manor,1
8070 DATA sack,old abandoned shack,36,table,wooden table,37,credenza,wooden credenza,14
8080 DATA safe,safe,40,case,case of chablis,18,trees,trees,2
8090 DATA door,door,20,door,door,16,serval,an imported serval,18
8100 DATA store,general store,9,stairway,stairway,19,hospital,hospital,9
8110 DATA in the courtyard,in a wooded area,in a meadow,along a slippery creek,on the bank of a lake,in a barren field,on a rocky trail
8120 DATA at the edge of a gorge,on main street,inside the general store,inside the hospital,in the foyer,in the parlour
8130 DATA in the study,in an oriel,in the gallery,in the atrium,in the west wing of the wine cellar,in the east wing of the wine cellar
8140 DATA at top of an air way,at an outlet in the duct,at a turn in the duct,at a fork in the duct,at an outlet in the duct,at a turn in the duct
8150 DATA at an outlet in the duct,at an outlet in the duct,on the lake,in the southern bay,under the surface of the lake,under the surface of the lake
8160 DATA along an underground river,inside a cavern,in a hot air balloon,in a hot air balloon,on top of a plateau,inside the shack
8170 DATA w,2,s,4,"-",0,e,1,s,3,n,9,n,2,e,4,"-",0,w,3,e,5,n,1,w,4,"-",0,"-",0,s,9,e,7,"-",0,w,6,e,8,"-",0
8180 DATA w,7,"-",0,"-",0,s,2,n,6,"-",0,o,9,"-",0,"-",0,o,9,"-",0,"-",0,o,9,s,13,"-",0,n,12,e,14,s,17,w,13,e,15,s,16
8190 DATA w,14,"-",0,"-",0,n,14,w,17,"-",0,o,1,n,13,e,16,e,19,"-",0,"-",0,w,18,u,20,"-",0,d,19,"-",0,"-",0,o,13,s,22,"-",0,n,21,e,23,"-",0
8200 DATA w,22,n,24,s,25,o,14,s,23,"-",0,n,23,w,26,"-",0,o,17,d,27,e,25,o,18,u,26,"-",0,o,5,s,29,"-",0,n,28,"-",0,"-",0
8210 DATA u,28,s,31,"-",0,u,29,n,30,"-",0,e,31,w,33,"-",0,e,32,"-",0,"-",0,o,8,"-",0,"-",0,o,36,"-",0,"-",0,"-",0,"-",0,"-",0,o,36,"-",0,"-",0
8220 DATA Vent is covered.,Something is too big.,Inside is a note with the number.
8230 DATA 13,14,17,18,21,24,26,27
8300 OPEN"i",1,"game"
8340 INPUT#1,L,W,S,I,F,H,R,K,E,V,C1,C2,C3,C4,N$(1),N$(2),N$(3),S$(1),S$(2),S$(3)
8370 FOR X=1 TO 33:INPUT#1,O(X):NEXT X
8395 CLOSE#1:RETURN
8400 OPEN"o",1,"game"
8435 WRITE#1,L,W,S,I,F,H,R,K,E,V,C1,C2,C3,C4,N$(1),N$(2),N$(3),S$(1),S$(2),S$(3)
8470 FOR X=1 TO 33:WRITE#1,O(X):NEXT X
8495 CLOSE#1:CLS:KEY ON:END

TRADER.BAS

5 REM                   STAR TRADERS
10 REM - MODIFIED FOR 'ALTAIR BASIC 4.0' BY - S J SINGER
20 REM
30 REM
35 DEFINT C
36 DEFINT I
40 DIM M(10,13),S(5,4),N$(5),D1(5),S1(5),Q(5),M$(12),C$(25)
50 DIM C1$(25),C2$(25)
60 DATA 1,"'ALTAIR STARWAYS'"
70 DATA 2,"'BETELGEUSE,LTD.'"
80 DATA 3,"'CAPELLA FREIGHT CO.'"
90 DATA 4,"'DENEBOLA SHIPPERS'"
100 DATA 5,"'ERIDANI EXPEDITERS'"
101 DATA 6,"'FRANTIC FREON'"
102 DATA 7,"'GREAT GRATES INC.'"
103 DATA 8,"'HELENA HEROES'"
104 DATA 9,"'INTEL INTERSTELLAR TRADE INC.'"
105 DATA 10,"'JESSIE JEWLRY TRADERS'"
110 Z1$=CHR$(26)+CHR$(0)
120 PRINT Z1$
130   FOR I=1 TO 5
140    FOR J=1 TO 4
150 S(I,J)=0: D1(I)=0: S1(I)=100: Q(I)=0: B(I)=6000
160    NEXT J
170   NEXT I
180 L$=".+*ABCDE"
190 M$="ABCDEFGHIJKL"
192 CLS
195 PRINT"              **********   STAR TRADERS   **********":PRINT
197 PRINT:PRINT
200 INPUT "TYPE A 3 DIGIT NUMBER  ";R1
220 R1=RND(-R1/1000)
230   FOR I=1 TO 9
240    FOR J=1 TO 12
250 IF INT(20*RND(R1)+1)<>10 THEN M(I,J)=1 ELSE M(I,J)=3
260   NEXT J
270  NEXT I
280 PRINT Z1$
290 INPUT "HOW MANY PLAYERS  (2-4)  ";P1
300 PRINT:PRINT
310 INPUT "DOES ANY PLAYER NEED INSTRUCTIONS  ";Q$
320 IF Q$     ="Y" THEN GOSUB 3410
330 PRINT Z1$
340   FOR I=1 TO P1
350 PRINT "PLAYER",I,
370 INPUT " WHAT IS YOUR NAME  ";P$
380 IF I=1 THEN P1$=P$
390 IF I=2 THEN P2$=P$
400 IF I=3 THEN P3$=P$
410 IF I=4 THEN P4$=P$
420   NEXT I
430 PRINT Z1$
440 PRINT TAB(10),"...NOW I WILL DECIDE WHO GOES FIRST...":: PRINT:PRINT
445 PRINT:PRINT
450 PRINT:PRINT:PRINT
460 I=INT(P1*RND(R1)+1)
470 GOSUB 490
480 GOTO 550
490 PRINT
500 ON I GOTO 510,520,530,540: REM - IDENTIFY PLAYER
510 PRINT P1$;:P5$=P1$: RETURN
520 PRINT P2$;:P5$=P2$: RETURN
530 PRINT P3$;:P5$=P3$: RETURN
540 PRINT P4$;:P5$=P4$: RETURN
550 PRINT " IS THE FIRST PLAYER TO MOVE."
560 FOR W=1 TO 2000: NEXT
570 K=0
580 P=I:GOTO 610
590 K=K+1: IF K=48 THEN 4450
600 P=P+1: IF P=P1+1 THEN P=1
610  FOR I=1 TO 5: REM   SELECT 5 LEGAL MOVES
620 R(I)=INT(9*RND(R1)+1)
630 C(I)=INT(12*RND(R1)+1)
640    FOR I1=I-1 TO 0 STEP -1
650 IF R(I)=R(I1) AND C(I)=C(I1) THEN  620
660    NEXT I1
670 IF M(R(I),C(I))>1 THEN 620
680    FOR I1=1 TO 5
690 IF Q(I1)=0 THEN  870
700    NEXT I1
710 IF M(R(I),C(I)+1)>3 THEN 870
720 IF M(R(I),C(I)-1)>3 THEN 870
730 IF M(R(I)+1,C(I))>3 THEN 870
740 IF M(R(I)-1,C(I))>3 THEN 870
750 A1=M(R(I),C(I)+1)
760 A2=M(R(I),C(I)-1)
770 A3=M(R(I)+1,C(I))
780 A4=M(R(I)-1,C(I))
790 IF A1=2 AND A2<4 AND A3<4 AND A4<4 THEN  620
800 IF A2=2 AND A1<4 AND A3<4 AND A4<4 THEN  620
810 IF A3=2 AND A1<4 AND A2<4 AND A4<4 THEN  620
820 IF A4=2 AND A1<4 AND A2<4 AND A3<4 THEN  620
830 IF A1=3 AND A2<4 AND A3<4 AND A4<4 THEN  620
840 IF A2=3 AND A1<4 AND A3<4 AND A4<4 THEN  620
850 IF A3=3 AND A1<4 AND A2<4 AND A4<4 THEN  620
860 IF A4=3 AND A1<4 AND A2<4 AND A3<4 THEN  620
870   NEXT I
880 GOSUB 2060
890 PRINT
900 I=P
910 GOSUB 490
920 PRINT ", HERE ARE YOUR LEGAL MOVES FOR THIS TURN"
930 PRINT
940   FOR I=1 TO 5
950 PRINT R(I);MID$(M$,C(I),1);" ";
960   NEXT I
970 PRINT:PRINT
980 INPUT "WHAT IS YOUR MOVE ";R$
990 IF LEN(R$)=0 THEN R$="S"
1000 IF LEFT$(R$,1)="M" THEN R$="" ELSE 1030
1010 GOSUB 2060
1020 GOTO 900
1030 IF LEFT$(R$,1)="S" THEN R$="" ELSE 1060
1040 GOSUB 3230
1050 GOTO 900
1060 IF LEN(R$)<>2 THEN 1110
1070 IF ASC(MID$(R$,2,1))-64<1 THEN 1110
1080 IF ASC(MID$(R$,2,1))-64>12 THEN 1110 ELSE 1120
1090 IF VAL(R$)<1 THEN 1110
1100 IF VAL(R$)>9 THEN 1110
1110 PRINT "I DIDN'T UNDERSTAND THAT - TRY AGAIN ": GOTO 980
1120 R=VAL(LEFT$(R$,1))
1130 C=ASC(RIGHT$(R$,1))-64
1140   FOR I= 1 TO 5
1150 IF R=R(I) AND C=C(I) THEN  1190
1160   NEXT I
1170 PRINT "THAT SPACE WAS NOT INCLUDGD IN THE LIST..."
1180 GOTO 980
1190 A1=M(R-1,C)
1200 A2=M(R+1,C)
1210 A3=M(R,C+1)
1220 A4=M(R,C-1)
1230 IF A1<=1 AND A2<=1 AND A3<=1 AND A4<=1 THEN M(R,C)=2 ELSE 1250
1240 GOTO 1760
1250 IF A1>3 AND A2>3 AND A2<>A1 THEN GOSUB 2220   'REM - LINE 2090 IS
1260 IF A1>3 AND A3>3 AND A3<>A1 THEN GOSUB 2220   'REM   THE MERGER SUB.
1270 IF A1>3 AND A4>3 AND A4<>A1 THEN GOSUB 2220
1280 IF A2>3 AND A3>3 AND A3<>A2 THEN GOSUB 2220
1290 IF A2>3 AND A4>3 AND A4<>A2 THEN GOSUB 2220
1300 IF A3>3 AND A4>3 AND A4<>A3 THEN GOSUB 2220
1310 IF A1<4 AND A2<4 AND A3<4 AND A4<4 THEN 1410
1320 IF M(R,C)>3 THEN 1760
1330 IF A1>3 THEN I=A1-3
1340 IF A2>3 THEN I=A2-3
1350 IF A3>3 THEN I=A3-3
1360 IF A4>3 THEN I=A4-3
1370 Q(I)=Q(I)+1
1380 S1(I)=S1(I)+100
1390 M(R,C)=I+3
1400 GOTO 1570
1410   FOR I=1 TO 5
1420 IF Q(I)=0 THEN 1460
1430   NEXT I
1440 IF M(R,C)<3 THEN M(R,C)=2
1450 GOTO 1760
1460 PRINT Z1$
1470 GOSUB 3370
1480 PRINT "A NEW SHIPPING COMPANY HAS BEEN FORMED !"
1490 PRINT "IT'S NAME IS ",
1510 READ N,C$
1520 IF I<>N THEN 1510
1530 PRINT C$
1540 S(I,P)=S(I,P)+5
1550 Q(I)=1
1560 PRINT:PRINT:PRINT:PRINT
1570 IF A1=3 THEN S1(I)=S1(I)+500
1580 IF A2=3 THEN S1(I)=S1(I)+500
1590 IF A3=3 THEN S1(I)=S1(I)+500
1600 IF A4=3 THEN S1(I)=S1(I)+500
1610 IF A1=2 THEN S1(I)=S1(I)+100 ELSE 1640
1620 Q(I)=Q(I)+1
1630 M(R-1,C)=I+3
1640 IF A2=2 THEN S1(I)=S1(I)+100 ELSE 1670
1650 Q(I)=Q(I)+1
1660 M(R+1,C)=I+3
1670 IF A3=2 THEN S1(I)=S1(I)+100 ELSE 1700
1680 Q(I)=Q(I)+1
1690 M(R,C+1)=I+3
1700 IF A4=2 THEN S1(I)=S1(I)+100 ELSE 1730
1710 Q(I)=Q(I)+1
1720 M(R,C-1)=I+3
1730 IF S1(I)>=3000 THEN T1=I ELSE 1750
1740 GOSUB 3100
1750 M(R,C)=I+3
1760  FOR I=1 TO 5
1770 B(P)=B(P)+INT(0.05*S(I,P)*S1(I))
1780  NEXT I
1790  FOR I=1 TO 5
1800 IF Q(I)=0 THEN 2040
1810 PRINT:PRINT   "YOUR CURRENT CASH= $";B(P)
1820 PRINT:PRINT   "BUY HOW MANY SHARES OF ";
1830 RESTORE
1840 READ N,C$
1850 IF I<>N THEN 1840
1860 PRINT C$;
1870 PRINT " AT $";S1(I)
1880 PRINT TAB(5); "YOU NOW OWN ";S(I,P);
1890 INPUT R3$:IF LEN(R3$)=0 THEN R3$="0"
1900 IF R3$(1,1)="M" THEN R3$="" ELSE 1930
1910 GOSUB 2060
1920 GOTO 1810
1930 IF R3$(1,1)="S" THEN R3$="" ELSE 1960
1940 GOSUB 3230
1950 GOTO 1810
1960 R3=VAL(R3$)
1970 R3$=""
1980 IF R3*S1(I)<=B(P) THEN 2010
1990 PRINT "YOU ONLY HAVE $";B(P);" - TRY AGAIN"
2000 GOTO 1810
2010 IF R3=0 THEN 2040
2020 S(I,P)=S(I,P)+R3
2030 B(P)=B(P)-(R3*S1(I))
2040   NEXT I
2050 GOTO 590
2060 PRINT Z1$: REM             SUBROUTINE - PRINT MAP
2070 PRINT TAB(22);"MAP OF THE GALAXY"
2080 PRINT TAB(21);"*******************"
2090 PRINT TAB(13);" A  B  C  D  E  F  G  H  I  J  K  L"
2100   FOR R2=1 TO 9
2110 PRINT"         ";R2;" ";
2120 FOR C2=1 TO 12
2130 PRINT" ";
2140 Z2=M(R2,C2)
2150 IF Z2=0 THEN Z2=Z2+1
2160 PRINT MID$(L$,Z2,1)" ";
2180 NEXT
2190 PRINT
2200 NEXT
2210 RETURN
2220 F1=A1-3: IF F1<0 THEN F1=0:REM  SUBROUTINE - CALCULATES THE
2230 F2=A2-3: IF F2<0 THEN F2=0:REM     SURVIVOR IN THE EVENT
2240 F3=A3-3: IF F3<0 THEN F3=0:REM        OF A MERGER
2250 F4=A4-3: IF F4<0 THEN F4=0
2260 T=Q(F1)
2270 T1=F1
2280 IF Q(F2)>Q(F1) THEN T=Q(F2) ELSE 2300
2290 T1=F2
2300 IF Q(F3)>T THEN T=Q(F3) ELSE 2320
2310 T1=F3
2320 IF Q(F4)>T THEN T=Q(F4) ELSE 2340
2330 T1=F4
2340 IF F1=T1 OR A1<4 THEN 2370
2350 X=F1
2360 GOSUB 2470
2370 IF F2=T1 OR A2<4 THEN 2400
2380 X=F2
2390 GOSUB 2470
2400 IF F3=T1 OR A3<4 THEN 2430
2410 X=F3
2420 GOSUB 2470
2430 IF F4=T1 OR A4<4 THEN 2460
2440 X=F4
2450 GOSUB 2470
2460 RETURN
2470 PRINT Z1$
2480 GOSUB 3370: REM     SUBROUTINE - PERFORMS CALCULATIONS
2490 RESTORE: REM         TO ACCOMPLISH A MERGER
2500 READ N,C$
2510 IF X<>N THEN 2500
2520 C1$=C$
2530 PRINT C1$;
2540 PRINT " HAS JUST BEEN MERGED INTO ";
2550 RESTORE
2560 READ N,C$
2570 IF T1<>N THEN 2560
2580 C2$=C$
2590 PRINT C2$;"!"
2610 PRINT "PLEASE NOTE THE FOLLOWING TRANSACTIONS."
2620 PRINT
2630 PRINT TAB(3);"OLD STOCK = ";C1$;"      NEW STOCK = ";
2640 PRINT C2$
2650 PRINT
2660 PRINT "PLAYER";TAB(10);"OLD STOCK";TAB(22);"NEW STOCK";
2670 PRINT TAB(34);"TOTAL HOLDINGS";TAB(53);"BONUS PAID"
2680   FOR I=1 TO P1
2690 GOSUB 490
2700 PRINT TAB(10);S(X,I);TAB(22);INT((0.5*S(X,I))+0.5);
2710 PRINT TAB(34);S(T1,I)+INT((0.5*S(X,I))+0.5);
2720 X1=0
2730    FOR I1=1 TO P1
2740 X1=X1+S(X,I1)
2750    NEXT
2760 PRINT TAB(53);" $";INT(10*((S(X,I)/X1)*S1(X)))
2770   NEXT I
2780   FOR I=1 TO P1
2790 S(T1,I)=S(T1,I)+INT((0.5*S(X,I))+0.5)
2800 B(I)=B(I)+INT(10*((S(X,I)/X1)*S1(X)))
2810   NEXT I
2820   FOR I=1 TO 9
2830    FOR J=1 TO 12
2840 IF M(I,J)=X+3 THEN M(I,J)=T1+3
2850    NEXT J
2860   NEXT I
2870 A1=M(R-1,C)
2880 A2=M(R+1,C)
2890 A3=M(R,C+1)
2900 A4=M(R,C-1)
2910 F1=A3-3
2920 IF F1<0 THEN F1=0
2930 F2=A2-3
2940 IF F2<0 THEN F2=0
2950 Q(T1)=Q(T1)+Q(X)
2960 S1(T1)=S1(T1)+S1(X)
2970 IF S1(T1)=>3000 THEN GOSUB 3100
2980 F3=A3-3
2990 IF F3<0 THEN F3=0
3000 F4=A4-3
3010 IF F4<0 THEN F4=0
3020 S1(X)=100
3030 Q(X)=0
3040   FOR I=1 TO P1
3050 S(X,I)=0
3060   NEXT I
3070 PRINT:PRINT
3080 M(R,C)=T1+3
3090 RETURN
3100 GOSUB 3370: REM        SUBROUTINE - CALCULATES STOCK SPLITS
3110 PRINT "THE STOCK OF ",
3120 RESTORE
3130 READ N,C$
3140 IF T1<>N THEN 3130
3150 PRINT C$,
3160 PRINT " HAS SPLIT 2 FOR 1 !"
3170 S1(T1)=INT(S1(T1)/2)
3180 PRINT:PRINT
3190   FOR I1=1 TO P1
3200 S(T1,I1)=2*S(T1,I1)
3210   NEXT I1
3220 RETURN
3230 PRINT Z1$
3240 PRINT
3250 PRINT "STOCK";TAB(30);"PRICE PER SHARE";
3260 PRINT TAB(50);"YOUR HOLDINGS"
3270   FOR I3=1 TO 5
3280 IF S1(I3)=100 THEN 3340
3290 RESTORE
3300 READ N,C$
3310 IF I3<>N THEN 3300
3320 PRINT C$,
3330 PRINT TAB(30);S1(I3);TAB(50);S(I3,P)
3340   NEXT I3
3350 RESTORE
3360 RETURN
3370 PRINT CHR$(7)
3380 PRINT TAB(22);"SPECIAL ANNOUNCEMENT !!!":PRINT
3390 PRINT
3400 RETURN
3410 PRINT Z1$
3420 PRINT "   STAR LANES IS A GAME OF INTERSTELLAR TRADING."
3430 PRINT "THE OBJECT OF THE GAME IS TO AMASS THE GREATEST AMOUNT"
3440 PRINT "OF MONEY.  THIS IS ACCOMPLISHED BY ESTABLISHING VAST,"
3450 PRINT "INTERSTELLAR SHIPPING LANES, AND PURCHASING STOCK IN"
3460 PRINT "THE COMPANIES THAT CONTROL THOSE TRADE ROUTES.  DURING"
3470 PRINT "THE COURSE OF THE GAME, STOCK APPRECIATES IN VALUE AS"
3480 PRINT "THE SHIPPING COMPANIES BECOME LARGER.  ALSO, SMALLER"
3490 PRINT "COMPANIES CAN BE MERGED INTO LARGER ONES, AND STOCK"
3500 PRINT "IN THE SMALLER FIRM IS CONVERTED INTO STOCK IN THE"
3510 PRINT "LARGER ONE AS DESCRIBED BELOW.":PRINT
3520 PRINT "EACH TURN, THE COMPUTER WILL PRESENT THE PLAYER WITH"
3530 PRINT "FIVE PROSPECTIVE SPACES TO OCCUPY ON A 9X12 MATRIX"
3540 PRINT "(ROWS 1-9, COLUMNS A-L).  THE PLAYER, AFTER EXAMINING"
3550 PRINT "THE MAP OF THE GALAXY TO DECIDE WHICH SPACE HE WISHES"
3560 PRINT "TO OCCUPY, RESPONDS WITH THE ROW AND COLUMN OF THAT"
3570 PRINT "SPACE, I.E., 7E, 8A, ETC.  THERE ARE FOUR POSSIBLE"
3580 PRINT "MOVES A PLAYER CAN MAKE.":PRINT:PRINT
3590 PRINT
3600 GOSUB 3620
3610 GOTO 3660
3620 INPUT "PRESS RETURN TO CONTINUE";X2$
3650 RETURN
3660 PRINT Z1$
3670 PRINT "   1. HE CAN ESTABLISH AN UNATTACHED OUTPOST- IF HE"
3680 PRINT "SELECTS A SPACE THAT IS NOT ADJACENT TO A STAR, ANOTHER"
3690 PRINT "UNATTACHED OUTPOST, OR AN EXISTING SHIPPING LANE, THIS"
3700 PRINT "SPACE WILL BE DESIGNATED WITH A '+'.  HE WILL THEN PROCEED"
3710 PRINT "WITH STOCK TRANSACTIONS, AS LISTED BELOW.":PRINT
3720 PRINT "   2. HE CAN ADD TO AN EXISTING LANE- IF HE SELECTS A"
3730 PRINT "SPACE THAT IS ADJACENT TO ONE - AND ONLY ONE EXISTING"
3740 PRINT "SHIPPING LANE, THE SPACE HE SELECTS WILL BE ADDED TO"
3750 PRINT "THAT SHIPPING LANE AND WILL BE DISIGNATED WITH THE FIRST"
3760 PRINT "LETTER OF THE COMPANY THAT OWNS THAT LANE.  IF THERE ARE"
3770 PRINT "ANY STARS OR UNATTACHED OUTPOSTS ALSO ADJACENT TO THE"
3780 PRINT "SELECTED SPACE, THEY, TOO, WILL BE INCORPORATED INTO THE"
3790 PRINT "EXISTING LANE.  EACH NEW SQUARE ADJACENT TO A STAR ADDS"
3800 PRINT "$500 PER SHARE, AND EACH NEW OUTPOST ADDS $100 PER SHARE"
3810 PRINT "TO THE MARKET VALUE OF THE STOCK OF THAT COMPANY."
3820 PRINT:PRINT
3830 GOSUB 3620
3840 PRINT Z1$
3850 PRINT "   3. HE MAY ESTABLISH A NEW SHIPPING LANE- IF THERE"
3860 PRINT "ARE FIVE OR LESS EXISTING SHIPPING LANES ESTABLISHED,"
3870 PRINT "THE PLAYER MAY, GIVEN THE PROPER SPACE TO PLAY, ESTABLISH"
3880 PRINT "A NEW SHIPPING LANE.  HE MAY DO THIS BY OCCUPYING A SPACE"
3890 PRINT "ADJACENT TO A STAR OR ANOTHER UNATTACHED OUTPOST, BUT"
3900 PRINT "NOT ADJACENT TO AN EXISTING SHIPPING LANE.  IF HE"
3910 PRINT "ESTABLISHES A NEW SHIPPING LANE, HE IS AUTOMATICALLY"
3920 PRINT "ISSUED 5 SHARES KN THE NEW COMPANY AS A REWARD.  HE"
3930 PRINT "MAY THEN PROCEED TO BUY STOCK IN ANY ACTIVE COMPANY,"
3940 PRINT "INCLUDKNG THE ONE JUST FORMED, AS DESCRIBED BELOW."
3950 PRINT "THG MARKET VALUE OF THE NEW STOCK IS ESTABLISHED BY"
3960 PRINT "THE NUMBER OF STARS AND OCCUPIED SPACES AS DESCRIBED"
3970 PRINT "IN #2 ABOVE."
3980 PRINT:PRINT
3990 GOSUB 3620
4000 PRINT Z1$
4010 PRINT "   4.  HE MAY MERGE TWO EXISTING COMPANIES- IF A PLAYER"
4020 PRINT "SELECTS A SPACE ADJACENT TO TWO EXISTING SHIPPING"
4030 PRINT "LANES, A MERGER OCCURS.  THE LARGER COMPANY TAKES OVER THE"
4040 PRINT "SMALLER COMPANY - (IF BOTH COMPANIES ARE THE SAME SIZE"
4050 PRINT "PRIOR TO THE MERGER, THEN THE SURVIVOR IS DETERMINED BY"
4060 PRINT "ALPHABETICAL ORDER OF THE TWO COMPANY NAMES - THE EARLIER"
4070 PRINT "SURVIVES).  THE STOCK OF THE SURVIVING COMPANY IS"
4080 PRINT "INCREASED IN VALUE ACCORDING TO THE NUMBER OF SPACES"
4090 PRINT "AND STARS ADDED TO ITS LANE.  EACH PLAYERS STOCK IN"
4100 PRINT "THE DEFUNCT COMPANY IS EXCHANGED FOR SHARES KN THE"
4110 PRINT "SURVIVOR ON A RATIO OF 2 FOR 1.  ALSO, EACH PLAYER"
4120 PRINT "IS PAID A CASH BONUS PROPORTIONAL TO THE PERCENTAGE"
4130 PRINT "OF OUTSTANDING STOCK HE HELD IN THE DEFUNCT COMPANY."
4140 PRINT "NOTE: AFTER A COMPANY BECOMES DEFUNCT THROUGH THE"
4150 PRINT "MERGER PROCESS, IT CAN REAPPEAR ELSEWHERE ON THE"
4160 PRINT "BOARD WHEN, AND IF, A NEW COMPANY IS ESTABLISHED."
4170 PRINT:PRINT
4180 GOSUB 3620
4190 PRINT Z1$
4200 PRINT "   NEXT THE COMPUTER CDDS STOCK DIVIDENDS TO THE PLAYER'S"
4210 PRINT "CASH ON HAND (5% OF THE MARKET VALUE OF THE STOCK IN HIS"
4220 PRINT "POSSESSION), AND OFFERS HIM THE OPPORTUNITY TO PURCHASE"
4230 PRINT "STOCK KN ANY OF THE ACTIVE COMPANIES ON THE BOARD."
4240 PRINT "STOCK MAY NOT BE SOLD, BUT THE MARKET VALUE OF EACH"
4250 PRINT "PLAYER'S STOCK IS TAKEN INTO ACCOUNT AT THE END OF THE"
4260 PRINT "GAME TO DETERMINE THE WINNER. IF THE OARKET VALUE OF A GIVEN"
4270 PRINT "STOCK EXCEEDS $3000 AT ANY TIME DURING THE GAME, THAT"
4280 PRINT "STOCK SPLITS 2 FOR 1.  THE PRICE IS CUT IN HALF, AND"
4290 PRINT "THE NUMBER OF SHARES OWNED BY GACH PLAYER IS DOUBLED."
4300 PRINT
4310 PRINT "NOTE:  THE PLAYER MAY LOOK AT HIS PORTFOLIO AT ANY TIME"
4320 PRINT "DURING THE COURSE OF HIS TURN BY RESPONDING WITH 'STOCK'"
4330 PRINT "TO AN INPUT STATEMENT.  LIKEWISE, HE CAN REVIEW THE MAP"
4340 PRINT "OF THE GALAXY BY TYPING 'MAP' TO AN INPUT STATEMENT."
4350 PRINT:PRINT
4360 GOSUB 3620
4370 PRINT Z1$
4380 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
4390 PRINT TAB(16);"** GAME ENDS AFTER 48 MOVES **"
4400 PRINT:PRINT:PRINT:PRINT
4410 PRINT "PLAYER WITH THE GREATEST NET WORTH AT THAT POINT IS THE WINNER."
4420 PRINT:PRINT
4430 FOR W=1 TO 2000:NEXT W
4440 RETURN
4450 PRINT Z1$
4460 GOSUB 3370
4470 FOR W=1 TO  500:NEXT W:PRINT CHR$(7)
4480 FOR W=1 TO 500:NEXT W:PRINT CHR$(7)
4490 PRINT TAB(10)," THE GAME IS OVER - HERE ARE THE FINAL STANDINGS"
4500 PRINT:PRINT:PRINT:PRINT
4510 PRINT CHR$(7)
4520 PRINT "PLAYER";TAB(10);"CASH VALUE OF STOCK";TAB(33);"CASH ON HAND",
4530 PRINT TAB(50);"NET WORTH"
4540 PRINT
4550   FOR I=1 TO P1
4560    FOR J=1 TO 5
4570 D1(I)=D1(I)+(S1(J)*S(J,I))
4580    NEXT J
4590   NEXT I
4600   FOR I=1 TO P1
4610 GOSUB 490
4620 PRINT TAB(10);"$";D1(I);TAB(33);"$";B(I);
4630 PRINT TAB(50);"$";D1(I)+B(I)
4640   NEXT I
4650 PRINT:PRINT:PRINT:PRINT
4660 CLS:RUN "MENU.PGM"

Directory of PC-SIG Library Disk #0100

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

3DTT     BAS     13568   1-01-80  12:44a
A2       SPC      2304   1-01-80  12:36a
A5       SPC       896   1-01-80   1:00a
ALIEN    BAS      2304   1-01-80  12:52a
ALIEN    DOC       325   1-01-80  12:57a
ALIEN    SPC     25728   1-01-80  12:56a
ANIMATE  BAS      3712   1-01-80  12:48a
BAGPIPES BAS      1408  11-27-82  12:50a
CIA      BAS     13824   1-01-80  12:36a
CRC      TXT      1734  11-09-84   1:53p
CRCK4    COM      1536  10-21-82   7:54p
EGGS     BAS       384   1-01-80   1:28a
EGGS     DOC       590   1-01-80  12:05a
JUKEBOX  BAS      2944   1-01-80  12:19a
JUKECARA MUS       896   9-18-82  12:20p
JUKEDOWN MUS       896   9-18-82  12:20p
JUKEGARO MUS      1024   9-18-82  12:23p
JUKEIMPO MUS       896   9-18-82  12:20p
JUKESATI MUS      1024   9-18-82  12:20p
JUKESECO MUS      1280   9-18-82  12:19p
JUKESOUN MUS       768   9-18-82  12:19p
JUKESUNR MUS       640   9-18-82  12:21p
JUKETAKE MUS      1152   1-01-80   3:11a
JUKETHIR MUS     10880   9-18-82  12:09p
MANOR    BAS     14208   1-01-80   3:41a
MENU     PGM      1280  12-10-83   3:11p
TRADER   BAS     13056   2-11-83   7:28p
       27 file(s)     119257 bytes
                       35328 bytes free