PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #45)

[PCjs Machine "ibm5150"]

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

Information about “GAME SERIES NO 8”

A wide ranging example of ``games that were.''  If you're interested in
BASIC programming, this could be an interesting set of programs to
analyze.  You might want to find out how to do a certain procedure, or
adapt a given procedure to your own BASIC project.  You'll find ample
and diverse examples of game procedures in this package.

There are several educational games on this disk, plus a couple that
will still keep you guessing.  However, the games on this list are
essentially out of date now, and, given the advances in programming over
the years, there are many more up-to-date variations on the themes
available in the PC-SIG library.
File Descriptions:

MINIMATH BAS  BASIC math program.
BACCRRT  BAS  BASIC card program.
ANTONYMS BAS  Learn your antonyms.
AWARI    BAS  Classic African sticks and stones.
BACCRRT  BAS  Card game.
SYNONYMS BAS  Learn your synonyms.
TAXMAN   BAS  Beat the taxman.
WEATHER  BAS  Predict the weather.
TRADE    BAS  Intergalactic trading game.
GALAXY   BAS  Behold the stars.
FOOTBALL BAS  Football simulation.
BASEBALL BAS  Baseball game.
IQUEEN   BAS  Problem solving with chess pieces.
HIDESEEK BAS  Search for hidden objects.
GREEKRTS BAS  Match Greek words with their meaning.
GALAXY2  BAS  Behold the stars and be inspired.
DRAGRACE BAS  Race the circuit.
DOTS     BAS  Connect the dots and make a picture.
CLOUD-9  BAS  Educational game.
BIO      BAS  Biorythms for printer.
CLIMATES BAS  Educational game.
CIVILWAR BAS  The blue against grey.
BOMB     BAS  Find the bomb.
BIRTHDAY BAS  Find the day of the week you were born.
MEMBRAIN BAS  Keep cells alive.
SHOP     BAS  Go shopping.
REVERSE  BAS  Arrange the numbers correctly.
SNOOPY   BAS  Print Snoopy on printer.
SQUARE   BAS  Competitive square building.
SWARMS   BAS  You are attacked by bees.

ANTONYMS.BAS

10 CLS:KEY OFF
100 REM MODERNIZED BY DAVE NIXON JAN. 16 1977
110 CLEAR 300
120 DEFINT A-Z
130 N3=1
140 DIM R$(10),W$(20),L(20),T(150)
150 INPUT "WHAT IS YOUR NAME";NA$
160 PRINT"                      ANTONYMS"
170 PRINT"     IN THIS PROGRAM, YOU WILL FIND A COLLECTION OF ANTONYMS."
180 PRINT "A ANTONYM OF A WORD, IN THIS PROGRAN, WILL MEAN ANOTHER"
190 PRINT "WORD IN THE ENGLISH LANGUAGE WHICH HAS THE OPPOSITE"
200 PRINT "OR VERY NEARLY THE OPPOSITE MEANING. *NOTE-NOT ALL ANTONYMS"
210 PRINT "ARE IN THE COMPUTER*":PRINT
220 PRINT
230 PRINT"     I CHOOSE A WORD - YOU TYPE A ANTONYM.  IF YOU CANNOT"
240 PRINT"THINK OF A WORD; TYPE THE WORD  HELP  .  THIS CAUSES"
250 PRINT"A ANTONYM TO BE PRINTED."
260 PRINT
270 NR=9:NE=5
280 E$(1)="BETTER LUCK NEXT TIME "+NA$
290 E$(2)="WIN SOME LOSE SOME"
300 E$(3)="TRY HARDER NEXT TIME "+NA$
310 E$(4)=NA$+" I KNOW YOU CAN DO BETTER THAN THAT"
320 E$(5)=NA$+" I AM ASHAMED OF YOU"
330 LET R$(1)="CORRECT"
340 LET R$(2)="VERY GOOD"
350 LET R$(3)="FINE"
360 LET R$(4)="GOOD"
370 LET R$(5)="GOOD GOING"
380 R$(6)="RIGHT ON "+NA$
390 R$(7)=NA$+" YOU'R NEAR PERFECT"
400 R$(8)="KEEP UP THE GOOD WORK "+NA$
410 R$(9)="THAT'S THE WAY! "+NA$
420 PRINT
430 PRINT
440 RESTORE
450 READ N
460 I=1:E=0:NT=2
470 LET N1=INT(RND(1)*N+1)
480 IF N3>N THEN PRINT:PRINT "NO MORE ANTONYMS":GOTO 1000
490 IF N1=T(I) THEN GOTO 460 ELSE I=I+1:IF I<N3 GOTO 490
500 T(N3)=N1:N3=N3+1
510 I=0
520 READ N2
530 N4=2
540 FOR J=1 TO N2
550 READ W$(J)
560 NEXT J
570 I=I+1:IF I<N1 GOTO 520
580 FOR J=1 TO N2
590 LET L(J)=J
600 NEXT J
610 LET L(0)=N2
620 LET G=1
630 PRINT
640 LET L(G)=L(L(0))
650 LET L(0)=N2-1
660 PRINT
670 PRINT "    WHAT IS A ANTONYM OF ";W$(G);
680 INPUT A$
690 IF A$="HELP" THEN 870
700 FOR J=2 TO N2:IF A$=W$(J) THEN GOTO 810 ELSE NEXT J
710 FOR J=2 TO N2
720 CT=LEN(W$(J))
730 IF CT<5 GOTO 780
740 FOR I1=1 TO LEN(W$(J))
750 IF MID$(W$(J),I1,1)=MID$(A$,I1,1) THEN CT=CT-1
760 NEXT I1
770 IF CT<3 THEN PRINT "CHECK YOUR SPELLING"
780 NEXT J
790 PRINT "   TRY AGAIN. ";
800 GOTO 670
810 IF J<>L1 THEN E=0
820 IF E=1 THEN PRINT E$(RND(1)*NE+1)ELSEPRINT R$(RND(1)*NR+1)
830 IF N2=2 THEN GOTO 440
840 PRINT "ALL THE ANTONYMS THAT I HAVE ARE"
850 FOR P=2 TO N2:PRINT W$(P),:NEXT P
860 GOTO 440
870 LET G1=INT(RND(1)*L(0)+1)
880 E=1
890 IF L(0)=0 THEN 970
900 PRINT "**** A ANTONYM OF ";W$(G);" IS ";W$(L(G1));"."
910 IF N2>N4 THEN PRINT "THERE ARE OTHERS":N4=N4+1
920 PRINT
930 L1=L(G1)
940 LET L(G1)=L(L(0))
950 LET L(0)=L(0)-1
960 NT=NT+1:IF NT>N2 THEN GOTO 440 ELSE GOTO 670
970 PRINT "THERE ARE NO MORE ANTONYMS."
980 GOTO 670
990 PRINT
1000 PRINT" THIS ANTONYM EXERCISE IS COMPLETED."
1010 END
1020 DATA 81
1030 DATA 2,AGREE,DISAGREE:
1040 DATA 2,ADVANCE,RETREAT:
1050 DATA 2,AROUSED,CALM:
1060 DATA 3,ARRIVE,DEPART,LEAVE:
1070 DATA 3,BUY,STEAL,TAKE:
1080 DATA 2,BEAUTIFUL,UGLY:
1090 DATA 2,DARING,CAUTIOUS:
1100 DATA 2,DESTROY,BUILD:
1110 DATA 2,FAIL,SUCCEED:
1120 DATA 2,FOR,AGAINST:
1130 DATA 2,FUTURE,PAST:
1140 DATA 2,GAIN,LOSS:
1150 DATA 2,JOY,SORROW:
1160 DATA 2,KIND,CRUEL:
1170 DATA 2,LEAST,MOST:
1180 DATA 2,LOVE,HATE:
1190 DATA 3,NOISE,QUIET,CALM:
1200 DATA 2,PERMIT,FORBID:
1210 DATA 3,STOP,GO,START:
1220 DATA 3,REFUSE,GRANT,ALLOW:
1230 DATA 2,REMEMBER,FORGET:
1240 DATA 2,SEEK,AVOID:
1250 DATA 3,SLOWLY,QUICKLY,RAPIDLY:
1260 DATA 2,QUICK,SLOW:
1270 DATA 2,WIN,LOSE:
1280 DATA 2,WISE,FOOLISH:
1290 DATA 2,ABOVE,BELOW:
1300 DATA 2,ALIVE,DEAD:
1310 DATA 3,ATTACK,DEFEND,PROTECT:
1320 DATA 2,BITTER,SWEET:
1330 DATA 2,BUSY,IDLE:
1340 DATA 2,CALM,ROUGH:
1350 DATA 2,CENTER,EDGE:
1360 DATA 2,CLEAN,DIRTY:
1370 DATA 2,DAY,NIGHT:
1380 DATA 2,EASY,HARD:
1390 DATA 2,FAINT,LOUD:
1400 DATA 2,FALL,SPRING:
1410 DATA 3,FAR,CLOSE,NEAR:
1420 DATA 2,FIRST,LAST:
1430 DATA 2,FRIEND,ENEMY:
1440 DATA 2,GOOD,BAD:
1450 DATA 4,HUGE,TINY,SMALL,LITTLE:
1460 DATA 4,BEGIN,END,FINISH,COMPLETE:
1470 DATA 2,LIBERTY,SLAVERY:
1480 DATA 3,MOST,LEAST,FEW:
1490 DATA 2,OFTEN,RARE:
1500 DATA 2,PLENTIFUL,SCARCE:
1510 DATA 2,QUIET,NOISY:
1520 DATA 2,RAISE,LOWER:
1530 DATA 2,SHORT,LONG:
1540 DATA 2,SMOOTH,ROUGH:
1550 DATA 3,GOOD,BAD,TERRIBLE:
1560 DATA 2,STRENGTH,WEAKNESS:
1570 DATA 2,SUMMER,WINTER:
1580 DATA 3,SUNNY,CLOUDY,RAINY:
1590 DATA 2,WEAK,STRONG:
1600 DATA 2,WORST,BEST:
1610 DATA 6,ABATE,INCREASE,INTENSIFY,HEIGHTEN,AUGMENT,AGGRAVATE:
1620 DATA 5,ABERRATION,RECTITUDE,NORMALITY,RATIONALITY,SANITY:
1630 DATA 5,ABET,CURB,RESTRAIN,HINDER,DISSUADE:
1640 DATA 6,ABSTRUSE,CLEAR,PLAIN,MANIFEST,OBVIOUS,EASY:
1650 DATA 4,ACRIMONIOUS,BLAND,GENTLE,MILD:
1660 DATA 3,ACUMEN,OBTUSENESS,DULLNESS:
1670 DATA 6,ADAMANT,FLEXIBLE,SUBMISSIVE,PLIANT,OBLIGING,RELENTING:
1680 DATA 8,AFFABLE,UNSOCIABLE,SURLY,TESTY,ILL-TEMPERED,CURT:
1690 DATA RUDE,BOORISH:
1700 DATA 4,AGGRAVATE,DECREASE,ABATE,ALLEVIATE:
1710 DATA 6,ALACRITY,APATHY,SLOWNESS,DELAY,UNCONCERN,INDIFFERENCE:
1720 DATA 5,ALLEVIATE,AGGRAVATE,INTENSIFY,INCREASE,MAGNIFY:
1730 DATA 3,ALTRUISTIC,EGOISTIC,EGOCENTRIC:
1740 DATA 5,AMITY,ENMITY,HOSTILITY,ANTIPATHY,DISCORD:
1750 DATA 2,ANACHRONISM,SYNCHRONIZE:
1760 DATA 4,ANALOGY,DISSIMILARITY,UNLIKENESS,ANOMALY:
1770 DATA 5,ANATHEMA,BENEDICTION,EULOGY,BLESSING,BENISON:
1780 DATA 7,APATHY,ENTHUSIASM,INTEREST,CONCERN,ZEAL,EAGERNESS,FERVOR:
1790 DATA 4,APOSTATE,FOLLOWER,ADHERENT,DISCIPLE:
1800 DATA 6,APT,INEPT,UNLIKELY,UNFIT,UNSUITABLE,CLUMSY:
1810 DATA 7,ARBITRARY,FAIR,EQUITABLE,REASONABLE,CONCILIATORY:
1820 DATA LIMITED,RESTRICTED:
1830 DATA 7,ASCETIC,SELF-INDULGENT,SENSUAL,GLUTTONOUS:
1840 DATA UNRESTRAINED,HEDONIST,EPICUREAN:
1850 DATA 4,ASKANCE,DIRECTLY,CONFIDENTLY,TRUSTINGLY:
1860 DATA 3,ASKEW,STRAIGHT,SYMMETRICAL:
1870 END:

AWARI.BAS

10 REM set AUTO @ 1010,5
20 CLS:KEY OFF
30 COLOR 0,7  'reverse image (black on white)
40 PRINT "  AWARI  ";
50 COLOR 7,0  'return to default (white on black)
60 PRINT "         Creative Computing  Morristown, New Jersey"
70 PRINT "                  [screen embellishsments by  Phillip Jacka]"
80 DATA 0
90 DIM B(13),G(13),F(50):READ N
100 PRINT:PRINT:E=0
110 FOR I=0 TO 12:B(I)=3:NEXT I
120 C=0:F(N)=0:B(13)=0:B(6)=0
130 GOSUB 420
140 PRINT "YOUR MOVE";:GOSUB 270
150 IF E=0 THEN 220
160 IF M=H THEN GOSUB 260
170 IF E=0 THEN 220
180 PRINT "MY MOVE IS ";:GOSUB 580
190 IF E=0 THEN 220
200 IF M=H THEN PRINT ",";:GOSUB 580
210 IF E>0 THEN 130
220 PRINT:PRINT "GAME OVER"
230 D=B(6)-B(13):IF D<0 THEN PRINT "I WIN BY";-D;"POINTS":GOTO 100
240 N=N+1:IF D=0 THEN PRINT "DRAWN GAME":GOTO 100
250 PRINT "YOU WIN BY";D;"POINTS":GOTO 100
260 PRINT "AGAIN";
270 INPUT M:IF M<7 THEN IF M>0 THEN M=M-1:GOTO 310
280 PRINT "ILLEGAL MOVE":PRINT
290 PRINT "DO YOU WISH TO STOP";:INPUT L$
300 IF L$="NO" OR L$="no" OR L$="N" OR L$="n" THEN GOTO 260 ELSE CHAIN "CHOICE83",1000
310 IF B(M)=0 THEN 280
320 H=6:GOSUB 340
330 GOTO 420
340 K=M:GOSUB 520
350 E=0:IF K>6 THEN K=K-7
360 C=C+1:IF C<9 THEN F(N)=F(N)*6+K
370 FOR I=0 TO 5:IF B(I)<>0 THEN 400
380 NEXT I
390 RETURN
400 FOR I=7 TO 12:IF B(I)<>0 THEN E=1:RETURN
410 NEXT I
420 PRINT:PRINT "   ";
430 FOR I=12 TO 7 STEP -1:GOSUB 500
440 NEXT I
450 PRINT:I=13:GOSUB 500
460 PRINT "                        ";:PRINT B(6):PRINT "   ";
470 FOR I=0 TO 5:GOSUB 500
480 NEXT I
490 PRINT:PRINT:RETURN
500 IF B(I)<10 THEN PRINT " ";
510 PRINT B(I);:RETURN
520 P=B(M):B(M)=0
530 FOR P=P TO 1 STEP -1:M=M+1:IF M>13 THEN M=M-14
540 B(M)=B(M)+1:NEXT P
550 IF B(M)=1 THEN IF M<>6 THEN IF M<>13 THEN IF B(12-M)<>0 THEN 570
560 RETURN
570 B(H)=B(H)+B(12-M)+1:B(M)=0:B(12-M)=0:RETURN
580 D=-99:H=13
590 FOR I=0 TO 13:G(I)=B(I):NEXT I
600 FOR J=7 TO 12:IF B(J)=0 THEN 740
610 G=0:M=J:GOSUB 520
620 FOR I=0 TO 5:IF B(I)=0 THEN 670
630 L=B(I)+I:R=0
640 IF L>13 THEN L=L-14:R=1:GOTO 640
650 IF B(L)=0 THEN IF L<>6 THEN IF L<>13 THEN R=B(12-L)+R
660 IF R>Q THEN Q=R
670 NEXT I
680 Q=B(13)-B(6)-Q:IF C>8 THEN 720
690 K=J:IF K>6 THEN K=K-7
700 FOR I=0 TO N-1:IF F(N)*6+K=INT(F(I)/6^(7-C)+0.1) THEN Q=Q-2
710 NEXT I
720 FOR I=0 TO 13:B(I)=G(I):NEXT I
730 IF Q>=D THEN A=J:D=Q
740 NEXT J
750 M=A:PRINT CHR$(42+M);:GOTO 340
760 FOR I=0 TO N-1:PRINT B(I):NEXT I
770 IK$=INKEY$
780 IF IK$=CHR$(27) THEN CHAIN "CHOICE83.BAS",1000

BACCRRT.BAS

10 REM (SOURCE UNKNOWN) EDITED SLIGHTLY BY D. KURLAND 11/6/75
20 CLS:KEY OFF
30 PRINT:PRINT:PRINT "WELCOME TO CASINO UNIVAC 1108"
40 PRINT:PRINT "THE GAME IS BACCARAT"
50 H=0
60 GOSUB 1320
70 DIM A(10),C(10)
80 PRINT:PRINT "ARE YOU READY";
90 INPUT X$
100 IF X$="NO" OR X$="N" THEN 1310
110 PRINT:PRINT "WAGER";
120 D=0
130 E=0
140 INPUT G
150 IF G>100000! THEN 1290
160 IF G>0 THEN 190
170 PRINT "HA!HA!, VERY FUNNY!!"
180 GOTO 110
190 B=1
200 GOTO 660
210 A(B)=INT(RND(1)*52)+1
220 C(B)=A(B)-13*INT(A(B)/13)
230 IF C(B)=0 THEN 520
240 ON C(B) GOTO 250,270,290,310,330,350,370,390,410,430,460,490
250 PRINT "ACE  ";
260 GOTO 540
270 PRINT "DEUCE  ";
280 GOTO 540
290 PRINT "THREE  ";
300 GOTO 540
310 PRINT "FOUR  ";
320 GOTO 540
330 PRINT "FIVE  ";
340 GOTO 540
350 PRINT "SIX  ";
360 GOTO 540
370 PRINT "SEVEN  ";
380 GOTO 540
390 PRINT "EIGHT  ";
400 GOTO 540
410 PRINT "NINE  ";
420 GOTO 540
430 PRINT "TEN  ";
440 C(B)=0
450 GOTO 540
460 PRINT "JACK  ";
470 C(B)=0
480 GOTO 540
490 PRINT "QUEEN  ";
500 C(B)=0
510 GOTO 540
520 PRINT "KING  ";
530 C(B)=0
540 IF INT(A(B)/13)<>A(B)/13 THEN 560
550 ON A(B)/13 GOTO 580,600,620,640
560 IF INT(A(B)/13)=0 THEN 580
570 ON INT(A(B)/13) GOTO 600,620,640
580 PRINT "OF CLUBS"
590 RETURN
600 PRINT "OF DIAMONDS"
610 RETURN
620 PRINT "OF SPADES"
630 RETURN
640 PRINT "OF HEARTS"
650 RETURN
660 PRINT:PRINT "YOUR FIRST CARD IS A ";
670 GOSUB 210
680 GOSUB 1230
690 PRINT:PRINT "YOUR NEXT CARD IS A ";
700 GOSUB 210
710 GOSUB 1230
720 PRINT:PRINT "DO YOU WANT A CARD";
730 INPUT J$
740 IF J$="YES" OR J$="Y" THEN 790
750 C(3)=0
760 D=D+C(B)
770 B=B+1
780 GOTO 820
790 PRINT:PRINT "THE CARD IS A ";
800 GOSUB 210
810 GOSUB 1230
820 PRINT:PRINT "MY FIRST CARD IS A ";
830 GOSUB 210
840 GOSUB 1260
850 PRINT:PRINT "MY NEXT CARD IS A ";
860 GOSUB 210
870 GOSUB 1260
880 IF E<10 THEN 910
890 E=E-10
900 GOTO 880
910 IF E<6 THEN 950
920 PRINT:PRINT "I DO NOT WANT A CARD"
930 C(6)=0
940 GOTO 980
950 PRINT:PRINT "I TAKE CARD"
960 PRINT:PRINT "THE CARD IS A ";
970 GOSUB 210
980 E=E+C(6)
990 IF D<10 THEN 1020
1000 D=D-10
1010 GOTO 990
1020 PRINT:PRINT "YOUR TOTAL IS";D
1030 IF E<10 THEN 1060
1040 E=E-10
1050 GOTO 1030
1060 PRINT "MY TOTAL IS  ";E
1070 IF D=E THEN 1510
1080 IF D>E THEN 1120
1090 PRINT:PRINT "I WIN  $"G
1100 G=-G
1110 GOTO 1130
1120 PRINT:PRINT "YOU WIN $";G
1130 H=H+G
1140 IF H>0 THEN 1210
1150 IF H=0 THEN 1530
1160 PRINT:PRINT "YOU OWE ME  $";-H
1170 PRINT:PRINT "DO YOU WANT TO TRY AGAIN";
1180 INPUT K$
1190 IF K$="NO" OR K$="N" THEN CHAIN "MENU",1000
1200 GOTO 110
1210 PRINT "I.O.U. $";H
1220 GOTO 1170
1230 D=D+C(B)
1240 B=B+1
1250 RETURN
1260 E=E+C(B)
1270 B=B+1
1280 RETURN
1290 PRINT "HOUSE LIMIT IS $100000"
1300 GOTO190
1320 PRINT:PRINT "DO YOU WANT THE RULES OF THE GAME";
1330 INPUT I$
1340 IF I$="NO" OR I$="N" THEN RETURN
1350 PRINT:PRINT "* OFFICIAL RULES FOR THE GAME OF BACCARAT *"
1360 PRINT "THE COMPUTER IS SHUFFLING SIX DECKS OF CARDS"
1370 PRINT "TOGETHER. THE RULES ARE AS FOLLOWS: THE OBJECT"
1380 PRINT "IS TO BE AS CLOSE TO POSSIBLE TO NINE IN TWO"
1390 PRINT "OR THREE CARDS, FACE CARDS AND TENS COUNT ZERO"
1400 PRINT "ACES COUNT AS ONE EACH,ALL OTHER CARDS COUNT"
1410 PRINT "THEIR INDEX VALUE.  WHEN THE TOTAL IS OVER TEN"
1420 PRINT "THE TENS UNIT IS DROPPED.  EXAMPLE: A SEVEN AND"
1430 PRINT "A SIX TOTALING THIRTEEN COUNT AS THREE.  THE"
1440 PRINT "PLAYER WITH THE HIGHER TOTAL WINS.  IN CASE OF"
1450 PRINT "A TIE THE COMPUTER WINS. "
1460 PRINT:PRINT "DO YOU UNDERSTAND THE RULES";
1470 INPUT O$
1480 IF O$="YES" OR O$="Y" THEN RETURN
1490 PRINT "TOUGH LUCK"
1500 RETURN
1510 PRINT "IT IS A TIE. THE COMPUTER WINS!"
1520 GOTO 1090
1530 PRINT "YOU ARE EVEN-UP !!"
1540 GOTO 1170
1550 END

BASEBALL.BAS

10 REM BASEBALL SIMULATION PROGRAM
20 REM WRITTEN BY JOEL LIND & KEN BIRKMAN - NYU - JULY 1973
30 REM STOLEN AND ENHANCED DECEMBER 1973 BY R. D. KURLAND - NYU
40 DIM B(7),P$(9),W$(7),J$(8),K$(4)
50 CLS:KEY OFF
60 FOR I=1 TO 7: B(I)=0:NEXT
70 B=0:T9=0:R9=0:S=0:O=0:B1=0:B2=0:T=0
80 Z1=1:Z2=1
90 PRINT "WELCOME TO EBBETT'S FIELD"
100 PRINT "WHAT DO YOU WANT TO CALL YOUR TEAM";
110 INPUT A$
120 FOR I=1 TO 7:READ W$(I):NEXT
130 FOR I=1 TO 9:READ P$(I):NEXT
140 FOR I=1 TO 4:READ K$(I):NEXT
150 FOR I=1 TO 8:READ J$(I):NEXT
160 PRINT "FINE. THE ";A$;" NEED A MANAGER.  WHAT'S YOUR NAME";
170 INPUT B$
180 PRINT "WHAT DO YOU WANT TO CALL MY TEAM, ";B$;
190 INPUT C$
200 PRINT
210 PRINT "OPENING DAY, THE ";A$;" VERSUS THE ";C$
220 PRINT
230 PRINT "LET'S FLIP A COIN. THE WINNER IS THE HOME TEAM."
240 PRINT "HEADS OR TAILS";
250 INPUT D$
260 IF D$<>"HEADS" AND D$<>"TAILS" THEN 240
270 FOR I=1 TO TYM
280 Y=RND(1)
290 NEXT I
300 H=1
310 Y=RND(1)
320 Y$="HEADS"
330 IF Y>0.5 THEN Y$="TAILS"
340 IF D$=Y$ THEN 410
350 H=0
360 PRINT "YOU LOST THE TOSS.  THE ";A$;" ARE UP FIRST."
370 PRINT
380 PRINT
390 A=0
400 GOTO 530
410 PRINT "YOU WIN THE TOSS. ";A$;" TAKE THE FIELD, AND ";
420 PRINT C$;" ARE AT BAT."
430 A=1
440 R9=0
450 T=T+1
460 IF T<3 THEN GOSUB 5060
470 IF T<18 THEN 630
480 IF T>18 THEN 510
490 GOSUB 3420
500 GOTO 630
510 GOSUB 3210
520 GOTO 630
530 REM START AN INNING - WE ARE OUT ON THE FIELD
540 T=T+1
550 R9=0
560 IF T<18 THEN 610
570 IF T>18 THEN 600
580 GOSUB 3420
590 GOTO 610
600 GOSUB 3210
610 IF T>2 THEN 630
620 GOSUB 4990
630 S=0:B=0
640 PRINT
650 IF O=0 THEN PRINT "NO OUTS"
660 IF O=1 THEN PRINT "THERE IS 1 OUT"
670 IF O>1 THEN PRINT "THERE ARE";O;"OUTS"
680 P=B(1)+B(2)+B(3)
690 IF P<>3 THEN 720
700 PRINT "BASES LOADED"
710 GOTO 820
720 IF P=0 THEN 820
730 Y$="RUNNER ON "
740 IF P>1 THEN Y$="RUNNERS ON "
750 PRINT Y$;
760 IF B(1)=0 THEN 790
770 PRINT "FIRST";
780 IF P>1 THEN PRINT " AND ";
790 IF B(2)=1 THEN PRINT "SECOND";
800 IF P>1 AND B(1)=0 THEN PRINT " AND ";
810 IF B(3)=1 THEN PRINT "THIRD" ELSE PRINT " "
820 IF A=0 THEN 840
830 GOTO 2950
840 PRINT "BATTER UP"
850 IF B<>3 OR S<>2 THEN 880
860 PRINT "FULL COUNT"
870 GOTO 890
880 IF B>0 OR S>0 THEN PRINT "THE COUNT IS";B;"AND";S
890 PRINT
900 IF A=1 THEN 2950
910 PRINT "WHAT WILL YOUR BATTER DO, ";B$;
920 INPUT C
930 IF C>0 AND C<5 THEN 970
940 PRINT "HUH?  ";
950 GOSUB 4990
960 GOTO 910
970 Y2=RND(1)
980 IF Y2<0.56 OR Y2>0.5625 THEN 1040
990 PRINT "WILD PITCH!"
1000 N=1
1010 GOSUB 3460
1020 B(1)=0
1030 GOTO 1130
1040 IF Y2>0.772 AND Y2<0.775 THEN 4800
1050 ON C GOTO 1060,1370,2520,4370,5420,7000
1060 C=1
1070 GOSUB 5160
1080 IF A=0 THEN Z1=Z1+1
1090 Y=RND(1)
1100 IF B<>3 OR S<>0 THEN 1120
1110 IF Y<0.7 THEN 1230 ELSE 1130
1120 IF Y<0.5 THEN 1230
1130 B=B+1
1140 Y=INT(RND(1)*8+1)
1150 IF Y=9 THEN 1140
1160 PRINT J$(Y);" - BALL";B
1170 IF B<>4 THEN 850
1180 PRINT "WALK"
1190 GOSUB 4870
1200 Y=RND(1)
1210 GOTO 630
1220 PRINT "HIGH POP - FOUL DOWN THE ";Y$;" FIELD LINE"
1230 S=S+1
1240 IF C=2 OR C=5 THEN 1290
1250 Y=INT(RND(1)*4+1)
1260 IF Y=5 THEN 1250
1270 PRINT K$(Y);", CALLED STRIKE";S
1280 GOTO 1300
1290 PRINT "SWINGING STRIKE";S
1300 IF C=5 AND S<>3 THEN 4370
1310 IF S<>3 THEN 850
1320 PRINT "STRUCK OUT"
1330 O=O+1
1340 IF O=3 THEN 2770
1350 IF C=5 THEN 4370
1360 GOTO 630
1370 C=2
1380 Y=INT(RND(1)*10+1)
1390 IF Y=10 THEN 1370
1400 IF A=0 THEN Z2=Z2+1
1410 IF C<>5 THEN GOSUB 5160
1420 IF S<>2 AND Z2/Z1>7 AND A=0 THEN 1440
1430 IF S<>2 OR Z2/Z1<25 THEN 1510
1440 Y=INT(RND(1)*20+1)
1450 IF Y>7 THEN 1470
1460 ON Y GOTO 1530,1230,1230,1230,1230,1600,1530
1470 IF Y>13 THEN 1490
1480 ON Y-7 GOTO 1600,1230,1660,1770,1660,1770
1490 IF Y>18 THEN 1520
1500 ON Y-13 GOTO 1900,1900,1960,2490,1560,2490
1510 IF Y<3 THEN 1230
1520 ON Y-2 GOTO 1530,1600,1660,1770,1900,1960,2490
1530 PRINT "FOULED INTO THE STANDS-OUT OF PLAY"
1540 IF S<>2 THEN S=S+1
1550 GOTO 850
1560 Y=RND(1)
1570 Y$="RIGHT"
1580 IF Y<0.5 THEN Y$="LEFT"
1590 GOTO 1540
1600 Y=INT(RND(1)*20+1)
1610 IF Y>18 THEN 1640
1620 PRINT "FOULED BACK INTO THE STANDS"
1630 GOTO 1540
1640 PRINT "POPPED IT UP - CAUGHT BY CATCHER"
1650 GOTO 1330
1660 PRINT "INFIELD GROUNDER"
1670 E2=RND(1)
1680 IF E2<0.37 OR E2>0.41 THEN 1740
1690 PRINT "1 BASE ERROR!!"
1700 N=1
1710 C=4
1720 GOSUB 3460
1730 GOTO 630
1740 GOSUB 4020
1750 IF O=3 THEN 2770
1760 GOTO 630
1770 PRINT "GROUNDER - COULD BE TROUBLE"
1780 Y=RND(1)
1790 IF Y>0.75 THEN 1870
1800 Y$="UP THE MIDDLE"
1810 IF Y<0.5 THEN Y$="THROUGH THE HOLE INTO RIGHT FIELD"
1820 IF Y<0.25 THEN Y$="THROUGH THE HOLE INTO LEFT FIELD"
1830 PRINT "A SINGLE ";Y$;"!"
1840 N=1
1850 GOSUB 3460
1860 GOTO 630
1870 PRINT "INFIELDER UP WITH IT!"
1880 GOSUB 4720
1890 IF O=3 THEN 2770 ELSE 630
1900 Y=RND(1)
1910 Y$="LEFT"
1920 IF Y<0.6 THEN Y$="CENTER"
1930 IF Y<0.3 THEN Y$="RIGHT"
1940 PRINT "FLY-OUT TO ";Y$;" FIELD"
1950 GOTO 1330
1960 Z=RND(1)
1970 Y$="CENTER"
1980 IF Z<0.6 THEN Y$="RIGHT"
1990 IF Z<0.3 THEN Y$="LEFT"
2000 PRINT "LONG FLY TO DEEP ";Y$;" FIELD - LOOKS GOOD!"
2010 Z=RND(1)
2020 IF Z<0.9 THEN 2050
2030 PRINT Y$;"FIELDER CAUGHT IT AT THE WALL!"
2040 GOTO 2100
2050 IF Z<0.8 THEN 2080
2060 PRINT "A DIVING CATCH!"
2070 GOTO 2100
2080 IF Z<0.7 THEN 2210
2090 PRINT Y$;"FIELDER CAUGHT IT ON THE WARNING TRACK!"
2100 O=O+1
2110 IF O=3 THEN 2770
2120 FOR I=3 TO 1 STEP -1
2130 IF B(I)=1 THEN 2160
2140 NEXT I
2150 GOTO 630
2160 B(I+1)=B(I)
2170 B(I)=0
2180 PRINT "LEAD RUNNER TAGS UP - AND ADVANCES 1 BASE!"
2190 GOSUB 3750
2200 GOTO 630
2210 IF Z<0.5 THEN 2280
2220 PRINT "BATTER HOLDS WITH A SINGLE."
2230 N=2
2240 GOSUB 3460
2250 B(2)=0
2260 B(1)=1
2270 GOTO 630
2280 IF Z<0.15 THEN 2400
2290 PRINT "DOUBLE!"
2300 Y=RND(1)
2310 IF Y>0.5 THEN 2350
2320 N=2
2330 GOSUB 3460
2340 GOTO 630
2350 N=3
2360 GOSUB 3460
2370 B(3)=0
2380 B(2)=1
2390 GOTO 630
2400 IF Z<0.1 THEN 2450
2410 PRINT "TRIPLE!"
2420 N=3
2430 GOSUB 3460
2440 GOTO 630
2450 PRINT "IT'S OVER THE WALL -- A H*O*M*E R*U*N!!!"
2460 N=4
2470 GOSUB 3460
2480 GOTO 630
2490 Y=INT(RND(1)*7+1)
2500 PRINT "LINED OUT TO ";P$(Y)
2510 GOTO 1330
2520 GOSUB 5160
2530 PRINT "BATTER BUNTS..."
2540 Y=RND(1)
2550 IF Y<0.6 THEN 2670
2560 IF B(3)=0 THEN 2580
2570 IF Y<0.8 THEN 2750
2580 PRINT "THROWN OUT AT FIRST."
2590 O=O+1
2600 IF O=3 THEN 2770
2610 IF B(1)+B(2)+B(3)=0 THEN 630
2620 PRINT "SACRIFICE - ";
2630 N=1
2640 GOSUB 3460
2650 B(1)=0
2660 GOTO 630
2670 IF Y<0.2 THEN 2750
2680 IF Y<0.4 THEN 2710
2690 PRINT "BATTER MISSES PITCH"
2700 GOTO 1230
2710 PRINT "BEATS IT OUT! SINGLE!"
2720 N=1
2730 GOSUB 3460
2740 GOTO 630
2750 GOSUB 4020
2760 IF O<>3 THEN 630
2770 PRINT "3 OUTS. THE SIDE IS RETIRED";
2780 I=B(1)+B(2)+B(3)
2790 IF I=0 THEN PRINT "."
2800 IF I=1 THEN PRINT ", LEAVING 1 MAN ON BASE"
2810 IF I>1 THEN PRINT ", LEAVING";I;"MEN ON BASE"
2820 PRINT
2830 PRINT
2840 PRINT "*************"
2850 D=T/2-INT(T/2)
2860 PRINT "AFTER";
2870 IF T>1 THEN PRINT INT(T/2);
2880 IF D>0.3 THEN PRINT " 1/2 ";
2890 Y$="INNINGS"
2900 IF T<3 THEN Y$="INNING"
2910 PRINT Y$;" OF PLAY, THE SCORE IS"
2920 GOSUB 3880
2930 O=0:B(1)=0:B(2)=0:B(3)=0
2940 IF A=0 THEN 430 ELSE 390
2950 REM MY TEAM IS AT BAT
2960 Y=RND(1)
2970 IF B(1)+B(2)+B(3)=0 THEN 3060
2980 REM IF O=2 AND S=2 AND B=3 THEN 4850
2990 IF B(3)=1 THEN 3030
3000 IF B(2)=0 THEN 3020
3010 IF 0.45<Y AND 0.46>Y THEN 4370
3020 IF 0.45<Y AND 0.47>Y THEN 4370
3030 IF O=2 THEN 3060
3040 IF O<2 AND Y<0.333 AND B(3)=1 THEN 2520
3050 IF 0.45<Y AND 0.55>Y THEN 2520
3060 IF S=0 THEN 3160
3070 IF B<>3 THEN 3100
3080 IF Y<0.6 THEN 1370
3090 GOTO 1060
3100 IF Y>0.3 THEN 1370
3110 IF S<>2 THEN 1060
3120 IF B=0 AND Y<0.1 THEN 1060
3130 IF B=0 THEN 1370
3140 IF Y<0.2 THEN 1060
3150 GOTO 1370
3160 IF B=3 THEN 3190
3170 IF Y<0.6 THEN 1060
3180 GOTO 1370
3190 IF Y<0.9 THEN 1060
3200 GOTO 1370
3210 IF T<>19 THEN 3250
3220 IF R1<>R2 THEN 3260
3230 PRINT
3240 PRINT "*** GOING INTO EXTRA INNINGS ***"
3250 IF R1=R2 THEN RETURN
3260 IF (T-1)/2<>INT(T-1)/2 THEN RETURN
3270 PRINT "THE BALLGAME IS OVER."
3280 PRINT "*************"
3290 PRINT "FINAL SCORE:"
3300 T9=1
3310 GOSUB 3880
3320 IF R1>R2 THEN 3390
3330 PRINT "NICE TRY, ";B$
3340 PRINT "YOU SHOULD KNOW BETTER THAN TO TRY TO"
3350 PRINT "OUT-MANAGE A COMPUTER.  MAYBE BASEBALL"
3360 PRINT "JUST ISN'T YOUR SPORT...WHY DON'T YOU TRY GOLF?"
3370 REM CHAIN GOLF
3380 GOTO 7000
3390 PRINT "CONGRATULATIONS, ";B$
3400 PRINT "YOU'VE BEATEN ME, BUT I WILL HAVE MY REVENGE."
3410 GOTO 7000
3420 REM 9TH INNING
3430 IF A=0 THEN 3450
3440 IF R2>R1 THEN 3270 ELSE RETURN
3450 IF R1>R2 THEN 3270 ELSE RETURN
3460 REM ADVANCE N BASES (SET N BEFORE GOSUB)
3470 N2=B(1)+B(2)+B(3)
3480 IF C=5 THEN N=N+1
3490 N3=N
3500 IF N2=0 THEN 3570
3510 REM FIND LAST RUNNER: MAKE SURE HE ISN"T TRYING TO ADVANCE
3520 REM PAST HOME PLATE.
3530 FOR I=1 TO 3
3540 IF B(I)=1 THEN 3560
3550 NEXT I
3560 IF 4-I<N THEN N3=4-I
3570 FOR I=3+N TO N+1 STEP -1
3580 B(I)=B(I-N)
3590 NEXT I
3600 B(N)=1
3610 IF N=1 THEN 3660
3620 FOR P=1 TO 3
3630 IF (N-P)>1 THEN B(N-P)=0
3640 IF (N-P)<=1 THEN B(1)=0
3650 NEXT P
3660 FOR P=1 TO 7
3670 IF P=N THEN 3700
3680 NEXT P
3690 GOTO 3750
3700 IF C=4 OR N2=0 THEN 3750
3710 Y$="RUNNERS ADVANCE"
3720 IF N2=1 THEN Y$="RUNNER ADVANCES"
3730 PRINT Y$;N3;
3740 IF N3=1 THEN PRINT "BASE" ELSE PRINT "BASES"
3750 IF B(4)+B(5)+B(6)+B(7)=0 THEN RETURN
3760 REM AT LEAST 1 RUN HAS SCORED.
3770 N2=B(4)+B(5)+B(6)+B(7)
3780 IF A=0 THEN 3810
3790 R2=R2+N2
3800 GOTO 3820
3810 R1=R1+N2
3820 B(4)=0:B(5)=0:B(6)=0:B(7)=0
3830 IF N2=1 THEN PRINT "** 1 RUN SCORED"
3840 IF N2>1 THEN PRINT "**";N2;"RUNS SCORED"
3850 PRINT
3860 PRINT
3870 PRINT "********NEW SCORE:"
3880 IF H=1 THEN 3920
3890 IF LEN(A$)>LEN(C$) THEN PRINT A$;TAB(LEN(A$)+3);R1
3900 IF LEN(A$)<=LEN(C$) THEN PRINT A$;TAB(LEN(C$)+3);R1
3910 IF H=1 THEN 3950
3920 IF LEN(A$)>LEN(C$) THEN PRINT C$;TAB(LEN(A$)+3);R2
3930 IF LEN(A$)<=LEN(C$) THEN PRINT C$;TAB(LEN(C$)+3);R2
3940 IF H=1 THEN 3890
3950 PRINT "*************"
3960 PRINT
3970 PRINT
3980 IF T9=1 THEN 4010
3990 IF A=1 AND T>17 AND INT(T/2)=T/2 AND R2>R1 THEN 3270
4000 IF A=0 AND T>17 AND INT(T/2)=T/2 AND R1>R2 THEN 3270
4010 RETURN
4020 REM LEAD RUNNER OUT (FIELDER"S CHOICE THEN ONE BASE ADVANCE)
4030 N=1
4040 I=4
4050 IF B(4)=0 AND B(3)=1 AND B(2)=1 AND B(1)=1 THEN 4140
4060 I=3
4070 IF B(3)=0 AND B(2)=1 AND B(1)=1 THEN 4140
4080 I=2
4090 IF B(2)=0 AND B(1)=1 THEN 4140
4100 REM NO ONE FORCED
4110 O=O+1
4120 PRINT "BATTER THROWN OUT"
4130 RETURN
4140 B(I-1)=0
4150 F=RND(1)
4160 IF O=2 OR F>0.3 THEN 4210
4170 O=O+2
4180 PRINT "DOUBLE PLAY!"
4190 IF O=3 THEN RETURN
4200 GOTO 4830
4210 O=O+1
4220 PRINT "RUNNER ON BASE";I-1;"IS OUT ON FIELDER'S CHOICE"
4230 IF O=3 THEN RETURN
4240 GOSUB 3460
4250 RETURN
4260 REM FORCED RUNNERS ADVANCE 1 BASE, OTHERS HOLD
4270 FOR I=1 TO 3
4280 IF B(I)=0 THEN 4320
4290 NEXT I
4300 N=1
4310 GOTO 3460
4320 REM NO ONE ON BASE I
4330 FOR I2=I TO 1 STEP -1
4340 B(I2)=1
4350 NEXT I2
4360 RETURN
4370 REM LEAD RUNNER STEALS
4380 FOR I=3 TO 1 STEP -1
4390 IF B(I)=1 THEN 4430
4400 NEXT I
4410 PRINT "NO ONE ON BASE, DUMMY!"
4420 GOTO 910
4430 REM I IS LEAD RUNNER"S BASE
4440 IF C<>5 THEN GOSUB 5160
4450 IF RND(1)/I<0.3 THEN 4600
4460 IF B(1)+B(2)+B(3)>1 THEN 4490
4470 PRINT "RUNNER STEALS A BASE"
4480 GOTO 4500
4490 PRINT "RUNNERS STEAL A BASE"
4500 N=1
4510 C2=C
4520 C=4
4530 GOSUB 3460
4540 C=C2
4550 B(1)=0
4560 IF C=5 AND S<>3 THEN 850
4570 IF C=5 THEN 630
4580 Y=RND(1)
4590 IF Y>0.5 THEN 1130 ELSE 1230
4600 PRINT "RUNNER THROWN OUT STEALING"
4610 O=O+1
4620 B(I)=0
4630 IF O=3 THEN 2770
4640 N=1
4650 GOSUB 3460
4660 B(1)=0
4670 IF C=5 AND S<>3 THEN 850
4680 IF C=5 THEN 630
4690 Y=RND(1)
4700 IF B=3 THEN 1230
4710 IF Y>0.5 THEN 1130 ELSE 1230
4720 REM RUNNERS ADVANCE ONE BASE, BATTER THROWN OUT
4730 N=1
4740 IF O=2 THEN 4770
4750 GOSUB 3460
4760 B(1)=0
4770 O=O+1
4780 PRINT "BATTER THROWN OUT"
4790 RETURN
4800 PRINT "HIT BATSMAN (OUCH!)"
4810 GOSUB 4870
4820 GOTO 630
4830 N=1
4840 GOSUB 3460
4850 B(1)=0
4860 RETURN
4870 REM BATTER WALKED
4880 FOR I=1 TO 3
4890 IF B(I)=0 THEN 4930
4900 NEXT I
4910 N=1
4920 GOTO 3460
4930 IF I=1 THEN 4970
4940 FOR I0=I TO 2 STEP -1
4950 B(I0)=B(I0-1)
4960 NEXT I0
4970 B(1)=1
4980 RETURN
4990 PRINT "WHEN YOUR'RE UP:"
5000 PRINT "1-BATTER TAKES PITCH"
5010 PRINT "2-BATTER SWINGS AWAY"
5020 PRINT "3-BATTER BUNTS"
5030 PRINT "4-LEAD RUNNER STEALS"
5040 REM PRINT "5-HIT AND RUN"
5050 RETURN
5060 REM PITCHING ROUTINE
5070 PRINT "YOUR PITCHER MAY THROW:"
5080 PRINT "1-FAST BALL"
5090 PRINT "2-CURVE"
5100 PRINT "3-SLIDER"
5110 PRINT "4-SINKER"
5120 PRINT "5-CHANGE-UP"
5130 PRINT "6-KNUCKLEBALL"
5140 PRINT "7-SCREWBALL"
5150 RETURN
5160 IF A=0 THEN 5290
5170 IF R9=1 THEN 5220
5180 PRINT "WHAT WILL YOUR PITCHER THROW";
5190 INPUT W
5200 IF W<0 THEN R9=1
5210 IF R9=0 THEN 5240 ELSE PRINT "RANDOM PITCHES FOR REST OF INNING"
5220 W=INT(RND(1)*8+1)
5230 IF W=8 THEN 5220
5240 IF W>0 AND W<8 THEN 5390
5250 PRINT "UH-UH, ";B$;".  ";
5260 GOSUB 5070
5270 PRINT
5280 GOTO 5180
5290 REM I MUST SELECT A PITCH
5300 W1=RND(1)
5310 W=1
5320 IF W1<0.75 THEN W=2
5330 IF W1<0.55 THEN W=3
5340 IF W1<0.45 THEN W=4
5350 IF W1<0.35 THEN W=5
5360 IF W1<0.15 THEN W=6
5370 IF W1<0.08 THEN W=7
5380 GOTO 5390
5390 PRINT W$(W);
5400 PRINT "...";
5410 RETURN
5420 REM HIT-AND-RUN
5430 IF B(1)+B(2)+B(3)=0 THEN 4410
5440 GOSUB 5160
5450 PRINT "HIT AND RUN!"
5460 C=5
5470 GOTO 1380
5480 DATA FAST BALL,CURVE BALL,SLIDER,SINKER,CHANGE-UP,KNUCKLEBALL
5490 DATA SCREWBALL
5500 DATA RIGHT,LEFT,CENTER,FIRST,SECOND,THIRD,SHORTSTOP,PITCHER,CATCHER
5510 DATA RIGHT OVER THE PLATE,CAUGHT THE OUTSIDE CORNER
5520 DATA OVER THE INSIDE CORNER,OVER AT THE KNEES
5530 DATA HIGH,LOW,INSIDE,OUTSIDE,HIGH AND TIGHT,LOW AND OUTSIDE
5540 DATA LOW AND INSIDE,HIGH AND OUTSIDE
5550 END
7000 CHAIN "MENU",1000

BIO.BAS

105 CLS
110 DIM W$(14),L$(41),M$(36),N$(40)
120 L$="                                          "
130 W$="sum tuw thf sa"
140 M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
150 C1 = 2 * 3.141593
160 PRINT "enter your name"
170 INPUT N$
180 PRINT "enter your birthdate"
190 PRINT "1,31,1940 means jan. 31, 1940"
200 INPUT M,D,Y
210 PRINT "enter month and year for biorhythm calender"
220 PRINT "8,1978 means aug. 1978"
230 INPUT M4,Y4
240 GOSUB 1220
250 M=M4
260 D=1
270 Y=Y4
280 GOSUB 830
290 S1=J
300 GOSUB 1220
310 L1=31
320 IF M4 = 12 THEN 380
330 GOSUB 970
340 S3=N3
350 M=M4+1
360 GOSUB 970
370 L1=N3-S3
380 B=J-S1+1
390 E=B+L1-1
395 LPRINT CHR$(27)CHR$(71)
400 LPRINT TAB(7) CHR$(14);"BIORHYTHM INDEX FOR "N$
405 LPRINT
410 LPRINT TAB(23) CHR$(14);MID$(M$,(M4-1)*3 + 1,3);Y
415 LPRINT CHR$(27)CHR$(72)
420 GOSUB 450
430 GOTO 480
440 REM print bio grid
450 LPRINT TAB(9);"-....................0....................+"
460 RETURN
470 REM begin to produce chart
480 V=0
490 REM day loop
500 FOR I=B TO E
510 V=V + 1
520 J3=I - 1
530 K1=J3/23
540 K3=J3/28
550 K5=J3/33
560 K2=K1 - INT(K1)
570 K4=K3 - INT(K3)
580 K6=K5 - INT(K5)
590 P2=SIN(C1*K2)
600 E2=SIN(C1*K4)
610 I2=SIN(C1*K6)
620 O=P2 + E2 + I2
630 O=INT(16666 * (O + 3)) + 1
640 P=INT(21.5 + 20 * P2)
650 Q=INT(21.5 + 20 * E2)
660 R=INT(21.5 + 20 * I2)
670 MID$(L$,21,1)="."
675 IF P > 41 GOTO 685
680 MID$(L$,P,1)="p"
685 IF Q > 41 GOTO 695
690 MID$(L$,Q,1)="e"
695 IF R > 41 GOTO 710
700 MID$(L$,R,1)="i"
710 LPRINT O;TAB(10);
720 LPRINT CHR$(27)CHR$(71)L$;
730 LPRINT TAB(54) CHR$(27)CHR$(72);V;MID$(W$,(N2-1)*2 + 1,2)
740 L$="                                         "
750 N2 = N2 + 1
760 IF N2<8 THEN 780
770 N2=1
780 NEXT I
790 GOSUB 450
800 LPRINT:LPRINT TAB(10);"I = Intelligence"
801 LPRINT TAB(10);"P = Physical Abilities"
802 LPRINT TAB(10);"E = Emotions"
803 LPRINT TAB(10);"A curve to the right of the central dotted"
804 LPRINT TAB(10);"line indicates a good time for that trait,"
805 LPRINT TAB(10);"while a curve to the left indicates a bad time."
806 LPRINT TAB(10);"A number on the left around 50000 indicates a"
807 LPRINT TAB(10);"critical time; you should be on your guard,"
808 LPRINT TAB(10);"especially with a trait that is tending to the"
809 LPRINT TAB(10);"left at that time."
810 REM end of run
820 GOTO 1340
830 REM determine day of the week number
840 IF M<3 THEN 880
850 M1=M - 2
860 Y1=Y
870 GOTO 900
880 M1=M + 10
890 Y1=Y - 1
900 C=INT(Y1/100)
910 D1=Y1-(C*100)
920 N4=INT((13*M1 - 1)/5) + D + D1 + INT(D1/4)
930 N=N4 + INT(C/4) - 2*C +77
940 N1=INT(N/7)
950 N2=N-(N1*7) + 1
960 RETURN
970 REM determine last day of the month
980 Y2=INT(Y/4)
990 Y3=Y - (Y2*4)
1000 IF Y3 = 0 THEN 1020
1010 GOTO 1120
1020 Y2=INT(Y/100)
1030 Y3=Y - (Y2*100)
1040 IF Y3 = 0 THEN 1060
1050 GOTO 1100
1060 Y2=INT(Y/400)
1070 Y3=Y - (Y2*400)
1080 IF Y = 0 THEN 1100
1090 GOTO 1120
1100 L1 = 1
1110 GOTO 1130
1120 L1=0
1130 N1=INT((3055*(M + 2))/100) - 91
1140 L=0
1150 IF M < 3 THEN 1200
1160 IF L1 = 0 THEN 1190
1170 L1 = 0
1180 GOTO 1200
1190 L = 2
1200 N3=N1 + D - L
1210 RETURN
1220 REM compute day equivalent to gregorian date
1230 IF M < 3 THEN 1270
1240 M1 = M - 3
1250 Y1 = Y
1260 GOTO 1290
1270 M1 = M + 9
1280 Y1 = Y - 1
1290 C = INT(Y1/100)
1300 D1 = Y1 - (C * 100)
1310 N=INT((146097! * C)/4) + D + INT((1461 * D1)/4)
1320 J=N + 1721119! + INT((153 * M1 + 2)/5)
1330 RETURN
1340 REM * end of run
1360 END

BIRTHDAY.BAS

100 REM BIRTHDAY UPDATED 5-5-77 TO "MITS" BY D. NIXON
101 CLS:KEY OFF
110   DIM Z$(12),L(12),N(60),Y$(7)
120   DIM G$(12),H$(32)
130 FOR I=1 TO 12:READ Z$(I):NEXT
140 FOR I=1 TO 12:READ L(I):NEXT
150 FOR I=1 TO 7:READ Y$(I): NEXT
160 FOR I=1 TO 12:READ G$(I):NEXT
170 FOR I=1 TO 32:READ H$(I):NEXT
180 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST:
190 DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER:
200 DATA 31,28,31,30,31,30,31,31,30,31,30,31:
210 DATA THURS,FRI,SATUR,SUN,MON,TUES,WEDNES:
220 DATA THE MOON,THE SUN,THE EARTH,THE PLANET MERCURY,VENUS,MARS:
230 DATA JUPITER,SATURN,THE PLANET URANUS,THE PLANET NEPTUNE:
240 DATA THE PLANET PLUTO,PEANUT BUTTER:
250 DATA JUXTAROTATION,CONTRAPOSITION,CONTRASTING PHASES,TRANSPOSITION:
260 DATA SATISFIED,HAPPY,INTERESTING,TOLERANT:
270 DATA OFTEN,OCCASIONALLY,SOMETIMES:
280 DATA TEND TO BE,ARE,ARE INCLINED TO BE:
290 DATA SHORT OF PATIENCE,UNEASY,AT ODDS:
300 DATA OTHERS.,CLOSE FRIENDS.,YOUNGER PEOPLE.,THOSE IN AUTHORITY.:
310 DATA ": BEWARE OF ","  AVOID "
320 DATA APPLE PIE,BEING ALONE,DARK PLACES,STRANGERS,UNUSUAL SITUATIONS:
330   DATA BE TAKING A TRIP YOU HAVE NOT MADE BEFORE.
340   DATA BE MEETING SOMEONE YOU WILL KNOW FOR THE REST OF YOUR LIFE.
350   DATA MAKE SEVERAL IMPORTANT DECISIONS INVOLVING OTHERS.
360   DATA BECOME ILL IF YOU DO NOT LESSEN YOUR UNUSUAL ACTIVITIES.
370  PRINT "TYPE IN TODAY'S DATE NUMERICALLY: MO,DAY,YEAR";
380  INPUT X1,Y1,Z1
390  IF Z1>99 GOTO 410
400  Z1=Z1+1900
410 XF=X1:YF=Y1:ZF=Z1:GOSUB 1220:U=ND
420  PRINT "TODAY IS ";Y$(U-7*INT(U/7)+1);"DAY   (I HOPE)"
430  PRINT
440  PRINT "HI, I'M A MICROPROCESSOR."
450  PRINT "TELL ME YOUR NAME";
460  INPUT N$
470 I=INSTR(N$," ")-1
480 IF I<0 THEN 580
490 K$=LEFT$(N$,I)
500  PRINT "ARE YOU USUALLY CALLED ";K$;
510  INPUT A$
520 GOSUB 1140
530  ON NA GOTO 540,560,510
540  PRINT "WHAT DO YOU LIKE TO BE CALLED";
550  INPUT K$
560  PRINT "SO YOUR FULL NAME IS ";N$;", BUT YOU"
570  PRINT "LIKE TO BE CALLED ";K$;"."
580  PRINT "HOW OLD ARE YOU, ";K$;
590  INPUT A
600  A=INT(A)
610  IF INT((A-5)/95)=0  GOTO 640
620  PRINT "COME ON, ";K$;", YOU'RE PULLING MY LEG."
630  GOTO 580
640  PRINT "SO YOU ARE";A;"YEARS OLD."
650  PRINT "DO YOU KNOW, OFF HAND, HOW MANY DAYS OLD YOU ARE";
660  INPUT A$
670 GOSUB 1140
680  ON NA GOTO 720,690,660
690  PRINT "OK, SMARTY, HOW MANY?"
700  PRINT "SORRY, ";K$;", YOU'LL HAVE TO BE FASTER THAN THAT!"
710  GOTO 1600
720  PRINT "OK, I'LL TELL YOU."
730  PRINT "IN WHAT MONTH WERE YOU BORN";
740  INPUT M$
750  FOR X=1 TO 12
760  IF M$=Z$(X) GOTO 800
770  NEXT X
780  PRINT K$;", YOU MAY BE NICE BUT YOU CAN'T SPELL."
790  GOTO 730
800  PRINT "ON WHAT DAY";
810  INPUT Y
820  Z=Z1-A
830  IF INT((Y-1)/L(X))=0 GOTO 870
840  IF (X-1)*(Y-28)*(Z-4*INT(Z/4)+1)=1 GOTO 870
850  PRINT "COME ON, ";N$;", YOU'RE GIVING ME A HARD TIME."
860  GOTO 800
870  REM
880 XF=X1:YF=Y1:ZF=Z:GOSUB 1220:W=ND
890 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND
900 IF W=> V GOTO 920
910  Z=Z-1
920  IF ABS(W-V)>30 GOTO 990
930  ON SGN(W-V)+2 GOTO 940,980,960
940  PRINT "YOU HAVE A BIRTHDAY COMING UP IN ONLY";V-W;"DAYS!"
950 GOTO 990
960  PRINT "YOUR BIRTHDAY WAS ONLY";W-V;"DAYS AGO. CONGRATULATIONS!"
970  GOTO 990
980  PRINT "HAPPY BIRTHDAY, DEAR ";K$;", HAPPY BIRTHDAY TO YOU."
990 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND
1000  PRINT "YOU WERE BORN ON ";Y$(V-7*INT(V/7)+1);"DAY, ";Z$(X);Y;",";Z
1010  PRINT "WHICH MAKES YOU";U-V;"DAYS OLD."
1020  PRINT "YOU WERE BORN ON THE DAY";V;"AD, AND ON JAN. 1, 2000"
1030  PRINT "YOU WILL BE";730480!-V;"DAYS OLD."
1040  PRINT "HOW ABOUT THAT!!!"
1050  PRINT
1060  GOSUB 1350
1070  PRINT "WELL, ";N$;
1080  IF N$=K$ GOTO 1100
1090  PRINT " (ALIAS ";K$;")"
1100  PRINT " IT HAS BEEN NICE CHATTING WITH YOU. DO COME AGAIN."
1110  PRINT "GOOD BYE"
1120  GOTO 1600
1130 REM SUBROUTINE FOR YES NO REQUEST
1140 NA=1
1150 IF A$="NO" GOTO 1210
1160 IF A$="N0" GOTO 1210
1170 NA=2
1180 IF A$="YES" GOTO 1210
1190 NA=3
1200 PRINT "A SIMPLE YES OR NO WILL DO! "
1210 RETURN
1220 REM SUBROUTINE TO SOLVE FOR NUMBER OF DAYS
1230 ND=YF-1
1240  FOR I1=1 TO XF-1
1250 ND=ND+L(I1)
1260 NEXT I1
1270 I1=INT(ZF/100)
1280 IF ZF<>4*INT(ZF/4) GOTO 1330
1290 IF  ZF/100=I1 GOTO 1330
1300 IF  ND>59 GOTO 1330
1310 IF XF=3 GOTO 1330
1320 ND=ND-1
1330  ND=ND+36524!*I1+INT(365.25*(ZF-100*I1))
1340 RETURN
1350 REM GENERATE RANDOM HOROSCOPE
1360 R1=INT(12*RND(1))+1
1370 R2 = INT(12*RND(1))+1
1380  IF R1=R2 GOTO 1370
1390 R=1
1400 X=4:GOSUB 1570
1410 PRINT "YOU WERE BORN UNDER THE ";H$(NR);" OF ";G$(R1)
1420 X=4:GOSUB 1570
1430 PRINT "AND ";G$(R2);".  YOU ARE A BASICALLY ";H$(NR)
1440 X=3:GOSUB 1570
1450 PRINT "PERSON BUT ";H$(NR);
1460 GOSUB 1570
1470 PRINT " YOU ";H$(NR)
1480 GOSUB 1570:N1=NR:X=4:GOSUB 1570:N2=NR:X=2:GOSUB 1570
1490 PRINT H$(N1);" WITH ";H$(N2);H$(NR)
1500 X=5:GOSUB 1570
1510 PRINT H$(NR);" FOR THE NEXT WEEK. I PREDICT YOU WILL SOON"
1520 X=4:GOSUB 1570
1530 PRINT H$(NR)
1540 PRINT
1550 RETURN
1560 REM SUBROUTINE TO SELECT RANDOM WORDS
1570 NR=INT(X*RND(1))+R
1580 R=R+X
1590 RETURN
1600 END

BOMB.BAS

230 CLS
240 CLS:LOCATE 4,28:PRINT "DEFUSE"
250 LOCATE 9,20:PRINT"";:INPUT "DO YOU NEED INSTRUCTIONS";I$
260 IF LEFT$(I$,1)="N" THEN CLS: GOTO 360
270 CLS: PRINT TAB(29);"DEFUSE":PRINT
280 PRINT"YOU ARE IN A GOVERNMENT EXPERIMENTAL BUILDING WITH"
290 PRINT "1,000,000 ROOMS IN IT.  THE BUILDING IS 100 ROOMS"
300 PRINT "LONG (0-99),100 ROOMS WIDE (0-99), AND 100 ROOMS HIGH (0-99).
310 PRINT: PRINT"IN IT A BOMB IS HIDDEN.  THE BOMB SENDS OUT SIGNALS THAT"
320 PRINT "GET STRONGER AS YOU GET CLOSER.  YOU HAVE 200 SECONDS"
330 PRINT "TO DEACTIVATE IT."
340 LOCATE 12,20:PRINT "PRESS ANY KEY TO CONTINUE."
350 IF INKEY$=""THEN 350 ELSE CLS
360 A=INT(100*RND(8)): B=INT(100*RND(3))
370 C=INT(100*RND(0)):IF A >0 THEN 400
380 IF B>0 THEN 400
390 IF C=0 THEN 370
400 D=0:E=0:F=0:G=0:LOCATE 2,13:PRINT "";:GOSUB 410:GOTO 470
410 LB=PEEK(16416): HB=PEEK(16417):PRINT CHR$(28):
420 PRINT"SIGNAL";TAB(15);"L";TAB(20);"W";TAB(25);"H";
430 PRINT TAB(35);"SEC";TAB(45);"COORDINATES (L,W,H)"
440 PRINT "-------";TAB(14);"---";TAB(19);"---";TAB(24);"---";
450 PRINT TAB(34);"-----";TAB(44)"----------------"
460 POKE 16416,LB:POKE 16417,HB:RETURN
470 REM
480 IM$="####.##    ###  ###  ###        ###"
490 SI=10000-ABS((A/100+B+C*100)-(D/100+E+F*100))
500 PRINT USING IM$;SI,D,E,F,G;:PRINT TAB(45);
510 INPUT D,E,F:G=G+10:IF A<>D THEN 540
520 IF B<>E THEN 540
530 IF C=F THEN 610
540 IF G=200 THEN 560
550 GOTO 620
560 CLS:PRINT "BOOOOOOMMM!!!":PRINT "YOU BLEW IT.  THE BUILDING BLEW UP!"
570 PRINT"THE BOMB WAS LOCATED AT THE COORDINATES (L,W,H):";A;B;C
580 PRINT:PRINT: PRINT "WANT TO PLAY AGAIN";
590 INPUT Z$: IF LEFT$(Z$,1)="Y" THEN CLS: GOTO 360
600 GOTO 790
610 CLS: PRINT "BOMB DEACTIVATED AT";G;"SECONDS!!!!": GOTO 580
620 IF D>99 THEN 690
630 IF D<0 THEN 690
640 IF E>99 THEN 690
650 IF E<0 THEN 690
660 IF F>99 THEN 730
670 IF F<0 THEN 740
680 GOTO 470
690 CLS: PRINT "YOU WALKED OUT A WINDOW ON THE ";: IF F<4 THEN 750
700 PRINT F;"TH FLOOR!!!"
710 PRINT "YOU WERE KILLED AND";200-G;"SECONDS LATER THE BUILDING"
720 PRINT "BLEW UP!!!": GOTO 580
730 CLS: PRINT "YOU ARE NOW";F*9;"FEET IN THE AIR!!!": GOTO 710
740 CLS:PRINT"YOU ARE NOW";-1*(F*9);"FEET UNDERGROUND!!!": GOTO 710
750 ON F GOTO 760,770,780
760 PRINT "1ST FLOOR!!!":GOTO 710
770 PRINT "2ND FLOOR!!!":GOTO 710
780 PRINT "3RD FLOOR!!!":GOTO 710
790 END

CIVILWAR.BAS

10 CLS:KEY OFF
20 LET L=0:LET W=0:LET R1=0:LET P1=0
30 LET Q1=0:LET M3=0:LET M4=0
40 LET P2=0:LET T1=0:LET T2=0
50 REM REMARKABLE PROGRAM BY L. CRAM , L. GOODIE , AND D. HIBBARD
51 PRINT TAB(30)"CIVIL WAR" :PRINT
60 PRINT "DO YOU WANT DESCRIPTIONS (0=YES, 1=NO)";
70 INPUT Z
80 FOR U=1 TO 6
90 PRINT
100 NEXT U
110 IF Z=1 THEN 350
120 PRINT "THIS IS A CIVIL WAR SIMULATION."
130 PRINT "TO PLAY, TYPE A RESPONSE WHEN THE COMPUTER ASKS."
140 PRINT "REMEMBER THAT ALL FACTORS ARE INTERRELATED AND THAT YOUR"
150 PRINT "RESPONSES COULD CHANGE HISTORY. FACTS AND FIGURES USED ARE"
160 PRINT "BASED ON THE ACTUAL OCCURENCE. MOST BATTLES TEND TO RESULT"
170 PRINT "AS THEY DID IN THE CIVIL WAR, BUT IT ALL DEPENDS ON YOU!!"
180 PRINT
190 PRINT "THE OBJECT OF THE GAME IS TO WIN AS MANY BATTLES AS POSSIBLE"
200 PRINT
210 PRINT "YOUR CHOICES FOR DEFENSIVE STRATEGY ARE:"
220 PRINT "       (1) ARTILLERY ATTACK"
230 PRINT "       (2) FORTIFICATION AGAINST FRONTAL ATTACK"
240 PRINT "       (3) FORTIFICATION AGAINST FLANKING MANUEVERS"
250 PRINT "       (4) FALLING BACK"
260 PRINT "YOUR CHOICES FOR OFFENSIVE STRATEGY ARE:"
270 PRINT "       (1) ARTILLERY ATTACK"
280 PRINT "       (2) FRONTAL ATTACK"
290 PRINT "       (3) FLANKING MANUEVERS"
300 PRINT "       (4) ENCIRCLEMENT"
310 PRINT "YOU MAY SURRENDER BY TYPING A '5' FOR YOUR STRATEGY."
320 PRINT "YOU ARE THE CONFEDERACY.       GOOD LUCK!"
330 PRINT:PRINT "Press any key to continue"
340 A$=INKEY$:IF A$="" THEN 340
350 READ M1,M2,C1,C2,M,A,U
360 LET I1=10+(L-W)*2
370 LET I2=10+(W-L)*2
380 LET D1=100*INT((M1*(100-I1)/2000)*(1+(R1-Q1)/(R1+1))+0.5)
390 LET D2=100*INT(M2*(100-I2)/2000+0.5)
400 LET F1=5*M1/6
410 LET A1=Z
420 FOR U=1 TO 4
430 PRINT
440 NEXT U
450 PRINT "THIS IS THE BATTLE OF ";
460 GOSUB 1460
470 PRINT " ","CONFEDERACY","  UNION"
480 PRINT "MEN"," ";INT(M1*(1+(P1-T1)/(M3+1)))," ";
490 PRINT INT(M2*(1+(P2-T2)/(M4+1)))
500 PRINT "MONEY","$";D1,"$";D2
510 PRINT "INFLATION"," ";I1+15;"%"," ";I2;"%"
520 PRINT
530 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR FOOD";
540 INPUT F
550 IF F<0 THEN 1410
560 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR SALARIES";
570 INPUT S
580 IF S<0 THEN 1410
590 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR AMMUNITION";
600 INPUT B
610 IF B<0 THEN 1410
620 PRINT
630 IF F+S+B<=D1 THEN 660
640 PRINT "THINK AGAIN!   YOU HAVE ONLY $" D1
650 GOTO 520
660 LET O=((2*F^2+S^2)/F1^2+1)
670 IF O<10 THEN 700
680 PRINT "MORALE IS HIGH"
690 GOTO 740
700 IF O<5 THEN 730
710 PRINT "MORALE IS FAIR"
720 GOTO 740
730 PRINT "MORALE IS POOR"
740 IF M<>3 THEN 770
750 PRINT "YOU ARE ON THE OFFENSIVE"
760 GOTO 810
770 IF M<>1 THEN 800
780 PRINT "YOU ARE ON THE DEFENSIVE"
790 GOTO 810
800 PRINT "BOTH SIDES ARE ON THE OFFENSIVE"
810 PRINT
820 PRINT "YOUR STRATEGY";
830 INPUT Y
840 IF Y=5 THEN 2310
850 IF ABS(Y-3)<3 THEN 880
860 PRINT "YOU JERK!  USE THE OTHER SET OF STRATEGIES!!"
870 GOTO 810
880 PRINT
890 PRINT " ","CONFEDERACY","UNION"
900 LET C5=(2*C1/5)*(1+1/(2*(ABS(INT(4*RND(1)+1)-Y)+1)))
910 LET C5=INT(C5*(1+1/O)*(1.28+F1/(B+1))+0.5)
920 IF C5+100/O<M1*(1+(P1-T1)/(M3+1)) THEN 970
930 LET C5=INT(13*M1/20*(1+(P1-T1)/(M3+1)))
940 LET E=7*C5/13
950 LET U=1
960 GOTO 980
970 LET E=100/O
980 PRINT "CASUALTIES",C5,INT(17*C2*C1/(C5*20)+0.5)
990 PRINT "DESERTIONS",INT(E),INT(5*O)
1000 PRINT
1010 IF C5-C1>=0 THEN 1040
1020 PRINT "YOUR CASUALTIES WERE"INT(100*(C1-C5)/C1+0.5);"% LESS THAN"
1030 GOTO 1050
1040 PRINT "YOUR CASUALTIES WERE"INT(100*(C5-C1)/C1+0.5);"% MORE THAN"
1050 PRINT "THE ACTUAL CASUALITIES AT ";
1060 LET A1=1
1070 GOSUB 1460
1080 IF U=1 THEN 1100
1090 IF C5+E<17*C2*C1/(C5*20)+5*O THEN 1130
1100 PRINT "YOU LOSE ";
1110 LET L=L+1
1120 GOTO 1150
1130 PRINT "YOU WIN ";
1140 LET W=W+1
1150 GOSUB 1460
1160 IF W=8 THEN 2330
1170 LET T1=T1+C5+E
1180 LET T2=T2+17*C2*C1/(C5*20)+5*O
1190 LET P1=P1+C1
1200 LET P2=P2+C2
1210 LET Q1=Q1+(F+S+B)
1220 LET R1=R1+M1*(100-I1)/20
1230 LET M3=M3+M1
1240 LET M4=M4+M2
1250 IF A=14 THEN 2340
1260 GOTO 350
1270 DATA 18000,18500,1967,2708,1,1,0
1280 DATA 40000,44894,10699,13047,3,2,0
1290 DATA 95000,115000,20614,15849,3,3,0
1300 DATA 54000,63000,10000,14000,2,4,0
1310 DATA 40000,50000,10000,12000,3,5,0
1320 DATA 75000,120000,5377,12653,1,6,0
1330 DATA 38000,45000,11000,12000,1,7,0
1340 DATA 32000,90000,13000,17197,2,8,0
1350 DATA 50000,70000,12000,19000,1,9,0
1360 DATA 72500,85000,20000,23000,3,10,0
1370 DATA 66000,60000,18000,16000,2,11,0
1380 DATA 37000,60000,6700,5800,2,12,0
1390 DATA 62000,110000,17723,18000,2,13,0
1400 DATA 65000,100000,8500,3700,1,14,0
1410 PRINT "GO TO JAIL."
1420 PRINT "GO DIRECTLY TO JAIL."
1430 PRINT "DO NOT PASS GO."
1440 PRINT "DO NOT COLLECT $200"
1450 GOTO 420
1460 IF A<>1 THEN 1530
1470 PRINT "BULL RUN"
1480 IF A1=1 THEN 2290
1490 PRINT"JULY 21,1861    GEN. BEAUREGARD COMMANDING THE SOUTH MET THE"
1500 PRINT"UNION FORCES WITH GEN MCDOWELL IN A PREMATURE BATTLE AT BULL"
1510 PRINT"RUN.  GEN. JACKSON HELPED PUSH BACK THE UNION ATTACK."
1520 GOTO 2290
1530 IF A<>2 THEN 1590
1540 PRINT "SHILOH"
1550 IF A1=1 THEN 2290
1560 PRINT"APRIL 6-7,1862    THE CONFEDERATE SURPRISE ATTACK AT SHILOH"
1570 PRINT"FAILED DUE TO POOR ORGANIZATION."
1580 GOTO 2290
1590 IF A<>3 THEN 1660
1600 PRINT "SEVEN DAYS"
1610 IF A1=1 THEN 2290
1620 PRINT"JUNE 25-JULY 1,1862    GENERAL LEE (CSA) UPHELD THE OFFENSIVE"
1630 PRINT"THROUGHOUT THE BATTLE AND FORCED GEN. MCCLELLAN AND THE UNION"
1640 PRINT"FORCES AWAY FROM RICHMOND."
1650 GOTO 2290
1660 IF A<>4 THEN 1720
1670 PRINT "THE SECOND BULL RUN"
1680 IF A1=1 THEN 2290
1690 PRINT"AUG 29-30,1862    THE COMBINED CONFEDERATE FORCES UNDER LEE AND"
1700 PRINT"JACKSON DROVE THE UNION FORCES BACK INTO WASHINGTON."
1710 GOTO 2290
1720 IF A<>5 THEN 1780
1730 PRINT "ANTIETAM"
1740 IF A1=1 THEN 2290
1750 PRINT"SEPT 17,1862    THE SOUTH FAILED TO INCORPORATE MARYLAND INTO"
1760 PRINT"THE CONFEDERACY."
1770 GOTO 2290
1780 IF A<>6 THEN 1840
1790 PRINT "FREDERICKSBURG"
1800 IF A1=1 THEN 2290
1810 PRINT"DEC 13,1862 THE CONFEDERACY UNDER LEE SUCESSFULLY REPULSED"
1820 PRINT"AN ATTACK BY THE UNION UNDER GEN. BURNSIDE."
1830 GOTO 2290
1840 IF A <>7 THEN 1890
1850 PRINT "MURFREESBORO"
1860 IF A1=1 THEN 2290
1870 PRINT"DEC 31,1862    THE SOUTH UNDER GEN. BRAGG WON A CLOSE BATTLE"
1880 GOTO 2290
1890 IF A<>8 THEN 1950
1900 PRINT "CHANCELLORSVILLE"
1910 IF A1=1 THEN 2290
1920 PRINT"MAY 1-6,1863    THE SOUTH HAD A COSTLY VICTORY AND LOST ONE"
1930 PRINT"OF THEIR OUTSTANDING GENERALS, 'STONEWALL' JACKSON."
1940 GOTO 2290
1950 IF A<>9 THEN 2010
1960 PRINT "VICKSBURG"
1970 IF A1=1 THEN 2290
1980 PRINT"JULY 4,1863    VICKSBURG WAS A COSTLY DEFEAT FOR THE SOUTH"
1990 PRINT"BECAUSE IT GAVE THE UNION ACCESS TO THE MISSISSIPPI."
2000 GOTO 2290
2010 IF A<>10 THEN 2070
2020 PRINT "GETTYSBURG"
2030 IF A1=1 THEN 2290
2040 PRINT"JUNE 30,1863    A SOUTHERN MISTAKE BY GEN. LEE AT GETTYSBURG"
2050 PRINT"COST THEM ONE OF THE MOST CRUCIAL BATTLES OF THR WAR."
2060 GOTO 2290
2070 IF A<>11 THEN 2130
2080 PRINT "CHICKAMAUGA"
2090 IF A1=1 THEN 2290
2100 PRINT"NOV 25,1863    AFTER THE SOUTH HAD SIEGED GEN. ROSENCRANS'"
2110 PRINT"ARMY FOR THREE MONTHS, GEN. GRANT BROKE THE SIEGE."
2120 GOTO 2290
2130 IF A<>12 THEN 2190
2140 PRINT "CHATTANOOGA"
2150 IF A1=1 THEN 2290
2160 PRINT"SEPT 15,1863    CONFUSION IN A FOREST NEAR CHICKAMAUGA LED"
2170 PRINT"TO A COSTLY SOUTHERN VICTORY."
2180 GOTO 2290
2190 IF A<>13 THEN 2250
2200 PRINT "SPOTSYLVANIA"
2210 IF A1=1 THEN 2290
2220 PRINT"MAY 5,1864    GRANT'S PLAN TO KEEP LEE ISOLATED BEGAN TO FAIL"
2230 PRINT"HERE, AND CONTINUED AT COLD HARBOR AND PETERSBURG."
2240 GOTO 2290
2250 PRINT "ATLANTA"
2260 IF A1=1 THEN 2290
2270 PRINT"AUGUST, 1864   SHERMAN AND THREE VETERAN ARMIES CONVERGED ON"
2280 PRINT"ATLANTA AND DEALT THE DEATH BLOW TO THE CONFEDERACY."
2290 PRINT
2300 RETURN
2310 PRINT "THE CONFEDERACY HAS SURRENDERED"
2320 GOTO 2340
2330 PRINT "THE UNION HAS SURRENDERED"
2340 PRINT
2350 PRINT "YOU HAVE WON" W; "BATTLES AND LOST" L; "BATTLES."
2360 IF Y=5 THEN 2400
2370 IF W<=L THEN 2400
2380 PRINT "THE CONFEDERACY HAS WON THE WAR"
2390 GOTO 2500
2400 PRINT "THE UNION HAS WON THE WAR"
2410 GOTO 2500
2500 FOR I=1 TO 2000:NEXT I
2600 CHAIN "MENU",1000

CLIMATES.BAS

100 REM--E.A.GALLETTA,PATCHOGUE-H.S.,4/22/69 EARTH SIENCE (BIICAC)
110 REM--PROGRAM ON CLIMATES
120 REM--REWRITTEN--7/28/69--BASIC--<ROD>
130 REM REVISED BY TONY PEREZ, WALT WHITMAN HS, 8-69
140 REM RE-REVISED BY C.LOSIK 8-26-70
150 DIM L(56)
160 READ N,L(N)
170 IF N<>56 THEN 160
180 T=0
190 PRINT"O.K., HERE ARE SOME VALUES FOR THE PRECIPIATION (P) AND FOR
200 PRINT"THE POTENTIAL EVAPOTRANSPIRATION (PE) OF AN AREA:"
210 PRINT
220 PRINT" ","MONTH"," P"," PE"
230 PRINT" ","=====","=====","======"
240 P=INT(10*RND(1))
250 IF P>6 THEN 240
260 IF P<1 THEN 240
270 E=INT(10*RND(1))
280 IF E>4 THEN 270
290 IF E<1 THEN 270
300 Z=5*E+6*P
310 IF (Z-21)*(Z-22)*(Z-17)*(Z-38)=0 THEN 240
320 FOR I=1 TO 12
330 PRINT" ",I,
340 IF P>1 THEN 360
350 P1=12*COS(0.261*I)^2+2*RND(1)
360 IF P<>2 THEN 380
370 P1=12*SIN(0.261*I)+2*RND(1)
380 IF P<>3 THEN 400
390 P1=2+3*RND(1)
400 IF P<>4 THEN 420
410 P1=2*RND(1)
420 IF P<>5 THEN 440
430 P1=7+10*RND(1)
440 IF P<>6 THEN 460
450 P1=3*COS(0.5+0.15*I)^2
460 PRINT INT(P1),
470 IF E>1 THEN 490
480 E1=10*SIN(0.261*I)^2
490 IF E<>2 THEN 510
500 E1=12*SIN(0.261*I)^2
510 IF E<>3 THEN 530
520 E1=2*SIN(0.5+0.15*I)^2
530 IF E<>4 THEN 550
540 E1=8+4*RND(1)
550 T=T+INT(P1)
560 PRINT INT(E1+(E1/10)*2)
570 NEXT I
580 PRINT
590 PRINT"TOTAL PRECIPITATION =";T;"INCHES"
600 PRINT
610 PRINT"O.K., PLOT YOUR GRAPH ON THE PAPER PROVIDE YOU"
620 PRINT"AND WHEN YOU ARE READY TO CONTINUE.... MEREY TYPE"
630 PRINT"ANY NUMBER AND THE RETURN KEY.      ";
640 INPUT Q
650 PRINT
660 PRINT"READY? GOOD, NOW TELL ME . . . DOES YOUR GRAPH SHOW THAT"
670 PRINT"THE CLIMATE HAS DEFINITE WET AND DRY SEASONS (1=YES, 0=NO) "
680 INPUT S
690 PRINT
700 IF S=0 THEN 880
710 IF S<>1 THEN 660
720 IF P<3 THEN 990
730 B=0
740 GOSUB 1960
750 PRINT"TELL ME, IS THE CLIMATE [1] WET, [2] DRY, R [3] MODERATE ALL"
760 PRINT"YEAR";
770 INPUT S
780 PRINT
790 IF S=1 THEN 920
800 IF S=3 THEN 960
810 IF S<>2 THEN 750
820 IF T<13 THEN 1130
830 IF T>80 THEN 860
840 GOSUB 1950
850 GOTO 1140
860 GOSUB 1910
870 GOTO 1140
880 IF P>2 THEN 750
890 IF P=2 THEN 820
900 GOSUB 1910
910 GOTO 990
920 IF T>80 THEN 1130
930 IF T>=13 THEN 840
940 GOSUB 1930
950 GOTO 1140
960 IF (T-13)*(80-T)>=0 THEN 1130
970 IF T<13 THEN 940
980 IF T>80 THEN 860
990 PRINT"TELL ME, WHICH IS THE WET SEASON, [1] THE WINTER OR [2] THE"
1000 PRINT"SUMMER";
1010 PRINT
1020 INPUT S
1030 PRINT
1040 IF S=1 THEN 1090
1050 IF S<>2 THEN 990
1060 IF P=2 THEN 1130
1070 GOSUB 1910
1080 GOTO 1140
1090 IF P=1 THEN 1130
1100 GOSUB 1910
1110 GOTO 1140
1120 PRINT
1130 PRINT"NICE GOING, SMARTY PANTS. KEEP UP THE GOODWORK."
1140 PRINT"BY CHECKING THE PE CURVE ON YOUR GRAPH, WOUD YOU SAY THAT THE"
1150 PRINT"SUMMERS ARE [1] HOT, [2] WARM, OR [3] COOL"
1160 INPUT S
1170 PRINT
1180 IF S=2 THEN 1260
1190 IF S=3 THEN 1300
1200 IF S<>1 THEN 1130
1210 IF E=2 THEN 1320
1220 IF E=4 THEN 1320
1230 IF E=1 THEN 1320
1240 GOSUB 1910
1250 GOTO 1330
1260 IF E=1 THEN 1320
1270 IF E<>3 THEN 1240
1280 GOSUB 1950
1290 GOTO 1330
1300 IF E=3 THEN 1320
1310 IF E<>3 THEN 1240
1320 PRINT"YOU HAVE RESTORED MY FAITH IN TEENAGERS."
1330 PRINT"FROM THE SAME INFORMATION (PE GRAPH), WOULD YOU SAY THAT THE"
1340 PRINT"WINTERS ARE [1] COLD, [2] MILD, OR [3] WARM";
1350 INPUT S
1360 PRINT
1370 IF S=2 THEN 1450
1380 IF S=3 THEN 1490
1390 IF S<>1 THEN 1330
1400 IF E<3 THEN 1520
1410 GOSUB 1930
1420 GOTO 1530
1430 GOSUB 1950
1440 GOTO 1530
1450 IF E=3 THEN 1520
1460 IF E=4 THEN 1430
1470 GOSUB 1910
1480 GOTO 1530
1490 IF E=3 THEN 1410
1500 IF E=4 THEN 1530
1510 GOTO 1470
1520 PRINT"IT WARMS MY HEART TO HEAR YOU SAY THAT. GOOD GOING."
1530 PRINT
1540 PRINT"WELL, BY NOW YOU MUST HAVE AN INKLING AS TO THE TYPE OF"
1550 PRINT"CLIMATE WE HAVE HERE. BELOW IS A COMPLETE LISTING OF ALL THE
1560 PRINT"CLIMATES IN THE WORLD. REFER TO THEM BY THEIR NUMBER ONLY."
1570 PRINT
1580 PRINT
1590 PRINT"NUMBER","NAME OF CLIMATE"
1600 PRINT"======","==============="
1610 PRINT"1","TROPICAL RAINFOREST"
1620 PRINT"2","TROPICAL EAST COAST"
1630 PRINT"3","TROPICAL MONSOON"
1640 PRINT"4","TROPICAL SAVANNA"
1650 PRINT"5","TROPICAL DESERT"
1660 PRINT"6","MEDITERRANEAN"
1670 PRINT"7","MARINE WEST COAST"
1680 PRINT"8","HUMID CONTINENTAL"
1690 PRINT"9","HUMID SUBTROPICAL"
1700 PRINT"10","MIDDLE LATITUDE GRASSLANDS"
1710 PRINT"11","MIDDLE LATITUDE DESERT"
1720 PRINT"12","SUBARTIC CLIMATES"
1730 PRINT"13 OR 14","HIGHLAND CLIMATES"
1740 PRINT" ","(TROPICAL OR MIDDLE LATITUDES)"
1750 PRINT"15","POLAR TUNDRA"
1760 PRINT"16","POLAR ICECAP"
1770 PRINT
1780 PRINT"WHAT IS THE NUMBER OF THE CLIMATE WE HAVE (WE'LL ACCEPT THE"
1790 PRINT "FACT THAT THEY MAY OVERLAP)";
1800 INPUT S
1810 PRINT
1820 PRINT
1830 PRINT
1840 IF S=L(Z) THEN 1880
1850 PRINT"MY SUGGESTION - STICK TO LANGUAGES OR SOCIAL STUDIES."
1860 PRINT"YOU SHOULD HAVE SAID";L(Z);". GOOD DAY TO YOU."
1870 STOP
1880 PRINT"YOUR FORTUNE AS A METEOROLOGIST IS BUDDING. IT WAS"
1890 PRINT"VERY NICE TO WORK WITH YOU. SO LONG."
1900 STOP
1910 B=1
1920 GOTO 1960
1930 B=2
1940 GOTO 1960
1950 B=3
1960 PRINT"AW C'MON, YOU COULDN'T POSSIBLY MEAN THAT..."
1970 PRINT"YOU SHOULD HAVE SAID";B
1980 PRINT
1990 RETURN
2000 DATA 11,6,16,7,23,10,26,3,27,15
2010 DATA 28,8,29,11,32,3,33,13,34,11
2020 DATA 35,9,39,16,40,8,41,13,44,5
2030 DATA 46,10,45,16,50,1,51,12,56,4
2040 DATA 39,4,44,5,35,9,40,8,45,1,41,15,46,12,51,5,56,16
2050 DATA 0,0
2060 END

CLOUD-9.BAS

10 REM--A.C.CAGGIANO+E.A.GALLETTA, PATCHOGUE H.S., 11-20-68
11 REM--REVISED BY CHARLES LOSIK AND TONY PEREZ 7/18/69
12 REM RE-REVISED BY C.LOSIK 8-26-70
20 REM--THIS PROGRAM IS ASSOCIATED WITH CLOUD FORMATION
25 REM PHASE I OF PROGRAM BEGINS HERE. STUDENTS WILL BE GIVEN
26 REM INTRODUCTORY INFORMATION AND BE ALLOWED TO ASK AND ANSWER
27 REM ANY NUMBER OF PROBLEMS. WHEN THEY INPUT NO. 2 (LINES 554-556)
28 REM PROGRAM SENDS THEM TO PHASE II (LINE 561 AND FOLLOWING).
30 PRINT" ","CLOUD NINE"
40 PRINT" ","===== ===="
45 DIM B(2), T(4), Q(3), A(3), C(3)
50 PRINT
60 PRINT" STRONG CONVECTION CURRENTS ARE CAUSING ADIABATIC"
70 PRINT"COOLING OF AIR WHERE YOU ARE AND ARE RESPONSIBLE FOR THE"
80 PRINT"FORMATION OF A CLOUD. BOTH THE DRY AND THE MOIST ADIABATIC"
90 PRINT"(AS WELL AS THE NORMAL LAPSE RATES) ARE CONSIDERED IN THIS"
91 PRINT"PROGRAM."
100 PRINT
105 PRINT
110 PRINT" ","LEGEND"
120 PRINT" ","======"
140 PRINT"1=";
150 GOSUB 1000
160 PRINT"2=";
170 GOSUB 1010
180 PRINT"3=";
190 GOSUB 1020
200 PRINT"4=";
210 GOSUB 1030
220 PRINT
225 PRINT
230 PRINT"CHOOSE ANY TWO OF THE ABOVE VARIABLES AND SELECT VALUES FOR"
231 PRINT"THEM. TYPE THEM IN AS:"
232 PRINT"VARIABLE CODE ,VALUE, VARIABLE CODE ,VALUE...(E.G. 1,50,2,30)"
233 PRINT
240 X=0
242 Y=0
245 A=0
246 B=0
247 B(1)=0
248 B(2)=0
250 INPUT B(1),A,B(2),B
290 PRINT
300 FOR I=1 TO 4
310 IF B(1)=I THEN 330
320 NEXT I
330 T(I)=A
340 FOR J=1 TO 4
350 IF B(2)=J THEN 370
360 NEXT J
370 T(J)=B
380 IF I<>J THEN 405
390 PRINT"YOU CAN'T USE THE SAME VALUES TWICE."
395 GOTO 250
405 PRINT"OKAY, TYPE IN YOUR CALCULATED VALUE FOR";
406 PRINT
410 IF J*I<>2 THEN 425
411 T=(T(1)-T(2))/4.5
412 T(4)=1000*T
413 T(3)=T(2)-T
414 GOSUB 1020
415 GOSUB 1050
416 GOSUB 1030
417 INPUT X,Y
418 IF ABS(X-T(3))>=0.6 THEN 500
419 IF ABS(Y-T(4))>=0.6 THEN 500
420 GOTO 550
425 IF J*I<>3 THEN 440
426 T=(T(1)-T(3))/5.5
427 T(4)=1000*T
428 T(2)=T+T(3)
429 GOSUB 1010
430 GOSUB 1050
431 GOSUB1030
432 INPUTX,Y
433 IF ABS(X-T(2))>=0.6 THEN 500
434 IF ABS(Y-T(4))>=0.6 THEN 500
435 GOTO 550
440 IF J*I<>4 THEN 455
441 T=T(4)/1000
442 T(2)=T(1)-4.5*T
443 T(3)=T(2)-T
444 GOSUB 1010
445 GOSUB 1050
446 GOSUB 1020
447 INPUT X,Y
448 IF ABS(X-T(2))>=0.6 THEN 500
449 IF ABS(Y-T(3))>=0.6 THEN 500
450 PRINT"OKAY, TYPE IN YOUR CALCULATED VALUE FOR"
455 IF J*I<>6 THEN 470
456 T=T(2)-T(3)
457 T(4)=1000*T
458 T(1)=T(3)+5.5*T
459 GOSUB 1000
460 GOSUB 1050
461 GOSUB 1030
462 INPUT X,Y
463 IF ABS(X-T(1))>=0.6 THEN 500
464 IF ABS(Y-T(4))>=0.6 THEN 500
465 GOTO 550
470 IF J*I<>8 THEN 485
471 T=T(4)/1000
472 T(3)=T(2)+T
473 T(1)=T(2)+6.5*T
474 GOSUB 1010
475 GOSUB 1050
476 GOSUB 1020
477 INPUT X,Y
478 IF ABS(X-T(1))>=0.6 THEN 500
479 IF ABS(Y-T(3))>=0.6 THEN 500
480 GOTO 550
481 IF ABS(X-T(3))>=0.6 THEN 500
485 IF J*I<>12 THEN 390
486 T=T(4)/1000
487 T(1)=T(3)+5.5*T
488 T(2)=T(3)+T
489 GOSUB 1000
490 GOSUB 1050
491 GOSUB 1010
492 INPUT X,Y
493 IF ABS(X-T(1))>=0.6 THEN 500
494 IF ABS(Y-T(2))>=0.6 THEN 500
495 GOTO 550
500 PRINT
502 PRINT"IT LOOKS LIKE WE GOOFED SOME PLACE."
505 PRINT"LET'S SEE WHAT THE CORRECT VALUES ARE."
507 PRINT
510 PRINT T(1);"DEGREES - ";
512 GOSUB1000
515 PRINT T(2);"DEGREES - ";
517 GOSUB1010
520 PRINT T(3);"DEGREES - ";
522 GOSUB1020
525 PRINT T(4);"FEET - ";
527 GOSUB1030
530 PRINT
535 GOTO 554
550 PRINT
552 PRINT"VERY GOOD. VERY, VERY GOOD."
553 PRINT
554 PRINT"DO YOU HAVE ANY OTHER PROBLEMS YOU WOULD LIKE TO TRY?"
555 PRINT "(1=YES, 0=NO) : ";
556 INPUT P
557 IF P<1 THEN 561
558 PRINT
559 PRINT"USING THE SAME LEGEND AS BEFORE..."
560 GOTO 230
561 H=(T(1)-T(3))*2000-7*T(4)
562 REM LINE 561 CALCULATES ALTITUDE FOR TOP OF CLOUD AND BEGINS
563 REM PHASE II OF PROGRAM. PROBLEM NO.2 IN THIS PART (CALCULATION
564 REM OF TEMP. ABOVE CLOUD TOP) INVOLVES USE OF THE NORMAL LAPSE RATE.
565 PRINT
567 PRINT"WELL, BEFORE YOU LEAVE, I HAVE A FEW I'D LIKE YOU TO TRY..."
570 PRINT"BASED ON YOUR VALUES, THE HEIGHT OF THE CLOUD"
580 PRINT"(MEASURED FROM THE CLOUD BASE) IS ";H;"FT. CAN YOU TELL ME:"
600 Q(1)=0.7*T(4)
601 Q(2)=T(4)+1.5*H
602 Q(3)=T(4)+0.5*H
610 A(1)=T(1)-T(4)*0.00385
611 A(2)=T(1)-(T(4)+1.5*H)*0.0035
612 A(3)=T(3)-0.0015*H
614 PRINT
615 PRINT"WHAT IS THE TEMPERATURE AT EACH OF THESE ALTITUDES:"
620 FOR N=1 TO 3
625 PRINT" ",N;INT(Q(N)+0.5);"FT"
627 NEXT N
628 PRINT
629 FOR N=1 TO 3
630 PRINT"THE TEMPERATURE AT ";INT(Q(N)+0.5);" FT. IS ";
631 INPUT C(N)
635 IF ABS(C(N)-A(N))>1.1 THEN 750
640 NEXT N
699 PRINT
700 PRINT"WOW, YOU MUST BE A BRAIN. AND YOU PROBALLY KNOW"
710 PRINT"A LOT ABOUT CLOUDS AND THINGS LIKE THAT. IT WAS VERY"
720 PRINT"NICE TO WORK WITH SOMEONE WHO UNDERSTANDS ME."
730 PRINT" ","THANK YOU AND . . . . PEACE AND LONG LIFE"
740 STOP
750 PRINT
755 PRINT"SORRY. YOU WERE DOING GREAT THERE FOR A WHILE."
760 PRINT"WELL, BACK TO THE BOOKS. THE VALUES YOU SHOULD HAVE ARE:"
765 PRINT
770 FOR N=1 TO 3
774 PRINT N;
780 PRINT"THE TEMPERATURE AT";INT(Q(N)+0.5);"FEET IS ";A(N);"DEGREES"
790 NEXT N
830 STOP
1000 PRINT"THE TEMPERATURE ON THE GROUND"
1005 RETURN
1010 PRINT"THE DEW POINT TEMPERATURE ON THE GROUND"
1015 RETURN
1020 PRINT"THE TEMPERATURE AT THE BASE OF THE CLOUD"
1025 RETURN
1030 PRINT"THE ELEVATION, IN FEET, OF THE CLOUD BASE"
1035 RETURN
1050 PRINT"FOLLOWED BY A COMMA, AND THEN TYPE IN YOUR VALUE FOR "
1055 RETURN
2000 END

CRC.TXT

PC-SIG Disk No. #45, 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:  BOMB    .BAS         CRC = 55 BC

--> FILE:  ANTONYMS.BAS         CRC = E9 15

--> FILE:  AWARI   .BAS         CRC = 63 2B

--> FILE:  BIO     .BAS         CRC = 40 08

--> FILE:  HIDESEEK.BAS         CRC = 45 7F

--> FILE:  IQUEEN  .BAS         CRC = 83 F1

--> FILE:  DOTS    .BAS         CRC = D2 3D

--> FILE:  DRAGRACE.BAS         CRC = 3A F6

--> FILE:  BIRTHDAY.BAS         CRC = 9B 12

--> FILE:  FOOTBALL.BAS         CRC = 43 CD

--> FILE:  GALAXY  .BAS         CRC = E8 1A

--> FILE:  GALAXY2 .BAS         CRC = EE F9

--> FILE:  CLIMATES.BAS         CRC = 62 04

--> FILE:  CLOUD-9 .BAS         CRC = CE C6

--> FILE:  GREEKRTS.BAS         CRC = 0E D3

--> FILE:  SWARMS  .BAS         CRC = D6 F4

--> FILE:  MEMBRAIN.BAS         CRC = 29 88

--> FILE:  BASEBALL.BAS         CRC = E1 43

--> FILE:  MINIMATH.BAS         CRC = 2C 4E

--> FILE:  REVERSE .BAS         CRC = D6 3D

--> FILE:  SHOP    .BAS         CRC = 4D 72

--> FILE:  SNOOPY  .BAS         CRC = A0 AB

--> FILE:  SQUARE  .BAS         CRC = 59 29

--> FILE:  CIVILWAR.BAS         CRC = 34 F6

--> FILE:  SYNONYMS.BAS         CRC = C0 AF

--> FILE:  TAXMAN  .BAS         CRC = 05 AD

--> FILE:  TRADE   .BAS         CRC = 89 2F

--> FILE:  BACCRRT .BAS         CRC = E8 A7

--> FILE:  WEATHER .BAS         CRC = 14 45

 ---------------------> SUM OF CRCS = 5B 33

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

DOTS.BAS

10 CLS:KEY OFF
20 PRINT TAB(30)"DOTS"
30 REM  THIS PROGRAM WAS WRITTEN BY JAMES MCGILL
40 DIM C(1,20)
50 LET C(1,5)=5
60 LET C(1,10)=5
70 LET C(1,15)=5
80 LET C(1,20)=5
90 DIM A(35,35)
100 FOR C=0 TO 4
110 FOR B=5*C+1 TO 5*C+4
120 LET A(B,B+1)=1
130 IF C=4 GOTO 150
140 LET A(B,B+5)=1
150 NEXT B
160 NEXT C
170 FOR K=1 TO 4
180 LET A(5*K,5*K+5)=1
190 NEXT K
200 LET R=0
210 LET M=0
220 LETN=0
230  LET S=0
240 LET W=0
250 LET X=0
260 LET Y=0
270 LETZ=0
280 LET U=0
290 LET V=0
300 DIM B$(81)
310 FOR A=1 TO 73 STEP 18
320 FOR B=A TO (A+8) STEP 2
330 LET B$(B)= "*"
340 NEXT B
350 NEXT A
360 FOR A=2 TO 74 STEP 18
370 FOR B=A TO (A+6) STEP 2
380 LET B$(B)=" "
390 NEXT B
400 NEXT A
410 FOR A=10 TO  64 STEP 18
420 FOR B=A TO A+8
430 LET B$(B)=" "
440 NEXT B
450 NEXT A
460 PRINT"DO YOU KNOW HOW TO PLAY";
470 INPUT B$
480 IF B$="YES" GOTO 630
490 PRINT"THIS IS THE GAME OF DOTS.WE WILL USE A 5 BY 5"
500 PRINT"ARRAY OF DOTS.YOU MAKE YOUR MOVE BY MAKING A"
510 PRINT"HORIZONTAL OR VERTICAL LINE BETWEEN TWO"
520 PRINT"CONSECUTIVE DOTS.EACH DOT HAS A PAIR OF"
530 PRINT"COORDINATES.THE TOP LEFT DOT IS 1,1.THE LOWER"
540 PRINT"LEFT DOT IS 5,1.THE UPPER RIGHT DOT IS 1,5"
550 PRINT"AND THE LOWER RIGHT DOT IS 5,5.YOU MOVE BY"
560 PRINT"TYPING IN THE COORDINATES OF THE TWO DOTS"
570 PRINT"TO BE CONNECTED.THEREFORE,YOU WILL ALWAYS"
580 PRINT "TYPE IN FOUR NUMBERS OF THE FORM W,X,Y,Z."
590 PRINT"ALWAYS TYPE IN THE COORDINATES OF THE UPPER"
600 PRINT"OR LEFTMOST DOT FIRST.THE GAME BOARD LOOKS"
610 PRINT"LIKE THIS."
620 GOSUB 3080
630 PRINT "WHAT ARE YOUR VALUES OF W,X,Y,Z.";
640 INPUT W,X,Y,Z
650 GOSUB 1130
660 LET N=N+S
670 IF S=0 GOTO 760
680 IF R>=40 GOTO 980
690 LET S=0
700 PRINT"YOU SCORED!!!"
710 PRINT"THE SCORE IS"
720 PRINT"YOU...";N
730 PRINT"ME....";M
740 GOSUB 3080
750 GOTO 900
760 PRINT"YOU DID NOT SCORE.MY TURN"
770 GOSUB 2170
780 LET M=M+S
790 IF S=0 GOTO 920
800 IF R>=40 GOTO 980
810 LET S=0
820 PRINT"MY MOVE IS";W;X;Y;Z
830 PRINT"I SCORED!!!"
840 GOSUB 3080
850 PRINT"THE SCORE IS"
860 PRINT"YOU....";N
870 PRINT"ME.....";M
880 PRINT"I GET ANOTHER TURN"
890 GOTO 770
900 PRINT"YOU GET ANOTHER TURN"
910 GOTO 640
920 IF R>=40 GOTO 980
930 PRINT"MY MOVE IS";W;X;Y;Z
940 GOSUB 3080
950 PRINT"I DID NOT SCORE"
960 PRINT"YOUR TURN"
970 GOTO 640
980 PRINT"ALL MOVES HAVE BEEN MADE.THE GAME IS OVER"
990 PRINT"THE FINAL SCORE IS"
1000 PRINT"YOU...";N
1010 PRINT"ME....";M
1020 IF M<N GOTO 1060
1030 IF M=N GOTO 1080
1040 PRINT"AS USUAL,I AM VICTORIOUS"
1050 GOTO  1090
1060 PRINT"DON'T ASK ME HOW, BUT YOU WON"
1070 GOTO 1090
1080 PRINT"WELL, IT LOOKS LIKE A TIE GAME"
1090 PRINT"DO YOU WANT TO PLAY ANOTHER GAME";
1100 INPUT A$
1110 IF A$="YES" GOTO 630
1120 STOP
1130 IF W>Y GOTO 1250
1140 IF X>Z GOTO 1250
1150 IF W=Y GOTO 1190
1160 IF X<>Z GOTO 1300
1170 IF Y <>W+1 GOTO 1330
1180 GOTO 1200
1190 IF Z<>X+1 GOTO 1330
1200 IF(ABS(W))/(INT(W))<>1 GOTO 1220
1210 GOTO 1360
1220 PRINT"ILLEGAL MOVE.PLEASE USE POSITIVE INTEGERS LESS THAN 6"
1230 GOTO 1270
1240 GOTO 1360
1250 PRINT"ILLEGAL MOVE.PLEASE TYPE IN  THE COORDINATES OF "
1260 PRINT"THE UPPERMOST OR LEFTMOST DOT FIRST"
1270 PRINT"TRY AGAIN. WHAT ARE YOUR VALUES FOR W,X,Y,Z";
1280 INPUT W,X,Y,Z
1290 GOTO 1130
1300 PRINT"ILLEGAL MOVE.ONLY HORIZONTAL AND VERTICAL MOVES"
1310 PRINT"ARE ALLOWED"
1320 GOTO 1270
1330 PRINT"ILLEGAL MOVE.YOU MAY ONLY CONNECT CONSECUTIVE DOTS"
1340 PRINT"NO SKIPPING OVER DOTS"
1350 GOTO 1270
1360 LET U=(W-1)*5+X
1370 LET V=(Y-1)*5+Z
1380 IF A(U,V) =1 GOTO 1410
1390 PRINT"ILLEGAL MOVE.THAT MOVE HAS ALREADY BEEN USED"
1400 GOTO 1270
1410 PRINT"LEGAL MOVE"
1420 GOSUB 1440
1430 RETURN
1440 IF X=Z GOTO 1660
1450 IF V/5>1 GOTO 1500
1460 LET C(1,U)=C(1,U)+1
1470 IF C(1,U)<>4 GOTO 1490
1480 LET S=S+1
1490 GOTO 1880
1500 IF V/5<4.1 GOTO 1560
1510 LET P=U-5
1520 LET C(1,P)=C(1,P)+1
1530 IF C(1,P)<>4 GOTO 1550
1540 LET S=S+1
1550 GOTO 1880
1560 LET C(1,U)=C(1,U)+1
1570 LET P=U-5
1580 LET C(1,P)=C(1,P)+1
1590 IF C(1,U)<> 4 GOTO 1630
1600 IF C(1,P)<>4 GOTO 1640
1610 LET S=S+2
1620 GOTO 1880
1630 IF C(1,P)<>4 GOTO 1650
1640 LET S=S+1
1650 GOTO 1880
1660 LET Q=V-1
1670 IF (INT(Q/5))*5<>Q GOTO 1720
1680 LET C(1,U)=C(1,U)+1
1690 IF C(1,U)<>4 GOTO 1710
1700 LET S=S+1
1710 GOTO 1920
1720 IF (INT(V/5))*5<>V GOTO 1780
1730 LET T=U-1
1740 LET C(1,T)=C(1,T)+1
1750 IF C(1,T)<>4 GOTO 1770
1760 LET S=S+1
1770 GOTO 1920
1780 LET T =U-1
1790 LET C(1,U)=C(1,U)+1
1800 LET C(1,T)=C(1,T)+1
1810 IF C(1,U)<>4 GOTO 1850
1820 IF C(1,T)<> 4 GOTO 1860
1830 LET S=S+2
1840 GOTO 1920
1850 IF C(1,T)<>4 GOTO 1920
1860 LET S=S+1
1870 GOTO 1920
1880 LET F=2*W-1
1890 LET G=2*X
1900 GOSUB 3150
1910 GOTO 1950
1920 LET H= 2*W
1930 LET J=2*X-1
1940 GOSUB 3180
1950 LET A(U,V)=0
1960 LET R=R+1
1970 LET U=0
1980 LET V=0
1990 LET P=0
2000 LET Q=0
2010 LET T=0
2020 LET F=0
2030 LET G=0
2040 LET H=0
2050 LET J=0
2060 RETURN
2070 IF A(24,25)=1 GOTO 2090
2080 GOTO 2140
2090 LET W=5
2100 LET X=4
2110 LET Y=5
2120 LET Z=5
2130 GOTO 3000
2140 FOR I=19 TO 1 STEP -1
2150 IF C(1,I)<4 GOTO 2600
2160 NEXT I
2170 FOR I=1 TO 20
2180 IF C(1,I)=3 GOTO 2600
2190 NEXT I
2200 GOTO 2250
2210 IF A(I+1,I+6)=1 GOTO 2620
2220 GOTO 2390
2230 IF A(I+5,I+6)=1 GOTO 2610
2240 GOTO 2420
2250 FOR I=1 TO 20
2260 IF C(1,I)=0 GOTO 2330
2270 GOTO 2420
2280 IF I<2 GOTO 2330
2290 IF C(1,I-1)=0 GOTO 2320
2300 IF C(1,I-1)=1 GOTO 2320
2310 GOTO 2330
2320 IF A(I,I+5)=1 GOTO 2640
2330 IF I<6 GOTO 2360
2340 IF C(1,I-5)=0 GOTO 2360
2350 IF C(1,I-5)<>1 GOTO 2370
2360 IF A(I,I+1)=1 GOTO 2630
2370 IF C(1,I+1)=0 GOTO 2210
2380 IF C(1,I+1)=1 GOTO 2210
2390 IF I>15 GOTO 2420
2400 IF C(1,I+5)=0 GOTO 2230
2410 IF C(1,I+5)=1 GOTO 2230
2420 NEXT I
2430 FOR I=1 TO 20
2440 IF C(1,I)=1 GOTO 2460
2450 GOTO 2560
2460 IF I<2 GOTO 2520
2470 IF C(1,I-1)=1 GOTO 2490
2480 GOTO 2500
2490 IF A(I,I+5)=1 GOTO 2640
2500 IF I<6 GOTO 2520
2510 IF C(1,I-5)<> 1 GOTO 2530
2520 IF A(I,I+1)=1 GOTO 2630
2530 IF C(1,I+1)=1 GOTO 2210
2540 IF I>15 GOTO 2560
2550 IF C(1,I+5)=1 GOTO 2230
2560 NEXT I
2570 IF A(1,2)=1 GOTO 2660
2580 IF A(1,6)=1 GOTO 2690
2590 IF A(2,7)=1 GOTO 2720
2600 IF I=20  GOTO 2630
2610 IF A(I+5,I+6)=1 GOTO 2810
2620 IF A(I+1,I+6)=1 GOTO 2850
2630 IF A(I,I+1)=1 GOTO 2750
2640 IF A(I,I+5)=1 GOTO 2890
2650 GOTO 2070
2660 LET W=1
2670 LET X=1
2680 GOTO 2950
2690 LET W=1
2700 LET X=1
2710 GOTO 2980
2720 LET W=1
2730 LET X=2
2740 GOTO 2980
2750 LET W=INT((I+4)/5)
2760 LET X=I-(5*(W-1))
2770 GOTO 2950
2780 LET W=INT((I+3)/5)
2790 LET X=I-(5*(W-1))
2800 GOTO 2950
2810 LET I=I+5
2820 LET W= INT((I+4)/5)
2830 LET X=I-(5*(W-1))
2840 GOTO 2950
2850 LET I=I+1
2860 LET W=INT((I+4)/5)
2870 LET X=I-(5*(W-1))
2880 GOTO 2980
2890 LET W=INT((I+4)/5)
2900 LET X=I-(5*(W-1))
2910 GOTO 2980
2920 LET W=INT((I-1)/5)
2930 LET X=I-(5*(W-1))
2940 GOTO 2980
2950 LET Y=W
2960 LET Z=X+1
2970 GOTO 3000
2980 LET Y=W+1
2990 LET Z=X
3000 LET U=(W-1)*5+X
3010 LET V=(Y-1)*5+Z
3020 LETA=W
3030 LET B=X
3040 LET C=Y
3050 LETD=Z
3060 GOSUB 1440
3070 RETURN
3080 FOR I=1 TO 81 STEP 9
3090 FOR J=I TO (I+8)
3100 PRINT B$(J);
3110 NEXT J
3120 PRINT
3130 NEXT I
3140 RETURN
3150 LET U1=(F-1)*9+G
3160 LET B$(U1)="-"
3170 GOTO 3200
3180 LET U2=(H-1)*9+J
3190 LET B$(U2)="I"
3200 RETURN
3210 END

DRAGRACE.BAS

10 CLS:KEY OFF
100 DIM I$(3),P(2),E(2),W(2),S(2),X(2),M(2),C(2),B(2),Y(2)
110 DIM Q(2),MB(2)
120 PRINT "WELCOME TO THE DRAG STRIP."
130 PRINT "WOULD YOU LIKE INSTRUCTIONS";
140 INPUT I$
150 IF I$="NO" THEN 200
160 PRINT "YOU MAY RACE AGAINST ONE OF YOUR FRIENDS OR YOU MAY RACE"
170 PRINT "AGAINST MY DRAGSTER. YOU WILL BE ASKED TO DESIGN YOUR"
180 PRINT "OWN MACHINE, SPECIFYING HORSEPOWER, REAR END RATIO (X:1)"
190 PRINT "TIRE WIDTH IN INCHES AND TIRE DIAMETER IN FEET."
200 PRINT "DO YOU WANT TO RACE AGAINST ME";
210 INPUT I$
220 IF I$="NO" THEN 290
230 PRINT "I WILL HAVE CAR #1."
240 P(1)=600
250 E(1)=5.9
260 W(1)=22
270 D(1)=3.9
280 GOTO 380
290 PRINT "DESIGN CAR #1:"
300 PRINT "HORSEPOWER=";
310 INPUT P(1)
320 PRINT "REAR END RATO=";
330 INPUT E(1)
340 PRINT "TIRE WIDTH =";
350 INPUT W(1)
360 PRINT "TIRE DIAMITER=",
370 INPUT D(1)
380 PRINT "DESIGN CA #2:"
390 PRINT "HOURSEPOWER=";
400 INPUT P(2)
410 PRINT "REAR END RATIO=";
420 INPUT E(2)
430 PRINT "TIRE WIDTH=";
440 INPUT W(2)
450 PRINT "TIRE DIAMETER=";
460 INPUT D(2)
470 PRINT
480 PRINT "GO!"
490 K1=500
500 K2=1.6
510 K3=2
520 K4=0.0006
530 K5=0.00006
540 K6=0.2
550 K7=4
560 K8=0.00015
570 Q(1)=0:Q(2)=0
580 S(1)=0:S(2)=0
590 X(1)=0:X(2)=0
600 FOR J=1 TO 2
610 M(J)=(K1+K2*P(J)+K3*W(J)*D(J)+K7*D(J)^2)/32.2
620 C(J)=K4*M(J)^(2/3)+K8*W(J)*D(J)
630 B(J)=15+28*W(J)*D(J)/((W(J)+6)*(D(J)+1))
640 Y(J)=3.7-0.0033*P(J)
650 MB(J)=M(J)*B(J)
660 NEXT J
670 PRINT
680 PRINT
690 PRINT "ELAPSED";TAB(21);"CAR#1";TAB(49);"CAR#2"
700 PRINT "TIME","SPEED","DISTANCE","SPEED","DISTANCE"
710 PRINT "(SEC)","(MPH)","  (FT)","(MPH)","  (FT)"
720 PRINT
730 FOR T=0 TO 100 STEP 1
740 FOR T1=1 TO 100 STEP 1
750 FOR J=1 TO 2
760 R=60*S(J)*E(J)/(3.14159*D(J))
770 L0=(P(J)/42.5)*(50+0.0078*(R/Y(J))-4.000000e-10*(R/Y(J))^3)
780 L1=P(J)*(K5*R+K6)
790 L2=E(J)*(L0-L1)
800 F=2*L2/D(J)
810 IF F>MB(J) THEN 870
820 IF Q(J)<>0 THEN 850
830 PRINT "CAR#";J;"STOPS BURNING RUBBER"
840 Q(J)=1
850 A=(F-C(J)*S(J)^2)/M(J)
860 GOTO 880
870 A=B(J)-C(J)*S(J)^2/M(J)
880 S(J)=S(J)+A*0.01
890 X(J)=X(J)+S(J)*0.01
900 NEXT J
910 IF X(1)<1320 AND X(2)<1320 THEN 1120
920 IF X(1)>X(2) THEN 1040
930 T3=(X(2)-1320)/S(2)
940 T=T+T1/100-T3
950 X(2)=1320
960 X(1)=X(1)-S(1)*T3
970 PRINT T,S(1)*3600/5280,X(1),S(2)*3600/5280,X(2)
980 PRINT TAB(50);"WINNER"
990 PRINT
1000 PRINT"DO YOU WANT TO TRY AGAIN",
1010 INPUT I$
1020 IF I$="YES" THEN 200
1030 STOP
1040 T3=(X(1)-5280/4)/S(1)
1050 T=T+T1/100-T3
1060 X(1)=5280/4
1070 X(2)=X(2)-S(2)*T3
1080 PRINT T,S(1)*3600/5280,X(1),S(2)*3600/5280,X(2)
1090 PRINT TAB(20);"WINNER"
1100 PRINT
1110 GOTO 1000
1120 NEXT T1
1130 PRINT T+1,S(1)*3600/5280,X(1),S(2)*3600/5280,X(2)
1140 NEXT T
1150 STOP

FOOTBALL.BAS

1 CLS:KEY OFF
100 PRINT ,"F O O T B A L L"
110 PRINT
120 PRINT "WOULD YOU LIKE INSTRUCTIONS FOR PLAYING FOOTBALL";
130 INPUT I$
140 IF LEFT$(I$,1)<>"Y" THEN 410
150 PRINT
160 PRINT
170 PRINT "ON OFFENSE YOU HAVE THE FOLLOWING PERMITTED PLAYS:"
180 PRINT "PLAY","CODE"
190 PRINT "RUN","10"
200 PRINT "PASS","11"
210 PRINT "SWEEP","12"
220 PRINT "SCREEN PASS","13"
230 PRINT "LONG PASS","14"
240 PRINT "DRAW PLAY","15"
250 PRINT "PUNT","16"
260 PRINT "FIELDGOAL","17"
270 PRINT
280 PRINT "ON DEFENSE, YOU MAY TRY ONE OF THE FOLLOWING:"
290 PRINT "DEFENSE","CODE"
300 PRINT "NORMAL","4","GOOD AGAINST SWEEP AND SCREEN"
310 PRINT "HOLD","5","GOOD AGAINST RUN, PASS AND DRAW"
320 PRINT "BLITZ","6","GOOD AGAINST PASS OR LONG PASS"
330 PRINT "INTERCEPT","7","INCREASES THE ODDS FOR AN INTERCEPTION"
340 PRINT "BLOCK","8","GIVES YOU A CHANCE TO BLOCK A KICK,"
350 PRINT " "," ","BUT DECREASES THE DISTANCE RUNBACK."
360 PRINT :PRINT"HIT ANY KEY"
361 A$=INKEY$:IF A$="" THEN 361
370 PRINT "TO CALL A PARTICULAR PLAY JUST TYPE ITS CODE NUMBER."
380 PRINT "ALSO, AT ANY TIME DURING PLAY YOU MAY CALL TIME OUT"
390 PRINT "BY TYPING A '2'.  HOWEVER YOU ARE PERMITTED ONLY THREE"
400 PRINT "TIMEOUTS PER HALF."
410 PRINT
420 PRINT
430 DEF FNT(X)=SIN(X)/COS(X)
440 DIM R(17)
450 FOR I=0 TO 17
460 READ R(I)
470 NEXT I
480 DATA 9,13,100,0,9,10,12,11,12,0,1,5,3,4,6,2,8,7
490 F=0
500 Z3=0
510 O=0
520 L=0
530 DIM Z(5,3),P(2),D(2,5)
540 FOR A=0 TO 5
550 FOR B=0 TO 2
560 READ Z(A,B),D(B,A)
570 P(B)=0
580 NEXT B
590 READ Z(A,3)
600 NEXT A
610 PRINT "DO YOU WANT TO RECEIVE";
620 X=1
630 INPUT I$
640 S=1
650 IF LEFT$(I$,1)="Y" THEN S=2
660 K=S
670 T1=120
680 U2=3
690 U=3
700 C=900
710 GOSUB 2330
720 F1=50
730 B=INT(F1+O*20*RND(1)+(1-O)*29*(2-RND(0)^7-RND(0)^(3-Z2)))
740 O=0
750 Z9=8
760 GOSUB 1570
770 L=0
780 IF B<=99 THEN 2420
790 PRINT "A  TOUCHBACK"
800 B=20
810 L=0
820 IF S=2 THEN 850
830 PRINT "MY ";
840 GOTO 860
850 PRINT "YOUR ";
860 GOSUB 3370
870 GOSUB 3060
880 D=1
890 F2=0.03
900 O=0
910 IF C<=0 THEN 2850
920 GOSUB 2610
930 Z2=1
940 Z3=0.3
950 IF C<=F*T1 THEN 3000
960 IF C<=0 THEN 2850
970 IF L=0 THEN 990
980 PRINT "TIME TO GO--";
990 PRINT INT(C/60);"MIN,";C-60*INT(C/60);"SEC.  ";
1000 PRINT "YOUR PLAY";
1010 GOSUB 3690
1020 IF S=1 THEN 1060
1030 IF Q>8 THEN 1000
1040 M=Q
1050 GOTO 1080
1060 Y=Q-8
1070 IF ABS(Q-10.5)^2>3 THEN 1000
1080 C=INT(C-L*(5+23*RND(1)))
1090 L=1
1100 IF M=7 THEN 1840
1110 IF M=8 THEN 2000
1120 Y1=Y-1
1130 IF RND(1)>Z(M-1,Y1) THEN 1320
1140 A=2
1150 GOSUB 3100
1160 IF M<4 THEN 1190
1170 PRINT "PASS COMPLETE..";
1180 L=SGN(INT(4*RND(1)))
1190 IF RND(1)<F2 THEN 2590
1200 IF G>0 THEN 1290
1210 IF G=0 THEN 1250
1220 IF G+B<1 THEN 2250
1230 PRINT "LOSS OF";-G;
1240 GOTO 1690
1250 PRINT "NO GAIN"
1260 Z9=2
1270 GOSUB 1570
1280 GOTO 1750
1290 IF B+G>99 THEN 1730
1300 PRINT "GAIN OF";G;
1310 GOTO 1690
1320 IF M>3 THEN 1360
1330 A=1
1340 GOSUB 3100
1350 GOTO 1200
1360 IF RND(1)<0.06*(2-SGN(Y-3)) THEN 1440
1370 IF RND(1)<0.05+INT(Y/3.5)/5 THEN 1590
1380 Z9=6
1390 GOSUB 1570
1400 PRINT "PASS INCOMPLETE"
1410 L=0
1420 G=0
1430 GOTO 3200
1440 PRINT "PASS **INTERCEPTED**";
1450 A=1
1460 GOSUB 3100
1470 IF B<40 THEN 1490
1480 G=20*(1+SGN(G))
1490 B=100-B-G
1500 S=3-S
1510 Z9=9
1520 GOSUB 1570
1530 IF B<1 THEN 790
1540 IF B>99 THEN 1730
1550 PRINT "AT ";
1560 GOTO 2440
1570 C=C-INT(4+Z9/2*(1+RND(1)))
1580 RETURN
1590 G=-(5+INT(10*RND(1)))
1600 PRINT "THE QUARTERBACK ";
1610 IF RND(1)>0.5 THEN 1640
1620 PRINT "IS THROWN FOR A ";
1630 GOTO 1190
1640 G=-(2*G+8)
1650 M=5
1660 A=1
1670 PRINT "SCRAMBLES FOR A ";
1680 GOTO 1190
1690 B=B+G
1700 PRINT "TO ";
1710 GOSUB 3380
1720 IF B<=99 THEN 1750
1730 GOSUB 2070
1740 GOTO 710
1750 IF B1>B THEN 3200
1760 IF B1<B THEN 1810
1770 IF RND(1)>0.5 THEN 1810
1780 PRINT "**MEASUREMENT**"
1790 GOSUB 3600
1800 IF RND(1)<0.5 THEN 3200
1810 GOSUB 3060
1820 D=0
1830 GOTO 3200
1840 IF RND(1)<0.06 THEN 1970
1850 B=B+30+INT(15*(1-RND(1)^3))
1860 Z9=2
1870 GOSUB 1570
1880 IF B<=99 THEN 1930
1890 P1=3
1900 GOSUB 2110
1910 IF P1=0 THEN 790
1920 GOTO 710
1930 PRINT "THE KICK IS ";
1940 Z2=0
1950 S=3-S
1960 GOTO 2420
1970 PRINT "**BLOCKED** RECOVERED..";
1980 G=-INT(14*RND(1))
1990 GOTO 1490
2000 PRINT "THE PUNT IS ";
2010 IF RND(1)<0.06 THEN 1970
2020 F1=B
2030 Z2=1
2040 S=3-S
2050 Z3=0.65
2060 GOTO 730
2070 PRINT "** TOUCHDOWN**"
2080 P1=1
2090 P(S)=P(S)+6
2100 B=130
2110 PRINT "THE KICK IS ";
2120 IF RND(1)<(B/132)^4 THEN 2150
2130 P1=0
2140 PRINT "NO ";
2150 PRINT "GOOD"
2160 P(S)=P(S)+P1
2170 GOSUB 2200
2180 S=3-S
2190 RETURN
2200 PRINT "SCORE: ME";P(1);" YOU";P(2)
2210 L=0
2220 IF X<5 THEN 2240
2230 IF P(1)<>P(2) THEN 2850
2240 RETURN
2250 PRINT "**SAFETY**"
2260 P(3-S)=P(3-S)+2
2270 F1=30
2280 S=3-S
2290 GOSUB 2200
2300 GOSUB 3520
2310 PRINT "FROM THE 20"
2320 GOTO 730
2330 GOSUB 3520
2340 IF S=2 THEN 2410
2350 PRINT "ON-SIDE";
2360 INPUT I$
2370 IF LEFT$(I$,1)<>"Y" THEN 2410
2380 F2=0.15
2390 Z2=1
2400 O=1
2410 RETURN
2420 B=100-B
2430 PRINT "RECEIVED AT ";
2440 GOSUB 3380
2450 IF Z2*RND(1)>Z3 THEN 2570
2460 IF RND(1)<F2 THEN 2580
2470 G=5+INT(100*RND(1))
2480 IF RND(1)<0.15 THEN 2510
2490 G=INT(24*(1-RND(1)^2))
2500 IF G=0 THEN 2570
2510 B=B+G
2520 PRINT " AND RUN BACK...";
2530 L=1
2540 IF B>99 THEN 1730
2550 PRINT " TO ";
2560 GOSUB 3380
2570 IF RND(1)>F2 THEN 3340
2580 G=0
2590 PRINT "**FUMBLE**";
2600 GOTO 1490
2610 IF S=1 THEN 2640
2620 Y=INT(1+3.5*RND(1))
2630 RETURN
2640 M=INT(55*RND(1)/10.5)+1
2650 IF (B1-B)/(5-D)<3 THEN 2670
2660 M=INT(6-4*RND(1)^2)
2670 IF L*F*60>=C THEN 2750
2680 IF D<4 THEN 2630
2690 PRINT "I'LL ";
2700 IF B<55 THEN 2800
2710 IF 0<4*RND(1)-B1+B THEN 2830
2720 PRINT "TRY FOR A FIELD GOAL"
2730 M=7
2740 RETURN
2750 IF P(2)*U2<=P(1)*U2 THEN 2680
2760 PRINT "TIME OUT"
2770 U2=U2-1
2780 GOSUB 3600
2790 GOTO 2680
2800 PRINT "PUNT"
2810 M=8
2820 RETURN
2830 PRINT "GO FOR IT"
2840 RETURN
2850 IF X<4 THEN 2910
2860 IF P(1)=P(2) THEN 2910
2870 PRINT "THE GAME IS OVER"
2880 PRINT "FINAL ";
2890 GOSUB 2200
2900 STOP
2910 PRINT "END OF PERIOD";X
2920 GOSUB 2200
2930 F=1-F
2940 GOSUB 3600
2950 C=900
2960 X=X+1
2970 IF F<>0 THEN 890
2980 S=3-K
2990 GOTO 660
3000 IF T1=0 THEN 2850
3010 PRINT "2 MINUTE WARNING"
3020 GOSUB 3600
3030 T1=0
3040 C=120
3050 GOTO 960
3060 B1=B+10
3070 IF B1<=100 THEN 3090
3080 B1=100
3090 RETURN
3100 Q=1.3*(A*RND(1)-1)-0.06
3110 A=1
3120 IF Q>=0 THEN 3150
3130 A=0
3140 Q=-Q
3150 M1=M-1
3160 G=D(A,M1)+FNT(Q)*(D(2,M1)-D(A,M1))/3.5
3170 G=G+INT(RND(1)+0.02)*A*100*RND(1)
3180 G=INT(G)
3190 RETURN
3200 D=D+1
3210 IF D=5 THEN 3320
3220 IF D<>  1 THEN 3240
3230 PRINT "1ST";
3240 IF D<>2 THEN 3260
3250 PRINT "2ND";
3260 IF D<>3 THEN 3280
3270 PRINT "3RD";
3280 IF D<4 THEN 3300
3290 PRINT "4TH";
3300 PRINT " AND";B1-B;"   ";
3310 GOTO 890
3320 S=3-S
3330 B=100-B
3340 IF S=2 THEN 850
3350 PRINT "MY ";
3360 GOTO 860
3370 PRINT "BALL ON ";
3380 IF B=50 THEN 3480
3390 V=50-ABS(B-50)
3400 C=C-INT(7+3*RND(1))
3410 IF S=1 THEN 3500
3420 IF B<50 THEN 3450
3430 PRINT "MY ";
3440 GOTO 3460
3450 PRINT "YOUR ";
3460 PRINT V
3470 RETURN
3480 PRINT "THE 50"
3490 RETURN
3500 IF B<50 THEN 3430
3510 GOTO 3450
3520 IF S=2 THEN 3550
3530 PRINT "YOU";
3540 GOTO 3560
3550 PRINT "I";
3560 PRINT " KICK OFF."
3570 F2=0.06
3580 Z2=0
3590 RETURN
3600 L=0
3610 PRINT "TIMEOUT CALLED..."
3620 PRINT
3630 RETURN
3640 IF U=0 THEN 3680
3650 U=U-1
3660 GOSUB 3600
3670 GOTO 3690
3680 PRINT "..WRONG, TRY AGAIN"
3690 INPUT A
3700 IF ABS(INT(A))>17 THEN 3680
3710 Q=R(INT(ABS(A)))
3720 IF Q=0 THEN 3680
3730 IF Q=100 THEN 3640
3740 RETURN
3750 DATA .5,-2,.25,4,.5,13,.55
3760 DATA .4,-2,.3,7,.65,15,.75
3770 DATA .4,-2,.3,6,.6,15,.35
3780 DATA .65,-2,.65,6,.6,17,.9
3790 DATA .4,2,.7,10,.4,27,.2
3800 DATA .1,19,.4,35,.2,100,.1
3810 END

GALAXY.BAS

10 REM		<< GALAXY >>
20 WIDTH 80
30 A$="*":B$="+":C$=".":D$="*"
40 FOR I=1 TO 100
50 GOSUB 90
60 PRINT TAB(A);A$; TAB(B);B$; TAB(C);C$
70 NEXT
80 GOTO 40
90 A=INT(RND(1)*28) : B=INT(RND(1)*25)+28 : C=INT(RND(1)*25)+55
100 X=RND(1)
110 IF X<0.15 THEN SWAP A$,B$ : GOTO 170
120 IF X<0.3 THEN SWAP B$,C$ : GOTO 170
130 IF X<0.45 THEN SWAP A$,C$ : GOTO 170
140 IF X<0.6 THEN SWAP A$,D$ : GOTO 170
150 IF X<0.75 THEN SWAP B$,D$ : GOTO 170
160 IF X<0.9 THEN SWAP C$,D$
170 RETURN

GALAXY2.BAS

10 CLS:KEY OFF
100 REM		<< GALAXY >>
101 WIDTH 80
102 DIM G$(15)
103 FOR X=1 TO 15 : READ G$(X) : NEXT
104 A$="*":B$="+":C$=".":D$="*"
105 FOR I=1 TO 40
106 GOSUB 113
107 PRINT TAB(A);A$; TAB(B);B$; TAB(C);C$
108 NEXT
109 Z1=INT(RND(1)*15)+1
110 Z$=G$(Z1)
111 PRINT TAB(20) Z$
112 GOTO 105
113 A=INT(RND(1)*28) : B=INT(RND(1)*25)+28 : C=INT(RND(1)*25)+55
114 X=RND(1)
115 IF X<0.15 THEN SWAP A$,B$ : GOTO 121
116 IF X<0.3 THEN SWAP B$,C$ : GOTO 121
117 IF X<0.45 THEN SWAP A$,C$ : GOTO 121
118 IF X<0.6 THEN SWAP A$,D$ : GOTO 121
119 IF X<0.75 THEN SWAP B$,D$ : GOTO 121
120 IF X<0.9 THEN SWAP C$,D$
121 RETURN
122 DATA YOU ARE A TRAVELLER LOST IN SPACE
123 DATA I AM BUT A TRAVELLER LOST IN SPACE
124 DATA ALL MANKIND BUT EXPLORERS LOST IN SPACE
125 DATA CAN WE FIND EACH OTHER IN SPACE ?
126 DATA HOW DOES LIFE SEEM FROM UP THERE ?
127 DATA I CAN SEE YOU CLEARLY NOW FROM HERE
128 DATA THE YEARS SEEM TO PASS SO QUICKLY
129 DATA WE'LL MEET HERE IN A MILLION YEARS
130 DATA GREETINGS FROM WHERE THE RATS CRAWL
131 DATA GREETINGS FROM THE CRACKS IN THE WALL
132 DATA I SEE ALL THAT YOU EVER ARE DOING
133 DATA THE SKY IS FALLING ON US ALL !!!
134 DATA I'M AFRAID THAT THE END IS COMING
135 DATA♥N	 WHICH
21583 E PLACE CAN GOD BE MET ?☺
136 DATA WE'LL MEET AGAIN DON'T KNOW WHERE OR WHE☺
25737
19785 E RUNS QUITE SHORT FOR YOU AND ME
138 DATA YOU GROW OLD AT THE SPEED OF LIGHT
139 DATA HAVE YOU MADE PEACE WITH YOUR MAKER ?
140 DATA HAVE YOU EXISTED AS A GIVER OR A TAKER ?
141 DATA WILL YOU BE ABLE TO MEET ME OUT HERE ?
142 DATA REMEMBER ALL THE GREAT TIMES WE HAD ?
143 DATA WE SHALL NEVELIST
18516 IS PLARUN4178L WE DIE
16719 D"
20050 AL ENESAVE"
17486  THE DCONT1808F MAN
11409 "LPT1:"1808PLE WTRON52734AYS BE FRTROFF41246ER
146 DATAKEY
20293 PLE WILSCREEN 0,0,041246REEDOM

GREEKRTS.BAS

100 REM
110 REM DESCRIPTION--TESTS KNOWLEDGE OF ENGLISH TRANSLATION OF
120 REM   GREEK ROOTS
130 REM
140 REM SOURCE--UNKNOWN
150 REM
160 REM INSTRUCTIONS--TYPE "RUN" AND RESPOND TO TEST QUESTIONS
170 REM
180 DIM A$(40)
190 FOR I=1 TO 40
200 READ A$(I)
210 NEXT I
220 PRINT "WHAT IS YOUR NAME";
230 INPUT N$
240 PRINT "THESE GREEK ROOTS ARE FOUND IN MANY SCIENTIFIC TERMS."
250 PRINT "YOU WILL BE ASKED TO GIVE A ONE WORD MEANING FOR EACH"
260 PRINT "ROOT AND GET 10 POINTS FOR EACH CORRECT ANSWER. THE COMPUTER"
270 PRINT "WILL KEEP SCORE. GOOD LUCK, " ;N$
280 PRINT
290 FOR Z = 1 TO 9 STEP 2
300 FOR X = 0 TO 30 STEP 10
310 PRINT A$(Z+X)
320 NEXT X
330 NEXT Z
340 PRINT
350 H=0
360 Z= 20
370 X = 2*INT(Z*RND(1)+1)
380 PRINT "WHICH ROOT MEANS ";A$(X);
390 INPUT W$
400 IF W$ = A$(X-1) THEN 440
410 PRINT "YOU MISSED THAT ONE, ";N$;". THE RIGHT ANSWER IS ";A$(X-1);"."
420 PRINT
430 GOTO 470
440 PRINT "THAT IS RIGHT."
450 PRINT
460 H= H+10
470 IF Z = 1 THEN 580
480 A$(X)=A$(2*Z)
490 A$(X-1) = A$(2*Z-1)
500 Z = Z-1
510 GOTO 370
520 DATA ASTRON,STAR,AUTOS,SELF,BIOS,LIFE,CHRONOS,TIME:
530 DATA DECA,TEN,DEMOS,PEOPLE,GE,EARTH,GRAPHO,WRITE:
540 DATA LITHOS,STONE,METRON,MEASURE,MONOS,ONE,ORTHOS:
550 DATA RIGHT,PHILOS,LOVING,PHONE,SOUND,POLYS,MANY:
560 DATA SCOPOS,WATCHER,TELE,FAR,THERMO,HEAT:
570 DATA ZOON,ANIMAL,ANTHROPOS,MAN:
580 IF H=200 THEN 620:
590 J$=STR$(H):
600 PRINT "YOUR SCORE WAS ";J$;", ";N$;".":
610 STOP:
620 PRINT N$;", YOU DID THIS WITHOUT ONE MISTAKE. CONGRATULATIONS.":
630 END:

HIDESEEK.BAS

1 CLS :KEY OFF
100 DIM P(4,2)
110 PRINT "THIS IS THE GAME OF HIDE AND SEEK."
120 PRINT
130 PRINT "THE OBJECT OF THE GAME IS TO FIND THE FOUR PLAYERS "
140 PRINT "WHO ARE HIDDEN ON A 10 BY 10 GRID."
150 PRINT
160 PRINT "HOMEBASE WILL BE THE POSITION AT (0,0) AND ANY GUESS "
170 PRINT "YOU MAKE SHOULD CONTAIN TWO NUMBERS.  THE FIRST GIVES"
180 PRINT "THE UNIT DISTANCE RIGHT OF THE HOMEBASE AND THE SECOND"
190 PRINT "IS THE UNIT DISTANCE ABOVE HOMEBASE."
200 PRINT
210 PRINT "YOU WILL HAVE TEN ATTEMPTS TO LOCATE THESE PLAYERS"
220 PRINT "AND WILL BE TOLD HOW CLOSE YOUR GUESS IS"
230 PRINT "TO EACH PLAYER."
240 PRINT
250 PRINT "IF AFTER 10 TRIES YOU ARE UNABLE TO CARRY OUT THIS TASK"
260 PRINT "YOU MAY CONTINUE TO BE 'IT', BUT THE PLAYERS WILL"
270 PRINT "BE PERMITTED TO MOVE TO NEW LOCATIONS."
280 PRINT
290 PRINT
300 PRINT "ARE YOU READY TO BEGIN (YES OR N0)"
310 INPUT A$
320 IF A$="NO" GOTO 710
330 GOSUB 730
340 LET T=0
350 LET T=T+1
360 PRINT
370 PRINT
380 PRINT "TURN NUMBER";T;", WHAT IS YOUR GUESS?"
390 INPUT M,N
400 FOR I=1 TO 4
410 IF P(I,1)=-1 GOTO 490
420 IF P(I,1)<>M GOTO 470
430 IF P(I,2)<>N GOTO 470
440 LET P(I,1)=-1
450 PRINT "YOU HAVE FOUND PLAYER";I
460 GOTO 490
470 LET D=SQR((P(I,1)-M)^2+(P(I,2)-N)^2)
480 PRINT "YOUR DISTANCE FROM PLAYER";I;"IS";INT(D*100)/100;"UNIT(S)."
490 NEXT I
500 FOR J=1 TO 4
510 IF P(J,1)<>-1 GOTO 560
520 NEXT J
530 PRINT
540 PRINT "YOU HAVE FOUND ALL THE PLAYERS IN ";T;" TURNS!"
550 GOTO 670
560 IF T<10 GOTO 350
570 PRINT
580 PRINT "YOU DIDN'T FIND ALL OF THE PLAYERS IN TEN TRIES."
590 PRINT " DO YOU WANT TO KNOW WHERE THE PLAYERS YOU DID NOT"
600 PRINT "FIND WERE HIDDEN (YES OR NO)"
610 INPUT B$
620 IF B$="NO" GOTO 670
630 FOR I=1 TO 4
640 IF P(I,1)=-1 GOTO 660
650 PRINT "PLAYER";I;"HID AT (";P(I,1);",";P(I,2);")."
660 NEXT I
670 PRINT
680 PRINT "DO YOU WANT TO PLAY AGAIN (YES OR NO)"
690 INPUT C$
700 IF C$="YES" GOTO 330
710 PRINT "THEN PLEASE LOGOUT."
720 GOTO 790
730 FOR J=1 TO 2
740 FOR I=1 TO 4
750 P(I,J)=INT(RND(1)*10)
760 NEXT I
770 NEXT J
780 RETURN
790 END

IQUEEN.BAS

100 REM CONVERTED TO U1106 DEC. 3, 1971 BY T.EDWARDS
110 REM   NAME--1QUEEN
120 REM
130 REM   DESCRIPTION--PLAYS GAME BASED ON CHESS MOVES.
140 REM
150 REM   SOURCE--UNKNOWN
160 REM   MODIFIED AUGUST 1970 BY RICHARD HART
170 REM
180 REM   INSTRUCTIONS--TYPE "RUN" AND FOLLOW INSTRUCTIONS.
190 REM
200 REM
210 REM   *  *  *  *  *  *   MAIN PROGRAM  *  *  *  *  *  *  *
220 REM
221 CLS:KEY OFF
230 PRINT "DO YOU WISH INSTRUCTIONS";
240 DIM S(64),T(158)
250 FOR I = 1 TO 64
260 X = (INT((I-1)/8)+1)*11+(I-INT((I-1)/8)*8-1)*10
270 S(I) = X
280 T(X) = I
290 NEXT I
300 INPUT W$
310 IF W$="NO" THEN 370
320 IF W$="YES" THEN 350
330 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO";
340 GOTO 300
350 GOSUB 1590
360 GOTO 380
370 GOSUB 1750
380 REM ERROR CHECKS.
390 PRINT "WHERE WOULD YOU LIKE TO START";
400 INPUT M1
410 IF M1 < 1 THEN 590
420 IF M1 > 64 THEN 480
430 M1 = S(M1)
440 T1 = INT(M1/10)
450 U1 = M1 - 10*T1
460 IF U1 = 1 THEN 520
470 IF U1 = T1 THEN 520
480 PRINT "PLEASE READ THE DIRECTIONS AGAIN."
490 PRINT "YOU HAVE BEGUN ILLEGALLY."
500 PRINT
510 GOTO 390
520 GOSUB 780
530 PRINT "MACHINE MOVES TO SQUARE";T(M)
540 IF M = 158 THEN 1330
550 PRINT "WHAT IS YOUR MOVE";
560 INPUT M1
570 IF M1 > 64 THEN 600
580 IF M1 >0 THEN 640
590 IF M1 < 0 THEN 480
600 PRINT
610 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT."
620 PRINT
630 GOTO 1490
640 M1 = S(M1)
650 IF M1 <= M THEN 1200
660 T1 = INT(M1/10)
670 U1 = M1 - 10*T1
680 P = U1 - U
690 IF P <> 0 THEN 730
700 L = T1 - T
710 IF L <= 0 THEN 1200
720 GOTO 520
730 IF T1 - T <> P THEN 750
740 GOTO 520
750 IF T1 - T <> 2*P THEN 1200
760 GOTO 520
770 REM LOCATE MOVE FOR MACHINE.
780 IF M1 = 41 THEN 1010
790 IF M1 = 44 THEN 1010
800 IF M1 = 73 THEN 1010
810 IF M1 = 75 THEN 1010
820 IF M1 = 126 THEN 1010
830 IF M1 = 127 THEN 1010
840 IF M1 = 158 THEN 1240
850 C = 0
860 FOR K = 7 TO 1 STEP -1
870 U = U1
880 T = T1 + K
890 GOSUB 1390
900 IF C = 1 THEN 990
910 U = U + K
920 GOSUB 1390
930 IF C = 1 THEN 990
940 T = T + K
950 GOSUB 1390
960 IF C = 1 THEN 990
970 NEXT K
980 GOTO 1010
990 C = 0
1000 RETURN
1010 GOSUB 1040
1020 RETURN
1030 REM RANDOM MOVE.
1040 Z=RND(1)
1050 IF Z > 0.6 THEN 1150
1060 IF Z > 0.3 THEN 1110
1070 U = U1
1080 T = T1 + 1
1090 M = 10*T + U
1100 RETURN
1110 U = U1 + 1
1120 T = T1 + 2
1130 M = 10*T + U
1140 RETURN
1150 U = U1 + 1
1160 T = T1 + 1
1170 M = 10*T + U
1180 RETURN
1190 REM ILLEGAL MOVE MESSAGE.
1200 PRINT
1210 PRINT "Y O U   C H E A T . . . TRY AGAIN";
1220 GOTO 560
1230 REM PLAYER WINS.
1240 PRINT
1250 PRINT "C O N G R A T U L A T I O N S . . . "
1260 PRINT
1270 PRINT "YOU HAVE WON--VERY WELL PLAYED."
1280 PRINT "IT LOOKS LIKE I HAVE MET MY MATCH."
1290 PRINT "THANKS FOR PLAYING--I CANNOT WIN ALL THE TIME."
1300 PRINT
1310 GOTO 1490
1320 REM MACHINE WINS.
1330 PRINT
1340 PRINT "NICE TRY, BUT IT LOOKS LIKE I HAVE WON."
1350 PRINT "THANKS FOR PLAYING."
1360 PRINT
1370 GOTO 1490
1380 REM TEST FOR MACHINE MOVE.
1390 M = 10*T + U
1400 IF M = 158 THEN 1460
1410 IF M = 127 THEN 1460
1420 IF M = 126 THEN 1460
1430 IF M = 75 THEN 1460
1440 IF M = 73 THEN 1460
1450 RETURN
1460 C = 1
1470 GOTO 1450
1480 REM ANOTHER GAME?
1490 PRINT "ANYONE ELSE CARE TO TRY";
1500 INPUT Q$
1510 PRINT
1520 IF Q$="YES" THEN 390
1530 IF Q$="NO" THEN 1560
1540 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO";
1550 GOTO 1500
1560 PRINT "OK - - THANKS AGAIN."
1570 STOP
1580 REM DIRECTIONS, ETC. . .
1590 PRINT "WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS MOVES."
1600 PRINT "OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE RIGHT,"
1610 PRINT "DOWN, AND DIAGONALLY DOWN TO THE RIGHT."
1620 PRINT
1630 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE"
1640 PRINT "LOWER RIGHT-HAND SQUARE BY ALTERNATING MOVES BETWEEN"
1650 PRINT "YOU AND THE MACHINE/  THE FIRST ONE TO PLACE THE QUEEN"
1660 PRINT "THERE, WINS.  REMEMBER THAT WE ARE ONLY PLAYING WITH"
1670 PRINT "ONE QUEEN.  THAT IS, WE ARE BOTH MOVING THE SAME QUEEN."
1680 PRINT
1690 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE"
1700 PRINT "SQUARES ON THE TOP ROW OR THE LEFT-HAND COLUMN."
1710 PRINT "THAT WILL BE YOUR FIRST MOVE."
1720 PRINT "WE WILL THEN ALTERNATE MOVES."
1730 PRINT "YOU MAY FORFEIT ANY TIME BY TYPING  - 0 -  AS YOU MOVE!"
1740 PRINT "BESURE TO HIT THE RETURN KEY AFTER EACH RESPONSE."
1750 PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
1751 A$=INKEY$:IF A$="" THEN 1751
1760 FOR A = 0 TO 7
1770 FOR B = 1 TO 8
1780 I = 8*A + B
1790 PRINT TAB(6*(B-1)+1);I;
1800 NEXT B
1810 PRINT
1820 PRINT
1830 PRINT
1840 NEXT A
1850 PRINT
1860 RETURN
1870 END

MEMBRAIN.BAS

10 CLS:KEY OFF
11 PRINT TAB(20) "CELL MEMBRAIN":PRINT
20 REM BY KEN WITT     TRACY HIGH SCHOOL      CELL NOD. D. NIXON
30 READ H,S,K,N,C,W,P
40 DATA 6700,30,53,0,1,0,0
50 PRINT"DO YOU WISH TO SEE AN EXPLANATION OF THIS PROGRAM"
60 PRINT"(1=YES, 0=NO)"
70 INPUT Q9
80 IF Q9=0 THEN 1580
90 PRINT "IN THIS PROGRAM YOU WILL BE ROLE PLAYING. YOU WILL ACT AS"
100 PRINT "A CELL MEMBRANE AND YOUR RESPONSIBILITY WILL BE TO MAKE"
110 PRINT "ADJUSTMENTS IN THE FOLLOWING ITEMS:"
120 PRINT "1.WATER"
130 PRINT "2.SUGAR"
140 PRINT "3.POTASSIUM IONS"
150 PRINT "4.SODIUM IONS"
160 PRINT "5.CHLORIDE IONS"
170 PRINT "6.WASTE(PRIMARILY AMMONIA COMPOUNDS)"
180 PRINT "----------------------------------------------"
190 PRINT "SAFE CONCENTRATIONS ARE AS FOLLOWS:"
200 PRINT "          WATER BETWEEN 6000 AND 8000 MOLECULES"
210 PRINT "          SUGAR BETWEEN 10 AND 35 MOLECULES"
220 PRINT "          POTASSIUM BETWEEN 40 AND 53 IONS"
230 PRINT "          SODIUM BETWEEN 0 AND 13 IONS"
240 PRINT "          CHLORIDE BETWEEN 1 AND 3 IONS"
250 PRINT "          WASTE BETWEEN 0 AND 10 MOLECULES"
260 PRINT "------------------------------------------------------"
270 PRINT
280 PRINT
290 PRINT "YOU WILL BE A CELL MEMBRANE OF ESCHERICHIA COLI. YOUR"
300 PRINT "CONCENTRATIONS ARE:"
310 PRINT "          WATER-67% OR 6700 MOLECULES     SUGAR-30 MOLECULES"
320 PRINT "          POTASSIUM IONS-53            NO SODIUM OR WASTE"
330 PRINT "          A TRACE OF CHLORIDE ION"
340 GOTO 1580
350 PRINT
360 PRINT "-------------------------------------------------------"
370 PRINT "UNDERSTAND THAT AS YOU DO ANY OF THE FOLLOWING ENERGY WILL"
380 PRINT "BE USED UP IN THE AMOUNTS SHOWN."
390 PRINT "      GET RID OF WASTE-4 MOLECULES OF SUGAR"
400 PRINT "--------------------------------------------------------"
410 PRINT "CHANGES IN THE CELL DUE TO OSMOSIS AND DIFFUSION TAKE"
420 PRINT "PLACE AUTOMATICALLY. OTHER ENERGY FOR OTHER FUNCTIONS"
430 PRINT "OF THE CELL, SUCH AS PREPARATION FOR REPRODUCTION ALSO"
440 PRINT "DEPRICIATE AUTOMATICALLY."
450 PRINT "WASTE BUILD UP FROM SUCH ENERGY ALSO TAKES PLACE."
460 PRINT
470 PRINT "PRETEND YOU ARE NOW PLACED INTO A SOLUTION WHICH HAS THE"
480 PRINT "FOLLOWING CONCENTRATIONS:"
490 PRINT "(THE CONCENTRATIONS OF THIS SOLUTION ALWAYS REMAINS CONSTANT)"
500 PRINT "      WATER-87%            SUGAR-10%         SODIUM-TRACE"
510 PRINT "      POTASSIUM-TRACE      CHLORIDE-TRACE"
520 PRINT "*********************************************************"
530 PRINT "THE CELL NOW BEGINS TO BURN SUGAR FOR ENERGY. DIFUSION AND"
540 PRINT "OSMOTIC POTENTIALS GO INTO EFFECT. YOU ARE NOW READY TO"
550 PRINT "ATTEMPT TO KEEP THIS CELL ALIVE!"
560 PRINT "========================================================="
570 LET J=0
580 LET P=P+1
590 IF P=13 THEN 1500
600 PRINT "CHOOSE THE NUMBER OF THE ITEM YOU WISH TO CHANGE!"
610 INPUT X
620 LET H=H+400
630 LET S=S-4
640 LET K=K-2
650 LET N=N+2
660 LET W=W+4
670 IF X=1 THEN 730
680 IF X=2 THEN 950
690 IF X=3 THEN 1040
700 IF X=4 THEN 1090
710 IF X=5 THEN 1190
720 IF X=6 THEN 1220
730 PRINT "WHAT IS THE NUMBER OF WATER MOLECULES YOU WANT REMOVED"
740 INPUT A
750 IF A<H THEN 780
760 PRINT "YOU DONT HAVE THAT MANY DUM-DUM!!!"
770 GOTO 730
780 LET H=H-A
790 PRINT "ENERGY IS USED HERE TO GET RID OF WATER."
800 LET S=S-4
810 PRINT
820 PRINT "PRESENT CONCENTRATIONS ARE AS FOLLOWS:"
830 PRINT"POTASSIUM IONS--";K,"WASTE MOLECULES--";W
840 PRINT"SODIUM INS--";N,"WATER MOLECULES--";H
850 PRINT"CHLORIDE IONS--";C,"SUGAR MOLECULES--";S
860 PRINT
870 IF H<6000 THEN 1310
880 IF H>8000 THEN 1310
890 IF S<10 THEN 1340
900 IF S>35 THEN 1340
910 IF K<40 THEN 1390
920 IF K>60 THEN 1390
930 IF W>10 THEN 1430
940 GOTO 570
950 PRINT "HOW MANY SUGAR MOLECULES DO YOU WANT"
960 INPUT B
970 IF B<150 THEN 1000
980 PRINT "THE SOLUTION CANNOT OFFER YOU THAT MANY AT ONCE!"
990 GOTO 950
1000 LET S=S+B
1010 PRINT "ENERGY IS NEEDED FOR PINOCYTOSIS!"
1020 LET S=S-3
1030 GOTO 810
1040 PRINT "POTASSIUM IONS ARE REGULATED BY ACTIVE TRANSPORT."
1050 PRINT "MORE SPECIFIC POTASSIUM IONS ARE REGULATED BY THE"
1060 PRINT "SODIUM PUMP, WHICH IS FOR EVERY SODIUM ION PUMPED OUT"
1070 PRINT "ONE POTASSIUM ION IS GAINED ON THE INSIDE OF THE MEMBRANE"
1080 GOTO 580
1090 PRINT "HOW MANY SODIUM IONS DO YOU WANT REMOVED"
1100 INPUT D
1110 IF D<N THEN 1140
1120 PRINT "YOU DO NOT HAVE THAT MANY!!!"
1130 GOTO 1090
1140 LET N=N-D
1150 LET K=K+D
1160 PRINT "ENERGY IS NEEDED FOR ACTIVE TRANSPORT!!"
1170 LET S=S-2
1180 GOTO 810
1190 PRINT "YOU HAVE LITTLE OR NO CONTROL OR NEED TO CORRECT THE"
1200 PRINT "CHLORIDE ION CONCENTRATION!!"
1210 GOTO 580
1220 PRINT "HOW MANY WASTE MOLECULES DO YOU WANT TO GET RID OF"
1230 INPUT E
1240 IF E<W-3 THEN 1270
1250 PRINT "YOU DO NOT HAVE THAT MANY TO GET RID OF!"
1260 GOTO 1220
1270 LET W=W-E
1280 PRINT "ENERGY IS NEEDED TO GET RID OF WASTE!"
1290 LET S=S-4
1300 GOTO 810
1310 PRINT "***CRISIS***  ADJUST WATER CONCENTRATION IMMEDIATELY!!"
1320 LET J=J+1
1330 GOTO 1460
1340 PRINT "***CRISIS***  ADJUST SUGAR CONCENTRATION IMMEDIATELY!!"
1350 IF S>0 THEN 1370
1360 PRINT "YOU ARE BURNING PROTOPLASM DUMB-DUMB."
1370 LET J=J+1
1380 GOTO 1460
1390 PRINT "***CRISIS***  ADJUST POTASSIUM ION CONCENTRATION "
1400 PRINT "              IMMEDIATELY!!"
1410 LET J=J+1
1420 GOTO 1460
1430 PRINT "***CRISIS***  ADJUST WASTE CONCENTRATION IMMEDIATELY!!"
1440 LET J=J+1
1450 PRINT
1460 IF J<3 THEN 580
1470 PRINT "YOU DID NOT FUNCTION WELL AS A CELL MEMBRANE."
1480 PRINT "***YOUR CELL IS NOW DEAD********"
1490 GOTO 1570
1500 PRINT "***VERY GOOD***  YOU HAVE MAINTAINED THE CELL LONG"
1510 PRINT "ENOUGH TO REACH MATURITY. THE CELL IS NOW ABOUT TO"
1520 PRINT "REPRODUCE. DO YOU WISH TO TRY TO KEEP ONE OF THE "
1530 PRINT "DAUGHTER CELLS ALIVE (1=YES AND 0=NO)"
1540 INPUT Q
1550 LET P=0
1560 IF Q=1 THEN 570
1570 STOP
1580 PRINT "DO YOU WISH TO SEE AN EXPLANATION OF CONCENTRATIONS"
1590 PRINT "AND RULES  (1=YES, AND 0=NO)"
1600 INPUT Z
1610 IF Z=1 THEN 350
1620 IF Z=0 THEN 570
1630 END

MINIMATH.BAS

70 DEF SEG: POKE 106,0
80 MATRIX$="NO"
90 GOTO 110
100 MATRIX$="YES"
110 CLS:BEEP:KEY OFF:REM 'append exercises as MiniMath.BAS
120 COLOR 0,7 'reverse image (b/w)
130 PRINT "                                                                                ";
140 PRINT "                                    MINIMATH                                    ";
150 PRINT "                                                                                ";
160 COLOR 7,0 'return to default (w/b)
180 PRINT:INPUT "Enter the number you would like squared ==> ",S
190 PRINT: COLOR 15,0 'highlight next words
200 PRINT TAB(30) S "SQUARED IS";
210 COLOR 31: PRINT S^2: COLOR 7 'blink & highlight + return to default (w/b)
220 PRINT : PRINT
230 GOTO 240
240 PI=3.141593
250 INPUT "Enter the number you would like cubed ==> ",C
260 PRINT: COLOR 15,0 'highlight next words
270 PRINT TAB(31) C "CUBED IS";
280 COLOR 31: PRINT C^3: COLOR 7 'blink & highlight + return to default (w/b)
290 PRINT : PRINT
300 GOTO 310
310 INPUT "Enter the radius of a circle whose area you seek ==> ",R
320 A=PI*R^2
330 PRINT: COLOR 15,0 'highlight next words
340 PRINT TAB(24) "AREA OF THE CIRCLE IS";
350 COLOR 31: PRINT A: COLOR 7 'blink & highlight + return to default (w/b)
360 PRINT : PRINT
370 GOTO 380
380  PI=3.141593
390 RADIANS=ATN(1)
400 DEGREES=RADIANS*180/PI
410 INPUT "Enter the number of radians to be converted to degrees ==> ",N
420 D=N*180/PI
430 PRINT: COLOR 15,0 'highlight next words
440 PRINT TAB(21) N "RADIANS EQUALS";
450 COLOR 31: PRINT D; 'blink & highlight
460 COLOR 15,0 'highlight next word
470 PRINT "DEGREES": COLOR 7 'return to default (w/b)
480 PRINT : PRINT
490 INPUT "Do you have other problems to solve";P$
500 PRINT
510 IF P$="YES" GOTO 530 OR IF P$="yes" GOTO 530: ELSE GOTO 610
520 IF P$="NO" GOTO 610 OR IF P$="no" GOTO 610
530 INPUT "Enter your preference:  a number squared   = S (if no, ENTER) ",S$
540 IF S$="S" GOTO 180 OR IF S$="s" GOTO 170: ELSE GOTO 550
550 INPUT "                        a number cubed     = C (if no, ENTER) ",C$
560 IF C$="C" GOTO 220 OR IF C$="c" GOTO 220: ELSE GOTO 570
570 INPUT "                        area of a circle   = A (if no, ENTER) ",A$
580 IF A$="A" GOTO 290 OR IF A$="a" GOTO 290: ELSE GOTO 590
590 INPUT "                        radians to degrees = D (if no, ENTER) ",D$
600 IF D$="D" GOTO 360 OR IF D$="d" GOTO 360: ELSE GOTO 610
610 REM 'randomizer
620 BEEP: PRINT
630 R$="...HAPPY TO BE OF SERVICE...": COLOR 15,0: DIM R(30) 'highlight signoff
640 Q=Q+1
650 R=INT(RND(1)*30)+1
660 IF Q=1 THEN GOTO 700
670 FOR I=1 TO Q-1
680 IF R(I)=R THEN GOTO 650
690 NEXT I
700 R(Q)=R
710 PRINT MID$(R$,Q,1);
720 IF Q=30 THEN COLOR 7: GOTO 740
730 GOTO 640
740 PRINT:CLS:COLOR 0,7 'reverse image (b/w)
750 PRINT "                     Copyright (1982):  Phillip Jacka, AIA                     ";
760 COLOR 7,0 'return to default (w/b)
770 BEEP: KEY ON
780 PRINT:LOCATE 15,1:PRINT "Press ESC key to resume Program Selector"
790 IF INKEY$<>CHR$(27) THEN GOTO 790
800 CMD$=INKEY$
810 IF CMD$=" " THEN GOTO 610
820 IF CMD$=CHR$(27) THEN GOTO 830
830 KEY OFF:MATRIX$="YES"
840 IF MATRIX$="YES" THEN CHAIN "CHOICE83.BAS",1000
999 END

REVERSE.BAS

5 'blink and highlight title
10 CLS:KEY OFF:COLOR 31: PRINT TAB(32);"REVERSE": COLOR 7
20 PRINT TAB(15);"Creative Computing  Morristown, New Jersey"
30 PRINT:PRINT:PRINT
100 PRINT "REVERSE ... a game of skill":PRINT
130 DIM A(20)
140 REM *** N=number of numbers
150 N=9
160 PRINT "Do you want to know the rules";
170 INPUT A$
180 IF A$="NO" OR A$="N" OR A$="n" THEN 210
190 GOSUB 710
200 REM *** make a random list: A(1) to A(N)
210 A(1)=INT((N-1)*RND(1)+2)
220 FOR K=2 TO N
230 A(K)=INT(N*RND(1)+1)
240 FOR J=1 TO K-1
250 IF A(K)=A(J) THEN 230
260 NEXT J: NEXT K
280 REM *** print original list and start game
290 PRINT:PRINT "Here we go ...  The list is:"
310 T=0
320 GOSUB 610
330 PRINT "How many shall I REVERSE";
340 INPUT R
350 IF R=0 THEN 520
360 IF R<=N THEN 390
370 PRINT "OOPS!  Too many!  At most, I can reverse";N: GOTO 330
390 T=T+1
400 REM *** reverse R numbers and print new list
410 FOR K=1 TO INT(R/2)
420 Z=A(K)
430 A(K)=A(R-K+1)
440 A(R-K+1)=Z
450 NEXT K
460 GOSUB 610
470 REM *** check for a win
480 FOR K=1 TO N
490 IF A(K)<>K THEN 330
500 NEXT K
510 PRINT "You won it in";T;"moves!":PRINT
520 PRINT
530 PRINT "Try again (YES or NO)";
540 INPUT A$
550 IF A$="YES" THEN 210:IF A$=CHR$(27) THEN KEY OFF:CHAIN "CHOICE83.BAS",1000
560 PRINT:PRINT "OK ... I hope you had fun.":GOTO 999
600 REM *** subroutine to print list
610 PRINT: FOR K=1 TO N:PRINT A(K);:NEXT K
650 PRINT: PRINT: RETURN
700 REM *** subroutine to print the rules
710 CLS:PRINT: PRINT "This is the game of REVERSE.  To win, all you need do is"
720 PRINT "arrange a list of numbers (1 through";N;"), in numerical order,"
730 PRINT "from left to right.  In order to move, you tell me how many numbers"
740 PRINT "(counting from the left) you would like me to REVERSE."
750 PRINT "For example, if the current list is:"
760 PRINT: PRINT "2 3 4 5 1 6 7 8 9"
770 PRINT: PRINT "... and you ask to REVERSE 4, the result will become:"
780 PRINT: PRINT "5 4 3 2 1 6 7 8 9"
790 PRINT: PRINT "Now, should you reverse 5, you will WIN!"
800 PRINT: PRINT "1 2 3 4 5 6 7 8 9": PRINT
810 PRINT "No doubt you will enjoy this game.  However, if you decide to quit,"
820 PRINT "simply REVERSE '0` (zero).":PRINT:FOR Z=1 TO 10000:NEXT Z:RETURN
999 CHAIN "CHOICE83.BAS",1000

SHOP.BAS

10 CLS:KEY OFF
100 REM AUTHOR/IMPLEMENTOR - ?/E. KURAMOTO
110 DIM L$(35)
120 DIM J(35)
130 DEF FNA(P1)=T+(N*P1)
140 A9=-23.119
150 PRINT"HELLO, WITH WHOM AM I SPEAKING";
160 INPUT N$
170 PRINT "WELL ";N$;" HOW ARE YOU FEELING TODAY";
180 INPUT C$
190 FOR I=1 TO 6
200 READ H$
210 IF C$=H$ THEN 250
220 NEXT I
230 PRINT "THAT'S TOO BAD, I HOPE YOU FEEL BETTER SOON."
240 GOTO 260
250 PRINT "THAT'S FUNNY, YOU DON'T LOOK SO GOOD FROM HERE."
260 PRINT
270 FOR I=I+1 TO 6
280 READ C$
290 NEXT I
300 PRINT "DO YOU KNOW HOW TO USE THIS PROGRAM";
310 INPUT K$
320 IF K$="YES" THEN 380
330 PRINT
340 PRINT"  THIS PROGRAM WILL ALLOW THE USER TO DO HIS SHOPPING VIA"
350 PRINT"THE TELETYPE.  WHENEVER I ASK FOR THE NEXT ITEM, SELECT AN"
360 PRINT"ITEM FROM THE FOLLOWING LIST:"
370 PRINT
380 FOR I=1 TO 16 STEP 4
390 IF T1>=3 THEN 420
400 READ L$(I),L$(I+1),L$(I+2),L$(I+3)
410 IF K$="YES" THEN 430
420 PRINT "   ";L$(I);", ";L$(I+1);", ";L$(I+2);", ";L$(I+3)
430 NEXT I
440 PRINT
450 PRINT "WHEN YOU WANT YOUR TOTAL, JUST TYPE TOTAL AND YOU WILL"
460 PRINT"BE GIVEN YOUR BILL."
470 PRINT
480 PRINT"HAVE FUN."
490 PRINT
500 PRINT"WHAT WOULD YOU LIKE";
510 INPUT I$
520 IF I$="TOTAL" THEN 2260
530 IF I$="SPECIAL" THEN 2500
540 FOR I=1 TO 16
550 IF I$=L$(I) THEN 690
560 NEXT I
570 IF T1<4 THEN 600
580 PRINT "YOU'RE AN IMPOSSIBLE CASE ";N$
590 T1=-100
600 IF T1<3 THEN 660
610 PRINT "ARE YOU SURE YOU KNOW HOW TO USE THIS PROGRAM";
620 INPUT U$
630 PRINT "MAYBE I'D BETTER REFRESH YOUR MEMORY A BIT."
640 T1=4
650 GOTO 330
660 PRINT "SORRY, WE DON'T STOCK ";I$;", TRY AGAIN."
670 T1=T1+1
680 GOTO 500
690 IF I$<>"BEER" THEN 980
700 PRINT
710 PRINT "HOW OLD ARE YOU ";
720 INPUT A
730 IF A9= -23.119 THEN 780
740 IF A9=A THEN 790
750 PRINT "THAT'S NOT WHAT YOU SAID THE FIRST TIME ";N$;", I DON'T"
760 PRINT "KNOW IF I CAN TRUST YOU ANYMORE."
770 GOTO 500
780 A9=A
790 IF A>3 THEN 830
800 IF A <90 THEN 830
810 PRINT "OK ";N$;" IF THAT'S THE WAY YOU WANT TO BE, FORGET IT."
820 GOTO 500
830 IFA=>21 THEN 860
840 PRINT "SORRY, NO ALCOHOLIC BEVERAGES WILL BE SOLD TO MINORS."
850 GOTO 500
860 PRINT "BEER IS $1.50 PER SIX-PACK, HOW MANY SIX PACKS";
870 GOSUB 2450
880 IF N>8 THEN 930
890 T=FNA(150)
900 B=1
910 B3=N
920 GOTO 500
930 PRINT "ARE YOU GOING TO DRINK IT ALL YOURSELF";
940 INPUT D$
950 IF D$<> "YES"THEN 890
960 PRINT"SORRY, WE DONT'T SERVE ALCOHOLICS HERE."
970 GOTO 500
980 IF I$<> "CHICKEN" THEN 1090
990 PRINT "CHICKEN IS .69 CENTS A POUND, HOW MANY POUNDS";
1000 GOSUB 2450
1010 IF N>14 THEN 1070
1020 IF N>1.5 THEN 1050
1030 PRINT "IF YOU CAN'T DO ANY BETTER THAN THAT ";N$;" I SUGGEST YOU"
1040 PRINT"STOP BY THE LITTLE TAVERN ON THE WAY HOME."
1050 T=FNA(69)
1060 GOTO 500
1070 PRINT "THAT'S NO CHICKEN, THAT'S AN EAGLE AND WE AIN'T GOT NONE."
1080 GOTO 500
1090 IF I$<> "COOKIES" THEN 1170
1100 IF X<>1 THEN 1130
1110 PRINT"YOU'VE AREADY HAD YOUR QUOTA OF COOKIES."
1120 GOTO 500
1130 PRINT "COOKIES ARE $.79 PER DOZEN AND ONE DOZEN IS ENOUGH."
1140 T=T+79
1150 X=1
1160 GOTO 500
1170 IF I$<>"SODA"THEN 1260
1180 PRINT "SODA POP IS $.65 A CARTON, HOW MANY CARTONS";
1190 GOSUB 2450
1200 IF N>11 THEN 1230
1210 T=FNA(65)
1220 GOTO 500
1230 PRINT "YOU RATE OUR DISCOUNT PRICE FOR ADDICTS, ONLY $.50"
1240 T=FNA(50)
1250 GOTO 500
1260 IF I$<>"SOUP" THEN 1390
1270 PRINT "WHAT KIND OF SOUP WOULD YOU LIKE";
1280 INPUT T$
1290 PRINT"YUM, ";T$;" SOUP IS ESPECIALLY GOOD, AND A BARGAIN AT"
1300 PRINT"$.25 PER CAN, HOW MANY CANS";
1310 GOSUB 2450
1320 IF INT(N)=N THEN 1350
1330 PRINT "SORRY, WE DONT'T SPLIT UP CANS FOR ANYBODY."
1340 GOTO 500
1350 IF N<10 THEN 1370
1360 PRINT"WOW, YOU MUST REALLY LIKE ";T$;" SOUP."
1370 T=FNA(25)
1380 GOTO 500
1390 IF I$<> "STEAK" THEN 1650
1400 PRINT "WOULD YOU LIKE SIRLOIN, PORTERHOUSE OR ROUND STEAK";
1410 INPUT T$
1420 IF T$<> "ROUND" THEN 1500
1430 PRINT "THERE IS A SPECIAL ON ROUND STEAK TODAY, ONLY $.89"
1440 PRINT "PER POUND, HOW MANY POUNDS";
1450 GOSUB 2450
1460 IF N<10 THEN 1480
1470 PRINT "I WISH ALL CUSTOMERS WERE AS AFFLUENT AS YOU."
1480 T=FNA(89)
1490 GOTO 500
1500 IF T$<> "SIRLOIN" THEN 1550
1510 PRINT"SIRLOIN IS $1.29 PER POUND, HOW MANY POUNDS";
1520 GOSUB 2450
1530 T=FNA(129)
1540 GOTO 500
1550 IF T$<> "PORTERHOUSE" THEN 1630
1560 PRINT"I COMMEND YOUR GOOD TASTE, OUR PORTERHOUSE IS $1.89 PER"
1570 PRINT"POUND, HOW MANY POUNDS WOULD YOU LIKE";
1580 GOSUB 2450
1590 IF N<10 THEN 1610
1600 PRINT"I CERTAINLY HOPE YOU CAN MEET YOUR BILL."
1610 T=FNA(189)
1620 GOTO 500
1630 PRINT "YOU HAD BETTER LEARN TO SPELL ";N$
1640 GOTO 500
1650 IF I$<> "BREAD" THEN 1720
1660 PRINT "BREAD IS 30 CENTS A LOAF, HOW MANY LOAVES.";
1670 GOSUB 2450
1680 IF N<>0.5 THEN 1700
1690 PRINT "YOU KNOW WHAT THEY SAY....HALF A LOAF IS BETTER THAN NONE."
1700 T=FNA(30)
1710 GOTO 500
1720 IF I$<>"EGGS" THEN 1960
1730 PRINT"WOULD YOU LIKE SMALL MEDIUM OR LARGE EGGS";
1740 INPUT T$
1750 IF T$<> "SMALL" THEN 1820
1760 PRINT "SMALL EGGS ARE $.52 PER DOZEN, HOW MANY DOZEN";
1770 GOSUB 2450
1780 IF N<10 THEN 1800
1790 GOSUB 2430
1800 T=FNA(52)
1810 GOTO 500
1820 IF T$<>"MEDIUM" THEN 1890
1830 PRINT "MEDIUM EGGS ARE $.64 PER DOZEN, HOW MANY DOZEN";
1840 GOSUB 2450
1850 IF N<10 THEN 1870
1860 GOSUB 2430
1870 T=FNA(64)
1880 GOTO 500
1890 IF T$<> "LARGE" THEN 1630
1900 PRINT "LARGE EGGS ARE $.70 PER DOZEN, HOW MANY DOZEN";
1910 GOSUB 2450
1920 IF N<10 THEN 1940
1930 GOSUB 2430
1940 T=FNA(70)
1950 GOTO 500
1960 IF I$<> "MILK" THEN 2050
1970 PRINT "VERY GOOD, MILK HELPS BUILD STRONG BONES AND HEALTHY WHITE"
1980 PRINT"TEETH. MILK IS $.52 PER HALF GALLON, HOW MANY HALF GAL.";
1990 GOSUB 2450
2000 IF B><1 THEN 2030
2010 PRINT "MAYBE IF YOU DRINK IT ALL, IT WILL CURE THE EFFECT OF"
2020 PRINT "ALL THAT NASTY BEER YOU ORDERED."
2030 T=FNA(52)
2040 GOTO 500
2050 IF I$<> "JUICE" THEN 2180
2060 IF B<> 1 THEN 2100
2070 PRINT "YOU CAN ALREADY GET PRETTY WELL JUICED ON THOSE";B3;"SIX"
2080 PRINT "PACKS YOU ORDERED."
2090 GOTO 500
2100 PRINT "WHAT KIND OF JUICE WOULD YOU LIKE";
2110 INPUT J$
2120 PRINT "I'M SORRY WE ARE TEMPOARIALY OUT OF ";J$;" JUICE, BUT I "
2130 PRINT " GIVE YOU SOME NICE FROZEN GRAPEFRUIT JUICE FOR $.29 PER"
2140 PRINT"CAN, HOW MANY CANS";
2150 GOSUB 2450
2160 T=FNA(29)
2170 GOTO 500
2180 IF I$<> "FISH"THEN 2230
2190 PRINT "WE HAVE FRESH HADDOCK AT $.30 PER POUND, HOW MANY POUNDS";
2200 GOSUB 2450
2210 T=FNA(30)
2220 GOTO 500
2230 PRINT "LIES, LIES, LIES, WE REALLY DON'T HAVE ANY ";I$
2240 GOTO 500
2250 REM I"M REALLY JUST TOO LAZY TO WRITE THEN UP
2260 PRINT "WILL THIS BE CASH OR CHARGE";
2270 INPUT C$
2280 IF C$<>"CHARGE"THEN 2310
2290 PRINT "SORRY, YOUR CREDIT IS NOT GOOD HERE, BYE."
2300 STOP
2310 D=INT(T/100)
2320 D=D+(T-(D*100))/100
2330 PRINT "YOUR BILL IS $";D
2340 IF T>10000 THEN 2380
2350 IF T< 1000 THEN 2400
2360 PRINT"THANK YOU FOR SHOPPING HERE, COME AGAIN SOON."
2370 STOP
2380 PRINT "IT'S YOUR MONEY.....THANKS FOR STOPPING BYE, COME AGAIN."
2390 STOP
2400 PRINT"I HOPE YOUR THRIFT IS NOT DEPRIVING YOUR FAMILY."
2410 PRINT "STOP BY AGAIN WHEN YOU HAVE LESS TIME."
2420 STOP
2430 PRINT "YOU'D DO WELL TO BUY YOUR OWN CHICKEN."
2440 RETURN
2450 INPUT N
2460 IF N>=0 THEN 2490
2470 PRINT "VERY FUNNY, ";N$;". LET'S TRY THAT AGAIN."
2480 GOTO 2450
2490 RETURN
2500 IF S1<> 1 THEN 2530
2510 PRINT "SORRY ONLY ONE SPECIAL PER CUSTOMER."
2520 GOTO 500
2530 R=ABS(RND(1)+T+N)
2540 FOR I= 1 TO 1000
2550 IF R<=1 THEN 2580
2560 R=R/10
2570 NEXT I
2580 R=INT(R*10)
2590 IF R<>0 THEN 2610
2600 R=10!
2610 FOR I= 1 TO R
2620 READ S$,P$,U$,P
2630 NEXT I
2640 PRINT "LUCKY YOU, THE SPECIAL OF THE DAY IS ";S$;" AT THE "
2650 PRINT"UNHEARD OF PRICE OF ";P$;" PER ";U$;", HOW MANY ";U$ ;"S";
2660 GOSUB 2450
2670 T=FNA(P)
2680 S1=1
2690 GOTO 500
2700 DATA "NEAT","OK","FINE","PRETTY GOOD","GOOD","GREAT","WONDERFUL"
2710 DATA"STEAK","CHICKEN","BEER","SODA","COOKIES","PORK CHOPS","MILK"
2720 DATA  "SOUP","BREAD","JUICE","TURKEY","HAM","FISH","EGGS","BUTTER"
2730 DATA "SPECIAL"
2740 DATA "DENATURED LINSEED OIL","$2.95","GALLON",295
2750 DATA "ASPARAGUS FLAVORED ICE CREAM","$.65","HALF-GALLON",65
2760 DATA "RHUBARB","ONE DOLLAR","BUSHEL",100
2770 DATA"IMPORTED YAK MILK","$5","OUNCE",500
2780 DATA "PURPLE SADDLE SOAP","$.50","CAN",50
2790 DATA "1963 EDSELS","$999.95","EDSEL",99995
2800 DATA "CLEAN WHITE BEACH SAND","$3","TON",300
2810 DATA "BELLY-BUTTON LINT","$1.29","POUND",129
2820 DATA "WEEK OLD HAMBURGER OF UNKNOWN ORIGIN","$.09","POUND",9
2830 DATA "USED Q-TIPS","$.25","DOZEN",25
2840 END

SNOOPY.BAS

10 CLS:KEY OFF
11 PRINT TAB(30) "snoopy":PRINT:PRINT
12 PRINT "Use PrtSc key for printout"
100 REM ***SNOOPY *** DEMONSTRATION ***
110 DIM L(80)
120 FOR T=1 TO 63
130 LET L(T)=0
140 NEXT T
150 LET M=0
160 READ K,K1
170 IF K<0 THEN 260
180 IF K=1000 THEN 1180
190 IF K=999 THEN 1200
200 IF K<M THEN 220
210 LET M=K1
220 FOR Y=K TO K1
230 LET L(Y)=1
240 NEXT Y
250 GOTO 160
260 FOR I=1 TO 63 STEP 3
270 IF I>M THEN 320
280 IF L(I)=1 THEN 350
290 IF L(I+1)=1 THEN 460
300 IF L(I+2)=1 THEN 510
310 PRINT "   ";
320 NEXT I
330 PRINT
340 GOTO 120
350 IF L(I+1)=1 THEN 390
360 IF L(I+2)=1 THEN 440
370 PRINT"*  ";
380 GOTO 320
390 IF L(I+2)=1 THEN 420
400 PRINT "** ";
410 GOTO 320
420 PRINT "***";
430 GOTO 320
440 PRINT "* *";
450 GOTO 320
460 IF L(I+2)=1 THEN 420
470 PRINT " * ";
480 GOTO 320
490 PRINT " **";
500 GOTO 320
510 PRINT "  *";
520 GOTO 320
530 DATA 999,0
540 DATA 40,51,-1,0
550 DATA 37,51,53,53,-1,-1
560 DATA 34,49,56,56,-1,-1
570 DATA 32,47,57,57,-1,-1
580 DATA 30,45,58,58,-1,-1
590 DATA 28,43,59,59,-1,-1
600 DATA 27,41,60,60,-1,-1
610 DATA 25,39,60,60,-1,-1
620 DATA 24,37,60,60,-1,-1
630 DATA 24,35,59,59,-1,-1
640 DATA 25,32,43,45,58,61,-1,-1
650 DATA 26,29,41,41,45,45,57,57,62,62,-1,-1
660 DATA 32,32,40,40,46,46,53,56,-1,-1
670 DATA 32,32,40,40,46,46,52,52,56,56,-1,-1
680 DATA 23,23,31,31,39,39,46,46,56,56,-1,-1
690 DATA 22,22,25,25,30,30,39,39,46,46,56,56,-1,-1
700 DATA 22,22,26,28,38,38,46,46,56,56,-1,-1
710 DATA 22,22,27,27,38,38,46,46,56,56,-1,-1
720 DATA 19,22,28,28,33,35,38,38,45,45,57,57,-1,-1
730 DATA 15,15,23,23,28,28,32,32,35,35,39,39,44,44,58,58,-1,-1
740 DATA 13,13,23,23,29,29,32,32,36,36,38,38,44,44,59,59,-1,-1
750 DATA 12,12,22,22,29,29,32,32,37,39,44,44,60,60,-1,-1
760 DATA 3,5,11,11,20,23,29,29,32,32,44,44,60,60,-1,-1
770 DATA 2,2,6,6,10,10,20,23,28,28,32,32,45,45,60,60,-1,-1
780 DATA 2,2,7,7,20,23,27,27,32,32,46,46,59,59,-1,-1
790 DATA 2,2,7,7,21,26,31,31,47,47,58,58,-1,-1
800 DATA 2,4,31,31,51,56,-1,-1
810 DATA 2,2,31,31,50,55,-1,-1
820 DATA 2,4,30,30,50,52,54,55,-1,-1
830 DATA 2,2,8,9,30,30,51,54,-1,-1
840 DATA 2,4,7,7,10,10,29,29,-1,-1
850 DATA 3,3,6,6,12,12,27,27,-1,-1
860 DATA 5,5,15,15,26,26,-1,-1
870 DATA 17,17,23,23,-1,-1
880 DATA 18,18,23,23,-1,-1
890 DATA 16,16,24,24,29,29,31,31,-1,-1
900 DATA 16,16,24,27,32,32,-1,-1
910 DATA 17,17,32,32,-1,-1
920 DATA 18,18,31,31,-1,-1
930 DATA 20,30,-1,-1
940 DATA 47,47,-1,-1
950 DATA 46,46,50,50,-1,-1
960 DATA 45,45,52,52,-1,-1
970 DATA 44,44,54,54,-1,-1
980 DATA 44,44,56,56,-1,-1
990 DATA 43,43,57,57,-1,-1
1000 DATA 42,42,58,58,-1,-1
1010 DATA 42,42,59,59,-1,-1
1020 DATA 42,42,59,59,-1,-1
1030 DATA 41,41,60,60,-1,-1
1040 DATA 41,41,60,60,-1,-1
1050 DATA 42,42,60,60,-1,-1
1060 DATA 42,42,60,60,-1,-1
1070 DATA 42,42,60,60,-1,-1
1080 DATA 43,42,60,60,-1,-1
1090 DATA 43,43,60,60,-1,-1
1100 DATA 44,44,59,59,-1,-1
1110 DATA 45,45,59,59,-1,-1
1120 DATA 47,47,58,58,-1,-1
1130 DATA 48,48,57,57,-1,-1
1140 DATA 50,50,56,56,-1,-1
1150 DATA 52,52,55,55,-1,-1
1160 DATA 1000,0
1170 DATA 1000,0
1180 PRINT "********************WE HOPE YOU LIKE IT**************"
1190 STOP
1200 PRINT:PRINT "A PICTURE OF SNOOPY FROM BP-80 SYSTEM"
1210 PRINT
1220 GOTO 160
1230 END

SQUARE.BAS

10 REM  ** SQUARE **
20 REM
30 REM  WRITTEN BY MAC OGLESBY
40 REM  AS DESCRIBED IN VOL. 1, ISSUE 3
50 REM  OF CALCULATORS-COMPUTERS MAGAZINE
60 REM
70 CLS:KEY OFF
80 CS$=CHR$(126)+CHR$(28)  'CURSOR CONTROL CODES TO CLEAR SCREEN
90 DEFINT A-Z
100 PRINT CS$;"ENTER PASSWORD";:INPUT A$:Z=0
110 A=0:FOR I=1 TO LEN(A$):A=A+ASC(MID$(A$,I,1)):NEXT:A=RND(-A)
120 DIM Q(50),S$(50),S(24,12),U(12),V(50)
130 P$(1)="X":P$(2)="O":F=1
140 FOR R0=0 TO 4:FOR C0=0 TO 4:D$(R0,C0)=".":NEXT C0:NEXT R0
150 PRINT:INPUT"WANT INSTRUCTIONS FOR 'SQUARE'";A$
160 IF LEFT$(A$,1)="N" THEN 320
170 PRINT CS$;  'CLEAR SCREEN
180 PRINT"   THE GAME OF SQUARE IS FOR 1 OR 2 PLAYERS.  THE NORMAL"
190 PRINT"BOARD LOOKS LIKE THIS AT THE START:":GOSUB 1920
200 PRINT"   THE PLAYERS GO IN TURN AND CHOOSE ANY UNOCCUPIED POINT"
210 PRINT"(SHOWN AS A DOT).  EACH PLAYER HAS 12 MARKERS (X'S OR O'S)"
220 PRINT"WHICH ARE USED TO IDENTIFY CHOSEN POINTS.":PRINT
230 INPUT"             ENTER 'C' TO CONTINUE";A$:PRINT
240 PRINT"   THE WINNER IS THE FIRST PLAYER WHO HAS CHOSEN 4 POINTS"
250 PRINT"WHICH FORM THE CORNERS OF A SQUARE."
260 PRINT"   TO CHOOSE A POINT, TYPE 2 DIGITS (0 TO 4) SEPARATED BY A"
270 PRINT"COMMA.  THE FIRST DIGIT TELLS THE DISTANCE OVER (TO T";
280 PRINT"HE RIGHT)":PRINT"FROM POINT 0,0 (THE ORIGIN).  THE SECOND";
290 PRINT" DIGIT TELLS THE DISTANCE UP.":PRINT
300 PRINT"REMEMBER: OVER,UP.":PRINT
310 INPUT"             ENTER 'C' TO CONTINUE";A$:PRINT
320 PRINT:INPUT"DO YOU WANT TO PLAY THE EXPERTS' GAME";A$
330 B0=1:IF LEFT$(A$,1)="Y" THEN B0=2
340 IF B0= 1 THEN 360
350 D$(2,2)=" ":N=38:GOTO 370
360 N=50
370 IF Z=1 THEN GOTO 410 ELSE PRINT:INPUT"HOW MANY PLAYERS (1 OR 2)";P0
380 IF P0=2 THEN 430
390 IF P0=1 THEN 400 ELSE PRINT "PLEASE ENTER 1 OR 2":GOTO 370
400 PRINT CS$;"OK, I WILL PLAY THE X'S":PRINT
410 INPUT"DO YOU WANT TO GO FIRST";A$:F=1
420 IF LEFT$(A$,1)="Y" THEN F=2
430 PRINT CS$;"OK...HERE WE GO..."
440 IF Z=1 THEN 860
450 RESTORE:FOR J=0 TO 24:READ S(J,0):NEXT
460 DATA 4,7,8,7,4,7,10,11,10,7,8,11,12,11,8,7,10,11,10,7,4,7,8,7,4
470 FOR J=0 TO 24:FOR K=1 TO S(J,0):READ S(J,K):NEXT K:NEXT J
480 DATA 1,13,35,43
490 DATA 1,2,15,20,28,31,36
500 DATA 2,3,21,24,29,43,44,47
510 DATA 3,4,16,25,30,31,35
520 DATA 4,13,36,44
530 DATA 1,5,15,24,30,32,37
540 DATA 1,2,5,14,22,25,38,39,47,48
550 DATA 2,3,15,16,17,23,26,32,33,39,40
560 DATA 3,4,6,14,20,27,37,40,47,49
570 DATA 4,6,16,21,28,33,38
580 DATA 5,7,20,26,29,43,45,48
590 DATA 5,7,15,17,18,21,27,31,34,39,41
600 DATA 39,40,41,42,43,44,45,46,47,48,49,50
610 DATA 6,8,16,17,19,22,24,31,34,40,42
620 DATA 6,8,23,25,29,44,46,49
630 DATA 7,9,18,22,28,32,35
640 DATA 7,9,10,14,23,24,36,41,48,50
650 DATA 10,11,17,18,19,20,25,32,33,41,42
660 DATA 8,11,12,14,21,26,35,42,49,50
670 DATA 8,12,19,27,30,33,36
680 DATA 9,13,37,45
690 DATA 9,10,18,26,30,34,38
700 DATA 10,11,22,27,29,45,46,50
710 DATA 11,12,19,23,28,34,37
720 DATA 12,13,38,46
730 FOR J=1 TO N:READ S$(J):NEXT
740 DATA 00011110,01021211,02031312,03041413,10112120
750 DATA 13142423,20213130,23243433,30314140,31324241
760 DATA 32334342,33344443,00044440,11133331
770 DATA 01122110,03142312,12233221,21324130,23344332
780 DATA 01133220,02143321,11234230,12244331
790 DATA 02233110,03243211,12334120,13344221
800 DATA 01144330,02244220,03344110
810 DATA 01032321,10123230,12143432,21234341
820 DATA 00033330,01043431,10134340,11144441
830 DATA 11122221,12132322,21223231,22233332
840 DATA 00022220,02042422,20224240,22244442
850 DATA 02132211,11223120,13243322,22334231
860 IF A(1)<>89 THEN 880
870 IF B0=2 THEN 880 ELSE PRINT:GOTO 890
880 GOSUB 1920
890 T=T+1
900 REM ** MAIN MOVE LOOP: J=121212... OR J=212121...
910 FOR J=F TO 3-F STEP 3-2*F
920 IF P0=2 THEN 1650
930 IF J=2 THEN 1650
940 REM ** GENERATE COMPUTER'S MOVE
950 IF T<>1 THEN 1020
960 IF D$(2,2)<>"." THEN 980
970 R1=2:C1=2:GOTO 1630
980 IF F=1 THEN 1000
990 Q0=9:GOTO 1050
1000 R1=1+INT(RND(1)*3):C1=1+INT(RND(1)*3)
1010 IF D$(R1,C1)<>"." THEN GOTO 1000 ELSE GOTO 1630
1020 IF T<>2 THEN 1300
1030 IF F=1 THEN 1050
1040 Q0=19
1050 K9=0
1060 FOR J1=1 TO N:IF Q(J1)<>1+Q0 THEN 1080
1070 K9=K9+1:U(K9)=J1
1080 NEXT J1
1090 IF K9=0 THEN 1290
1100 FOR J2=K9 TO 1 STEP -1:T9=1+INT(RND(1)*J2):J1=U(T9)
1110 FOR K1=1 TO 8 STEP 2:R1=VAL(MID$(S$(J1),K1,1))
1120 C1=VAL(MID$(S$(J1),K1+1,1))
1130 IF D$(R1,C1)<>"." THEN 1240
1140 IF Q0+T<3 THEN 1160
1150 GOTO 1630
1160 S0=5*R1+C1:M0=0:FOR J3=1 TO S(S0,0)
1170 IF B0=1 THEN 1200
1180 IF S(S0,J3)<=38 THEN 1200
1190 GOTO 1230
1200 IF Q(S(S0,J3))>1 THEN 1220
1210 M0=M0+1
1220 NEXT J3
1230 IF M0<8-B0 THEN GOTO 1240 ELSE GOTO 1630
1240 NEXT K1
1250 IF J2=T9 THEN 1270
1260 T8=U(J2):U(J2)=U(T9):U(T9)=T8
1270 NEXT J2
1280 REM *** AS A LAST RESORT, PICK ANY VACANT POINT
1290 R1=RND(1)*5:C1=RND(1)*5:IF D$(R1,C1)<>"." THEN GOTO 1290 ELSE GOTO 1630
1300 IF T=3 THEN 1350
1310 REM ** SEE IF 'X' CAN COMPLETE A SQUARE
1320 FOR J1=1 TO N:IF Q(J1)<>3 THEN GOTO 1330 ELSE GOTO 1110
1330 NEXT J1
1340 REM ** SEE IF 'O' CAN COMPLETE A SQUARE
1350 FOR J1=1 TO N:IF Q(J1)<>30 THEN GOTO 1360 ELSE GOTO 1110
1360 NEXT J1
1370 REM ** CAN 'X' CHOOSE A 3RD CORNER?
1380 K9=0:FOR J1=1 TO N:IF Q(J1)<>2 THEN 1400
1390 K9=K9+1:U(K9)=J1
1400 NEXT  J1
1410 IF K9=0 THEN 1620
1420 FOR I0=1 TO 2:FOR J0=K9 TO 1 STEP -1:M9=1+INT(RND(1)*J0):J1=U(M9):T9=0
1430 FOR K1=1 TO 8 STEP 2:R1=VAL(MID$(S$(J1),K1,1))
1440 C1=VAL(MID$(S$(J1),K1+1,1)):IF D$(R1,C1)<>"." THEN 1460
1450 T9=T9+1:R(T9)=R1:C(T9)=C1
1460 NEXT K1
1470 FOR J2=1 TO 2:FOR J3=1 TO 50:V(J3)=Q(J3):NEXT J3:S0=5*R(J2)+C(J2)
1480 FOR J3=1 TO S(S0,0):V(S(S0,J3))=V(S(S0,J3))+1:NEXT J3
1490 S0=5*R(3-J2)+C(3-J2)
1500 FOR J3=1 TO S(S0,0):V(S(S0,J3))=V(S(S0,J3))+10:NEXT J3
1510 FOR J3=1 TO N:IF V(J3)<>4-I0 THEN 1530
1520 R1=R(J2):C1=C(J2):GOTO 1630
1530 NEXT J3
1540 NEXT J2
1550 IF J0=M9 THEN 1570
1560 T8=U(J0):U(J0)=U(M9):U(M9)=T8
1570 NEXT J0
1580 NEXT I0
1590 REM ** NO GOOD MOVE AVAILABLE...PICK ANY 3RD CORNER
1600 J1=U(1+INT(RND(1)*K9)):GOTO 1110
1610 REM ** SEE IF WE CAN ANNOY THE HUMAN
1620 Q0=I9:GOTO 1050
1630 PRINT"THE ";P$(J);"'S MOVE TO ";STR$(C1);",";STR$(R1):GOTO 1700
1640 REM ** GET PLAYER'S CHOICE
1650 IF T>1 THEN 1670
1660 PRINT"THE ";P$(J);"'S MOVE TO WHICH POINT";:GOTO 1680
1670 PRINT P$(J);"'S CHOICE";
1680 INPUT C1,R1
1690 IF D$(R1,C1)<>"." THEN 1770
1700 D$(R1,C1)=P$(J)
1710 REM ** Q() TELLS WHO OWNS CORNERS OF WHICH SQUARES
1720 S0=5*R1+C1:FOR J1=1 TO S(S0,0):Q(S(S0,J1))=Q(S(S0,J1))+1+(J-1)*9
1730 IF Q(S(S0,J1))<>4+(J-1)*36 THEN 1750
1740 PRINT:PRINT"*** THE ";P$(J);"'S WIN!! ***":GOTO 1830
1750 NEXT J1
1760 GOTO 1800
1770 PRINT"** ILLEGAL POINT! **":GOTO 1790
1780 PRINT"YOU MUST TYPE 2 DIGITS (0 TO 4) SEPARATED BY A COMMA!"
1790 PRINT"** INPUT IGNORED! PLEASE TRY AGAIN...":GOTO 1670
1800 NEXT J
1810 IF T<12 THEN 1890
1820 PRINT:PRINT"THE GAME IS A DRAW; NEITHER PLAYER MADE A SQUARE!"
1830 FOR K1=1 TO 8 STEP 2:R1=VAL(MID$(S$(S(S0,J1)),K1,1))
1840 C1=VAL(MID$(S$(S(S0,J1)),K1+1,1)):D$(R1,C1)=CHR$(64):NEXT:GOSUB 1920
1850 INPUT "WANT TO PLAY AGAIN";A$:IF LEFT$(A$,1)<>"Y" THEN END
1860 Z=1:FOR J2=0 TO 4:FOR J3=0 TO 4:D$(J2,J3)=".":NEXT J3:NEXT J2
1870 FOR J2=1 TO 50:Q(J2)=0:V(J2)=0:NEXT J2:FOR J2=1 TO 12:U(J2)=0:NEXT J2
1880 T=0:K9=0:GOTO 320
1890 GOSUB 1920
1900 GOTO 890
1910 REM ** PRINT THE BOARD
1920 PRINT:FOR R0=4 TO 0 STEP -1:PRINT STR$(R0);"  ";
1930 FOR C0=0 TO 4:PRINT D$(R0,C0);:IF C0=4 THEN 1950
1940 PRINT"     ";
1950 NEXT C0:PRINT:IF R0=0 THEN 1970
1960 PRINT:PRINT
1970 NEXT R0:PRINT:PRINT"    0     1     2     3     4":PRINT:RETURN
1980 END

SWARMS.BAS

10 CLS
20 KEY OFF
30 'SWARMS2 - YET ANOTHER GEM FROM 'ZOSO'
40 CLEAR : CLEAR 1000
50 PRINT CHR$(26);"!!!!! ATTENTION: THE BEES ARE ATTACKING !!!!!!"
60 PRINT : PRINT
70 PRINT "BEGIN DEFENSE PLAN: " : PRINT
80 PRINT "TIME:     1"
90 INPUT "ENTER YOUR NAME FOR IDENTIFICATION CHECK"; N$
100 PRINT CHR$(26)
110 INPUT "ENTER CODE WORD FOR NUCLEAR CLEARANCE"; C$
120 GOSUB 5150
130 REM CREATE TWO INITIAL SWARMS
140 DIM E(21),S(21),A$(21),U(21),G(21),M(21),D(21),C(21)
150 DIM K(21),V(21),R(21)
160 A1=INT(RND(1)*21+1)
170 A2=INT(RND(1)*21+1)
180 IF A1=A2 THEN 160
190 S(A1) = INT(RND(1)*5+2)
200 S(A2) = INT(RND(1)*5+2)
210 E(A1) = INT(RND(1)*9+6)
220 E(A2) = INT(RND(1)*9+6)
230 REM SUBTRACT ONE HOUR FROM ALL ETA'S
240 FOR A=1 TO 21
250 IF E(A)=0 THEN 270
260 GOTO 280
270 IF U(A) = 0 THEN 490
280 IF S(A) = 1 THEN 490
290 IF ABS(U(A)) = 1 THEN 400
300 IF ABS(E(A)) = 1 THEN 340
310 E(A)=E(A) - 1
320 C(A)=C(A)+(17-E(A))
330 GOTO 490
340 IF E(A) = -1 THEN 380
350 PRINT "THE BEES HAVE ARRIVED IN THE MAJOR CITY IN SECTION ";A
360 E(A)=-1
370 U(A)=6
380 U(A)=U(A)-1
390 GOTO 490
400 IF U(A) = -1 THEN 490
410 PRINT "THE BEES HAVE DESTROYED THE MAJOR CITY IN SECTION ";A
420 U(A)=-1
430 IF V(A)<>-1 THEN 460
440 PRINT "BUT THE POPULATION HAS BEEN EVACUATED"
450 GOTO 480
460 K(A)=1
470 C(A)=(1000000!*(RND(1)*A+1))+C(A)
480 GOTO 490
490 NEXT A
500 REM ADD ONE UNIT TO TIME
510 T=T+1
520 REM CREATE NEW SWARM
530 IF T/30<>INT(T/30) THEN 620
540 A=INT(RND(1)*21+1)
550 IF S(A)<>0 THEN 530
560 IF R(A)<>0 THEN 530
570 IF K(A)<>0 THEN 530
580 S(A)=INT(RND(1)*5+2)
590 E(A)=INT(RND(1)*9+16)
600 C(A)=INT(RND(1)*10)
610 PRINT "A NEW SWARM IS REPORTED IN SECTION ";A
620 REM CHECK COMBATED SWARMS
630 FOR A=1 TO 21
640 IF T<>G(A) THEN 800
650 IF S(A)<> 1 THEN 740
660 S(A)=0
670 G(A)=0
680 E(A)=0
690 M(A)=0
700 K(A)=0
710 U(A)=0
720 PRINT "** THE SWARM IN SECTION ";A;" IS TOTALLY DESTROYED."
730 GOTO 800
740 S(A)=S(A)-M(A)
750 PRINT "** THE PHASE ON SECTION ";A;" WAS SUCCESSFUL."
760 IF S(A)>=1 THEN 780
770 S(A)=1
780 G(A)=0
790 M(A)=0
800 NEXT A
810 REM ADD ONE UNIT TO EACH UNCOMBATTED SWARM
820 FOR A=1 TO 21
830 IF E(A)=1 THEN 1080
840 IF S(A)=1 THEN 1050
850 IF S(A)=0 THEN 1080
860 IF S(A)+1<9 THEN 1020
870 IF A=1 THEN 950
880 IF S(A-1)>0 THEN 940
890 IF R(A-1)<>0 THEN 1080
900 PRINT "** THE SWARM IN SECTION ";A;" HAS SPREAD TO SECTION ";A-1
910 S(A-1)=3
920 E(A-1)=INT(RND(1)*10+5)
930 GOTO 1080
940 IF A=21 THEN 1080
950 IF S(A+1)>0 THEN 1080
960 IF R(A+1)<>0 THEN 1080
970 PRINT "** THE SWARM IN SECTION ";A;" HAS SPREAD TO SECTION ";A+1
980 IF R(A+1)<>0 THEN 1080
990 S(A+1)=3
1000 E(A+1)=INT(RND(1)*10+5)
1010 GOTO 1080
1020 S(A)=S(A)+1
1030 C(A)=C(A)+S(A)
1040 GOTO 1080
1050 IF D(A)=1 THEN 1080
1060 PRINT "** THE SWARM IN SECTION ";A;" IS READY TO BE DESTROYED."
1070 D(A)=1
1080 NEXT A
1090 REM WINNER CHECK
1100 W=0
1110 FOR A=1 TO 21
1120 W=S(A)+W
1130 NEXT A
1140 IF W>=1 THEN 1210
1150 PRINT "*******ALL SWARMS ARE NOW DESTROYED*******"
1160 PRINT "FINAL STATISTICS ON ATTACKS AND DESTRUCTION ARE NOW "
1170 PRINT "BEING COMPUTED,   ...   FINAL RESULTS FOLLOW ....."
1180 A=0
1190 PRINT
1200 GOTO 4620
1210 REM EVACUATION CHECK
1220 FOR A=1 TO 21
1230 IF V(A)<>T THEN 1330
1240 IF U(A)=-1 THEN 1300
1250 IF K(A)>0 THEN 1300
1260 PRINT "** POPULATION IN SECTION ";A;" IS EVACUATED"
1270 C(A)=C(A)+INT(RND(1)*17)
1280 V(A)=-1
1290 GOTO 1330
1300 PRINT "** POPULATION IN SECTION ";A;" WAS DESTROYED BEFORE "
1310 PRINT "   IT COULD BE EVACUATED"
1320 V(A)=0
1330 NEXT A
1340 REM RETURN EVACUATION CHECK
1350 FOR A=1 TO 21
1360 IF R(A)<>T THEN 1420
1370 IF R(A)<1 THEN 1420
1380 K(A)=0
1390 R(A)=0
1400 V(A)=0
1410 PRINT "** THE POPULATION HAS RETURNED TO THE CITY IN SECTION ";A
1420 NEXT A
1430 REM LOSER CHECK
1440 Q=0
1450 FOR A=1 TO 21
1460 Q=C(A)+Q
1470 NEXT A
1480 IF Q<7.500000e+7 THEN 1580
1490 PRINT "THE BEES HAVE DEVASTATED THE UNITED STATES AND "
1500 PRINT "THERE ARE NOW OVER 75 MILLION CASUALTIES,  THE BEES"
1510 PRINT "ARE NOW CONSIDERED TO BE THE VICTORS OVER MODERN"
1520 PRINT "TECHNOLOGY."
1530 A=0
1540 Q=0
1550 W=0
1560 PRINT
1570 GOTO 4620
1580 REM COMMAND INPUT
1590 PRINT "TIME:   ";T+1
1600 INPUT "COMMAND (1-8; 7=HELP)";CM
1610 IF CM > 8 OR CM  <1 OR CM <> INT(CM) THEN PRINT "WRONG !!!"; : GOTO 1600
1620 ON CM  GOTO 1630,2140,2550,3770,3990,4590,4850,5120
1630 REM MAP PRINT OUT
1640 PRINT CHR$(26);"1)        ATTACK SCAN MAP"
1650 PRINT
1660 FOR A=1 TO 21
1670 IF S(A)>6 THEN 1790
1680 IF S(A)>4 THEN 1770
1690 IF S(A)>1 THEN 1750
1700 IF S(A)>0 THEN 1730
1710 A$(A)= "?"
1720 GOTO 1800
1730 A$(A)="."
1740 GOTO 1800
1750 A$(A)="+"
1760 GOTO 1800
1770 A$(A)="*"
1780 GOTO 1800
1790 A$(A)="#"
1800 NEXT A
1810 PRINT "----------------------------------------------------"
1820 PRINT TAB(48);"---"
1830 PRINT TAB(20);"CANADA- NO INFORMATION     /  /"
1840 Z1$="-----------------------        / "+A$(18)+"/"
1850 PRINT TAB(15);Z1$
1860 PRINT TAB(15);"!   !   !   !    !    !\-    -/  /"
1870 Z1$="! "+A$(1)+" ! "+A$(3)+" ! "+A$(6)+" ! "
1880 Z1$=Z1$+A$(9)+"  ! "+A$(13)+"  !  \--/---/"
1890 PRINT TAB(15);Z1$
1900 Z1$=          "!   !---!---!----!----! "+A$(16)+" !    /"
1910 PRINT TAB(15);Z1$
1920 Z1$=          "!---!   !   !    !    !   ! "+A$(19)+" !"
1930 PRINT TAB(15);Z1$
1940 Z1$="!   ! "+A$(4)+" ! "+A$(7)+" ! "+A$(10)+"  ! "
1950 Z1$=Z1$+A$(14)+"  !---!---!"
1960 PRINT TAB(15);Z1$
1970 Z1$="! "+A$(2)+" !---!---!----!----!   !   !"
1980 PRINT TAB(15);Z1$
1990 Z1$=" \  !   !   !    !    ! "+A$(17)+" ! "+A$(20)+" !"
2000 PRINT TAB(15);Z1$
2010 Z1$="  \ ! "+A$(5)+" ! "+A$(8)+" ! "+A$(11)+"  ! "
2020 Z1$=Z1$+A$(15)+"  !   !   /"
2030 PRINT TAB(15);Z1$
2040 Z1$="   \!---!---!----!----!---! "+A$(21)+"!"
2050 PRINT TAB(15);Z1$
2060 PRINT TAB(27);"\    !";TAB(42);"\ !"
2070 Z1$="              \ "+A$(12)+"!"
2080 PRINT TAB(15);Z1$;TAB(42);"! !"
2090 PRINT TAB(30);"\-!";TAB(42);"!-!"
2100 PRINT TAB(20);"MEXICO- NO INFORMATION"
2110 PRINT
2120 PRINT "----------------------------------------------------"
2130 GOTO 230
2140 REM ETA REPORT
2150 PRINT CHR$(12);"2)         ETA REPORT"
2160 PRINT
2170 INPUT "ENTER SECTION #"; A
2180 IF A<1 OR A>21 OR A<>INT(A) THEN PRINT "WRONG  !!!"; : GOTO 2170
2190 PRINT "*************************************"
2200 IF A<>0 THEN 2230
2210 D7=-1
2220 FOR A = 1 TO 21
2230 IF S(A)=1 THEN 2450
2240 IF R(A)=-1 THEN 2480
2250 IF E(A)=0 THEN 2430
2260 IF U(A)=-1 THEN 2310
2270 IF E(A)=-1 THEN 2340
2280 PRINT "THE BEES WILL ARRIVE AT THE MAJOR CITY IN"
2290 PRINT "         SECTION ";A;" AT ";E(A)+T;" HOURS."
2300 GOTO 2500
2310 PRINT "THE BEES HAVE ALREADY DESTROYED THE CITY IN"
2320 PRINT "SECTION ";A;" AND ARE NOW INHABITING IT."
2330 GOTO 2500
2340 PRINT "THE BEES HAVE ARRIVED AT THE CITY IN"
2350 IF V(A)<>-1 THEN 2390
2360 PRINT "SECTION ";A;" BUT THE POPULATION HAS BEEN"
2370 PRINT "        EVACUATED"
2380 GOTO 2500
2390 PRINT "SECTION ";A;" AND THE POPULATION OF THAT CITY"
2400 PRINT "CAN ONLY SURVIVE FOR ABOUT ";U(A);" MORE HOURS."
2410 PRINT "   USE OF URBAN DEFENSES IS RECOMMENDED."
2420 GOTO 2500
2430 PRINT "     NO SWARMS REPORTED IN SECTION ";A
2440 GOTO 2500
2450 PRINT "THE BEES IN SECTION ";A;" ARE READY TO BE "
2460 PRINT "DESTROYED."
2470 GOTO 2500
2480 PRINT "SECTION ";A;" IS A RADIOACTIVE WASTELAND THAT"
2490 PRINT "        IS COMPLETELY UNPOPULATED"
2500 PRINT "*************************************"
2510 IF D7<>-1 THEN 2530
2520 NEXT A
2530 D7=0
2540 GOTO 230
2550 REM BATTLE PHASE OPTIONS
2560 PRINT CHR$(26)
2570 PRINT "3)        BATTLE PHASE OPTIONS"
2580 INPUT "ENTER SECTION #"; A
2590 INPUT "ENTER PHASE"; P
2600 IF V(A)<1 THEN 2630
2610 PRINT "SECTION ";A;" IS BEING EVACUATED"
2620 GOTO 230
2630 IF G(A)>0 THEN 2650
2640 GOTO 2670
2650 PRINT "THE SWARM IN SECTION ";A;" IS ALREADY BEING COMBATTED"
2660 GOTO 230
2670 IF S(A)=0 THEN 2690
2680 GOTO 2710
2690 PRINT "NO SWARM IS REPORTED IN SECTION ";A
2700 GOTO 230
2710 IF S(A)<>1 THEN 2750
2720 IF P=5 THEN 2790
2730 PRINT "THE DESTRUCTION PHASE SHOULD BE USED IN SECTION ";A
2740 GOTO 230
2750 IF E(A)<>-1 THEN 2790
2760 IF P=6 THEN 2790
2770 PRINT "URBAN DEFENSES SHOULD BE USED IN SECTION ";A
2780 GOTO 230
2790 N=RND(1)
2800 ON P GOTO 2810,2900,2990,3050,3140,3220
2810 REM PHASE 1
2820 PRINT "BEE COCKTAIL: PHASE ONE, NOW BEING ATTEMPTED."
2830 IF N>0.95 THEN 230
2840 G(A)=T+INT(RND(1)*3+1)
2850 IF S(A)>5 THEN 2880
2860 M(A)=S(A)-2
2870 GOTO 230
2880 M(A)=S(A)-5
2890 GOTO 230
2900 REM PHASE TWO
2910 PRINT "PROJECT QUEEN: PHASE TWO, NOW BEING ATTEMPTED."
2920 IF N>0.92 THEN 230
2930 G(A) = T+INT(RND(1)*3+4)
2940 IF S(A)>3 THEN 2970
2950 M(A)=1
2960 GOTO 230
2970 M(A)=S(A)-1
2980 GOTO 230
2990 REM PHASE THREE
3000 PRINT "PROJECT BRUSH FIRE: PHASE THREE, NOW BEING ATTEMPTED."
3010 IF N>0.96 THEN 230
3020 G(A)=T+1
3030 M(A)=2
3040 GOTO 230
3050 REM PHASE 4
3060 PRINT "PROJECT STERILE MALE: PHASE FOUR, NOW BEING ATTEMPTED."
3070 IF N>0.89 THEN 230
3080 G(A)=T+INT(RND(1)*3+3)
3090 IF S(A)>6 THEN 3120
3100 M(A)=S(A)-1
3110 GOTO 230
3120 M(A)=4
3130 GOTO 230
3140 REM PHASE 5
3150 IF S(A)=1 THEN 3180
3160 PRINT "SWARM TOO LARGE: DESTRUCTION NOT POSSIBLE"
3170 GOTO 230
3180 PRINT "DESTRUCTION: PHASE FIVE, NOW BEING ATTEMPTED."
3190 IF N>0.7 THEN 230
3200 G(A)=T+INT(RND(1)*3+2)
3210 GOTO 230
3220 REM PHASE 6
3230 IF E(A)<>-1 THEN 2730
3240 INPUT "ENTER URBAN DEFENSE CODE"; D$
3250 C(A)=C(A)+INT(200*RND(1))
3260 IF RND(1) >0.8 THEN 230
3270 IF D$="A" THEN 3360
3280 IF D$="B" THEN 3420
3290 IF D$="C" THEN 3480
3300 IF D$="D" THEN 3540
3310 IF D$="E" THEN 3600
3320 IF D$="F" THEN 3640
3330 IF D$="G" THEN 3680
3340 PRINT "INVALID URBAN DEFENSE CODE !!!" : PRINT : GOTO 3240
3350 GOTO 230
3360 REM *A*
3370 IF S(A)>5 THEN 3400
3380 S(A)=S(A)-1
3390 GOTO 3710
3400 S(A)=2
3410 GOTO 3710
3420 REM *B*
3430 IF S(A)>4 THEN 3460
3440 S(A)=S(A)-3
3450 GOTO 3710
3460 S(A)=S(A)-2
3470 GOTO 3710
3480 REM *C*
3490 IF S(A)>7 THEN 3520
3500 S(A)=S(A)-3
3510 GOTO 3710
3520 S(A)=1
3530 GOTO 3710
3540 REM *D*
3550 IF S(A)>3 THEN 3580
3560 S(A)=1
3570 GOTO 3710
3580 S(A)=S(A)-3
3590 GOTO 3710
3600 REM *E*
3610 IF RND(1)>0.5 THEN 3710
3620 S(A)=2
3630 GOTO 3710
3640 REM *F*
3650 IF RND(1)>0.4 THEN 3710
3660 S(A)=1
3670 GOTO 3710
3680 REM *G*
3690 IF RND(1)>0.8 THEN 3710
3700 S(A)=S(A)-4
3710 PRINT "THE URBAN DEFENSE IN SECTION ";A;" WAS SUCCESSFUL"
3720 IF S(A)>1 THEN 230
3730 S(A)=1
3740 D(A)=1
3750 PRINT "** SWARM IN SECTION ";A;" IS READY TO BE DESTROYED"
3760 GOTO 230
3770 REM EVACUATION PROCEDURE
3780 PRINT CHR$(26);
3790 PRINT "4)      EVACUATION PROCEDURE"
3800 INPUT "ENTER SECTION #"; A
3810 IF A<1 OR A>21 OR A<>INT(A) THEN PRINT "WRONG !!! "; : GOTO 3800
3820 IF S(A)=0 THEN 3880
3830 IF V(A)>0 THEN 3900
3840 IF V(A)=-1 THEN 3920
3850 IF K(A)>0 THEN 3940
3860 IF U(A)=-1 THEN 3940
3870 GOTO 3960
3880 PRINT "COMPUTER FAILSAFE...NO SWARMS REPORTED IN SECTION ";A
3890 GOTO 230
3900 PRINT "SECTION ";A;" IS BEING EVACUATED ALREADY"
3910 GOTO 230
3920 PRINT "CITY IN SECTION ";A;" IS ALREADY EVACUATED"
3930 GOTO 230
3940 PRINT "POPULATION IN SECTION ";A;" HAS BEEN DESTROYED"
3950 GOTO 230
3960 PRINT "EVACUATION PROCEDURE NOW IN PROGRESS"
3970 V(A)=5+T
3980 GOTO 230
3990 REM ***** NUCLEAR DESTRUCTION SEQUENCE *****
4000 PRINT CHR$(26)
4010 PRINT "5)       NUCLEAR DESTRUCTION SEQUENCE"
4020 INPUT "PLEASE ENTER YOUR NAME"; N1$
4030 IF N$<>N1$ THEN 4200
4040 INPUT "PLEASE ENTER YOUR CODE WORD"; C1$
4050 IF C$<>C1$ THEN 4200
4060 PRINT "POSITIVE IDENTIFICATION CHECK";CHR$(7)
4070 PRINT "CODE WORD CHECK IS VALID"
4080 PRINT "ID SEQUENCE COMPLETED"
4090 INPUT "PLEASE ENTER SECTION #"; A
4100 IF A<1 OR A>21 OR A<>INT(A) THEN PRINT "WRONG !!! "; : GOTO 4090
4110 IF E(A)<>-1 THEN 4150
4120 IF S(A)=0 THEN 4180
4130 PRINT
4140 GOTO 4240
4150 PRINT "COMPUTER FAILSAFE: BEES NOT ARRIVED IN THE MAJOR"
4160 PRINT "CITY IN SECTION ";A
4170 GOTO 230
4180 PRINT "COMPUTER FAILSAFE: NO SWARM REPORTED IN SECTION ";A
4190 GOTO 230
4200 PRINT "ID SEQUENCE DEFAULT....IGNORED"
4210 GOTO 230
4220 PRINT "NUCLEAR DESTRUCTION ABORTED."
4230 GOTO 230
4240 PRINT "BOMB IN SECTION ";A;" IS NOW ACTIVE"
4250 IF K(A)=1 THEN 4300
4260 IF V(A)=-1 THEN 4300
4270 PRINT "SECTION ";A;" HAS NOT BEEN EVACUATED"
4280 INPUT "DO YOU WISH TO CONTINUE"; K$
4290 IF LEFT$(K$,1)="Y" THEN 4300 ELSE 4220
4300 INPUT "TYPE 'X' FOR BOMB DETONATION"; F$
4310 IF F$<>"X" THEN 4220
4320 PRINT CHR$(26)
4330 PRINT "!!!!!!!!!!!!!!!! BOMB DETONATED !!!!!!!!!!!!!!!!"
4340 PRINT "SWARM HAS BEEN DESTROYED!!!!!!!!!"
4350 PRINT "CITY HAS BEEN DESTROYED!!!!!!!!!!"
4360 C(A)=2413
4370 S(A)=0
4380 E(A)=0
4390 U(A)=0
4400 D(A)=0
4410 G(A)=0
4420 M(A)=0
4430 IF K(A)=1 THEN 4520
4440 IF V(A)<>-1 THEN 4510
4450 PRINT "THE POPULATION WILL MOVE BACK TO THE CITY"
4460 PRINT "IN SECTION ";A;" WHEN THE RADIATION LEVEL"
4470 PRINT "HAS DECREASED."
4480 K(A)=2
4490 R(A)=T+7
4500 GOTO 230
4510 C(A)=INT(2000000!*(RND(1)*A+1))+C(A)
4520 PRINT "** NO SURVIVORS ARE REPORTED IN SECTION ";A
4530 PRINT "** THE BEES WILL NOT ENTER A SECTION WITH"
4540 PRINT "** NO HUMAN INHABITANTS, SO SECTION ";A
4550 PRINT "** IS COMPLETELY LACKING LIFE OF ANY KIND."
4560 K(A)=2
4570 R(A)=-1
4580 GOTO 230
4590 REM CASUALTY REPORT
4600 PRINT CHR$(26);"6)      CASUALTY REPORT"
4610 INPUT "ENTER SECTION #"; A
4620 PRINT "************************************"
4630 IF A<>0 THEN 4680
4640 D7=-1
4650 FOR A=1 TO 21
4660 IF C(A)=0 THEN 4700
4670 IF C(A)>=1000000! THEN 4720
4680 PRINT "SECTION ";A;":    ";C(A);" CASUALTIES REPORTED"
4690 GOTO 4730
4700 PRINT "SECTION ";A;":      NO BEE RELATED CASUALTIES"
4710 GOTO 4730
4720 PRINT "SECTION ";A;":    ";C(A)/1000000!;" MILLION CASUALTIES"
4730 PRINT "************************************"
4740 F=C(A)+F
4750 IF D7<>-1 THEN 4820
4760 NEXT A
4770 D7=0
4780 IF F<1000000! THEN 4810
4790 PRINT "TOTAL CASUALTIES REPORTED: ";F/1000000!;" MILLION CASUALTIES"
4800 GOTO 4820
4810 PRINT "TOTAL CASUALTIES REPORTED: ";F
4820 IF W=0 THEN 5130
4830 F=0
4840 GOTO 230
4850 REM PRINT COMMANDS IN SHORT
4860 PRINT CHR$(26)
4870 PRINT "************************COMMANDS*********************"
4880 PRINT
4890 PRINT "             1) ATTACK SCAN MAP"
4900 PRINT "             2) ETA REPORT"
4910 PRINT "             3) BATTLE PHASE OPTIONS"
4920 PRINT "                   1. BEE COCKTAIL"
4930 PRINT "                   2. PROJECT QUEEN"
4940 PRINT "                   3. PROJECT BRUSH FIRE"
4950 PRINT "                   4. PROJECT STERILE MALE"
4960 PRINT "                   5. DESTRUCTION"
4970 PRINT "                   6. URBAN DEFENSES"
4980 PRINT "                        A) FLIGHT PATTERNS"
4990 PRINT "                        B) SONIC BOOM"
5000 PRINT "                        C) SUPER-SONIC BEAMS"
5010 PRINT "                        D) POLLUTION"
5020 PRINT "                        E) METHYL PARATHION"
5030 PRINT "                        F) FIRE WALL"
5040 PRINT "                        G) STROBE LIGHT"
5050 PRINT "             4) EVACUATION PROCEDURES"
5060 PRINT "             5) NUCLEAR DESTRUCTION"
5070 PRINT "             6) CASUALTY REPORT"
5080 PRINT "             7) COMMANDS (SHORT)"
5090 PRINT "             8) CANCEL GAME"
5100 GOTO 230
5110 REM GAME CANCELLED
5120 REM
5130 REM
5140 RESET : CHAIN "mENU",1000
5150 X9=LEN(N$) : X8=LEN(C$)
5160 X7=RND(-X9) : X7=X9+X8
5170 FOR X9=1 TO X7+1 : X8=RND(1) : NEXT
5180 RETURN

SYNONYMS.BAS

10 CLS:KEY OFF
100 REM MODERNIZED BY DAVE NIXON JAN. 16 1977
110 CLEAR 300
120 DEFINT A-Z
130 N3=1
140 DIM R$(10),W$(20),L(20),T(150)
150 INPUT "WHAT IS YOUR NAME";NA$
160 PRINT"                      SYNONYMS"
170 PRINT"     IN THIS PROGRAM, YOU WILL FIND A COLLECTION OF SYNONYMS."
180 PRINT "A SYNONYM OF A WORD, IN THIS PROGRAN, WILL MEAN ANOTHER"
190 PRINT "WORD IN THE ENGLISH LANGUAGE WHICH HAS THE SAME"
200 PRINT "OR VERY NEARLY THE SAME MEANING. *NOTE-NOT ALL SYNONYMS"
210 PRINT "ARE IN THE COMPUTER*":PRINT
220 PRINT
230 PRINT"     I CHOOSE A WORD - YOU TYPE A SYNONYM.  IF YOU CANNOT"
240 PRINT"THINK OF A WORD; TYPE THE WORD  HELP  .  THIS CAUSES"
250 PRINT"A SYNONYM TO BE PRINTED."
260 PRINT
270 NR=9:NE=5
280 E$(1)="BETTER LUCK NEXT TIME "+NA$
290 E$(2)="WIN SOME LOSE SOME"
300 E$(3)="TRY HARDER NEXT TIME "+NA$
310 E$(4)=NA$+" I KNOW YOU CAN DO BETTER THAN THAT"
320 E$(5)=NA$+" I AM ASHAMED OF YOU"
330 LET R$(1)="CORRECT"
340 LET R$(2)="VERY GOOD"
350 LET R$(3)="FINE"
360 LET R$(4)="GOOD"
370 LET R$(5)="GOOD GOING"
380 R$(6)="RIGHT ON "+NA$
390 R$(7)=NA$+" YOUR NEAR PERFECT"
400 R$(8)="KEEP UP THE GOOD WORK "+NA$
410 R$(9)="THATS THE WAY! "+NA$
420 PRINT
430 PRINT
440 RESTORE
450 READ N
460 I=1:E=0:NT=2
470 LET N1=INT(RND(1)*N+1)
480 IF N3>N THEN PRINT:PRINT "NO MORE SYNONYMS":GOTO 1000
490 IF N1=T(I) THEN GOTO 460 ELSE I=I+1:IF I<N3 GOTO 490
500 T(N3)=N1:N3=N3+1
510 I=0
520 READ N2
530 N4=2
540 FOR J=1 TO N2
550 READ W$(J)
560 NEXT J
570 I=I+1:IF I<N1 GOTO 520
580 FOR J=1 TO N2
590 LET L(J)=J
600 NEXT J
610 LET L(0)=N2
620 LET G=1
630 PRINT
640 LET L(G)=L(L(0))
650 LET L(0)=N2-1
660 PRINT
670 PRINT "    WHAT IS A SYNONYM OF ";W$(G);
680 INPUT A$
690 IF A$="HELP" THEN 870
700 FOR J=2 TO N2:IF A$=W$(J) THEN GOTO 810 ELSE NEXT J
710 FOR J=2 TO N2
720 CT=LEN(W$(J))
730 IF CT<5 GOTO 780
740 FOR I1=1 TO LEN(W$(J))
750 IF MID$(W$(J),I1,1)=MID$(A$,I1,1) THEN CT=CT-1
760 NEXT I1
770 IF CT<3 THEN PRINT "CHECK YOUR SPELLING"
780 NEXT J
790 PRINT "   TRY AGAIN. ";
800 GOTO 670
810 IF J<>L1 THEN E=0
820 IF E=1 THEN PRINT E$(RND(1)*NE+1)ELSEPRINT R$(RND(1)*NR+1)
830 IF N2=2 THEN GOTO 440
840 PRINT "ALL THE SYNONYMS THAT I HAVE ARE"
850 FOR P=2 TO N2:PRINT W$(P),:NEXT P
860 GOTO 440
870 LET G1=INT(RND(1)*L(0)+1)
880 E=1
890 IF L(0)=0 THEN 970
900 PRINT "**** A SYNONYM OF ";W$(G);" IS ";W$(L(G1));"."
910 IF N2>N4 THEN PRINT "THERE ARE OTHERS":N4=N4+1
920 PRINT
930 L1=L(G1)
940 LET L(G1)=L(L(0))
950 LET L(0)=L(0)-1
960 NT=NT+1:IF NT>N2 THEN GOTO 440 ELSE GOTO 670
970 PRINT "THERE ARE NO MORE SYNONYMS."
980 GOTO 670
990 PRINT
1000 PRINT" THIS SYNONYM EXERCISE IS COMPLETED."
1010 END
1020 DATA 106
1030 DATA 5,ACCUMULATE,AMASS,HOARD,COLLECT,GATHER:
1040 DATA 10,ADORN,DECORATE,ORNAMENT,BEAUTIFY,DECK,BEDECK:
1050 DATA  GARNISH,GRACE,EXALT,HONOR:
1060 DATA 4,ADVANCE,PROMOTE,FORWARD,FURTHER:
1070 DATA 6,AGILE,ACTIVE,NIMBLE,BRISK,SPRY,ACTIVE:
1080 DATA 10,ALLIANCE,LEAGUE,COALITION,FUSION,CONFEDERACY:
1090 DATA  CONFEDERATION,FEDERATION,UNION,CONNECTION,AFFINITY:
1100 DATA 8,ALONE,SOLITARY,LONELY,LONESOME,LONE,FORLORN:
1110 DATA LORN,DESOLATE:
1120 DATA 6,AMUSE,DIVERT,ENTERTAIN,RECREATE,BEGUILE,ENLIVEN:
1130 DATA 8,APPARITION,PHANTASM,PHANTOM,GHOST,SPIRIT:
1140 DATA SPOOK,HAUNT,VISION:
1150 DATA 11,APPLAUD,CHEER,HURRAH,ROOT,COMMEND,APPROVE,EXTOL:
1160 DATA  ENCORE,LAUD,PRAISE,CLAP:
1170 DATA 5,ATTACK,ASSAIL,ASSAULT,BOMBARD,STORM:
1180 DATA 8,ATTRACT,ALLURE,CHARM,FASCINATE,BEWITCH,ENCHANT:
1190 DATA CAPTIVATE,TAKE:
1200 DATA 5,AVERAGE,MEAN,MEDIAN,NORM,PAR:
1210 DATA 6,AWARE,COGNIZANT,CONSCIOUS,SENSIBLE,ALIVE,AWAKE:
1220 DATA 5,BAKE,ROAST,BROIL,GRILL,BARBECUE:
1230 DATA 5,BEGIN,COMMENCE,START,INITIATE,INAUGURATE:
1240 DATA 4,BELOW,UNDER,BENEATH,UNDERNEATH:
1250 DATA 4,BET,WAGER,STAKE,GAMBLE:
1260 DATA 5,BODY,CORPSE,CARCASS,CADAVER,STIFF:
1270 DATA 10,BARE,NAKED,NUDE,BALD,BARREN,STRIPPED,UNDRESSED:
1280 DATA  UNCLOTHED,UNADORNED,UNCOVERED:
1290 DATA 7,BLAZE,FLAME,FLARE,GLARE,GLOW,FIRE,BURN:
1300 DATA 7,BORDER,MARGIN,VERGE,EDGE,RIM,BRIM,BRINK:
1310 DATA 9,BRAVE,COURAGEOUS,BOLD,AUDACIOUS,DAUNTLESS:
1320 DATA UNDAUNTED,INTREPID,VALIANT,VALOROUS:
1330 DATA 6,BRIGAND,BANDIT,HIGHWAYMAN,FOOTPAD,MARAUDER,OUTLAW:
1340 DATA 7,BUNDLE,BUNCH,BALE,PARCEL,PACK,PACKAGE,PACKET:
1350 DATA 16,BURN,SCORCH,CHAR,SEAR,SINGE,IGNITE,KINDLE,BRAND:
1360 DATA  CONSUME,CAUTERIZE,CREMATE,INCINERATE,RAGE,GLOW:
1370 DATA  SMOLDER,BLAZE:
1380 DATA 5,COMMERCE,BUSINESS,TRADE,INDUSTRY,TRAFFIC:
1390 DATA 4,CALCULATE,COMPUTE,ESTIMATE,RECKON:
1400 DATA 2,CENTRAL,MIDDLE:
1410 DATA 3,DASH,HURRY,RUSH:
1420 DATA 2,DIFFICULT,HARD:
1430 DATA 2,GATHER,COLLECT:
1440 DATA 2,GLAD,HAPPY:
1450 DATA 2,GLANCE,LOOK:
1460 DATA 2,GREET,MEET:
1470 DATA 2,INVITE,ASK:
1480 DATA 2,LARGE,BIG:
1490 DATA 2,LAST,END:
1500 DATA 2,NEAR,CLOSE:
1510 DATA 2,PETTY,BEAUTIFUL:
1520 DATA 2,SHOVE,PUSH::
1530 DATA 3,SILENT,STILL,QUIET:
1540 DATA 2,SLEEPY,TIRED:
1550 DATA 3,SMALL,TINY,LITTLE:
1560 DATA 2,STIR,MIX:
1570 DATA 2,TALE,STORY:
1580 DATA 2,TWIST,TURN:
1590 DATA 2,UNHAPPY,SAD:
1600 DATA 2,BOTHER,DISTURB:
1610 DATA 2,CHALLENGE,DARE:
1620 DATA 3,CHANGE,MONEY,ALTER:
1630 DATA 2,COMPANION,FRIEND:
1640 DATA 2,GARMENTS,CLOTHES:
1650 DATA 2,GIFT,PRESENT:
1660 DATA 3,MEND,REPAIR,FIX:
1670 DATA 2,PROPER,RIGHT:
1680 DATA 2,PROTECT,DEFEND:
1690 DATA 2,REGULAR,USUAL:
1700 DATA 2,RETREAT,RUN:
1710 DATA 2,SEEM,APPEAR:
1720 DATA 2,SELECT,CHOOSE:
1730 DATA 2,SPARE,EXTRA:
1740 DATA 2,SUPPLY,PROVIDE:
1750 DATA 3,TERRIFY,FRIGHTEN,SCARE:
1760 DATA 2,SIGNAL,SIGN:
1770 DATA 2,VOYAGE,JOURNEY:
1780 DATA 2,WHOLE,COMPLETE:
1790 DATA 4,AGREE,CONSENT,ALLOW,PERMIT:
1800 DATA 4,ANGER,RAGE,HATE,DISLIKE:
1810 DATA 3,ANSWER,REPLY,RESPONSE:
1820 DATA 2,CONCEAL,HIDE:
1830 DATA 2,COURAGEOUS,BRAVE:
1840 DATA 3,INSPECT,EXAMINE,STUDY:
1850 DATA 3,LET,PERMIT,ALLOW:
1860 DATA 5,MINUTE,MOMENT,SECOND,SMALL,TINY:
1870 DATA 3,QUICKLY,RAPIDLY,SWIFTLY:
1880 DATA 3,PERHAPS,MAYBE,POSSIBLY:
1890 DATA 2,PLEAD,BEG:
1900 DATA 3,PUBLISH,PRINT,ANNOUNCE:
1910 DATA 3,REMEMBER,RECALL,RECOLLECT:
1920 DATA 3,SCENT,ODOR,SMELL:
1930 DATA 2,SENTINEL,GUARD:
1940 DATA 2,SHINY,BRIGHT:
1950 DATA 2,SUFFER,ENDURE:
1960 DATA 6,THINK,PONDER,BELIEVE,CONTEMPLATE,CONCENTRATE,IMAGINE:
1970 DATA 4,WONDERFUL,MARVELOUS,FANTASTIC,GREAT:
1980 DATA 4,ASTONISH,AMAZE,SURPRISE,ASTOUND:
1990 DATA 3,BENEATH,BELOW,UNDER:
2000 DATA 3,CERTAIN,SURE,POSITIVE:
2010 DATA 6,COMPLETE,WHOLE,ENTIRE,ALL,FINISH,CONCLUDE:
2020 DATA 2,CREVICE,CRACK:
2030 DATA 3,FOREVER,ALWAYS,INFINITY:
2040 DATA 3,GUARD,DEFEND,PROTECT:
2050 DATA 3,HELP,AID,ASSISTANCE:
2060 DATA 2,INTENTION,PURPOSE:
2070 DATA 3,MOLD,SHAPE,FUNGUS:
2080 DATA 4,PAUSE,HESITATE,REST,STOP:
2090 DATA 2,PERISH,DIE:
2100 DATA 3,PLEDGE,PROMISE,VOW:
2110 DATA 2,PROBABLY,LIKELY:
2120 DATA 3,REPLY,ANSWER,RESPOND:
2130 DATA 2,REQUIRE,NEED:
2140 DATA 2,SAVE,RESCUE:
2150 DATA 3,TELL,STATE,DECLARE:
2160 DATA 2,THOROUGH,COMPLETE:
2170 DATA 2,WARN,CAUTION:
2180 END::

TAXMAN.BAS

1 CLS:KEY OFF
10 DIM T(10)
20 DIM L(50)
101 PRINT
104 PRINT"HI, I'M THE TAXMAN"
106 PRINT"DO YOU WANT THE REGULATIONS ( Y  OR  N )";
108 INPUT R$
110 IF R$="Y" THEN 900
120 REM ***INITIALZATION
122 GOSUB 800
124 REM ***THE HUMAN TAKES A NUMBER
126 GOSUB 500
128 REM *** COMPUTE THE HUMAN'S AND TAXMANS TOTLES
130 GOSUB 570
132 REM *** PRINT THE NEW LIST
134 GOSUB 600
136 REM *** CHECK IF ANY NUMBERS STILL HAVE FACTORS
138 GOSUB 650
140 IF M=1 THEN 126
142 REM *** FIND THE WINNER
144 GOSUB 700
146 REM *** AGAIN?
148 GOTO 750
496 REM
497 REM *** THE HUMAN MOVES
498 REM
500 PRINT
502 PRINT
504 PRINT"YOU TAKE";
506 INPUT K
508 LET K=INT(K)
510 IF K <= 0 THEN 750
512 IF K <=N THEN 518
514 PRINT K;"IS NOT IN THE LIST  --  TRY AGAIN."
516 GOTO 502
518 IF L(K)=0 THEN 514
520 REM  FIND ALL THE FACTORS
522 IF K>1 THEN 530
524 PRINT"THERE ARE NO FACTORS OF";K;"FOR ME."
526 PRINT"ARE YOU TRYING TO SHORT-CHANGE THE TAXMAN?"
528 GOTO 502
530 LET M=0
532 FOR I=1 TO K/2
534 IF L(I)=0 THEN 544
536 IF K <> I*INT(K/I) THEN 544
538 LET M=M+1
540 LET T(M)=I
542 LET L(I)=0
544 NEXT I
546 REM CHECK WETHER THERE WERE ANY FACTORS
548 IF M=0 THEN 524
550 LET L(K)=0
552 RETURN
566 REM
567 REM *** COMPUTE THE HUMAN'S AND TAXMAN'S TOTALS
568 REM
570 LET Y=Y+K
572 PRINT"YOUR TOTAL IS";Y
574 PRINT"I GET";
576 FOR I=1 TO M
578 PRINT T(I);
580 LET Z=Z+T(I)
582 NEXT I
584 PRINT
586 PRINT"MY TOTAL IS";Z
588 RETURN
596 REM
597 REM *** PRINT THE NEW LIST
598 REM
600 PRINT
602 PRINT"NEW LIST:";
604 LET M=0
606 FOR I=1 TO N
608 IF L(I)=0 THEN 614
610 PRINT I;
612 LET M=1
614 NEXT I
616 RETURN
646 REM
647 REM *** CHECK IF ANY NUMBERS STILL HAVE FACTORS
648 REM
649 REM CHECK IF THE LIST IS EMPTY
650 IF M=0 THEN 690
652 FOR I=N TO 4 STEP -1
654 FOR J=2 TO I/2
656 IF L(J)=0 THEN 664
658 IF I<> J*INT(I/J) THEN 664
660 LET M=1
662 RETURN
664 NEXT J
666 NEXT I
668 REM  THE TAXMAN GETS THE REST OF THE NUMBERS
670 PRINT
672 PRINT"I GET";
674 FOR I=1 TO N
676 IF L(I)=0 THEN 682
678 PRINT I;
680 LET Z=Z+I
682 NEXT I
684 PRINT"BECAUSE NO FACTORS OF ANY NUMBER ARE LEFT."
686 PRINT"MY TOTAL IS";Z
688 LET M=0
690 RETURN
696 REM
697 REM *** FIND THE WINNER
698 REM
700 PRINT
702 IF Z>Y THEN 708
704 PRINT"YOU";Y;"     TAXMAN";Z;"    YOU WIN!!!"
706 RETURN
708 PRINT"TAXMAN";Z;"    YOU";Y;"    THE TAXMAN WINS."
710 RETURN
746 REM
747 REM *** AGAIN?
748 REM
750 PRINT
752 PRINT
754 PRINT"AGAIN ( Y  OR  N )";
756 INPUT R$
759 IF R$="N" THEN 999
760 GOTO 122
796 REM
797 REM *** INITIALATION
798 REM
800 PRINT
802 PRINT"HOW MANY NUMBERS DO YOU WANT IN THE LIST";
804 INPUT N
806 LET N=INT(N)
808 IF N <= 0 THEN 999
810 IF N=50 THEN 818
811 IF N<50 THEN 818
812 PRINT"AT THIS TIME, REGULATIONS ALLOW A MAXIMUM OF 50 NUMBERS."
814 GOTO 800
818 LET Y=0
820 LET Z=0
822 PRINT
824 PRINT"THE LIST IS:";
826 FOR I=1 TO N
828 PRINT I;
830 LET L(I)=1
832 NEXT I
834 IF N>1 THEN 844
836 PRINT
838 PRINT"HOW VERY GENEROUS OF YOU TO FORFEIT ALL TO THE TAXMAN."
840 PRINT"TAXMAN  1    YOU  0       THE TAXMAN WINS."
842 GOTO 750
844 RETURN
896 REM
897 REM *** INSTRUCTIONS
898 REM
900 PRINT
901 PRINT"YOU TRY TO BEAT THE TAXMAN."
902 PRINT
904 PRINT"WE START WITH A LIST OF WHOLE NUMBERS IN NUMERICAL"
906 PRINT"ORDER (YOU DECIDE HOW MANY)."
908 PRINT
910 PRINT"YOU TAKE A NUMBER FROM THE LIST -- THE TAXMAN GETS"
912 PRINT"ALL THE FACTORS OF YOUR NUMBER THAT ARE STILL LEFT"
914 PRINT"YOUR NUMBER AND ALL OF ITS FACTORS ARE THEN DELETED"
916 PRINT"FROM THE LIST."
918 PRINT
920 PRINT"FOR EXAMPLE, SUPPOSE YOU WANT TEN NUMBERS TO BE IN THE LIST."
922 PRINT"THEN THE LIST WOULD BE: 1 2 3 4 5 6 7 8 9 10"
924 PRINT
926 PRINT"IF YOU TOOK 8, THE TAXMAN WOULD GET: 1, 2, AND 4"
928 PRINT"AND THE NEW LIST WOULD BE: 3 5 6 7 9 10"
929 INPUT"TYPE G THEN (RETURN) TO GO ON";W$
930 IF W$<>"G" THEN 929
932 PRINT"THE TAXMAN MUST GET SOMTHING EVERY TIME SO YOU CAN"
934 PRINT"ONLY PICK A NUMBER THAT HAS FACTORS LEFT,"
936 PRINT
938 PRINT"WHEN NONE OF THE REMAINING FACTORS,"
940 PRINT"THE TAXMAN GETS THEM!!!"
942 PRINT
944 PRINT"YOUR SCORE IS THE SUM OF NUMBERS YOU TAKE."
946 PRINT"IF YOU WANT TO GIVE UP, TAKE 0."
948 PRINT"GOOD LUCK !!!"
950 GOTO 122
999 END

TRADE.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'"
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"
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 ",
1500 RESTORE
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 END

WEATHER.BAS

10 CLS:KEY OFF
20 DIM S$(10)
30 PRINT"THIS PROGRAM WILL ATTEMPT TO PREDICT TOMORROWS WEATHER IF"
40 PRINT"GIVEN THE WEATHER STATISTICS FROM THE PAST TWO DAYS."
50 PRINT TAB(5);"SEASON"
60 INPUT S$(1)
70 GOSUB 1420
80 GOTO 50
90 PRINT"AFTER THE FOLLOWING QUESTION MARKS YOU WILL BE REQUIRED"
100 PRINT"TO INPUT TWO VALUES, ONE FOR YESTERDAY'S READING AND ONE"
110 PRINT"FOR TODAY'S READING.  SEPERATE THESE READINGS BY A COMMA."
120 PRINT TAB(5);"TEMPERATURE"
130 INPUT T1,T2
140 GOSUB 1490
150 GOTO 120
160 PRINT TAB(5);"BAROMETER"
170 INPUT B1,B2
180 GOSUB 1560
190 GOTO 160
200 PRINT TAB(5);"BAROMETER TENDENCY(1=RISING,2=FALLING,3=STEADY):"
210 INPUT T3,T4
220 GOSUB 1630
230 GOTO 200
240 PRINT TAB(5);"RELATIVE HUMIDITY"
250 INPUT H1,H2
260 GOSUB 1700
270 GOTO 240
280 PRINT TAB(5);"CLOUDS(1=STRATUS,2=CUMULUS,3=CIRRUS)"
290 INPUT C1,C2
300 GOSUB 1770
310 GOTO 280
320 PRINT TAB(5);"CLOUD COVER(PERCENTAGE)"
330 INPUT C4,C5
340 GOSUB 1840
350 GOTO 320
360 PRINT TAB(5);"WIND DIRECTION (1=NORTH,2=SOUTH,3=EAST,4=WEST)"
370 INPUT D1,D2
380 GOSUB 1910
390 GOTO 360
400 PRINT TAB(5);"WIND SPEED"
410 INPUT S2,S3
420 GOSUB 1980
430 GOTO 400
440 PRINT
450 PRINT
460 PRINT
470 PRINT"------------------------------------------------------"
480 PRINT"PRESENT SEASON IS ";S$(1)
490 PRINT
500 PRINT "FORECAST FOR TOMORROW:"
510 PRINT
520 PRINT
530 PRINT"TEMPERATURES:"
540 LET T7=((T1+T2)/2)-30
550 LET T6=T7+10
560 PRINT "LOWS TONIGHT BETWEEN";T7;"AND";T6;"DEGREES"
570 LET T9=((T1+T2)/2)+5
580 LET T8=T9-5
590 PRINT "HIGHS TOMORROW NIGHT BETWEEN";T8;"AND";T9;"DEGREES"
600 LET T0=T7-5
610 PRINT "LOWS TOMORROW NIGHT BETWEEN ";T0;"AND";T7;"DEGREES"
620 LET B4=(B1+B2)/2
630 B0=INT(ABS(B1-B2))
640 LET T9=(T3+T4)/2
650 LET T9=INT(T9)
660 IF T9=2 THEN 700
670 IF T9=3 THEN 720
680 PRINT"BAROMETER";B4;" AND RISING."
690 GOTO 730
700 PRINT"BAROMETER";B4;" AND FALLING."
710 GOTO 730
720 PRINT"BAROMETER";B4;" AND STEADY."
730 LET H3=((H1+H2)/2)+5
740 LET H4=H3-5
750 PRINT "HUMIDITY BETWEEN ";H4;"AND ";H3;"PERCENT"
760 LET C3=(C1+C2)/2
770 LET C3=INT(C3)
780 LET C9=((C4+C5)/2)+5
790 LET C8=C9-5
800 PRINT"CLOUD COVER BETWEEN";C8;"AND";C9;"PERCENT"
810 IF C3=2 THEN 860
820 IF C3=3 THEN 890
830 PRINT"CLOUD HEIGHT BETWEEN  500 TO  580 FEET."
840 PRINT"MAJOR CLOUD TYPE WILL BE STRATUS."
850 GOTO 910
860 PRINT"CLOUD HEIGHT BETWEEN  1550 TO  1800 FEET."
870 PRINT"MAJOR CLOUD TYPE WILL BE CUMULUS."
880 GOTO 910
890 PRINT"CLOUD HEIGHT BETWEEN  16500 TO 17000 FEET."
900 PRINT"MAJOR CLOUD TYPE WILL BE CIRRUS."
910 LET D5=(D1+D2)/2
920 LET D5=INT(D5)
930 LET S5=((S2+S3)/2)+5
940 LET S6=S5-5
950 IF D5=2 THEN 1000
960 IF D5=3 THEN 1020
970 IF D5=4 THEN 1040
980 PRINT"WIND FROM THE NORTH FROM";S6;"TO";S5;"MPH"
990 GOTO 1050
1000 PRINT"WIND FROM THE SOUTH FROM";S6;"TO";S5;"MPH"
1010 GOTO 1050
1020 PRINT "WIND FORM THE EAST FROM";S6;"TO";S5;"MPH"
1030 GOTO 1050
1040 PRINT"WIND FROM THE WEST FROM";S6;"TO";S5;"MPH"
1050 PRINT"CHANCE OF PRECIPITATION:"
1060 LET P1=INT((((C5/2)+B2)+C2)/0.5)
1070 IF P1>100 THEN 2090
1080 PRINT "TONIGHT";P1;"%"
1090 LET P2=INT(((C9/2)+B4)+C3)
1100 IF P2>100 THEN 2110
1110 PRINT"TOMORROW";P2;"%"
1120 IF P3>100 THEN 2130
1130 PRINT"TOMORROW NIGHT";P3;"%"
1140 PRINT
1150 IF C2=2 THEN 1260
1160 IF C2=3 THEN 1340
1170 PRINT"FORECAST FOR TOMORROWS WEATHER:"
1180 PRINT
1190 PRINT"IT SHOULD BE FAIR TOMORROW."
1200 IF S$(1)="SPRING"THEN 1240
1210 IF S$(1)="SUMMER"THEN 1240
1220 PRINT"IT SHOULD BE COOLER TOMORROW WITH NO PRECIPITATION LIKELY."
1230 GOTO 1410
1240 PRINT"IT SHOULD BE WARMER TOMORROW WITH NO PRECIPITATION LIKELY."
1250 GOTO 1410
1260 PRINT"FORECAST FOR TOMORROWS WEATHER."
1270 PRINT
1280 IF S$(1)="SUMMER"THEN 1310
1290 PRINT"IT SHOULD BE FAIR TOMORROW."
1300 GOTO 1200
1310 PRINT"IF THEY ARE HEAVY CLOUDS--BE READY FOR RAIN."
1320 PRINT"IF THE CLOUDS ARE LIGHT--IT WILL BE FAIR."
1330 GOTO 1410
1340 IF S$(1)="FALL" THEN 1410
1350 PRINT
1360 IF S$(1)="SPRING"THEN 1400
1370 IF S$(1)="SUMMER"THEN 1400
1380 PRINT"TOMORROW,EXPECT SNOW TO FALL FOLLOWED BY HIGHER TEMPERATURES."
1390 GOTO 1410
1400 PRINT"TOMORROW,EXPECT RAIN TO FALL FOLLOWED BY HIGHER TEMPERATURES."
1410 GOTO 2050
1420 IF S$(1)="WINTER"THEN 90
1430 IF S$(1)="FALL"THEN 90
1440 IF S$(1)="SPRING"THEN 90
1450 IF S$(1)="SUMMER" THEN 90
1460 PRINT TAB(5);"LETS TRY THAT ONE AGAIN(SEASONS:WINTER,SPRING";
1470 PRINT"FALL,SUMMER)..."
1480 RETURN
1490 IF T1>135 THEN 1540
1500 IF T1<-80 THEN 1540
1510 IF T2>135 THEN 1540
1520 IF T2<-80 THEN 1540
1530 GOTO 160
1540 PRINT TAB(5);"LETS TRY THAT ONE AGAIN(NORMALS-80-135)..."
1550 RETURN
1560 IF B1>31.5 THEN 1610
1570 IF B1<28.5 THEN 1610
1580 IF B2>31.5 THEN 1610
1590 IF B2<28.5 THEN 1610
1600 GOTO 200
1610 PRINT TAB(5);"LETS TRY THAT ONE AGAIN(NORMALS:28.5-31.5)..."
1620 RETURN
1630 IF T3<1 THEN 1680
1640 IF T3>3 THEN 1680
1650 IF T4<1 THEN 1680
1660 IF T4>3 THEN 1680
1670 GOTO 240
1680 PRINT TAB(5);"LETS TRY THAT ONE AGAIN..."
1690 RETURN
1700 IF H1<0 THEN 1750
1710 IF H1>100 THEN 1750
1720 IF H2<0 THEN 1750
1730 IF H2>100 THEN 1750
1740 GOTO 280
1750 PRINT TAB(5);"LETS TRY THAT ONE AGAIN(HUMIDITY:0-100)..."
1760 RETURN
1770 IF C1<1 THEN 1820
1780 IF C1>3 THEN 1820
1790 IF C2<1 THEN 1820
1800 IF C2>3 THEN 1820
1810 GOTO 320
1820 PRINT TAB(5);"LETS TRY THAT ONE AGAIN..."
1830 RETURN
1840 IF C4<0 THEN 1890
1850 IF C4>100 THEN 1890
1860 IF C5<0 THEN 1890
1870 IF C5>100 THEN 1890
1880 GOTO 360
1890 PRINT TAB(5);"LETS TRY THAT ONE AGAIN(COVER:0-100)..."
1900 RETURN
1910 IF D1<1 THEN 1960
1920 IF D1>4 THEN 1960
1930 IF D2<1 THEN 1960
1940 IF D2>4 THEN 1960
1950 GOTO 400
1960 PRINT TAB(5);"LETS TRY THAT ONE AGAIN..."
1970 RETURN
1980 IF S2<0 THEN 2030
1990 IF S2>75 THEN 2030
2000 IF S3<0 THEN 2030
2010 IF S3>75 THEN 2030
2020 GOTO 440
2030 PRINT TAB(5);"LETS TRY THAT ON E AGAIN(NORMAL:0-75)..."
2040 RETURN
2050 GOSUB 2150
2060 PRINT"THE END"
2070 PRINT"---------------------------------------------------"
2080 CHAIN "MENU",1000
2090 LET P1=100
2100 GOTO 1080
2110 LET P2=100
2120 GOTO 1110
2130 LET P3=100
2140 GOTO 1130
2150 IF D2=2 THEN 2310
2160 IF D2=3 THEN 2400
2170 IF D2=1 THEN 2500
2180 IF B2=>30.2 THEN 2260
2190 IF B2=>30.1 THEN 2220
2200 PRINT"IT WILL BE CLEARING AND COLDER TOMORROW."
2210 GOTO 2540
2220 IF T2=3 THEN 2250
2230 PRINT"IT WILL BE FAIR TOMORROW, FOLLOWED BY WINDS AND PRECIPITATION."
2240 GOTO 2540
2250 PRINT"IT WILL BE FAIR TOMORROW, WITH LITTLE TEMPERATURE CHANGE."
2260 IF T2=3 THEN 2290
2270 PRINT"IT WILL BE FAIR TOMORROW WITH SLOWLY RISING TEMPERATURES."
2280 GOTO 2540
2290 PRINT "IT WILL BE CONTINUED FAIR TOMORROW."
2300 GOTO 2540
2310 IF B2<=29.8 THEN 2370
2320 IF B2<=30! THEN 2350
2330 PRINT"IT WILL BE WINDY WITH RAIN IN 12-24 HOURS."
2340 GOTO 2540
2350 PRINT"IT WILL BE CLEARING AND FAIR FOR SEVERAL DAYS FOLLOWING."
2360 GOTO 2540
2370 PRINT"THERE WILL BE A SEVERE STORM IN 24 HOURS FOLLOWED BY ";
2380 PRINT"CLEARING."
2390 GOTO 2540
2400 IF B2<=29.8 THEN 2450
2410 IF B2=> 30.1 THEN 2470
2420 PRINT"IN WINTER, EXPECT SNOW WITH WINDS."
2430 PRINT"IN SUMMER, EXPECT A LONG DRY SPELL."
2440 GOTO 2540
2450 PRINT"THERE WILL BE A NORTHEAST WIND WITH HEAVY PRECIPITATION."
2460 GOTO 2540
2470 PRINT"IN WINTER, EXPECT SNOW IN 24 HOURS."
2480 PRINT"IN SUMMER, EXPECT A DRY SPELL."
2490 GOTO 2540
2500 IF B2<=30! THEN 2530
2510 PRINT"RAIN WILL CONTINUE WITH WINDS FOR 36 HOURS, THEN CLEARING."
2520 GOTO 2540
2530 PRINT "RAIN WILL FALL IN 12 TO 18 HOURS."
2540 RETURN

Directory of PC-SIG Library Disk #0045

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

BOMB     BAS      1920   1-01-80  12:04a
ANTONYMS BAS      5248   1-01-80   1:13a
AWARI    BAS      2048   1-01-80  12:53a
BIO      BAS      3584  10-29-82   9:28p
HIDESEEK BAS      1920   1-29-83   3:37a
IQUEEN   BAS      4224   1-29-83   3:43a
DOTS     BAS      6144   1-01-80   1:09a
DRAGRACE BAS      2432   1-01-80   1:33a
BIRTHDAY BAS      4608   1-29-83   3:53a
FOOTBALL BAS      6400   1-01-80   1:24a
GALAXY   BAS       512   1-29-83   3:19a
GALAXY2  BAS      1664   1-01-80  12:12a
CLIMATES BAS      4608   1-01-80  12:57a
CLOUD-9  BAS      4736   1-01-80  12:57a
GREEKRTS BAS      1536   1-01-80  12:22a
SWARMS   BAS     13056   2-11-83  12:25a
MEMBRAIN BAS      5632   1-01-80   2:39a
BASEBALL BAS     11136   2-11-83  12:23a
MINIMATH BAS      2816   1-01-80  12:52a
REVERSE  BAS      1920   1-01-80  12:27a
SHOP     BAS      7680   1-01-80  12:25a
SNOOPY   BAS      2816   1-01-80  12:31a
SQUARE   BAS      6400   2-09-83  12:51a
CIVILWAR BAS      7168   2-11-83  12:30a
SYNONYMS BAS      6400   1-01-80  12:37a
TAXMAN   BAS      3584   1-01-80   2:41a
TRADE    BAS     12800   1-01-80   1:08a
BACCRRT  BAS      3200   2-09-83  12:46a
WEATHER  BAS      6656   2-14-83   4:19a
CRC      TXT      1921  11-09-84   9:59a
CRCK4    COM      1536  10-21-82   7:54p
       31 file(s)     146305 bytes
                        9728 bytes free