PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #228)

[PCjs Machine "ibm5150"]

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

Information about “GAME SERIES NO 16”

Ever have the urge to blow up something?  Try NUKE-SF, it is a graphic
demo of nuclear destruction.  Then relax with a game of CRIBBAGE or
SLOT, or try two adventure games, VAMPIRE and T-ROAD.  Then try your
reflexes against FIREFIRE.  And when you're sure that you are the
fastest thing on two fingers, try PAC-GAL and see.

System Requirements: Some programs require BASIC, color graphics.

How to Start: To run an EXE program, just type its name and press
<ENTER>.  For instructions on running BASIC programs, please refer to
the GETTING STARTED section in this catalog.

File Descriptions:

COLSLOT  BAS  One arm bandit in color - its a winner  (Requires color)
PAC-GAL  EXE  Game - eatem up dots
CRIBBAGE BLD  Subroutines for CRIBBAGE.BAS
CRIBBAGE BAS  Game - same rules as board game one player vs PC
FIREFIRE BAS  Game - reflexes on keyboard
T-ROAD   BAS  A neat and interesting adventure game
MAZE     BAS  Produces mazes of any size for screen or printer
NUKE-SF  BAS  A well done nuclear war demo
NEWFONT  BAS  The program in PC - bugs?
VAMPIRE  BAS  Adventure game
SLOT     BAS  Same as you have, but graphics are better and in color
README   DOC  Listing of included files

COLSLOT.BAS

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

CRC.TXT

PC-SIG Disk No. #228, 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:  CRIBBAGE.BLD         CRC = 11 23

--> FILE:  CRIBBAGE.BAS         CRC = 45 5C

--> FILE:  PAC-GAL .EXE         CRC = D0 69

--> FILE:  COLSLOT .BAS         CRC = 2B 4B

--> FILE:  MAZE    .BAS         CRC = 5D 5C

--> FILE:  FIREFIRE.BAS         CRC = 35 41

--> FILE:  README  .DOC         CRC = 99 7C

--> FILE:  T-ROAD  .BAS         CRC = 5B 92

--> FILE:  SLOT    .BAS         CRC = 6F F4

--> FILE:  VAMPIRE .BAS         CRC = C6 19

--> FILE:  NEWFONT .BAS         CRC = D4 39

--> FILE:  NUKE-SF .BAS         CRC = 50 41

 ---------------------> SUM OF CRCS = 34 65

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

CRIBBAGE.BAS

1 REM  20 SEPT 79  W/ SOUND/SCROLL/STROBE KEYBOARD
150 CLEAR ,&H8000:WIDTH 80
155 KEY 10,"":ON KEY (10) GOSUB 43000:KEY (10) ON
160 COLOR 7,0:CLS:SND=1:LOCATE ,,0
170 DEF FN A(X)= INT (X* RND (1))
175 DEF SEG = &HF00:BLOAD "CRIBBAGE.BLD",0
185 SCROLL%=0:MENU%= 2:COMMON MENU%
190 Y1=2:X1=2
195 GOSUB 60200:KEY OFF
197 GOSUB 42000
200 LOCATE 1,31:PRINT "C R I B B A G E":LOCATE 7,5
205 DIM P1(15),HH(4):FOR N= 1 TO 15:READ P1(N):NEXT
210 DATA 60,37,39,41,42,44,46,48,49,51,53,54,56,58,60
220 PRINT "+++   STANDBY - OPENING NEW DECK OF CARDS   +++"
230 PRINT CHR$(11):GOSUB 60300:RANDOMIZE VAL(RIGHT$(TIME$,2))
235 FOR VA= 2 TO 13:GOSUB 60000:NEXT :VA= 1:GOSUB 60000
240 DIM D(52,4),I(52),W(5,4),M(6,4),T$(34),H(8,4)
250 DIM Y(6,4),C(4,4),V(15,7),Q(11,6),R(4,5),S(4),J(52)
500 REM      SET DECK
530 DATA 1,2,3,4,5,6,0,1,2,3,5,4,6,0,1,2,3,6,4,5,0,1,2,4,5,3,6,0
540 DATA 1,2,4,6,3,5,0,1,2,5,6,3,4,0,1,3,4,5,2,6,0,1,3,4,6,2,5,0
550 DATA 1,3,5,6,2,4,0,1,4,5,6,2,3,0,2,3,4,5,1,6,0,2,3,4,6,1,5,0
560 DATA 2,3,5,6,1,4,0,2,4,5,6,1,3,0,3,4,5,6,1,2,0
570 RESTORE 530
580 FOR I= 1 TO 15:FOR J= 1 TO 7:READ V(I,J):NEXT J:NEXT I
600 REM    DATA FOR FOUR CARD RUN W/ PAIRS Q(I,J)
620 DATA 1,1,1,2,3,9,1,1,2,2,3,12,1,1,2,3,3,12
630 DATA 1,1,2,3,4,8,1,2,2,2,3,9,1,2,2,3,3,12
640 DATA 1,2,2,3,4,8,1,2,3,3,3,9,1,2,3,3,4,8
650 DATA 1,2,3,4,4,8,1,2,3,4,5,5
670 REM     DATA FOR THREE CARD RUN W/ PAIRS R(I,J)
690 DATA 1,1,2,3,6,1,2,2,3,6,1,2,3,3,6,1,2,3,4,4
710 REM     DATA FOR THREE CARD RUN S(I)
730 DATA 1,2,3,3
750 REM     PRESET
770 SC= 0:SP= 0:BS= 0:WP= 0:YC= 0:MC= 0:BH= 0
780 GP= 0:M= 0:C= 0:GC= 0:P= 0
790 GOTO 1030
1000 GOTO 150
1005 REM
1010 REM  SHUFFLE//CUT CARDS
1020 REM
1030 LOCATE 10,5:GOSUB 60300
1040 PRINT "+++   STANDBY   +++   SHUFFLING THE CARDS   +++";
1050 PRINT CHR$(11):GOSUB 14500:GOSUB 17000
1060 LOCATE 12,8:GOSUB 60300
1070 INPUT "PLEASE CUT FOR THE DEAL (1-50)  ";I$:I=VAL(I$):IF I$="" THEN I=0:GOSUB 60300
1075 IF I< 1 THEN GOSUB 17000:GOTO 6000
1080 IF I= INT (I)AND I> 0 AND I< 51 THEN 1120
1090 GOSUB 17800
1100 PRINT "BE SERIOUS NOW - THERE ARE 52 CARDS";
1110 GOTO 1060
1120 I1= I:VA= D(I,4):ST= D(I,3):GOSUB 22200
1130 GOSUB 17200
1140 LOCATE Y1-1,X1:PRINT "YOURS";
1150 J= FN A(52- I1)+ I1
1160 IF J= 0 THEN J= FN A(52)+ 1
1170 IF J= I1 THEN 1150
1180 J1= J:VA= D(J,4):ST= D(J,3):GOSUB 22300
1190 GOSUB 17200:I= I1:J= J1
1200 LOCATE Y1-1,X1:PRINT "MINE";
1205 FOR TD=1 TO 1500:NEXT
1210 IF D(I,4)< D(J,4) THEN M= 1:GOTO 1250
1220 IF D(J,4)< D(I,4) THEN M= 0:GOTO 1250
1230 GOSUB 17000:PRINT "YOU SURE ARE LUCKY - CUT AGAIN";
1240 GOTO 1060
1250 LOCATE 7,5:PRINT STRING$(48," ");:LOCATE 10,5:PRINT STRING$(48," "):GOSUB 23000
1260 GOSUB 17000:ON M+ 1 GOTO 2050,2000
2000 REM
2010 REM  START PLAY
2020 REM
2030 GOSUB 17800
2040 PRINT "YOU ARE DEALING";:GOTO 2070
2050 GOSUB 17800
2060 PRINT "I AM DEALING";
2070 M= 1- M:YY= 1- M
2080 FOR I= 1 TO 6:K= 2* I- YY:L= 2* I- M
2090 FOR J= 1 TO 4
2100 M(I,J)= D(K,J):REM   COMPUTERS HAND
2110 Y(I,J)= D(L,J):REM   PLAYERS   HAND
2120 NEXT J
2130 M(I,0)= 0:Y(I,0)= 0
2140 NEXT I
2150 FOR B= 1 TO 6:ON M+ 1 GOTO 2160,2190
2160 ON B GOSUB 22000,22100,22200,22300,22400,22500
2170 ST= M(B,3):VA= M(B,4):CN= Y1:GOSUB 22600:REM GOSUB 17200FORCARD
2180 ON M+ 1 GOTO 2190,2230
2190 ST= Y(B,3):VA= Y(B,4)
2200 ON B GOSUB 20000,20100,20200,20300,20400,20500
2210 GOSUB 17200:LOCATE 9,X1+ 2:PRINT CHR$(B+48);
2220 ON M+ 1 GOTO 2230,2160
2230 NEXT B
2500 REM
2510 REM  GET THE UP CARD
2520 REM
2530 UP= FN A(38)+ 8:V= 1
2540 FOR I= 1 TO 6
2550 IF Y(I,1)= D(UP,1) THEN V= 0
2560 IF M(I,1)= D(UP,1) THEN V= 0
2570 NEXT I:IF V= 0 THEN 2530
2580 FOR I= 1 TO 4:W(5,I)= D(UP,I):NEXT I
3000 REM
3010 REM  COMPUTER EVALUATE HAND
3020 REM
3030 REM GOSUB 17000
3040 LOCATE 13,3:PRINT "STANDBY - I TAKE A WHILE TO SORT & DISCARD";
3045 TIME$="00:00:00"
3050 WP= 0:FOR CN= 1 TO 15:VA= CN:GOSUB 60000
3070 I1= V(CN,1):I2= V(CN,2):I3= V(CN,3):I4= V(CN,4)
3110 C= 0:GOSUB 30000:V(CN,7)= P:IF P> WP THEN WP= P
3120 NEXT CN:P= 0
3125 LOCATE 13,3:PRINT STRING$(43," ");:LOCATE 14,9:PRINT STRING$(20," ");
3130 REM
3140 REM  FIND ALL HANDS W/ MAX SCORE IN WP
3150 REM
3160 J= 0:FOR I= 1 TO 15:IF V(I,7)< > WP THEN 3180
3170 J= J+ 1:I(J)= I
3180 NEXT I:IF J> 1 THEN 3260
3190 REM
3200 REM  THIS IS BEST HAND
3210 REM
3220 BC= I(1):GOTO 4000
3230 REM
3240 REM  NO SINGLE BEST HAND - SEARCH FOR KEY CARDS
3250 REM
3260 BH= 5:ZZ= 1:GOTO 3350
3270 BH= 8:ZZ= 2:GOTO 3350
3280 BH= 7:ZZ= 3:GOTO 3350
3290 BH= 11:ZZ= 4:GOTO 3350
3300 BH= 1:ZZ= 5:GOTO 3350
3310 REM
3320 REM  RANDOMLY CHOOSE A HAND IF CMPTR REACHES HERE
3330 REM
3340 BC= FN A(J)+ 1:I(BC)= BC:GOTO 4000
3350 REM
3360 REM  BEST HAND WILL BE WHICHEVER HAS THE MOST OF CARD BH
3370 REM
3380 WP= 0:FOR I= 1 TO 15:J(I)= 0:NEXT I
3390 FOR I= 1 TO J:FOR K= 1 TO 4:L= V(I(I),K)
3400 IF M(L,4)= BH THEN J(I)= J(I)+ 1
3410 NEXT K:IF J(I)> WP THEN WP= J(I)
3420 NEXT I
3430 K= 0:FOR I= 1 TO J:IF J(I)= WP THEN K= K+ 1:BC= I(I)
3440 NEXT I:IF K= 1 THEN 4000
3450 ON ZZ GOTO 3270,3280,3290,3300,3310
4000 REM
4001 REM  PLAYER//COMPUTER DISCARDS
4002 REM
4010 GOSUB 17000
4030 GOSUB 22700:GOSUB 22700
4040 GOSUB 17000:FOR B= 1 TO 2:CALL SCROLL%(SCR%,POS1%,POS2%):NEXT B:GOSUB 60300
4050 I1= V(BC,5):I2= V(BC,6)
4060 GOSUB 17800:PRINT "YOUR DISCARDS PLEASE  ";:LOCATE ,,1
4070 GOSUB 40000:I3=ASC(KB$):GOSUB 60300:PRINT CHR$ (I3)+ "  ";:GOSUB 40000:I4=ASC(KB$):GOSUB 60300:PRINT CHR$ (I4);:LOCATE ,,0
4075 IF I3= 45 OR I4= 45 THEN 6000
4080 I3= I3- 48:I4= I4- 48
4090 IF I3< 1 OR I4< 1 THEN 4130
4100 IF I3< > INT (I3) OR I4< > INT (I4) THEN 4130
4110 IF I3= I4 THEN 4130
4120 IF I3< 7 AND I4< 7 THEN :GOTO 4200
4130 GOSUB 17800:PRINT "TRY A NUMBER FROM 1 TO 6";:GOTO 4060
4200 REM
4210 REM  SET THE CRIB
4220 REM
4230 FOR J= 1 TO 4:C(1,J)= M(I1,J):C(2,J)= M(I2,J):C(3,J)= Y(I3,J):C(4,J)= Y(I4,J):NEXT J
4240 M(I1,0)= 1:M(I2,0)= 1:Y(I3,0)= 1:Y(I4,0)= 1
4400 REM
4410 REM  REPACK PLAYERS HAND//SORT ASCENDING
4420 REM
4430 FOR K= 1 TO 4
4440 IF Y(K,0)= 0 THEN 4470
4450 FOR J= K+ 1 TO 6:FOR I= 0 TO 4:Y(J- 1,I)= Y(J,I):NEXT I:NEXT J
4460 Y(6,0)= 1:GOTO 4440
4470 NEXT K:Y(5,0)= 1
4480 V= 1:FOR I= 1 TO 3:IF Y(I,4)< = Y(I+ 1,4) THEN 4500
4490 FOR J= 0 TO 4:Y(0,J)= Y(I,J):Y(I,J)= Y(I+ 1,J):Y(I+ 1,J)= Y(0,J):NEXT J:V= 0
4500 NEXT I:IF V= 0 THEN 4480
4700 REM
4710 REM  REDRAW CARDS
4720 REM
4725 LOCATE 9,30:PRINT"           ";
4730 GOSUB 20500:FOR B= 1 TO 9:LOCATE Y1+ H1- 1,X1:PRINT SPC( W1);:CALL SCROLL%(SCR%,POS1%,POS2%):NEXT B
4740 GOSUB 20400:FOR B= 1 TO 9:LOCATE Y1+ H1- 1,X1:PRINT SPC( W1);:CALL SCROLL%(SCR%,POS1%,POS2%):NEXT B
4750 FOR B= 1 TO 4:ST= Y(B,3):VA= Y(B,4)
4760 ON B GOSUB 20000,20100,20200,20300:GOSUB 17200
4770 LOCATE 9,X1+ 2:PRINT CHR$(B+48):NEXT B:I3= 5:I4= 6
4780 REM
4790 REM  GET UP CARD
4800 REM
4810 VA= D(UP,4):ST= D(UP,3):GOSUB 20600:GOSUB 17200
4820 LOCATE 9,49:PRINT "UP CARD";
4830 FOR I= 1 TO 4:W(5,I)= D(UP,I):NEXT I
4840 IF W(5,4)< > 11 THEN 5000
4850 GOSUB 17000:IF M= 0 THEN 4890
4860 PRINT "2 POINTS FOR ME";:SC= SC+ 2:GOSUB 15500
4870 IF SC> 120 THEN 5500
4880 GOTO 5000
4890 PRINT "2 POINTS FOR YOU";:SP= SP+ 2:GOSUB 15500
4900 IF SP> 120 THEN 5500
5000 REM
5010 REM  PLAY CONTROL
5020 REM
5030 GOSUB 7000:LOCATE 6,35:PRINT SPC( 13);:LOCATE 7,35:PRINT SPC( 13);
5035 IF CP= 45 THEN 6000
5040 IF SC> 120 OR SP> 120 THEN 5500
5050 FOR B= 1 TO 4:VA= Y(B,4):ST= Y(B,3):ON B GOSUB 20000,20100,20200,20300
5060 GOSUB 17200:NEXT B
5070 GOSUB 17000:IF M= 0 THEN 5090
5080 PRINT "YOU SCORE FIRST";:XI= 1:GOTO 5100
5090 PRINT "I SCORE FIRST";:XI= 2
5100 GOSUB 10000
5110 IF SC> 120 OR SP> 120 THEN 5500
5120 GOSUB 23000
5130 GOSUB 17000:PRINT "++STANDBY++ SHUFFLING THE CARDS";
5140 GOSUB 14500:GOTO 1260
5500 REM
5510 REM  SELECT WINNER//END
5520 REM
5530 GOSUB 17800:IF SC< 121 THEN 5550
5540 GOSUB 17000:PRINT "+++   I WIN   +++";:GOTO 5570
5550 IF SP< 121 THEN 5570
5560 GOSUB 17000:PRINT "+++   YOU WIN   +++";
5570 GOSUB 17000:PRINT "I HAVE  "SC" POINTS";
5580 GOSUB 17000:PRINT "YOU HAVE"SP" POINTS";
5590 IF SC> 120 THEN SC= 121
5600 IF SP> 120 THEN SP= 121
5610 IF SC- SP< = 60 THEN 5630
5620 GOSUB 17800:PRINT "HA - HA - A DOUBLE SKUNK";:GOTO 5690
5630 IF SC- SP< = 30 THEN 5650
5640 GOSUB 17800:PRINT "HA - HA - I SKUNKED YOU";:GOTO 5690
5650 IF SP- SC< = 60 THEN 5670
5660 GOSUB 17800:PRINT "OOOOPS - I GOT DOUBLE SKUNKED";:GOTO 5690
5670 IF SP- SC< = 30 THEN 5690
5680 GOSUB 17800:PRINT "HMMMMM - I GOT SKUNKED";
5690 '
6000 REM
6010 REM  PLAY AGAIN?
6020 REM
6030 GOSUB 17800:CALL SCROLL%(SCR%,POS1%,POS2%)
6040 PRINT "WOULD YOU LIKE TO PLAY AGAIN? Y/N ";:LOCATE ,,1
6050 GOSUB 40000:K= ASC(KB$):GOSUB 60300:IF K= 78 OR K= 89 THEN PRINT CHR$(K);
6060 IF K= 89 THEN CLS:RUN 1000
6070 IF K< > 78 THEN 6050
6090 LOCATE ,,0:CLS:LOCATE 16,18
6100 PRINT "G O O D  B Y E";
6110 KEY (10) OFF
6120 RUN "PRMENU"
7000 REM
7010 REM  PLAY THE HAND
7020 REM
7030 GOSUB 15000
7040 YC= 0:MC= 0:C= 0:BS= 0:GC= 0:GP= 0
7050 IF M= 0 THEN 7830
7060 GOSUB 17000:PRINT "YOUR PLAY  ";:LOCATE ,,1
7070 GOSUB 40000:CP= ASC(KB$):GOSUB 60300:C$= CHR$ (CP):IF CP= 71 OR CP = 13 THEN C$= "GO":CP=71
7075 IF CP= 45 THEN RETURN :REM  ASK IF END
7080 PRINT C$;
7090 IF CP= 71 AND BS< 22 AND MC< 4 THEN 7120
7100 IF CP= 71 THEN 7700
7110 CP= CP- 48:IF CP> 0 AND CP< 7 THEN 7130
7120 GOSUB 17800:PRINT "INVALID PLAY - TRY AGAIN";:GOTO 7060
7130 IF CP> 4 THEN 7530
7140 IF Y(CP,0)= 1 THEN 7540
7150 IF BS+ Y(CP,2)> 31 THEN 7550
7160 BS= BS+ Y(CP,2):YC= YC+ 1:C= C+ 1:GOSUB 15100
7300 REM
7310 REM  CHECK FOR 15/31 &  PAIRS
7320 REM
7330 WS= BS:GOSUB 15300
7400 REM
7410 REM  CHECK FOR RUNS//MOVE CARD
7420 REM
7430 GOSUB 16000:P= P+ PT:VA= Y(CP,4):ST= Y(CP,3)
7435 GOSUB 17100
7440 ON C GOSUB 21000,21100,21200,21300,21400,21500,21600,21700
7450 GOSUB 17200
7460 LOCATE 6,35:PRINT "SUM    ="BS"  ";:REM
7470 LOCATE 7,35:PRINT "POINTS ="P"  ";
7480 SP= SP+ P:IF P> 0 THEN GOSUB 15500
7490 IF SP> 120 THEN RETURN
7500 IF BS< > 31 THEN 7700
7510 GP= 0:C= 0:BS= 0:GC= 0
7520 GOSUB 17700:GOTO 7700
7530 GOSUB 17800:PRINT "YOU DISCARDED THAT CARD EARLIER";:GOTO 7060
7540 GOSUB 17800:PRINT "YOU ALREADY PLAYED THIS CARD";:GOTO 7060
7550 GOSUB 17800:PRINT "WHOOPS - THAT IS MORE THAN 31";:GOTO 7060
7700 REM
7710 REM  CHECK GO STATUS FROM PLAYER
7720 REM
7730 IF C$= "GO"AND GC= 1 THEN 8880
7740 IF C$= "GO" THEN GP= 1:C$= ""
7750 IF YC> 3 THEN GP= 1
7760 IF GC= 0 THEN 7830
7770 IF GP= 0 AND GC= 1 THEN 7060
7780 GOTO 8880
7800 REM
7810 REM  COMPUTERS PLAY
7820 REM
7830 IF YC+ MC> 7 THEN 8880
7840 IF GC= 1 THEN 8800
7850 K= 0:WP= 0:WC= C
7860 FOR I= 0 TO 37:I(I)= 0:NEXT I
7870 K= K+ 1:IF K> 6 THEN 8210
7880 CC= V(BC,K)
7890 IF M(CC,0)= 1 THEN 7870
7900 WS= BS+ M(CC,2)
7910 IF WS> 31 THEN 7870
7920 IF M+ C= 1 AND M(CC,4)= 5 THEN 7870
7930 I(K+ 30)= CC
8000 REM
8010 REM  CHECK FOR 15/31 & PAIRS
8020 REM
8030 C= WC+ 1:P= 0:GOSUB 15200:GOSUB 15300
8100 REM
8110 REM  CHECK FOR RUNS
8120 REM
8130 GOSUB 16000:P= P+ PT:IF P> WP THEN WP= P
8140 I(K)= WP
8150 FOR L= 0 TO 8
8160 IF H(L,0)< > 2 THEN 8190
8170 H(L,0)= 0:H(L,1)= 0:H(L,2)= 0:H(L,3)= 0:H(L,4)= 0
8180 L= 8
8190 NEXT L
8200 GOTO 7870
8210 WP= 0
8220 FOR K= 1 TO 6
8230 IF WP< I(K) THEN WP= I(K):CC= I(K+ 30)
8240 NEXT K
8250 IF CC= 0 THEN 8530
8260 IF M(CC,0)= 1 THEN 8530
8270 BS= BS+ M(CC,2)
8280 C= WC+ 1:GOSUB 15200:GOTO 8620
8290 GOSUB 17000:PRINT "GO";:GC= 1
8300 C= WC:WP= 0:IF GP= 0 THEN 7060
8410 GOTO 8800
8500 REM
8510 REM  GET CARD NO POINT VALUE
8520 REM
8530 K= 0:WP= 0
8540 K= K+ 1:IF K> 6 THEN C= WC:GOTO 8290
8550 IF M(K,0)= 1 THEN 8540
8560 WS= BS+ M(CC,2)
8570 IF WS> 31 THEN 8540
8580 CC= K:C= WC+ 1
8590 GOSUB 15200:GOSUB 15300:GOSUB 16000:WP= WP+ P+ PT
8600 WS= BS+ M(CC,2):IF WS> 31 THEN 8290
8610 BS= WS
8620 MC= MC+ 1:M(CC,0)= 1
8630 VA= M(CC,4):ST= M(CC,3)
8635 GOSUB 22700
8640 ON C GOSUB 21000,21100,21200,21300,21400,21500,21600,21700
8650 GOSUB 17200
8660 LOCATE 6,35:PRINT "SUM    ="BS"  ":REM
8670 LOCATE 7,35:PRINT "POINTS ="WP"  "
8680 SC= SC+ WP:GOSUB 15500
8690 IF SC> 120 THEN RETURN
8700 IF BS< > 31 THEN 8800
8710 GP= 0:GC= 0:C= 0:BS= 0
8720 GOSUB 17700
8800 REM
8810 REM  CHECK GO STATUS FROM COMPUTER
8820 REM
8830 IF GP AND GC= 1 THEN 8940
8840 IF MC> 3 THEN GC= 1
8850 IF GP= 0 THEN 7060
8860 IF GC= 0 AND GP= 1 THEN 7830
8870 GOTO 8940
8880 GOSUB 9200
8890 IF SP> 120 THEN RETURN
8900 IF YC+ MC> 7 THEN RETURN
8910 IF MC> 3 THEN GC= 1
8920 IF YC> 3 THEN GP= 1
8930 ON GC+ 1 GOTO 7830,7060
8940 GOSUB 9400
8950 IF SC> 120 THEN RETURN
8960 IF MC+ YC> 7 THEN RETURN
8970 IF YC> 3 THEN GP= 1
8980 IF MC> 3 THEN GC= 1
8990 ON GP+ 1 GOTO 7060,7830
9200 REM
9210 REM  PLAYERS LAST CARD
9220 REM
9230 GOSUB 17000
9240 ON FN A(3)+ 1 GOTO 9250,9260,9270
9250 PRINT "YOU CAN HAVE 1 POINT FOR LAST CARD";:GOTO 9280
9260 PRINT "I'LL GIVE YOU 1 POINT FOR LAST CARD";:GOTO 9280
9270 PRINT "YOU GET 1 POINT FOR LAST CARD";
9280 SP= SP+ 1:GOSUB 15500:GOSUB 15000
9290 GP= 0:C= 0:GC= 0:BS= 0:GOSUB 17700:RETURN
9400 REM
9410 REM  COMPUTERS LAST CARD
9420 REM
9430 GOSUB 17000
9440 ON FN A(3)+ 1 GOTO 9450,9460,9470
9450 PRINT "I'LL TAKE 1 POINT FOR LAST CARD";:GOTO 9480
9460 PRINT "1 POINT FOR ME FOR LAST CARD";:GOTO 9480
9470 PRINT "I GET 1 POINT FOR LAST CARD";
9480 SC= SC+ 1:GOSUB 15500:GOSUB 15000
9490 GP= 0:C= 0:GC= 0:BS= 0:GOSUB 17700:RETURN
10000 REM
10010 REM  SCORE THE HANDS//PLAYER AND COMPUTER
10020 REM
10050 IF XI< > 1 THEN 10250
10060 K= 1:FOR I= 1 TO 6
10070 IF I= I3 THEN 10100
10080 IF I= I4 THEN 10100
10090 FOR J= 1 TO 4:W(K,J)= Y(I,J):NEXT J:K= K+ 1
10100 NEXT I
10110 FOR J= 1 TO 4:W(5,J)= D(UP,J):NEXT J
10120 C= 0:GOSUB 11000
10130 GOSUB 17000
10140 GOSUB 17800:PRINT "HOW MANY POINTS DO YOU HAVE?  ";:INPUT;WP$:GOSUB 60300
10150 WP= INT (ABS(VAL(WP$))):IF WP= 19 THEN WP= 0
10160 D= P- WP:IF D= > 0 THEN 10190
10170 GOSUB 17800:PRINT "YOU DON'T HAVE "WP;"POINTS THERE!";
10180 GOTO 10140
10190 SP= SP+ WP:GOSUB 15500:IF SP> 120 THEN RETURN
10200 IF D= 0 THEN 10240
10210 SC= SC+ D:GOSUB 15500:GOSUB 17800
10220 PRINT "MUGGINS FOR"D"POINTS - THANKS";
10230 IF SC> 120 THEN RETURN
10240 ON XI GOTO 10250,10340,10470
10250 FOR K= 1 TO 4:L= V(BC,K):FOR J= 1 TO 4:W(K,J)= M(L,J):NEXT J:NEXT K
10260 GOSUB 17000:PRINT "MY CARDS ARE :";
10270 FOR K= 1 TO 4:VA= W(K,4):ST= W(K,3)
10280 ON K GOSUB 21000,21100,21200,21300
10290 GOSUB 17200:NEXT K
10300 FOR J= 1 TO 4:W(5,J)= D(UP,J):NEXT J
10310 C= 0:GOSUB 11000:SC= SC+ P:GOSUB 15500:IF SC> 120 THEN RETURN
10320 GOSUB 17000:PRINT "I HAVE "P" POINTS IN MY HAND";
10330 ON XI GOTO 10340,10060
10340 GOSUB 17000:PRINT "THE CRIB CARDS ARE :";
10350 FOR K= 1 TO 4:VA= C(K,4):ST= C(K,3)
10360 ON K GOSUB 22000,22100,22200,22300
10370 GOSUB 17200:NEXT K
10380 FOR I= 1 TO 4:FOR J= 1 TO 4:W(I,J)= C(I,J):NEXT J:NEXT I
10390 C= 1
10400 FOR J= 1 TO 4:W(5,J)= D(UP,J):NEXT J
10410 GOSUB 11000
10420 ON XI GOTO 10430,10460
10430 GOSUB 17000:PRINT "I HAVE "P" POINTS IN THE CRIB";
10440 SC= SC+ P:GOSUB 15500:IF SC> 120 THEN RETURN
10450 GOTO 10470
10460 XI= 3:GOTO 10130
10470 GOSUB 17000:PRINT "I HAVE A TOTAL SCORE OF"SC"POINTS";
10480 GOSUB 17800:PRINT "YOUR TOTAL SCORE IS"SP"POINTS";
10490 GOSUB 60300:RETURN
11000 REM
11010 REM  SCORE 5 CARD HAND PLAYER//COMPUTER//CRIB
11020 REM
11030 REM  CHECK FOR JACK SAME SUIT AS UP CARD
11040 REM  EXCEPT FOR CRIB
11050 REM
11060 P= 0:IF C= 1 THEN 11100
11070 FOR I= 1 TO 4
11080 IF W(I,4)= 11 AND W(I,3)= W(5,3) THEN P= P+ 1
11090 NEXT I
11100 REM
11110 REM  CHECK FOR 4 OR 5 CARD FLUSH
11120 REM
11130 FOR I= 1 TO 3
11140 IF W(I,3)< > W(I+ 1,3) THEN 11240
11150 NEXT I
11160 REM
11170 REM  CRIB SCORES ONLY FOR 5 CARD FLUSH
11180 REM
11190 IF C< > 0 THEN 11220
11200 P= P+ 4:IF W(4,3)< > W(5,3) THEN 11240
11210 P= P+ 1:GOTO 11240
11220 IF W(4,3)< > W(5,3) THEN 11240
11230 P= P+ 5
11240 REM
11250 REM  CHECK FOR 2 CARD SUMS OF 15
11260 REM
11270 FOR I= 1 TO 4:FOR J= I+ 1 TO 5
11280 IF W(I,2)+ W(J,2)= 15 THEN P= P+ 2
11290 NEXT J:NEXT I
11300 REM
11310 REM  CHECK FOR 3 CARD SUMS OF 15
11320 REM
11330 FOR I= 1 TO 3:FOR J= I+ 1 TO 4:FOR K= J+ 1 TO 5
11340 IF W(I,2)+ W(J,2)+ W(K,2)= 15 THEN P= P+ 2
11350 NEXT K:NEXT J:NEXT I
11360 REM
11370 REM  CHECK FOR 4 CARD SUMS OF 15
11380 REM
11390 FOR I= 1 TO 2:FOR J= I+ 1 TO 3:FOR K= J+ 1 TO 4:FOR L= K+ 1 TO 5
11400 IF W(I,2)+ W(J,2)+ W(K,2)+ W(L,2)= 15 THEN P= P+ 2
11410 NEXT L:NEXT K:NEXT J:NEXT I
11420 REM
11430 REM  CHECK FOR 5 CARD SUM OF 15
11440 REM
11450 S= 0:FOR I= 1 TO 5:S= S+ W(I,2):NEXT I
11460 IF S= 15 THEN P= P+ 2
11470 REM
11480 REM  CHECK FOR PAIRS//3 AND 4 A KIND
11490 REM
11500 FOR I= 1 TO 4:FOR J= I+ 1 TO 5
11510 IF W(I,4)= W(J,4) THEN P= P+ 2
11520 NEXT J:NEXT I
11530 REM
11540 REM  SORT CARDS INTO ASCENDING SEQUENCE
11550 REM
11560 V= 1:FOR I= 1 TO 4
11570 IF W(I,4)< = W(I+ 1,4) THEN 11610
11580 FOR J= 0 TO 4
11590 W(0,J)= W(I,J):W(I,J)= W(I+ 1,J):W(I+ 1,J)= W(0,J)
11600 NEXT J:V= 0
11610 NEXT I:IF V= 0 THEN 11560
11620 REM
11630 REM  CHECK//SCORE FOR 5 CARD RUN
11640 REM
11650 GOSUB 14000:D= W(1,4)- Q(1,1)
11660 FOR I= 1 TO 11:FOR J= 1 TO 5:Q(I,J)= Q(I,J)+ D:NEXT J:NEXT I
11670 PT= 0:FOR I= 1 TO 11:V= 1:FOR J= 1 TO 5
11680 IF W(J,4)< > Q(I,J) THEN J= 5:V= 0
11690 NEXT J:IF V= 1 THEN PT= PT+ Q(I,6)
11700 NEXT I:P= P+ PT:IF PT> 0 THEN RETURN
11710 REM
11720 REM  CHECK//SCORE FOR 4 CARD RUN
11730 REM
11740 PT= 0:FOR L= 1 TO 2:GOSUB 14060:D= W(L,4)- R(1,1)
11750 FOR I= 1 TO 4:FOR J= 1 TO 4:R(I,J)= R(I,J)+ D:NEXT J:NEXT I
11760 FOR I= 1 TO 4:V= 1:FOR K= 1 TO 4:IF W(K+ L- 1,4)< > R(I,K) THEN K= 4:V= 0
11770 NEXT K:IF V= 1 THEN PT= PT+ R(I,5)
11780 NEXT I:NEXT L:P= P+ PT:IF PT> 0 THEN RETURN
11790 REM
11800 REM  CHECK//SCORE FOR 3 CARD RUN
11810 REM
11820 PT= 0:FOR L= 1 TO 3:GOSUB 14120:D= W(L,4)- S(1)
11830 FOR I= 1 TO 3:S(I)= S(I)+ D:NEXT I
11840 V= 1:FOR I= 1 TO 3:IF W(L+ I- 1,4)< > S(I) THEN I= 3:V= 0
11850 NEXT I:IF V= 1 THEN PT= PT+ S(4)
11860 NEXT L:P= P+ PT:RETURN
14000 REM
14010 REM  READ Q(I,J)
14020 REM
14030 RESTORE 620
14040 FOR I= 1 TO 11:FOR J= 1 TO 6:READ Q(I,J):NEXT J:NEXT I
14050 RETURN
14060 REM
14070 REM  READ R(I,J)
14080 REM
14090 RESTORE 690
14100 FOR I= 1 TO 4:FOR J= 1 TO 5:READ R(I,J):NEXT J:NEXT I
14110 RETURN
14120 REM
14130 REM  READ S(I)
14140 REM
14150 RESTORE 730
14160 FOR I= 1 TO 4:READ S(I):NEXT I
14170 RETURN
14500 REM
14510 REM  SHUFFLE DECK
14520 REM
14530 FOR I= 1 TO 52:I(I)= 0:NEXT I
14540 FOR I= 1 TO 52
14550 J= FN A(52)+ 1:IF I(J)= 1 THEN 14550
14555 LOCATE 14,2+ J:PRINT "*";
14560 D(I,1)= J:D(I,3)= INT ((J- 1)/ 13)+ 1
14565 ON D(I,3) GOTO 14570,14572,14574,14576
14570 D(I,4)= J:D(I,2)= D(I,4):GOTO 14580
14572 D(I,4)= J- 13:D(I,2)= D(I,4):GOTO 14580
14574 D(I,4)= J- 26:D(I,2)= D(I,4):GOTO 14580
14576 D(I,4)= J- 39:D(I,2)= D(I,4):GOTO 14580
14580 IF D(I,2)> 10 THEN D(I,2)= 10
14590 D(I,0)= 0:I(J)= 1:NEXT I
14600 FOR I= 1 TO 15:V(I,7)= 0:NEXT I
14605 LOCATE 14,2:PRINT STRING$(54," ");
14610 RETURN
15000 REM
15010 REM  CLEAR PLAYING MATRIX
15020 REM
15030 FOR I= 0 TO 8:FOR J= 0 TO 4:H(I,J)= 0:NEXT J:NEXT I
15040 RETURN
15100 REM
15110 REM  PLAYERS CARD INTO PLAYING FIELD
15120 REM
15130 FOR J= 1 TO 4:H(C,J)= Y(CP,J):NEXT J:Y(CP,0)= 1
15140 RETURN
15200 REM
15210 REM  COMPUTERS CARD INTO PLAYING FIELD
15220 REM
15230 FOR J= 1 TO 4:H(C,J)= M(CC,J):NEXT J
15240 RETURN
15300 REM
15310 REM  CHECK FOR 15/31 & PAIRS
15320 REM
15330 P= 0
15340 IF C< 2 THEN RETURN
15350 IF H(C,4)= H(C- 1,4) THEN P= P+ 2
15360 IF P< 2 OR C< 3 THEN 15400
15370 IF H(C,4)= H(C- 2,4) THEN P= P+ 4
15380 IF P< 6 OR C< 4 THEN 15400
15390 IF H(C,4)= H(C- 3,4) THEN P= P+ 6
15400 IF WS= 15 THEN P= P+ 2
15410 IF WS= 31 THEN P= P+ 2
15420 RETURN
15500 REM
15510 REM  PLOT SCORE
15520 REM
15530 LOCATE 4,61:PRINT "YOU HAVE";SP;
15535 SCOR=SP:XS=60:YS=5:GOSUB 15700
15540 LOCATE 7,62:PRINT "PC HAS ";SC;
15545 SCOR=SC:XS=60:YS=6:GOSUB 15700
15550 RETURN
15700 LOCATE YS,XS:IF SCOR>30 THEN PRINT"▄▄▄"; ELSE GOTO 15800
15710 XS=XS+4:LOCATE YS,XS:IF SCOR>60 THEN PRINT"▄▄▄"; ELSE GOTO 15800
15720 XS=XS+4:LOCATE YS,XS:IF SCOR>90 THEN PRINT"▄▄▄"; ELSE GOTO 15800
15730 XS=XS+4:LOCATE YS,XS:IF SCOR>120 THEN PRINT"▄▄▄"; ELSE GOTO 15800
15800 PRINT STRING$((SCOR/30-INT(SCOR/30))*3,"▄");:
15810 IF (SCOR/10 -INT(SCOR/10)*10 >4) THEN PRINT"▌";
15820 RETURN
15950 RETURN
16000 REM
16010 REM  MID/END PAIR CHECK FOR RUNS
16020 REM
16030 PT= 0
16040 IF C< 3 THEN RETURN
16050 IF H(C,4)= H(C- 1,4) THEN RETURN
16060 IF H(C,4)= H(C- 2,4) THEN RETURN
16070 IF H(C- 1,4)= H(C- 2,4) THEN RETURN
16080 REM
16090 REM  LOW END SET
16100 REM
16110 L= 1:FOR J= C TO 2 STEP - 1:FOR K= J- 1 TO 1 STEP - 1
16120 IF H(J,4)= H(K,4)AND K> L THEN L= K
16130 NEXT K:NEXT J
16140 REM
16150 REM  CHECK RUNS
16160 REM
16170 IF C- L< 2 THEN RETURN
16180 LO= 99:HI= 0:SUM= 0
16190 FOR K= L TO C
16200 IF H(K,4)< LO THEN LO= H(K,4)
16210 IF H(K,4)> HI THEN HI= H(K,4)
16220 SUM= SUM+ H(K,4)
16230 NEXT K
16240 REM
16250 REM  SCORE RUNS
16260 REM
16270 MID= (LO+ HI)/ 2
16280 CK= (C- L+ 1)* MID
16290 IF CK= SUM THEN PT= C- L+ 1
16300 IF PT< 3 THEN PT= 0
16310 IF (HI- LO+ 1)/ (C- L+ 1)< > 1 THEN PT= 0
16320 IF PT= 0 THEN L= L+ 1:GOTO 16170
16330 RETURN
17000 REM
17010 REM  SCROLL CONTROL FOR PRINT STATEMENTS
17020 REM
17030 SCR%=6*256+7
17035 X1=44:Y1=19:W1=33:H1=5:GOSUB 64000
17050 GOSUB 17800
17060 RETURN
17100 REM
17110 REM  ERASE PLAYED CARD - PLAYER FIELD
17120 REM
17130 ON CP GOSUB 20000,20100,20200,20300,20400,20500
17140 LOCATE Y1+ H1- 1,X1:PRINT SPC( W1)
17145 GOSUB 64000
17150 FOR XX= 2 TO 9:CALL SCROLL%(SCR%,POS1%,POS2%):NEXT XX:GOSUB 60100:RETURN
17200 REM
17210 REM  CARD GRAPHICS
17220 REM
17230 FOR I= 0 TO 34:T$(I)= " ":NEXT :REM
17240 IF ST= 3 THEN U$= CHR$(5):GOTO 17280:REM
17250 IF ST= 4 THEN U$= CHR$(3):GOTO 17280:REM
17260 IF ST= 2 THEN U$= CHR$(4):GOTO 17280:REM
17270 IF ST= 1 THEN U$= CHR$(6):REM
17280 REM PLOT 6,56
17290 ON VA GOTO 17480,17470,17460,17450,17430,17410,17400,17390,17380,17360,17320,17310
17300 T$(17)= "K":GOTO 17330
17310 T$(17)= "Q":GOTO 17330
17320 T$(17)= "J"
17330 T$(8)= U$:T$(7)= U$:T$(6)= U$:T$(11)= U$:T$(16)= U$
17340 T$(21)= U$:T$(26)= U$:T$(27)= U$:T$(28)= U$:T$(23)= U$
17350 T$(18)= U$:T$(13)= U$:GOTO 17490
17360 T$(6)= U$:T$(8)= U$:T$(16)= U$:T$(18)= U$:T$(26)= U$
17370 T$(28)= U$:GOTO 17450
17380 T$(7)= U$:T$(27)= U$:GOTO 17400
17390 T$(12)= U$:T$(22)= U$:GOTO 17410
17400 T$(17)= U$
17410 T$(6)= U$:T$(8)= U$:T$(16)= U$:T$(18)= U$:T$(26)= U$
17420 T$(28)= U$:GOTO 17490
17430 T$(6)= U$:T$(8)= U$:T$(17)= U$:T$(26)= U$:T$(28)= U$
17440 GOTO 17490
17450 T$(11)= U$:T$(13)= U$:T$(21)= U$:T$(23)= U$:GOTO 17490
17460 T$(7)= U$:T$(17)= U$:T$(27)= U$:GOTO 17490
17470 T$(12)= U$:T$(22)= U$:GOTO 17490
17480 T$(17)= U$
17490 IF VA> 1 AND VA< 11 THEN T$= RIGHT$ (STR$ (VA),1)
17500 IF VA= 11 THEN T$= "J"
17510 IF VA= 12 THEN T$= "Q"
17520 IF VA= 13 THEN T$= "K"
17530 IF VA= 1 THEN T$= "A"
17540 IF ST= 2 OR ST= 4 THEN T$= ""+ T$:REM
17550 IF VA< > 10 THEN 17580
17560 T$= LEFT$ (U$,2):M$= "0":N$= "1":IF ST= 2 OR ST= 4 THEN T$= ""+ T$:REM
17570 T$(0)= "1":T$(1)= "0":T$(33)= "1":T$(34)= "0":GOTO 17590
17580 T$(0)= T$:T$(34)= T$
17590 CN= Y1+ H1- 1
17595 COLOR 0,7
17600 FOR I= 0 TO 30 STEP 5:CALL SCROLL%(SCR%,POS1%,POS2%):LOCATE CN+1,X1:FOR J= 0 TO 4:PRINT T$(I+ J);:NEXT
17610 NEXT I
17615 COLOR 7,0
17630 GOSUB 60000:RETURN
17700 REM
17710 REM  ERASE CARDS - BOARD FIELD
17720 REM
17730 FOR B= 1 TO 8
17735 DEF SEG =0:IF ((PEEK(&H410) AND &H30)<> &H30) THEN DEF SEG = &HB800 ELSE DEF SEG = &HB000:REM CHECK WHICH DISPLAY
17740 ON B GOSUB 21000,21100,21200,21300,21400,21500,21600,21700
17745 IF PEEK (1428 + B*14)= 32 THEN 17770
17750 LOCATE Y1+ H1- 2,X1:PRINT SPC( W1+1);
17755 DEF SEG =&HF00
17760 FOR XX= 1 TO 7:CALL SCROLL%(SCR%,POS1%,POS2%):NEXT XX:GOSUB 60100
17770 NEXT B:DEF SEG=&HF00:RETURN
17800 REM
17810 REM  CALL AND PLOT
17820 REM
17830 CALL SCROLL%(SCR%,POS1%,POS2%):GOSUB 60300:LOCATE Y1+ H1,X1:RETURN
20000 REM
20001 REM  PLAYER CARD 1
20002 REM
20010 X1= 2:Y1= 2:W1= 5:H1= 6:GOSUB 64000
20020 RETURN
20100 REM
20101 REM  PLAYER CARD 2
20102 REM
20110 X1= 9:Y1= 2:W1= 5:H1= 6:GOSUB 64000
20120 RETURN
20200 REM
20201 REM  PLAYER CARD 3
20202 REM
20210 X1= 16:Y1= 2:W1= 5:H1= 6:GOSUB 64000
20220 RETURN
20300 REM
20301 REM  PLAYER CARD 4
20302 REM
20310 X1= 23:Y1= 2:W1= 5:H1= 6:GOSUB 64000
20320 RETURN
20400 REM
20401 REM  PLAYER CARD 5
20402 REM
20410 X1= 30:Y1= 2:W1= 5:H1= 6:GOSUB 64000
20420 RETURN
20500 REM
20501 REM  PLAYER CARD 6
20502 REM
20510 X1= 37:Y1= 2:W1= 4:H1= 6:GOSUB 64000
20520 RETURN
20600 REM
20601 REM  UP CARD
20602 REM
20610 X1= 50:Y1= 2:W1= 4:H1= 6:GOSUB 64000
20620 RETURN
21000 REM
21001 REM  COMPUTER CARD 1//BOARD CARD 1
21002 REM
21010 X1= 2:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21020 RETURN
21100 REM
21101 REM  COMPUTER CARD 2//BOARD CARD 2
21102 REM
21110 X1= 9:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21120 RETURN
21200 REM
21201 REM  COMPUTER CARD 3//BOARD CARD 3
21202 REM
21210 X1= 16:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21220 RETURN
21300 REM
21301 REM  COMPUTER CARD 4//BOARD CARD 4
21302 REM
21310 X1= 23:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21320 RETURN
21400 REM
21401 REM  COMPUTER CARD 5//BOARD CARD 5
21402 REM
21410 X1= 30:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21420 RETURN
21500 REM
21501 REM  COMPUTER CARD 6//BOARD CARD 6
21502 REM
21510 X1= 37:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21520 RETURN
21600 REM
21601 REM  BOARD CARD 7
21602 REM
21610 X1= 44:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21620 RETURN
21700 REM
21701 REM  BOARD CARD 8
21702 REM
21710 X1= 51:Y1= 10:W1= 4:H1= 6:GOSUB 64000
21720 RETURN
22000 REM
22001 REM  COMPUTER CARD 1//CRIB CARD 1
22002 REM
22010 X1= 2:Y1= 18:W1= 4:H1= 6:GOSUB 64000
22020 RETURN
22100 REM
22101 REM  COMPUTER CARD 2//CRIB CARD 2
22102 REM
22110 X1= 9:Y1= 18:W1= 4:H1= 6:GOSUB 64000
22120 RETURN
22200 REM
22201 REM  COMPUTER CARD 3//CRIB CARD 3
22202 REM
22210 X1= 16:Y1= 18:W1= 5:H1= 6:GOSUB 64000
22220 RETURN
22300 REM
22301 REM  COMPUTER CARD 4//CRIB CARD 4
22302 REM
22310 X1= 23:Y1= 18:W1= 4:H1= 6:GOSUB 64000
22320 RETURN
22400 REM
22401 REM  COMPUTER CARD 5
22402 REM
22410 X1= 30:Y1= 18:W1= 4:H1= 6:GOSUB 64000
22420 RETURN
22500 REM
22501 REM  COMPUTER CARD 6
22502 REM
22510 X1= 37:Y1= 18:W1= 4:H1= 6:GOSUB 64000
22520 RETURN
22600 REM
22601 REM  DRAW BACK OF COMPUTER CARD
22602 REM
22610 COLOR 0,7:FOR B1= 1 TO 7:LOCATE Y1+ H1-0,X1
22620 CALL SCROLL%(SCR%,POS1%,POS2%)
22630 PRINT "XXXXX";
22640 NEXT B1
22670 COLOR 7,0:GOSUB 60300:RETURN
22700 REM
22701 REM  ERASE PLAYED CARD - COMPUTER FIELD
22702 REM
22710 B= FN A(6)+ 1:DEF SEG =0:IF ((PEEK(&H410) AND &H30)<> &H30) THEN DEF SEG = &HB800 ELSE DEF SEG = &HB000:REM CHECK WHICH DISPLAY
22715 IF PEEK(2874+B*14) = 32 THEN GOTO 22710 ELSE DEF SEG = &HF00
22720 ON B GOSUB 22000,22100,22200,22300,22400,22500
22730 LOCATE Y1+ H1- 0,X1:PRINT SPC( W1+1);
22740 FOR B= 1 TO 7:CALL SCROLL%(SCR%,POS1%,POS2%):NEXT B:GOSUB 60100
22750 RETURN
23000 REM
23001 REM  SCREEN ERASE
23002 REM
23005 POKE 21,0:X1= 41:Y1= 2:W1= 14:H1= 14:GOSUB 64000
23007 CALL SCROLL%(SCR%,POS1%,POS2%)
23010 X1= 2:Y1= 2:W1= 39:H1= 22:GOSUB 64000
23020 CALL SCROLL%(SCR%,POS1%,POS2%):GOSUB 60300
23030 POKE 21,1:RETURN
30000 REM  FOUR CARD SCORER
30010 P= 0:
30040 REM  GET THE FOUR CARDS
30050 HH(1)= M(I1,4):HH(2)= M(I2,4):HH(3)= M(I3,4):HH(4)= M(I4,4)
30055 REM  CHECK FOR FLUSH
30060 IF M(I1,3)= M(I2,3) THEN IF M(I2,3)= M(I3,3) THEN IF M(I3,3)= M(I4,3) THEN P= P+ 4
30070 LOCATE 14,9:PRINT "CHECK NUMBER "CN;
30100 REM  SORT FOUR CARDS
30110 FOR X= 1 TO 3:FOR Y= X+ 1 TO 4
30120 IF HH(X)> HH(Y) THEN TE= HH(X):HH(X)= HH(Y):HH(Y)= TE
30130 NEXT Y,X
30200 REM  CHECK FOR PAIRS
30210 FOR X= 1 TO 3:FOR Y= X+ 1 TO 4
30220 IF HH(X)= HH(Y) THEN P= P+ 2
30230 NEXT Y,X
30300 REM  CHECK FOR RUN
30310 IF HH(1)+ 1= HH(2)OR HH(2)+ 1= HH(3)OR HH(3)+ 1= HH(4) THEN 30330
30320 GOTO 30400
30330 IF HH(1)+ 1= HH(2) THEN IF HH(2)+ 1= HH(3) THEN IF HH(3)+ 1= HH(4) THEN P= P+ 4:GOTO 30400
30340 FOR X= 1 TO 2:FOR Y= X+ 1 TO 3:FOR Z= Y+ 1 TO 4
30350 IF HH(X)+ 1= HH(Y) THEN IF HH(Y)+ 1= HH(Z) THEN P= P+ 3
30360 NEXT Z,Y,X
30400 REM  CLIP AT 10
30410 FOR X= 1 TO 4:IF HH(X)> 10 THEN HH(X)= 10
30420 NEXT X
30500 REM  CHECK FOR 15'S
30510 SA= HH(1)+ HH(2)+ HH(3)+ HH(4):IF SA< 15 OR SA> 35 THEN 30600
30520 IF SA= 15 THEN P= P+ 2:GOTO 30600
30530 FOR X= 1 TO 2:FOR Y= X+ 1 TO 3:FOR Z= Y+ 1 TO 4
30540 IF HH(X)+ HH(Y)+ HH(Z)= 15 THEN P= P+ 2
30550 NEXT Z,Y,X
30560 FOR X= 1 TO 3:FOR Y= X+ 1 TO 4
30570 IF HH(X)+ HH(Y)= 15 THEN P= P+ 2
30580 NEXT Y,X
30600 RETURN
40000 '
40001 ' KEY INPUT ROUTINE
40010 LOCATE ,,1:KB$="":WHILE KB$="":KB$=INKEY$:WEND:IF KB$=CHR$(27) THEN CLS:PRINT "GAME ENDED":END
40020 LOCATE ,,0:RETURN
40100 CLS:PRINT "GAME ENDED":END
42000 REM DRAW TABLE
42001 '
42010 LOCATE 1,1:PRINT"╒═════════════════════════════════════════════════════════════════════════════╕";
42020 FOR N=2 TO 24:LOCATE N,1:PRINT"│";:NEXT
42030 FOR N=2 TO 24:LOCATE N,79:PRINT"│";:NEXT
42040 LOCATE 25,1:PRINT"╘═════════════════════════════════════════════════════════════════════════════╛";
42050 LOCATE 17,43:PRINT"╒═══════════════════════════════════╡";
42060 FOR N=18 TO 24:LOCATE N,43:PRINT"│";:NEXT
42070 LOCATE 25,43:PRINT"╧";
42075 LOCATE 1,57:PRINT"╤";:LOCATE 17,57:PRINT"╧";
42080 FOR N=2 TO 16:LOCATE N,57:PRINT"│";:NEXT
42085 LOCATE 9,57:PRINT"╞═════════════════════╡";
42090 COLOR 0,7:LOCATE 2,63:PRINT"GAME SCORE";
42095 LOCATE 10,62:PRINT"PLAY COMMANDS";
42100 LOCATE 18,48:PRINT" M E S S A G E   B O A R D ";:COLOR 7,0
42110 LOCATE 12,58:PRINT"    G=GO   <cr>=GO";
42120 LOCATE 13,58:PRINT" <esc>=QUIT  121 WINS";
42130 LOCATE 14,58:PRINT"   F10=Sound on/off";
42140 LOCATE 15,58:PRINT"    Patrick Leabo";
42150 LOCATE 16,58:PRINT"      Tucson,Az";
42999 RETURN
43000 REM
43010 REM TOGGLE SOUND
43020 REM
43030 IF SND = 1 THEN SND = 0 ELSE SND = 1
43040 RETURN
59999 REM
60000 REM  SCALE SOUND
60005 REM
60010 IF SND=1 THEN PLAY "L16T120MNN=P1(VA);"
60020 RETURN
60097 REM
60098 REM  BLEEP SOUND
60099 REM
60100 IF SND =1 THEN PLAY "L64T200N70"
60110 RETURN
60197 REM
60198 REM  WHISTLE SOUND
60199 REM
60200 IF SND=1 THEN PLAY"T255MLL64O5CC#DD#EFF#GG#AA#BMN"
60210 RETURN
60297 '
60298 'CLICK
60299 '
60300 IF SND =1 THEN PLAY"L64T200N46"
60310 RETURN
60997 REM
64000 REM
64010 REM  SCROLLING SUBROUTINE
64020 REM
64030 POS1%=256*(Y1-1)+X1-1:POS2%=256*(Y1+H1-1)+X1+W1:RETURN

FIREFIRE.BAS

10 REM *****************************************************
20 REM ********************** FIREFIRE *********************
30 REM *****************************************************
40 REM *** COPYRIGHT   RICHARD K. COLLINS  1982  ***********
50 REM *****************************************************
60 REM *** PLEASE LEAVE THIS NOTICE IF YOU COPY THE PROGRAM
70 REM *** NOT FOR SALE OR DISTRIBUTION OTHER THAN THROUGH
80 REM *** CAPITAL PC USER'S GROUP.
90 REM *****************************************************
100 REM *** THE OBJECT OF THE GAME IS TO GET ALL THE ENEMY
110 REM *** IN THE LEAST AMOUNT OF TIME -- GOOD LUCK -- RKC
120 REM ****************************************************
130 REM *** A RIGHT ARROW STARTS YOUR MAN TO THE RIGHT
140 REM ***  A LEFT ARROW STARTS YOUR MAN TO THE LEFT
150 REM ***  A DOWN ARROW STOPS THE MAN
160 REM ***   AN UP ARROW FIRES
170 REM ****************************************************
180 DEFINT A-Z
190 DIM ENX(20),ENY(20)
200 WIDTH 80 : CLS : KEY OFF
210 GOSUB 760
220 REM ---------- CHECK COMMANDS
230 X$ = INKEY$
240 XX = FRE(X$)*0 : XX = FRE(X)*0 : REM CLEAR OUT MEMORY
250 IF X$ = "q" THEN END
260 IF LEN(X$) < 2 THEN 320
270 C = ASC(RIGHT$(X$,1))
280 IF C = 77 THEN XV = XVEL
290 IF C = 75 THEN XV = -XVEL
300 IF C = 72 THEN GOSUB 470
310 IF C = 80 THEN XV = 0
320 OX = X : X = X + XV
330 IF X > 79 THEN X = 79
340 IF X < 1 THEN X = 1
350 IF X <> OX THEN LOCATE 24,X,0 : PRINT CHR$(127); : LOCATE 24,OX,0 : PRINT " "; : OX = X
360 T = T + 1 : LOCATE 1,1,0 : PRINT USING "#####";T;
370 FOR I = 1 TO NE
380 XE = ENX(I) : YE = ENY(I) : YE = YE + 1
390 IF YE < 1 THEN 440
400 IF YE = 25 THEN GOSUB 710 : GOTO 450
410 IF SCREEN(YE,XE) = 127 THEN GOSUB 640 : GOTO 450
420 IF YE > 0 THEN LOCATE YE,XE,0 : PRINT CHR$(157);
430 IF YE > 1 THEN LOCATE YE-1,XE,0 : PRINT " ";
440 ENY(I) = YE
450 NEXT I
460 GOTO 230
470 REM ------------ FIRE A MISSILE
480 FOR Y = 23 TO 1 STEP -1
490 C = SCREEN(Y,X)
500 IF C <> 157 THEN LOCATE Y,X,0 : PRINT CHR$(15);: IF Y < 23 THEN LOCATE Y+1,X,0 : PRINT " ";
510 IF C = 157 THEN GOSUB 550 : GOTO 540
520 NEXT Y
530 LOCATE 1,X,0 : PRINT " ";
540 RETURN
550 REM ------------ BOOM, A HIT
560 LOCATE Y,X,0 : PRINT CHR$(15); :LOCATE Y+1,X,0 : PRINT " ";
570 FOR I = 1 TO 5 : SOUND 50 + RND*50,1 : NEXT I
580 LOCATE Y,X,0 : PRINT " ";
590 FOR I = 1 TO NE
600 IF (ENX(I) = X) AND (ENY(I) = Y) THEN E = I : GOTO 620
610 NEXT I
620 IF NE = 1 THEN GOTO 210 ELSE ENX(E) = ENX(NE) :ENY(E) = ENY(NE) :NE = NE - 1
630 RETURN
640 REM ------------ THEY GOT YOU
650 LOCATE 24,X,0 : PRINT CHR$(157); : LOCATE 23,X,0 : PRINT " ";
660 FOR I = 1 TO 10 : SOUND 750 - RND *250,1 :NEXT I
670 LOCATE 1,6,0 : FOR I = 6 TO 79 : PRINT " "; : NEXT I
680 LOCATE 1,10,0 : PRINT "  TOO BAD ! "
690 FOR I = 1 TO 3000 : NEXT I
700 GOTO 210
710 REM ------------ THEY MISSED YOU
720 SOUND 1000,1
730 LOCATE YE-1,XE,0 : PRINT " ";
740 ENY(I) = -5*RND : ENX(I) = 40 + 38*(RND - 0.5)
750 RETURN
760 REM ------------ SETUP GAME PARAMETERS ----------
770 XVEL = 1: LOCATE 1,10,0 :INPUT "enter number of simultaneous enemies  ",NE
780 IF NE = 0 THEN CLS : KEY ON:END
785 IF NE<0 OR NE>20 THEN PRINT "Range is 0 to 20 please ":GOTO 770
790 CLS : T = 0
800 FOR I = 1 TO NE
810 ENY(I) = -5*RND : ENX(I) = 40 + 38*(RND - 0.5)
820 NEXT I
830 LOCATE 25,2,0 : FOR I = 2 TO 79 : PRINT CHR$(178); : NEXT I
840 X = 40 : LOCATE 24,X,0 : PRINT CHR$(127);
850 LOCATE 1,1,0 : FOR I = 1 TO 79 : PRINT " "; : NEXT I
860 LOCATE 1,1,0 : PRINT "press any character to begin  ";
870 X$ = INKEY$ : IF X$ = "" THEN 870
880 LOCATE 1,1,0 : FOR I = 1 TO 79 : PRINT " "; : NEXT I
890 RETURN

MAZE.BAS

1 ' MAZE - Taken from the DG version of the same name
2 ' Will Fastie - 16 Jan 82
3 KEY OFF: CLS
4 PROG$="MAZE  v0.00  17 Jan 82"
5 PRINT PROG$: PRINT
6 PRINT "Where should the MAZE output go?"
7 PRINT
8 PRINT "  1 - Display
9 PRINT "  2 - Printer"
10 PRINT
11 INPUT"      Enter selection:  ",AN
12 IF 1 > AN OR AN > 2 THEN 11
20 PRINT "The larger it is the longer it takes, be patient"
21 INPUT "Enter dimensions, height and width:(5,5)  ",V,H
22 IF 2>H OR H>23 OR 2>V OR V>23 THEN 21
30 RV=VAL(LEFT$(TIME$,2))+VAL(RIGHT$(TIME$,2))+VAL(MID$(TIME$,4,2))
32 RV=RV+VAL(MID$(DATE$,3,2))
34 RANDOMIZE(RV)
40 IF AN=1 THEN OPEN "scrn:"  FOR OUTPUT AS 1
41 IF AN=2 THEN OPEN "lpt1:"  FOR OUTPUT AS 1
50 DIM W(26,26), V(26,26)
100 CLS
105 IF AN=2 THEN LOCATE 12,15:PRINT "it takes a while just be patient "
240 Q=0
250 Z=0
260 X=INT(RND*H+1)
270 FOR I = 1 TO H
280   IF I=X THEN 310
290   PRINT #1, "|--";
300   GOTO 320
310   PRINT #1, "|  ";
320 NEXT I
330 PRINT #1, "|"
340 C=1
350 W(X,1)=C
360 C=C+1
370 R=X
380 S=1
390 GOTO 500
400 IF R<>H THEN 480
410 IF S<>V THEN 450
420 R=1
430 S=1
440 GOTO 490
450 R=1
460 S=S+1
470 GOTO 490
480 R=R+1
490 IF W(R,S)=0 THEN 400
500 IF R-1=0 THEN 950
510 IF W(R-1,S)<>0 THEN 950
520 IF S-1=0 THEN 720
530 IF W(R,S-1)<>0 THEN 720
540 IF R=H THEN 600
550 IF W(R+1,S)<>0 THEN 600
560 X=INT(RND*3+1)
570 IF X=1 THEN 1380
580 IF X=2 THEN 1450
590 IF X=3 THEN 1520
600 IF S<>V THEN 640
610 IF Z=1 THEN 690
620 Q=1
630 GOTO 650
640 IF W(R,S+1)<>0 THEN 690
650 X=INT(RND*3+1)
660 IF X=1 THEN 1380
670 IF X=2 THEN 1450
680 IF X=3 THEN 1610
690 X=INT(RND*2+1)
700 IF X=1 THEN 1380
710 IF X=2 THEN 1450
720 IF R=H THEN 860
730 IF W(R+1,S)<>0 THEN 860
740 IF S<>V THEN 780
750 IF Z=1 THEN 830
760 Q=1
770 GOTO 790
780 IF W(R,S+1)<>0 THEN 830
790 X=INT(RND*3+1)
800 IF X=1 THEN 1380
810 IF X=2 THEN 1520
820 IF X=3 THEN 1610
830 X=INT(RND*2+1)
840 IF X=1 THEN 1380
850 IF X=2 THEN 1520
860 IF S<>V THEN 900
870 IF Z=1 THEN 940
880 Q=1
890 GOTO 910
900 IF W(R,S+1)<>0 THEN 940
910 X=INT(RND*2+1)
920 IF X=1 THEN 1380
930 IF X=2 THEN 1610
940 GOTO 1380
950 IF S-1=0 THEN 1200
960 IF W(R,S-1)<>0 THEN 1200
970 IF R=H THEN 1110
980 IF W(R+1,S)<>0 THEN 1110
990 IF S<>V THEN 1030
1000 IF Z=1 THEN 1080
1010 Q=1
1020 GOTO 1040
1030 IF W(R,S+1)<>0 THEN 1080
1040 X=INT(RND*3+1)
1050 IF X=1 THEN 1450
1060 IF X=2 THEN 1520
1070 IF X=3 THEN 1610
1080 X=INT(RND*2+1)
1090 IF X=1 THEN 1450
1100 IF X=2 THEN 1520
1110 IF S<>V THEN 1150
1120 IF Z=1 THEN 1190
1130 Q=1
1140 GOTO 1160
1150 IF W(R,S+1)<>0 THEN 1190
1160 X=INT(RND*2+1)
1170 IF X=1 THEN 1450
1180 IF X=2 THEN 1610
1190 GOTO 1450
1200 IF R=H THEN 1310
1210 IF W(R+1,S)<>0 THEN 1310
1220 IF S<>V THEN 1260
1230 IF Z=1 THEN 1300
1240 Q=1
1250 GOTO 1460
1260 IF W(R,S+1)<>0 THEN 1300
1270 X=INT(RND*2+1)
1280 IF X=1 THEN 1520
1290 IF X=2 THEN 1610
1300 GOTO 1520
1310 IF S<>V THEN 1350
1320 IF Z=1 THEN 1370
1330 Q=1
1340 GOTO 1360
1350 IF W(R,S+1)<>0 THEN 1370
1360 GOTO 1610
1370 GOTO 1810
1380 W(R-1,S)=C
1390 C=C+1
1400 V(R-1,S)=2
1410 R=R-1
1420 IF C=H*V+1 THEN 1820
1430 Q=0
1440 GOTO 500
1450 W(R,S-1)=C
1460 C=C+1
1470 V(R,S-1)=1
1480 S=S-1
1490 IF C=H*V+1 THEN 1820
1500 Q=0
1510 GOTO 500
1520 W(R+1,S)=C
1530 C=C+1
1540 IF V(R,S)=0 THEN 1570
1550 V(R,S)=3
1560 GOTO 1580
1570 V(R,S)=2
1580 R=R+1
1590 IF C=H*V+1 THEN 1820
1600 GOTO 950
1610 IF Q=1 THEN 1710
1620 W(R,S+1)=C
1630 C=C+1
1640 IF V(R,S)=0 THEN 1670
1650 V(R,S)=3
1660 GOTO 1680
1670 V(R,S)=1
1680 S=S+1
1690 IF C=H*V+1 THEN 1820
1700 GOTO 500
1710 Z=1
1720 IF V(R,S)=0 THEN 1760
1730 V(R,S)=3
1740 Q=0
1750 GOTO 1810
1760 V(R,S)=1
1770 Q=0
1780 R=1
1790 S=1
1800 GOTO 490
1810 GOTO 400
1820 FOR J = 1 TO V
1830   PRINT #1,"|";
1840   FOR I = 1 TO H
1850     IF V(I,J)<2 THEN 1880
1860     PRINT #1, "   ";
1870     GOTO 1890
1880     PRINT #1, "  |";
1890   NEXT I
1900   PRINT #1,
1910   FOR I = 1 TO H
1920     IF V(I,J)=0 THEN 1960
1930     IF V(I,J)=2 THEN 1960
1940     PRINT #1, "|  ";
1950     GOTO 1970
1960     PRINT #1, "|--";
1970   NEXT I
1980   PRINT #1, "|"
1990 NEXT J
2000 CLOSE
2010 KEY ON:END

NEWFONT.BAS

100 ' PROGRAM NEWFONT.BAS TO CREATE NEW CHARACTER SETS FOR THE IBM PC
105 ' HUGH S. JACKSON, 1984. ALL COMMERCIAL RIGHT RESERVED BY AUTHOR.
110 '
115 KEY OFF:SCREEN 1:COLOR 9,0:CLS:CLEAR,&HF800
120 DEFINT A-Z:ON ERROR GOTO 1115:FOR R=1 TO 10:KEY R,"":NEXT
125 DIM H(7,1),V(4,1),BIN(7,1),FONT(1),FL(1),CH$(1),FILE$(1)
130 DIM GRIDA(188),GRIDB(188):GOSUB 1145   'INITIALIZE ARRAYS
135 '
140 '  SET UP SCREEN
145 '
150 PRINT "  <" CHR$(27) CHR$(24) CHR$(25) CHR$(26);
155 PRINT ">  <INS>  <DEL>  <SPACE>  <ESC>";
160 LINE (O,10)-(319,170),1,B:LINE (1,11)-(318,169),2,B
165 LINE (2,11)-(2,169),2:LINE (317,11)-(317,169),2
170 LINE (3,12)-(316,168),1,B
175 '
180 FOR A=31 TO 95 STEP 8
185     LINE (84,A)-(148,A),1:  LINE (A+53,32)-(A+53,94),1
190     LINE (172,A)-(236,A),1:LINE (A+141,32)-(A+141,94),1
195 NEXT :GOSUB 970:G=1:GOSUB 970
200 '
205 LOCATE 14,10:PRINT "F9"SPC(18) "F10";
210 LOCATE 16,8:PRINT "GRID A" SPC(14) "GRID B";
215 GET (16,118)-(148,128),GRIDA
220 GET (172,118)-(304,128),GRIDB
225 '
230 LOCATE 23,1:PRINT "  ^F1      F2      F4     ^F5      F6";
235 LOCATE 24,1:PRINT "  LOAD    LOAD    BIOS    SAVE    SAVE";
240 LOCATE 25,1:PRINT "  FILE    CHAR    CHAR    FILE    CHAR";
245 GOTO 800
250 '
255 'MAIN INPUT
260 '
265  DEF SEG=0:POKE &H417,&H40: DEF SEG       ' SET NUM LOCK TO CURSOR MODE
270 I$=INKEY$:IF I$="" THEN 270
275 IF I$=CHR$(0)+CHR$(72) THEN IF V(1,G)=V(0,G) THEN 265 ELSE V(1,G)=V(1,G)-8:GOTO 370 'UP
280 IF I$=CHR$(0)+CHR$(75) THEN IF H(1,G)=H(0,G) THEN 265 ELSE H(1,G)=H(1,G)-8:GOTO 370  ' RIGHT
285 IF I$=CHR$(0)+CHR$(77) THEN IF H(1,G)=H(3,G) THEN 265 ELSE H(1,G)=H(1,G)+8:GOTO 370   'RIGHT
290 IF I$=CHR$(0)+CHR$(80) THEN IF V(1,G)=V(3,G) THEN 265 ELSE V(1,G)=V(1,G)+8:GOTO 370  'DOWN
295 IF I$=CHR$(0)+CHR$(82) THEN 400                     'INSERT
300 IF I$=CHR$(0)+CHR$(83) THEN 440                     'DELETE
305 IF I$=CHR$(0)+CHR$(60) THEN 505                     'LOAD CHAR
310 IF I$=CHR$(0)+CHR$(62) THEN 600                     'LOAD CHAR FROM BIOS
315 IF I$=CHR$(0)+CHR$(64) THEN 750                     'SAVE CHAR
320 IF I$=CHR$(0)+CHR$(67) THEN 800                     'GRID A
325 IF I$=CHR$(0)+CHR$(68) THEN 835                     'GRID B
330 IF I$=CHR$(0)+CHR$(94) THEN 870                     'LOAD FILE
335 IF I$=CHR$(0)+CHR$(98) THEN 930                     'SAVE FILE
340 IF I$=CHR$(32) THEN GOSUB 970:GOTO 265      'CLEAR GRID
345 IF I$=CHR$(27) THEN SCREEN 0,0:WIDTH 80:CHAIN"MENU2"     'ESCAPE
350 GOTO 265
355 '
360 'MOVE DOT
365 '
370 IF POINT(H(2,G)+1,V(2,G))=2 THEN PSET(H(2,G),V(2,G)),2 ELSE PSET (H(2,G),V(2,G)),3
375 IF POINT (H(1,G)+1,V(1,G))=2 THEN PSET (H(1,G),V(1,G)),3 ELSE PSET(H(1,G),V(1,G)),2
380 H(2,G)=H(1,G):V(2,G)=V(1,G):GOTO 265
385 '
390 'INSERT'
395 '
400 IF POINT(H(1,G)+1,V(1,G))=3 THEN BEEP:GOTO 265 ELSE PAINT(H(1,G),V(1,G)),3,1:PSET(H(1,G),V(1,G)),2
405 COL=(H(1,G)-H(0,G))/8:ROW=(V(1,G)-V(0,G))/8
410 PSET(H(4,G)+COL,V(4,G)+ROW),3
415 BIN(ROW,G)=BIN(ROW,G) OR &H80/2^COL
420 GOSUB 480:GOTO 265
425 '
430 ' DELETE
435 '
440 IF POINT (H(1,G)+1,V(1,G))=2 THEN BEEP:GOTO 265 ELSE  PAINT(H(1,G),V(1,G)),2,1:PSET(H(1,G),V(1,G)),3
445 COL=(H(1,G)-H(0,G))/8:ROW=(V(1,G)-V(O,G))/8
450 PSET(H(4,G)+COL,V(4,G)+ROW),0
455 BIN(ROW,G)=BIN(ROW,G) >= &H80/2^COL
460 GOSUB 480:GOTO 265
465 '
470 ' PRINT HEX VALUE
475 '
480 HX$=HEX$(BIN(ROW,G)):IF LEN(HX$)=1 THEN HX$="0"+HX$
485 LOCATE ROW+5,H(7,G):PRINT HX$:RETURN
490 '
495 ' PRINT CHAR FROM MEMORY
500 '
505  LOCATE 20:GOSUB 1030
510 LOCATE ,H(6,G):PRINT "CHAR CODE: ";: MAXCHAR=3: GOSUB 1050: CH$(G)=S$
515 IF CH$(G)="" THEN 580
520 IF CH$(G)="A" OR CH$(G)="a" THEN IF G=0 THEN 580 ELSE 680
525 IF CH$(G)="B" OR CH$(G)="b" THEN IF G=1 THEN 580 ELSE 680
530 CH=VAL(CH$(G)): IF CH<0 OR CH>255 THEN 580
535 CH=CH MOD 128:FL(G)=0:GOSUB 970
540 FOR ROW=0 TO 7
545     BIN(ROW,G)=PEEK(FONT(G)+CH*8+ROW):M=&H80: MH=H(0,G)
550     FOR COL=0 TO 7
555             IF NOT BIN(ROW,G) AND M THEN 565
560             PAINT(MH,V(0,G)+8*ROW),3,1:PSET(H(4,G)+COL,V(4,G)+ROW),3
565             M=M/2:  MH=MH+8
570     NEXT COL: GOSUB 480
575 NEXT ROW:GOTO  265
580  BEEP: CH$(G)="":GOSUB 1030:GOTO 265
585 '
590 ' LOAD CHAR FROM BIOS
595 '
600 LOCATE 20:GOSUB 1030
605 LOCATE ,H(6,G):PRINT "CHAR CODE: ";:MAXCHAR=3: GOSUB 1050: CH$(G)=S$
610 IF CH$(G)="" THEN 580
615 CH=VAL(CH$(G)): IF CH<0 OR CH>255 THEN 580
620 CH=CH MOD 128: FL(G)=0:GOSUB 970: DEF SEG=&HF000
625 FOR ROW=0 TO 7
630     BIN(ROW,G)=PEEK(&HFA6E+CH*8+ROW):M=&H80: MH=H(0,G)
635     FOR COL=0 TO 7
640             IF NOT BIN(ROW,G) AND M THEN 650
645             PAINT(MH,V(0,G)+8*ROW),3,1:PSET(H(4,G)+COL,V(4,G)+ROW),3
650             M=M/2: MH=MH+8
655     NEXT COL :GOSUB 480
660 NEXT ROW: GOTO 265
665 '
670 ' LOAD CHAR FROM OPPOSITE GRID
675 '
680 NG=G >= 1: CH$(G)=CH$(NG):GOSUB 1030
685 IF CH$(G)<>"" THEN LOCATE ,H(6,G): PRINT "CHAR CODE: "CH$(G)
690 FL(G)=0:GOSUB 970
695 FOR ROW=0 TO 7
700     BIN(ROW,G)=BIN(ROW,NG): M=&H80: MH=H(0,G)
705     FRO COL=0 TO 7
710             IF NOT BIN(ROW,G) AND M THEN 720
715             PAINT(MH,V(O,G)+8*ROW),3,1:PSET (H(4,G)+COL,V(4,G)+ROW),3
720             M=M/2: MH=MH+8
725     NEXT COL: GOSUB 480
730 NEXT ROW: GOTO 265
735 '
740 ' SAVE CHAR TO MEMORY
745 '
750 LOCATE 20: GOSUB 1030:IF CH$(G)<>"" THEN 765
755 LOCATE ,H(6,G):PRINT "CHAR CODE: ";: MAXCHAR=3: GOSUB 1050: CH$(G)=S$
760 IF CH$(G)="" THEN 580
765 CH=VAL(CH$(G)): IF CH<0 OR CH>255 THEN 580
770 CH=CH MOD 128: FL(G)=1: GOSUB 1030
775 FOR ROW=0 TO 7:POKE FONT(G)+CH*8+ROW,BIN(ROW,G): NEXT
780 LOCATE ,H(6,G): PRINT "CHAR "CH$(G) " SAVED";: CH$(G)="":GOTO 265
785 '
790 ' SWITCH TO GRID A
795 '
800 PUT(172,118),GRIDB,PSET
805 LINE (172,123)-(210,123): LINE (267,123)-(304,123)
810 PUT(16,118),GRIDA, PRESET
815 G=0: GOTO 265
820 '
825 ' SWITCH TO GRID B
830 '
835 PUT(16,118),GRIDA,PSET
840 LINE(16,123)-(50,123):LINE(107,123)-(148,123)
845 PUT(172,118),GRIDB,PRESET
850 G=1: GOTO 265
855 '
860 ' LOAD FILE
865 '
870 LOCATE 18: GOSUB 1030
875 LOCATE ,H(5,G):PRINT "FILE? ";: MAXCHAR=12: GOSUB 1050: FILE$(G)=S$
880 GOSUB 1030: IF FILE$(G)="" THEN BEEP: GOTO 265
885 FL(G)=1:IF FILE$(G)="NEW" OR FILE$(G)="new" THEN 900
890 BLOAD FILE$(G),FONT(G)
895 LOCATE ,H(6,G): PRINT FILE(G);: GOTO 265
900 LOCATE ,H(6,G):PRINT "WORKING...";
905 FOR BYTE=0 TO &H3FF:POKE FONT(G)+BYTE,0:NEXT
910 LOCATE,H(6,G):PRINT "MEMORY CLEARED";:FILE$(G)="":GOTO 265
915 '
920 ' SAVE FILE
925 '
930 LOCATE 18:GOSUB 1030:IF FILE$(G)<>"" THEN 945
935 LOCATE ,H(5,G):PRINT "FILE? ";:MAXCHAR=12:GOSUB 1050:FILE$(G)=S$
940 GOSUB 1030:IF FILE$(G)="" THEN BEEP: GOTO 265
945 BSAVE FILE$(G),FONT(G),&H400
950 LOCATE ,H(5,G):PRINT FILE(G)" SAVED";:FILE$(G)="":FL(G)=1: GOTO 265
955 '
960 ' PAINT GRID
965 '
970 LOCATE 3: GOSUB 1030
975 ROW=5: FOR R=35 TO 91 STEP 8
980 FOR C=H(O,G) TO H(3,G) STEP 8: PAINT(C,R),2,1: NEXT C
985 LOCATE ROW,H(7,G)-2: PRINT "&H00";
990 ROW=ROW+1: NEXT R
995 IF FL(G)=1 THEN LOCATE 20:GOSUB 1030:FL(G)=0
1000 FOR ROW=0 TO 7:BIN(ROW,G)=0:NEXT
1005 H(1,G)=H(O,G): V(1,G)=V(0,G):PSET(H(1,G),V(1,G))
1010 H(2,G)=H(1,G): V(2,G)=V(1,G):RETURN
1015 '
1020 ' BLANKER
1025 '
1030 LOCATE ,H(5,G):PRINT SPC(18):RETURN
1035 '
1040 ' KEYBOARD INPUT
1045 '
1050 S$="":KCHAR=0:START=POS(0)
1055 CHAR$=INKEY$:IF CHAR$="" THEN 1055
1060 IF CHAR$=CHR$(13) THEN RETURN
1065 IF CHAR$=CHR$(8) THEN GOSUB 1085: GOTO 1055
1070 IF LEN(CHAR$)>1 OR CHAR$<CHR$(32) THEN 1055
1075 KCHAR=KCHAR+1: IF KCHAR>MAXCHAR THEN KCHAR=MAXCHAR: GOTO 1055
1080 PRINT CHAR$;:S$=S$+CHAR$: GOTO 1055
1085 IF KCHAR=0 THEN RETURN
1090 KCHAR=KCHAR-1: LOCATE ,START+KCHAR:PRINT CHR$(32);:LOCATE ,START+KCHAR
1095 S$=LEFT$(S$,KCHAR):RETURN
1100 '
1105 ' ERRORS
1110 '
1115 IF ERL=890 THEN LOCATE ,H(6,G):PRINT "FILE NOT FOUND";: FILE$(G)="":FL(G)=1:RESUME 265
1120 IF ERL=945 THEN LOCATE ,H(6,G):PRINT "FILE NOT SAVED";:FILE$(G)="":FL(G)=1:RESUME 265
1125 ON ERROR GOTO 0
1130 '
1135 ' INITIALIZE
1140 '
1145 FOR C=O TO 1:FOR R=0 TO 7:READ H(R,C): NEXT R,C
1150 DATA 88,88,88,144,113,2,4,6
1155 DATA 176,176,176,232,201,22,24,36
1160 FOR C=O TO 1:FOR R=0 TO 4:READ V(R,C): NEXT R,C
1165 DATA 35,35,35,91,16
1170 DATA 35,35,35,91,16
1175 FONT(0)=&HF800: FONT(1)=&HFC00: RETURN

NUKE-SF.BAS

10 REM-Nuclear attack simulator
20 REM-by K.L. AND R.M. FREEZE
30 REM-Original program by J.R. DUKAT
40 REM-Information presented is as good as my sources allow
50 REM-any corrections or improvements are welcomed........
60 REM
70 REM-start it up
80 SCREEN 1:CLS:KEY OFF
90 ' LOCATE 6,9,0:PRINT "DO YOU LOVE SAN FRANCISCO?";
100 'FOR T=1 TO 3000:NEXT T:CLS
110 GOTO 160
120 GOSUB 2970
130 GOSUB 2940
140 SCREEN 1
150 CLS
160 COLOR 0,7
170 KEY OFF
180 LINE (158,3)-(339,20),2,B
190 LINE (158,27)-(338,190),2,B
200 LOCATE 2,21:PRINT " SAN FRANCISCO BAY";
210 SCALE=1
220 XT=-140:YT=120
230 IBMX=150+(XT*SCALE):IBMY=99-((YT)*SCALE)
240 FLG=0
250 READ X,Y
260 IF X=999 AND Y=999 THEN 240
270 IF X=888 AND Y=888 THEN 370
280 X=X+TX:Y=Y+TY
290 X0=TX:Y0=TY
300 X=IBMX+X:Y=IBMY-(Y)
310 PSET (X,Y),1
320 IF FLG=0 THEN 340
330 LINE (X,Y)-(LASTX,LASTY)
340 LASTX=X:LASTY=Y
350 FLG=1
360 GOTO 250
370 READ X,Y
380 IF X=999 AND Y=999 THEN 410
390 PAINT (X,Y),2,3
400 GOTO 370
410 GOSUB 3020 ;DRAW COMPASS ROSE
420 IF NXTBOMB=1 THEN 2330
430 LOCATE 5,21:PRINT "  This map covers ";
440 LOCATE 6,21:PRINT " an area of appx. ";
450 LOCATE 7,21:PRINT " 1700 sq/mi.  The ";
460 LOCATE 8,21:PRINT " long dimension is";
470 LOCATE 9,21:PRINT " about 50 miles - ";
480 LOCATE 10,21:PRINT " short dimension  ";
490 LOCATE 11,21:PRINT " about 34 miles.  ";
500 LOCATE 12,21:PRINT " Oakland is near  ";
510 LOCATE 13,21:PRINT " the center of the";
520 LOCATE 14,21:PRINT " map.             ";
530 LOCATE 15,21:PRINT " San Francisco is ";
540 LOCATE 16,21:PRINT " west. The Pacific";
550 LOCATE 17,21:PRINT " Ocean lies all   ";
560 LOCATE 18,21:PRINT " along the west.  ";
570 LOCATE 19,21:PRINT "                  ";
580 LOCATE 20,21:PRINT "                  ";
590 FOR T=1 TO 9000:NEXT T
600 GOSUB 2970  ;CLEAR BIG BOX
610 LOCATE 5,21:PRINT " To the south is  ";
620 LOCATE 6,21:PRINT " San Jose and to  ";
630 LOCATE 7,21:PRINT " the north is the ";
640 LOCATE 8,21:PRINT " California wine  ";
650 LOCATE 9,21:PRINT " country.         ";
660 LOCATE 10,21:PRINT "                  ";
710 FOR T=1 TO 8000:NEXT T
720 GOSUB 2970
730 LOCATE 5,21:PRINT "  This program is ";
740 LOCATE 6,21:PRINT " to demonstrate   ";
750 LOCATE 7,21:PRINT " effects from var-";
760 LOCATE 8,21:PRINT " ious nuclear war-";
770 LOCATE 9,21:PRINT " heads which might";
780 LOCATE 10,21:PRINT " be used in attack";
790 LOCATE 11,21:PRINT " ing San Francisco";
800 LOCATE 12,21:PRINT " This attack will ";
810 LOCATE 13,21:PRINT " consist of just  ";
820 LOCATE 14,21:PRINT " 11  1 MT. bombs. ";
830 LOCATE 15,21:PRINT " They will explode";
840 LOCATE 16,21:PRINT " at an altitude of";
850 LOCATE 17,21:PRINT " 8000 ft. This sim";
860 LOCATE 18,21:PRINT " ulation would be ";
870 LOCATE 19,21:PRINT " considered on the";
880 LOCATE 20,21:PRINT " conservative side";
890 LOCATE 21,21:PRINT " A maximum attack ";
900 LOCATE 22,21:PRINT " would use around ";
910 LOCATE 23,21:PRINT " 60 warheads......";
920 FOR T=1 TO 11000:NEXT T
930 GOSUB 2970
940 TMR=2000
950 GOSUB 2940
960 LOCATE 2,21:PRINT "   Select Targets  ";
970 LINE (158,27)-(338,190),2,B
980 LOCATE 5,21:PRINT "   Downtown  SF  ";
990 SOUND 500,1:PSET (40,92),1
1000 FOR T=1 TO TMR:NEXT T
1010 LOCATE 6,21:PRINT "   Berkeley       ";
1020 SOUND 500,1:PSET (76,60),1
1030 FOR T=1 TO TMR:NEXT T
1040 LOCATE 7,21:PRINT "   Oakland        ";
1050 SOUND 500,1:PSET (87,82),1
1060 FOR T=1 TO TMR:NEXT T
1070 LOCATE 8,21:PRINT "   Walnut Creek   ";
1080 SOUND 500,1:PSET (120,62),1
1090 FOR T=1 TO TMR:NEXT T
1100 LOCATE 9,21:PRINT "   Concord        ";
1110 SOUND 500,1:PSET (125,42),1
1120 FOR T=1 TO TMR:NEXT T
1130 LOCATE 10,21:PRINT "   Richmond       ";
1140 SOUND 500,1:PSET (58,48),1
1150 FOR T=1 TO TMR:NEXT T
1160 LOCATE 11,21:PRINT "   Vallejo        ";
1170 SOUND 500,1:PSET (88,10),1
1180 FOR T=1 TO TMR:NEXT T
1190 LOCATE 12,21:PRINT "   Martinez       ";
1200 SOUND 500,1:PSET (110,33),1
1210 FOR T=1 TO TMR:NEXT T
1220 LOCATE 13,21:PRINT "   Hayward        ";
1221 SOUND 500,1:PSET (119,115),1
1222 FOR T=1 TO TMR:NEXT T
1230 LOCATE 14,21:PRINT "   San Mateo      ";
1231 SOUND 500,1:PSET (75,145),1
1232 FOR T=1 TO TMR:NEXT T
1235 LOCATE 15,21:PRINT "   Palo Alto      ";
1236 SOUND 500,1:PSET (105,169),1
1240 FOR T=1 TO TMR:NEXT T
1250 FOR I=5 TO 15
1260 LOCATE I,22:PRINT CHR$(26);
1270 SOUND 1000,1:FOR T=1 TO 50:NEXT T
1280 NEXT I
1290 LOCATE 2,21:PRINT " Targets Confirmed ";
1300 FOR T=1 TO 4000:NEXT T
1310 GOSUB 2970
1320 FOR S=1 TO 50:SOUND 9000,0.5:SOUND 8000,0.5:NEXT S
1330 LOCATE 2,21:PRINT "   Warhead Size    ";
1340 LOCATE 5,21:PRINT "   Each warhead is ";
1350 LOCATE 6,21:PRINT " one megaton - the ";
1360 LOCATE 7,21:PRINT " equivalent of one ";
1370 LOCATE 8,21:PRINT " million tons of   ";
1380 LOCATE 9,21:PRINT " TNT.              ";
1390 LOCATE 11,21:PRINT "  Warheads are set ";
1400 LOCATE 12,21:PRINT " to airburst at an ";
1410 LOCATE 13,21:PRINT " altitude of 8000  ";
1420 LOCATE 14,21:PRINT " feet.             ";
1430 FOR T=1 TO 5000:NEXT T
1440 GOSUB 2970:GOSUB 2940
1450 SOUND 8000,0.5
1460 LOCATE 2,21:PRINT "   Targets Marked  ";
1470 PSET (40,92),Z
1480 PSET (76,60),Z
1490 PSET (87,82),Z
1500 PSET (120,62),Z
1510 PSET (125,42),Z
1520 PSET (58,48),Z
1530 PSET (88,10),Z
1540 PSET (110,33),Z
1550 PSET (119,115),Z
1551 PSET (75,145),Z
1552 PSET (105,169),Z
1560 C=C+1:IF C=150 THEN 1590
1570 IF Z=1 THEN Z=0 ELSE Z=1
1580 GOTO 1470
1590 LOCATE 2,21:PRINT " Time to detonate  ";
1600 FOR CD=10 TO 3 STEP -1
1610 LOCATE 6,23:PRINT USING "####";CD;
1620 LOCATE 6,28:PRINT "seconds";
1630 FOR T=1 TO 1000:NEXT T
1640 NEXT CD
1650 GOSUB 2970
1660 FOR S=1 TO 50:SOUND 4000,0.5:SOUND 4500,0.5:NEXT S
1670 LOCATE 2,21:PRINT " -- DETONATION --  ";
1680 S=1:I=5:R=0:GOSUB 2690
1690 LOCATE 5,21:PRINT "       ZONE 1      ";
1700 LOCATE 7,21:PRINT " Diameter 3 mi.    ";
1710 LOCATE 10,21:PRINT " Overpress. 25 psi ";
1720 LOCATE 11,21:PRINT " Wind Vel. 320 mph ";
1730 LOCATE 13,21:PRINT "   All structures  ";
1740 LOCATE 14,21:PRINT " above ground are  ";
1750 LOCATE 15,21:PRINT " destroyed.        ";
1760 LOCATE 17,21:PRINT " 98 % fatalities   ";
1770 LOCATE 19,21:PRINT " STBY FOR ZONE 2   ";
1780 FOR T=1 TO 5500:NEXT T
1790 GOSUB 2970
1800 S=6:I=10:R=3:GOSUB 2690
1810 LOCATE 5,21:PRINT "       ZONE 2      ";
1820 LOCATE 7,21:PRINT " Diameter 6 miles  ";
1830 LOCATE 10,21:PRINT " Overpress. 9 psi  ";
1840 LOCATE 11,21:PRINT " Wind Vel. 260 mph ";
1850 LOCATE 13,21:PRINT "  Factories/office ";
1860 LOCATE 14,21:PRINT " buildings collapse";
1870 LOCATE 15,21:PRINT " Severe damage to  ";
1880 LOCATE 16,21:PRINT " highway bridges.  ";
1890 LOCATE 17,21:PRINT " 50% dead 40% inj. ";
1900 LOCATE 19,21:PRINT " STBY FOR ZONE 3   ";
1910 FOR T=1 TO 5500:NEXT T
1920 GOSUB 2970
1930 I=19:R=1:GOSUB 2590 ;DRAW CIRCLES
1940 LOCATE 5,21:PRINT "       ZONE 3      ";
1950 LOCATE 7,21:PRINT " Diameter 10 mi.   ";
1960 LOCATE 10,21:PRINT " Overpress. 3 psi  ";
1970 LOCATE 11,21:PRINT " Wind Vel. 98 mph  ";
1980 LOCATE 13,21:PRINT "  Wood frame resid-";
1990 LOCATE 14,21:PRINT " ences severely    ";
2000 LOCATE 15,21:PRINT " damaged. People   ";
2010 LOCATE 16,21:PRINT " are blown around, ";
2020 LOCATE 17,21:PRINT " 2nd degree burns, ";
2030 LOCATE 18,21:PRINT " 10% dead 45% inj. ";
2040 LOCATE 20,21:PRINT " STBY FOR MORE..   ";
2050 FOR T=1 TO 5500:NEXT T
2060 GOSUB 2970
2070 LOCATE 5,21:PRINT " LONG RANGE EFFECT ";
2080 LOCATE 7,21:PRINT " Light door/plaster";
2090 LOCATE 8,21:PRINT " damage to 14.5 mi.";
2100 LOCATE 9,21:PRINT " Windows broken out";
2110 LOCATE 10,21:PRINT " to 30 miles.      ";
2120 LOCATE 12,21:PRINT " Flashblindness to ";
2130 LOCATE 13,21:PRINT " 13 miles daytime  ";
2140 LOCATE 14,21:PRINT " and to 50 miles at";
2150 LOCATE 15,21:PRINT " night clear sky.  ";
2160 FOR T=1 TO 5500:NEXT T
2170 GOSUB 2970:GOSUB 2940
2180 LOCATE 2,21:PRINT " WANNA SEE WORSE ? ";
2190 LOCATE 5,21:PRINT " If you wait just a";
2200 LOCATE 6,21:PRINT " second I'll redraw";
2210 LOCATE 7,21:PRINT " the map and drop  ";
2220 LOCATE 8,21:PRINT " just one 20 MT.war";
2230 LOCATE 9,21:PRINT " head centered on  ";
2240 LOCATE 10,21:PRINT " Downtown Berkeley.";
2250 LOCATE 11,21:PRINT " I will mark zones ";
2260 LOCATE 12,21:PRINT " as before...      ";
2270 LOCATE 13,21:PRINT " Burst altitude for";
2280 LOCATE 14,21:PRINT " this device will  ";
2290 LOCATE 15,21:PRINT " be 17500 feet...  ";
2300 NXTBOMB=1
2310 FOR T=1 TO 9000:NEXT T
2320 RESTORE:GOTO 120
2330 SOUND 2000,1
2340 LOCATE 2,21:PRINT "  Target Berkeley ";
2350 LOCATE 5,21:PRINT "  20 MT. WARHEAD   ";
2360 PSET (76,60),0
2370 FOR T=1 TO 3000:NEXT T
2380 SOUND 5000,1:LOCATE 2,21:PRINT " -- DETONATION --  ";
2390 S=1:I=16:R=0:GOSUB 2830:S=17:I=23:R=1:GOSUB 2830
2400 CIRCLE (76,60),40,1
2410 FOR T=1 TO 3000:NEXT T
2420 GOSUB 2970
2430 LOCATE 6,21:PRINT " -FOR COMPARISON-  ";
2440 LOCATE 8,21:PRINT " I'll drop a 12.5  ";
2450 LOCATE 9,21:PRINT " kiloton bomb on   ";
2460 LOCATE 10,21:PRINT " San Francisco.    ";
2470 LOCATE 11,21:PRINT " (Hiroshima size)..";
2480 S=1:I=2:R=0:GOSUB 2900:S=3:I=4:R=3:GOSUB 2900
2490 FOR T=1 TO 10000:NEXT T:CLS:SCREEN 0:WIDTH 80
2500 LOCATE 10,15,0
2510 PRINT " Projection for U.S. & SOVIET warhead numbers for 1985"
2520 LOCATE 11,15,0
2530 PRINT " is a grand total of roughly 40000 of various sizes..."
2540 LOCATE 12,15,0
2550 PRINT " This total does not include other nuclear powers ..."
2560 LOCATE 17,19,0
2570 PRINT "             BYE/BYE  &  GOOD LUCK"
2580 FOR T=1 TO 9000:NEXT T
2581 LOCATE 1,1,1:CLS:END
2590 CIRCLE (40,92),I,R
2600 CIRCLE (76,60),I,R
2610 CIRCLE (87,82),I,R
2620 CIRCLE (120,62),I,R
2630 CIRCLE (125,42),I,R
2640 CIRCLE (58,48),I,R
2650 CIRCLE (88,10),I,R
2660 CIRCLE (110,33),I,R
2670 CIRCLE (119,115),I,R
2671 CIRCLE (75,145),I,R
2672 CIRCLE (105,169),I,R
2680 RETURN
2690 FOR GZ=S TO I
2700 CIRCLE (40,92),GZ,R
2710 CIRCLE (76,60),GZ,R
2720 CIRCLE (87,82),GZ,R
2730 CIRCLE (120,62),GZ,R
2740 CIRCLE (125,42),GZ,R
2750 CIRCLE (58,48),GZ,R
2760 CIRCLE (88,10),GZ,R
2770 CIRCLE (110,33),GZ,R
2780 CIRCLE (119,115),GZ,R
2781 CIRCLE (75,145),GZ,R
2782 CIRCLE (105,169),GZ,R
2790 FOR T=1 TO 300:NEXT T
2800 NEXT GZ
2810 REM-SINGLE WARHEAD ON BERKELEY
2820 RETURN
2830 FOR GZ=S TO I
2840 CIRCLE (76,60),GZ,R
2850 FOR T=1 TO 300:NEXT T
2860 NEXT GZ
2870 FOR T=1 TO 300:NEXT T
2880 RETURN
2890 REM-sub to drop 12.5 kiloton bomb on SAN FRANCISCO
2900 FOR GZ=S TO I
2910 CIRCLE (40,92),GZ,R
2920 FOR T=1 TO 300:NEXT T
2930 NEXT GZ
2940 REM- to clear small box
2950 LOCATE 2,21:PRINT "                  ";
2960 RETURN
2970 REM-sub to clear big box
2980 FOR I=5 TO 23
2990 LOCATE I,22:PRINT "                  ";
3000 NEXT I
3010 RETURN
3020 REM-sub to draw compass rose
3030 'FOR I=20 TO 50 STEP 2:PSET (30,I),1:NEXT I
3040 'FOR I=20 TO 40 STEP 4:PSET (I,35),1:NEXT I
3050 'PSET (30,20),1:LINE -(27,23),1:PSET (30,20),1:LINE -(33,23),1
3060 RETURN
3070 DATA 0,-94,4,-100,9,-103,12,-104,18,-103,19,-102,23,-100
3080 DATA 21,-95,18,-93,16,-92,16,-88,18,-82,21,-88,24,-90
3090 DATA 25,-93,27,-93,28,-92,28,-90,28,-88,23,-80,21,-78
3100 DATA 15,-70,18,-67,25,-66,27,-62,26,-58,20,-55,15,-54
3110 DATA 15,-47,18,-42,18,-38,18,-32,21,-32,27,-29,27,-28
3120 DATA 36,-28,40,-29,45,-30,50,-29,53,-28,57,-29,61,-30
3130 DATA 63,-31,65,-31,68,-32,72,-35,75,-35,81,-34,84,-36
3140 DATA 89,-40,91,-42,98,-42,102,-40,106,-38,109,-36,109,-30
3150 DATA 108,-26,108,-22: TOP OF BAY
3160 DATA 131,-22,128,-24,127,-27,125,-31,126,-33,127,-35,135,-34
3161 DATA 135,-42,130,-41,126,-40,120,-39,117,-40,114,-42,111,-46
3162 DATA 108,-48,100,-49,99,-49,92,-48,89,-47,84,-43,84,-40
3163 DATA 81,-38,75,-39,73,-39,68,-42,65,-46,64,-47,67,-50,67,-52
3164 DATA 64,-50,63,-49,61,-49,63,-53,56,-54,54,-54,51,-52,45,-52
3165 DATA 43,-53,43,-55,44,-58,41,-59,40,-61,43,-64,45,-66,45,-67
3166 DATA 43,-66,40,-64,36,-66,34,-62,30,-65,34,-69,37,-73
3167 DATA 37,-75,38,-77,41,-77,44,-73,46,-71,47,-73,53,-76,54,-79
3168 DATA 56,-81,59,-88,61,-90,62,-96,62,-100,56,-100,54,-102,52,-104
3169 DATA 53,-106,54,-106,63,-105,65,-104,72,-106,75,-108,79,-110
3170 DATA 80,-112,81,-116,83,-120,81,-119,74,-118,73,-120,74,-124
3171 DATA 76,-126,81,-126,84,-128,86,-130,88,-129,90,-134,91,-133
3172 DATA 98,-133,98,-131,97,-136,95,-140,92,-141,94,-144,96,-152
3173 DATA 97,-155,96,-160,98,-162,99,-164
3174 DATA 104,-164,108,-163,111,-163,112,-165,112,-168,108,-172
3175 DATA 110,-176,115,-178,117,-180,120,-182,124,-184,118,-185
3176 DATA 116,-186,118,-188,126,-190,120,-191,117,-194,110,-195
3177 DATA 108,-193,105,-192,101,-184,100,-178,99,-176,94,-178,90,-176
3178 DATA 76,-168,74,-166,72,-162,63,-160,54,-155,49,-152,45,-150
3179 DATA 42,-146,39,-144,41,-138,43,-136,44,-132,40,-130,46,-126
3180 DATA 47,-122,45,-120,41,-119,40,-113,41,-111,40,-108,38,-108
3181 DATA 37,-103,28,-105,24,-104,19,-106,17,-109,12,-110,11,-113
3182 DATA 18,-152,12,-154,11,-158,10,-160,11,-164,10,-165,16,-176
3183 DATA 18,-179,20,-182,23,-184,25,-180,27,-182,28,-198,32,-204
3184 DATA 34,-206,38,-211,135,-211,135,-22,0,-22,0,-211,38,-211
3190 DATA 38,-207,999,999:'S.F. BAY
3191 DATA 66,-107,68,-107,72,-109,74,-112,77,-114,74,-116,68,-114
3192 DATA 67,-113,64,-112,60,-111,60,-108,66,-107,999,999:'ALAMEDA
3193 DATA 77,-111,79,-112,78,-113,77,-111,999,999:'GOV'T IS.
3194 DATA 30,-93,31,-95,30,-97,28,-95,30,-93,999,999:'ANGEL IS.
3195 DATA 34,-98,35,-99,33,-99,34,-98,999,999:'ALCAT. IS.
3196 DATA 43,-99,44,-101,47,-103,48,-104,45,-105,44,-104,43,-99
3197 DATA 999,999:'YBI
3810 DATA 888,888,73,90,40,74,55,82,20,10,135,165,136,10
3820 DATA 999,999
3830 CHAIN"MENU2"

README.DOC


------------------------------------------------------------------------
Disk No 228   GAMES					       v1
------------------------------------------------------------------------
CRIBBAGE BAS  Game..Same rules as board game one player vs PC
CRIBBAGE BLD  Subroutines for CRIBBAGE.BAS
PAC-GAL  EXE  Game..Eatem up dots
COLSLOT  BAS  One arm bandit in color  Its a winner (req color)
FIREFIRE BAS  Game..Reflexes on keyboard
MAZE	 BAS  Produces mazes of any size for screen or printer
T-ROAD	 BAS  A neat and interesting adventure game
SLOT	 BAS  Same as you have but graphics are much better and in color
VAMPIRE  BAS  Adventure game.
NEWFONT  BAS  The program in pc. not sure if you want it but it saves time typing it out.
NUKE-SF  BAS  A well done nuclear war demo.


SLOT.BAS

5 M=25
10 RANDOMIZE INT(VAL(MID$(TIME$,7,2)))
15 WIDTH 80:CLS:GOSUB 1000
18 REM 'CONVERTED FOR IBM-PC FROM 101 BASIC COMPUTER GAMES BY DIGITAL
20 REM 'EQUIPMENT CORP. SUBMITTED TO DIGITAL BY ROB HOFFBERG OF ROSLYN N.Y.
25 REM 'AUTHOR UNKNOWN
30 CLS:COLOR 4
32 PRINT "OK, ";N$;" HERE ARE THE ODDS:":COLOR 5
35 LOCATE 5,10:PRINT "SYMBOL     HOW MANY     PAYOUT"
36 LOCATE 6,10:COLOR 1:PRINT STRING$(31,223)
38 LOCATE 7,10:COLOR 2:PRINT "CHERRY        3         $2.00"
39 LOCATE 8,10:COLOR 3:PRINT "CHERRY        2         $1.00   LEFT & MID WINDOWS ONLY!"
40 LOCATE 9,10:COLOR 12:PRINT "CHERRY        1         $0.50   LEFT WINDOW ONLY!"
41 LOCATE 10,10:COLOR 1:PRINT "PLUM          3         $5.00"
42 LOCATE 11,10:COLOR 4:PRINT "ORANGE        3         $7.50"
43 LOCATE 12,10:COLOR 14:PRINT "*BAR*         3        $10.00":COLOR 6
44 LOCATE 14,10:PRINT "      LEMONS ALWAYS LOOSE"
45 LOCATE 20,5:PRINT "WHEN THE MESSAGE PULL APPEARS, PRESS ENTER TO PULL."
46 LOCATE 21,5:PRINT "OR TYPE END TO END THE SESSION."
47 LOCATE 23,5:PRINT "WHEN YOU ARE READY TO BEGIN PRESS ENTER";:INPUT Z9$
110 L$=CHR$(219)
120 S$=CHR$(219)
130 B$=CHR$(219)
131 DIM W$(4)
132 W$(1)="CHERRY":W$(2)="      ":W$(3)="*BAR* ":W$(4)=" PLUM "
133 REM "WHEEL ONE
134 DIM V$(7)
135 V$(1)="ORANGE":V$(2)=" PLUM ":V$(3)="LEMON ":V$(4)="*BAR* "
136 V$(7)="CHERRY":V$(5)="CHERRY":V$(6)="CHERRY"
137 REM "WHEEL TWO
138 DIM V1$(7)
139 V1$(1)="*BAR* ":V1$(2)="LEMON ":V1$(3)=" PLUM "
140 V1$(4)="CHERRY":V1$(5)=" PLUM ":V1$(6)="ORANGE":V1$(7)="CHERRY"
141 REM "WHEEL THREE
142 DIM V3$(5)
143 V3$(1)=" PLUM ":V3$(2)="*BAR* ":V3$(3)="CHERRY":V3$(4)="LEMON "
144 V3$(5)="ORANGE"
200 CLS
210 Y=16:FOR X=1 TO 18:LOCATE X,Y:PRINT S$:NEXT X
215 X=18:FOR Y=17 TO 50:LOCATE X,Y:PRINT B$:NEXT Y
220 Y=51:FOR X=18 TO 1 STEP-1:LOCATE X,Y:PRINT S$:NEXT X
225 X=1:FOR Y=50 TO 17 STEP-1:LOCATE X,Y:PRINT L$:NEXT Y
230 REM "ARM
234 LOCATE 14,52:PRINT CHR$(219)
235 Y=52:FOR X=13 TO 8 STEP-1:LOCATE X,Y:PRINT CHR$(219)+CHR$(219);:Y=Y+1:NEXT X
240 FOR X=7 TO 6 STEP-1:LOCATE X,56:COLOR 4:PRINT STRING$(4,219):NEXT X:COLOR 6
255 LOCATE 13,28:COLOR 0,6:PRINT "P A Y O U T":LOCATE 14,33:COLOR 6,0
260 X=15:FOR Y=24 TO 42:LOCATE X,Y:PRINT L$:NEXT Y
265 FOR X=15 TO 17:LOCATE X,43:PRINT S$:NEXT X
270 FOR Y=42 TO 24 STEP-1:LOCATE 17,Y:PRINT B$:NEXT Y
275 FOR X=17 TO 15 STEP-1:LOCATE X,23:PRINT S$:NEXT X
279 REM "******LEFT WINDOW*****
280 FOR Y=18 TO 26:LOCATE 5,Y:PRINT L$:NEXT Y
285 FOR X=5 TO 7:LOCATE X,27:PRINT S$:NEXT X
290 FOR Y=26 TO 18 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y
300 FOR X=7 TO 5 STEP-1:LOCATE X,18:PRINT S$:NEXT X
305 REM "*****MID WINDOW*****
310 FOR Y=30 TO 37:LOCATE 5,Y:PRINT L$:NEXT Y
315 FOR X=5 TO 7:LOCATE X,38:PRINT S$:NEXT X
320 FOR Y=37 TO 30 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y
325 FOR X=7 TO 5 STEP-1:LOCATE X,29:PRINT S$:NEXT X
330 REM "*****RIGHT WINDOW*****
335 FOR Y=41 TO 48:LOCATE 5,Y:PRINT L$:NEXT Y
340 FOR X=5 TO 7:LOCATE X,49:PRINT S$:NEXT X
345 FOR Y=48 TO 41 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y
350 FOR X=7 TO 5 STEP-1:LOCATE X,40:PRINT S$:NEXT X
355 REM "DO YOU PULL OR END
356 LOCATE 21,24:PRINT "YOU NOW HAVE ";:PRINT USING "$$###.##";M
357 LOCATE 22,30:PRINT "PULL/END";:INPUT A$
358 LOCATE 16,24:PRINT E$;E$;E$;E$;"   "
359 E$="    ":LOCATE 6,19:PRINT E$;E$:LOCATE 6,30:PRINT E$;E$:LOCATE 6,41:PRINT E$;E$
360 IF A$="END" OR A$="E" THEN 900
373 REM " * PICK THE WHEELS
375 FOR I=1 TO 2:Z(I)=INT((RND*7)+1):NEXT I
376 Z(3)=INT((RND*5)+1)
400 REM "***** ROLL ALL WINDOWS AND PICK LEFT *****
410 FOR X=1 TO 10:FOR Y=1 TO 4:LOCATE 6,20:PRINT W$(Y)
411 LOCATE 6,31:PRINT W$(Y):LOCATE 6,42:PRINT W$(Y):NEXT Y:NEXT X
415 LOCATE 6,20:PRINT V$(Z(1))
418 SOUND 200,2
419 REM " ***** ROLL MID AND RIGHT AND PICK MID *****
420 FOR X=1 TO 15:FOR Y=1 TO 4
421 LOCATE 6,31:PRINT W$(Y):LOCATE 6,42:PRINT W$(Y):NEXT Y:NEXT X
425 LOCATE 6,31:PRINT V1$(Z(2))
429 SOUND 200,2
430 REM "***** ROLL RIGHT AND PICK RIGHT *****
435 FOR X=1 TO 20:FOR Y=1 TO 4
437 LOCATE 6,42:PRINT W$(Y):NEXT Y:NEXT X
439 LOCATE 6,42:PRINT V3$(Z(3))
500 SOUND 200,2
501 REM "DO I HAVE 3 OF A KIND
505 IF V$(Z(1))<>V1$(Z(2)) THEN 530
510 IF V1$(Z(2))<>V3$(Z(3)) THEN 530
514 IF V$(Z(1))<>"CHERRY" THEN 516
515 LOCATE 16,27:PRINT "YOU WIN $2.00":M=M+2:GOTO 355
516 IF V$(Z(1))<>" PLUM " THEN 518
517 LOCATE 16,27:PRINT "YOU WIN $5.00":M=M+5:GOTO 355
518 IF V$(Z(1))<>"ORANGE" THEN 520
519 LOCATE 16,27:PRINT "YOU WIN $7.50":M=M+7.5:GOTO 355
520 IF V$(Z(1))<>"*BAR* " THEN 522
521 LOCATE 16,27:PRINT "YOU WIN $10.00":M=M+10:GOTO 355
522 REM "LEMONS
523 LOCATE 16,28:PRINT "LEMONS LOSE!":M=M-0.25:GOTO 355
529 REM
530 REM "DO I HAVE CHERRIES
535 IF V$(Z(1))<>"CHERRY" THEN 600
540 IF V1$(Z(2))<>"CHERRY" THEN 575
544 REM
545 REM "2 CHERRIES
546 LOCATE 16,27:PRINT "YOU WIN $1.00":M=M+1:GOTO 355
574 REM
575 REM " 1 CHERRY
576 LOCATE 16,27:PRINT "YOU WIN $0.50":M=M+0.5:GOTO 355
600 REM
601 REM " GOT SCHMALTZ
602 ON Z(3) GOSUB 605,606,607,608,609,610,611
604 M=M-0.25:GOTO 355
605 LOCATE 16,25:PRINT "TRY BINGO INSTEAD":RETURN
606 LOCATE 16,25:PRINT "HA HA YOU LOSE":RETURN
607 LOCATE 16,25:PRINT "ZILCH-O":RETURN
608 LOCATE 16,25:PRINT "TRY AGAIN SUCKER":RETURN
609 LOCATE 16,25:PRINT "TRY VEGAS INSTEAD":RETURN
610 LOCATE 16,25:PRINT "YOU GOT SCHMALTZ":RETURN
611 LOCATE 16,25:PRINT "BACK TO STAR TREK":RETURN
900 LOCATE 16,26:PRINT "BUY-BUY ";N$
994 FOR T=1 TO 1500:NEXT T
995 CHAIN"MENU2"
999 END
1000 COLOR 3,0,0
1010 KEY OFF:CLS:GOTO 1030
1020 CLS
1030 FOR J=2 TO 22
1040 LOCATE 2,2:PRINT CHR$(201):LOCATE 2,79:PRINT CHR$(187)
1050 LOCATE 23,2:PRINT CHR$(200):LOCATE 23,79:PRINT CHR$(188)
1060 LOCATE J,2:PRINT CHR$(186)
1070 LOCATE J,79:PRINT CHR$(186)
1080 NEXT J
1090 FOR J=3 TO 78
1100 LOCATE 2,J:PRINT CHR$(205)
1110 LOCATE 23,J:PRINT CHR$(205)
1120 NEXT J
1130 COLOR 5
1140 LOCATE 4,4:PRINT "W E L C O M E  T O . . ."
1150 LOCATE 8,30:PRINT "I B M ' S  C A S I N O"
1160 LOCATE 17,4:PRINT "TODAY YOU WILL LOSE YOUR MONEY AT IBM'S FAMOUS SLOT MACHINE."
1170 LOCATE 18,4:PRINT "YOU HAVE BEEN GIVEN A CREDIT LINE OF $25.00. THEREFORE AT 25 A PULL YOU"
1180 LOCATE 19,4:PRINT "HAVE A MINIMUM OF 100 PULLS!"
1190 LOCATE 20,4:PRINT "BY THE WAY WHAT IS YOUR NAME";:INPUT N$
1200 RETURN

T-ROAD.BAS

10 CLS : KEY OFF : A$ = "Thunder Road Adventure"
15 T$ = TIME$
17 TI = VAL(RIGHT$(T$,2)) : RANDOMIZE TI
20 B$ ="         By Don & Freda Boner  and Jack Skinner " : FOR I = 2 TO 6 : LOCATE I-1,1 : PRINT "                              " : PRINT A$ : LOCATE 15-I,1 : PRINT B$ : FOR J = 1 TO 50 : NEXT J, I
30 DEFINT A - Z : DEFSTR M : M0 = "No you dipstick. " : M1 = "Don't be funny. " : M2 = "I see nothing unusual here. "
50 M3 = "Don't be ridiculous. " : M5 = "You might try examining things. " : M6 = "Okay. " : M7 = "What do I know... I'm just a ridge runner. " : GOTO 1920
60 GOSUB 200 : GOSUB 100
70 IF CP = 7 OR CP = 10 OR CP = 24 THEN LX = LX + 1
80 IF CP = 4 THEN HX = HX + 1
90 GOTO 350
100 T = T + 1 : LOCATE 15,1 : PRINT "   ─────"+CHR$(16);" What should I do"; : PRINT SPC(35) : LOCATE 15,28 : INPUT CM$
105 PRINT SPC(75) : PRINT SPC(75) : PRINT SPC(75) : PRINT SPC(75) : PRINT SPC(75) : PRINT SPC(75) : LOCATE 16,1
110 VB$ = "" : NO$ = "" : VB = 0 : NO = 0
120 LC = LEN(CM$) : FOR I = 1 TO LC : A$ = MID$(CM$, I, 1) : IF A$ <> " " THEN VB$ = VB$ + A$ : NEXT I
130 IF LEN(VB$) + 1 >= LEN(CM$) THEN NO = 0 : GOTO 150
140 NO$ = RIGHT$(CM$, LC - I)
150 N1$ = NO$ : V1$ =VB$ : VB$ = LEFT$(VB$, 3) : NO$ = LEFT$(NO$, 3) : FOR I = 1 TO NV : IF VB$ = VB$(I) THEN VB = I : GOTO 180 ELSE NEXT I : VB = 0
160 IF N1$ = "" THEN NO$ = VB$
170 VB = 0 : GOTO 190
180 IF VB$ = CM$ THEN O = 0 : NO$ = "" : RETURN
190 FOR I = 1 TO NN : IF NO$ = NO$(I) THEN NO = I : RETURN ELSE NEXT I : NO = 0 : NO$ = "" : RETURN
200 LOCATE 1,1 : PRINT SPC(79) : PRINT SPC(79) : PRINT SPC(79)
205 PRINT SPC(79) : PRINT SPC(79) : PRINT SPC(60) : PRINT SPC(60): PRINT SPC(60):PRINT SPC(75):PRINT SPC(75): II = 0 : IF LEFT$(P$(CP), 1) = "*" THEN P$ = RIGHT$(P$(CP), LEN(P$(CP)) - 1) : II = 1 : GOTO 220
210 P$ = "I'm "+P$(CP)
220  LOCATE 2,1 : PRINT P$ "." : K = 0 : FOR I = 1 TO LO : IF OB(I, 0) <> CP THEN 260
230 IF K = 0 THEN PRINT : PRINT "Visible Items : "
240 IF 3 + POS(0) + LEN(OB$(I)) > 80  THEN PRINT
250 PRINT OB$(I)".  "; : K = K + 1
260 NEXT I : IF K > 0 THEN PRINT
270 IF CP = 29 THEN 3150
280 IF CP = 7 OR CP = 16 OR CP = 17 OR CP = 10 OR CP = 22 OR CP = 24 OR CP = 29 OR CP = 37 THEN PRINT STRING$(79, 220) : RETURN
290 K = 0 : PRINT : PRINT "Obvious exits are: "; : FOR I = 0 TO 3 : IF P(CP, I) = 0 THEN 320
300 IF K > 0 THEN PRINT ", ";
310 PRINT D$(I); : K = K + 1
320 NEXT I : PRINT "."
330 IF CP = 6 OR CP = 26 OR CP = 35 OR CP = 36 OR CP = 32 OR CP = 21 OR CP = 26 OR CP = 27 THEN 3100
340 PRINT STRING$(79, 223) : RETURN
350 IF HX = 1 GOTO 3100
360  XX = 20
370 IF NO = 21 THEN NO = NO - XX
380 IF NO = 22 THEN NO = NO - XX
390 IF NO = 23 THEN NO = NO - XX
400 IF NO = 24 THEN NO = NO - XX
410 IF CP = 7 AND LX = 5 THEN 3100
420 IF CP = 10 AND LX = 10 THEN 3100
430 ON VB GOTO 480, 570, 580, 660, 670, 760, 770, 950, 960, 1000, 1060, 1070, 1200, 1280, 1310, 1340, 1440, 1450, 1500, 1510, 1520, 1530, 1560, 1590, 1640, 1660, 1700, 1770, 1800, 1810
440 IF VB = 0 AND NO = 0 THEN PRINT "Huh??" : GOTO 60
450 IF NO =< 4 THEN 480
460 IF VB = 10 OR VB = 11 OR VB = 12 OR VB = 13 OR VB = 14 THEN 480
470 PRINT "I never learned how to '"V1$ "' something" : GOTO 60
480 IF NO = 0 THEN PRINT "I need a direction" : GOTO 60
490 IF NO => 5 THEN PRINT M0 : GOTO 60
500 IF CP = 2 AND NO = 4 AND OB(1, 0) <> - 1 THEN PRINT " I think you should be in the car" : GOTO 60
510 IF CP > 1 AND OB(1, 0) <> - 1 THEN PRINT "But I'm not in the car" : GOTO 60
520 NO = NO - 1
530 IF CP > 7 THEN 540 : PRINT "Deputy Hardley has a road block set up" : GOTO 60
540 IF P(CP, NO) = 0 THEN PRINT M0" can't go that way" : GOTO 60
550 PRINT  "OKAY, I went "D$(NO)"." : CP = P(CP, NO) : GOTO 60
560 PRINT M0 : GOTO 60
570 GOTO 480
580 IF NO = 5 AND OB(1, 0) = -1 THEN PRINT M0 : GOTO 60
590 IF NO = 5 AND OB(1, 0) <> CP THEN PRINT M0 : GOTO 60
600 IF NO = 6 AND CP = 2 AND OB(1, 0) <> - 1 THEN PRINT M6 : CP = 1 : GOTO 60
610 IF NO = 8 AND CP = 7 THEN PRINT M1" maybe you should quit now" : GOTO 60
620 IF NO = 9 AND OB(1, 0) <> - 1 AND CP = 16 THEN PRINT M6 : OB(20, 0) = 0 : CP = 17 : GOTO 60
630 IF NO = 5 THEN PRINT M6 : OB(1, 0) = - 1 : GOTO 60
640 IF NO = 13 OR NO = 14 OR NO = 17 OR NO = 18 THEN PRINT M1 : GOTO 60
650 PRINT M3" I don't know how to do that" : GOTO 60
660 GOTO 670
670 IF NO = 7 AND CP = 1 THEN PRINT M6 : OB(3, 0) = - 1 : GOTO 60
680 ZZ = ZZ + 1
690 IF NO = 25 AND CP = 10 AND OB(1, 0) = CP THEN PRINT M6 : OB(14, 0) = - 1 : GOTO 60
700 IF CP = 34 THEN PRINT M3"-- try pick-up lady" : GOTO 60
710 IF NO = 11 AND OB(21, 0) <> CP THEN PRINT M1" I don't see any keys" : GOTO 60
720 IF CP = 17 AND NO = 11 THEN PRINT M6 : OB(21,0) = - 1 : GOTO 60
730 IF CP = 22 AND OB(28, 0) = CP AND NO = 15 THEN PRINT M6 : OB(28, 0) = - 1 : GOTO 60
740 IF CP = 24 AND OB(27, 0) = CP AND NO = 16 THEN PRINT M0" -try fight bear" : GOTO 60
750 PRINT "You nitwit - what would I do with it" : GOTO 60
760 GOTO 770
770 IF CP = 2 AND NO = 6 THEN PRINT M6" I think there is something there" : GOTO 60
780 IF CP = 2 AND NO = 5 THEN PRINT M0" it is just a souped-up car!" : GOTO 60
790 IF CP = 10 AND NO = 5 THEN GOTO 810 : GOTO 60
800 IF NO = 8 OR NO = 16 OR NO = 20 THEN PRINT M3 : GOTO 60
810 IF NO = 5 AND CP = 10 AND OB(1, 0) = CP THEN PRINT "It has two flat tires " : GOTO 60
820 IF NO = 5 AND CP = 10 AND OB(1, 0) = - 1 THEN PRINT M7 : GOSUB 3090 : PRINT "**CLUE dipstick** maybe I should exit the car" : GOTO 60
830 IF NO = 12 THEN PRINT M6"  She is a real knock'out " : GOSUB 3090 : PRINT "Should I pick her up***" : GOTO 60
840 IF CP = 34 THEN PRINT " that * lady is a knock-out" : GOTO 60
850 IF NO = 9 AND CP = 15 THEN PRINT M6" I need to be closer" : GOTO 60
860 IF NO = 9 AND CP = 16 AND OB(1, 0) <> - 1 THEN PRINT M6" maybe I should go inside" : GOTO 60
870 IF NO = 25 THEN PRINT M6" Something is inside it" : GOTO 60
880 IF NO = 26 THEN PRINT M6"Maybe I should break it open and read my fortune **" : GOTO 60
890 IF NO = 10 AND CP = 17 THEN PRINT M6 : OB(21, 0) = CP : GOTO 60
900 IF NO = 11 OR NO = 15 OR NO = 14 OR NO = 18 OR NO = 26 THEN PRINT M2 : GOTO 60
910 IF CP = 22 AND NO = 13 THEN PRINT M6" I think something is there" : GOSUB 3090 : PRINT "An old road behind the trees!" : GOTO 60
920 IF CP = 22 AND NO = 28 THEN PRINT M0"Try reading it" : GOTO 60
930 IF CP = 28 OR CP = 37 AND NO = 28 THEN PRINT M2"- try reading it " : GOTO 60
940 PRINT M2 : GOTO 60
950 GOTO 960
960 IF NO <> 8 THEN PRINT M1"It's beyond my power " : GOTO 60
970 IF NO = 8 AND OB(1, 0) <> - 1 THEN PRINT M3" What about the moon-shine" : GOTO 60
980 IF NO = 8 THEN PRINT M6 : OB(11, 0) = - 1 : CP = 8 : GOTO 60
990 PRINT M1 : GOTO 60
1000 IF CP = 3 OR CP = 9 OR CP = 12 OR CP = 25 OR CP = 31 THEN PRINT M7 : GOTO 60
1010 IF CP = 1 OR CP = 2 THEN PRINT M5 : GOTO 60
1020 IF CP = 7 AND LX => 2 THEN PRINT "Dumb old deputy's road-blocks are easy to run" : LX = 0 : GOTO 60
1030 IF CP = 7 THEN PRINT "Deputy Hardley doesn't have enough sense to get out of the rain" : GOTO 60
1040 IF CP = 10 AND OB(1, 0) = - 1 THEN PRINT "Maybe you should exit the car to see what is wrong" : GOTO 60
1050 IF VB = 10 GOTO 1140
1060 INPUT "Do you really want to quit now";X$ : IF LEFT$(X$, 1) = "y" THEN 1850 ELSE PRINT "I didn't think so" : GOTO 60
1070 CLS : INPUT "Do you want to save on drive A or B"; Y$
1075 IF LEFT$(Y$,1) = "a" OR LEFT$(Y$,1) = "A" THEN GOTO 1080
1077 OPEN "B:SAVTROAD" FOR OUTPUT AS #1 : GOTO 1090
1080 OPEN "SAVTROAD" FOR OUTPUT AS #1
1090 COLOR 16,7 : PRINT " ****** SAVING GAME ******** " : COLOR 7,0
1100 FOR I = 1 TO LO : IF OB$(I) = "" THEN 1120
1110 PRINT#1, OB(I,0), OB(I,1)
1120  NEXT I : PRINT#1, CP, ZZ, T
1125 CLOSE#1
1130 CLS : GOTO 60
1140 IF CP = 10 AND OB(1, 0) <> - 1 THEN PRINT M5 : GOSUB 3090 : PRINT " . Like the car" : GOTO 60
1150 IF CP = 22 AND OB(1, 0) = - 1 THEN PRINT "Get out of the car" : GOTO 60
1160 IF CP = 22 AND OB(1, 0) <> - 1 THEN PRINT " What you need is a good fortune" : GOSUB 3090 : PRINT M5 : GOTO 60
1170 IF CP = 24 AND OB(27, 0) = CP THEN PRINT " * Fight it ! *" : GOTO 60
1180 IF CP = 37 THEN PRINT M7 : GOSUB 3090 : PRINT " Jump it!" : GOTO 60
1190 PRINT M5 : GOTO 60
1200 CLS : INPUT " Enter source drive A or B"; Y$ : IF LEFT$(Y$,1) = "a" OR LEFT$(Y$,1) = "A" THEN GOTO 1210 ELSE OPEN "B:SAVTROAD" FOR INPUT AS #1 : GOTO 1220
1210 OPEN "SAVTROAD" FOR INPUT AS #1
1220 COLOR 16,7 : PRINT " ********** LOADING OLD GAME ********** " : COLOR 7,0
1230 FOR I = 1 TO LO : IF OB$(I) = "" THEN 1250
1240 INPUT#1, OB(I,0), OB(I,1)
1250 NEXT I
1260 INPUT#1, CP, ZZ, T
1265 CLOSE#1
1270 CLS : GOTO 60
1280 SC = 0 : FOR I = 1 TO LO : IF OB(I, 0) = -1 THEN SC = SC + OB(I, 1)
1290 NEXT I : PRINT M7 : PRINT "You make it or you don't" : GOSUB 3090
1300 PRINT "W E L L..." : GOSUB 3090 : PRINT "You have "SC"Points --" : PRINT "BUT YOU LOSE THEM IF YOU QUIT! --" : PRINT "THE OBJECT IS TO DELIVER THE MOONSHINE." : GOTO 60
1310 IF CP <> 34 THEN PRINT M6" Maybe I should get it" : GOTO 60
1320 IF CP = 34 AND NO = 12 THEN PRINT M6 : OB(38, 0) = - 1 : CP = 35 : GOTO 60
1330 IF NO <> 12 THEN PRINT M0" You mean the lady" : GOTO 60
1340 IF NO = 5 OR NO = 9 GOTO 1370
1350 IF CP = 1 AND NO = 6 THEN PRINT M6 : CP = 2 : GOTO 60
1360 PRINT M3 : GOTO 60
1370 IF NO = 9 AND CP = 17 THEN PRINT M6 : CP = 15 : GOTO 60
1380 IF NO = 5 AND CP = 10 THEN PRINT M6 : OB(1, 0) = CP : OB(14, 0) = CP : GOTO 60
1390 IF NO = 5 AND CP = 15 THEN PRINT M6 : OB(1, 0) = CP : CP = 16 : GOTO 60
1400 IF NO = 5 AND CP = 22 THEN PRINT M6 : OB(1, 0) = CP : OB(25, 0) = CP : OB(28, 0) = CP : GOTO 60
1410 IF NO = 5 AND CP = 24 THEN PRINT M6 : OB(1, 0) = CP : OB(27, 0) = CP : OB(41, 0) = CP : GOTO 60
1420 IF NO = 5 THEN PRINT M6 : OB(1, 0) = CP : GOTO 60
1430 PRINT M0 : GOTO 60
1440 GOTO 1450
1450 IF CP = 10 AND NO = 7 AND OB(3, 0) <> - 1 THEN PRINT M0"I don't have two spare tires" : GOTO 60
1460 IF CP = 10 AND NO = 7 AND OB(1, 0) = - 1 THEN PRINT " I can't do that ..." : GOSUB 3090 : PRINT " Y E T " : GOTO 60
1470 IF NO = 5 AND CP = 10 THEN PRINT M0" Try tires" : GOTO 60
1480 IF CP = 10 AND NO = 7 AND OB(1, 0) = CP THEN PRINT M6" Now I'll get in the car and go.." : GOSUB 3090 : OB(1, 0) = - 1 : CP = 11 : GOTO 60
1490 PRINT M0 : GOTO 60
1500 PRINT M3"Type load to input a saved game" : GOTO 60
1510 PRINT "OKAY.... "; N1$ : GOTO 60
1520 IF NO = 5 THEN PRINT M3 : GOTO 60
1530 IF CP = 24 AND OB(1, 0) <> - 1 AND OB(28, 0) = - 1 THEN PRINT "I think I should fight it first" : GOTO 60
1540 IF CP = 7 AND NO = 20 THEN PRINT "Not me !" : GOTO 60
1550 PRINT "I'm not going to do that" : GOTO 60
1560 IF CP = 22 AND NO <> 13 THEN PRINT M3"What about the trees!" : GOTO 60
1570 IF CP = 22 AND NO = 13 THEN PRINT M6"Now I had better get in the car and make tracks" : OB(1, 0) = - 1 : CP = 23 : GOTO 60
1580 PRINT M0" I can't do that" : GOTO 60
1590 IF CP = 24 AND OB(27, 0) = CP THEN PRINT M0" What about the bear?" : GOTO 60
1600 IF CP = 24 AND LX => 14 THEN  GOTO 3130
1610 IF CP = 24 AND NO = 17 AND OB(21, 0) <> - 1 THEN PRINT M0"You have no keys" : GOTO 60
1620 IF CP = 24 AND NO = 17 THEN PRINT M6"I'll get back in the car and get moving" : OB(1, 0) = - 1 : OB(21, 0) = - 1 : CP = 25 : GOTO 60
1630 PRINT M3 : GOTO 60
1640 IF CP <> 37 THEN PRINT M0 : GOTO 60
1650 IF NO = 18 THEN PRINT M6 : CP = 38 : GOTO 60
1660 IF CP <> 10 THEN PRINT "You nitwit I can't do that!" : GOTO 60
1670 IF CP = 10 AND OB(15, 0) = CP AND NO <> 26 THEN PRINT " T R Y   C O O K I E" : GOT 60
1680 IF NO = 26 THEN PRINT M6 : OB(15, 0) = - 1 : PRINT " What do you know, a fortune!" : GOSUB 3090 : PRINT "And it says: "CHR$(34) "He who abandons hope will be closed out" CHR$(34) : GOTO 60
1690 PRINT M1 : GOTO 60
1700 X =  INT(RND * 3) + 1 : IF CP = 24 AND OB(28, 0) = - 1 THEN 1760
1710 IF CP = 7 THEN PRINT M0" He has a gun" : GOTO 60
1720 IF X = 1 THEN 1760
1730 IF X = 2 THEN PRINT " OH NO ** what a fight *** You killed the bear" : OB(27, 0) = 0 : CP = 7 : GOTO 3100
1740 IF X = 3 THEN PRINT " OH NO ** the bear killed you" : CP = 6 : GOTO 3100
1750 PRINT M0 : GOTO 60
1760 PRINT " *** The bear takes one good look at you and runs away" : OB(27, 0) = 0 : GOTO 60
1770 IF CP = 22 AND NO = 28 THEN PRINT M6" The bridge is O U T !" : GOTO 60
1780 IF CP = 28 AND NO = 28 THEN PRINT M6" Knawbone 2 Miles" : GOTO 60
1790 PRINT M0 : GOTO 60
1800 PRINT M3" You nitwit" : GOTO 60
1810 IF CP <> 10 THEN PRINT M0 : GOTO 60
1820 IF NO = 25 AND OB(1, 0) <> - 1 THEN PRINT M6" * a fortune cookie" : OB(15, 0) = - 1 : GOTO 60
1830 IF NO = 26 THEN PRINT M1"Try, break cookie" : GOTO 60
1840 PRINT M3 : GOTO 60
1850 CLS : RUN "MENU2"
1860 PRINT SPC(75) : PRINT SPC(75) : PRINT SPC(75) : PRINT SPC(75) : PRINT "play again? (y / n)"
1870 A$ = INKEY$ : IF A$ = "y" OR A$ = "n" THEN 1890
1880 GOTO 1870
1890 IF A$ = "y" THEN RUN
1900 CLS : END
1910 GOTO 1920
1920 LOCATE 15,1 : A$ = "    A True Life Adventure " : FOR I = 1 TO LEN(A$) : PRINT MID$(A$, I, 1); : X = SQR(9999) : NEXT I
1930 GOTO 2160
1940 CLS
1950 PRINT "*** ADVENTURE VERSION 1.10  " : PRINT
1960 PRINT "BY Don & Freda Boner"
1970 PRINT " As modified for the IBM PC by Jack Skinner "
1980 PRINT : PRINT "          Welcome to the wonderful world of ADVENTURE!"
1990 PRINT
2000 PRINT "In this adventure you try to deliver white-lightning (Moonshine) from your farm in possum hollow through the hills and  hollows to Knawbone -- ";
2010 PRINT " -- but watch out for the revenuers and the sheriff.";
2020 PRINT "This is your last run.  If you are successful you will have enough money to go  to college.";
2030 PRINT "You may one day become president. But remember,  if the law don't get you the   mountain will.  Good luck."
2040 PRINT : PRINT TAB(5) "Press any key"
2050 IF INKEY$ = "" THEN 2050
2060 CLS
2070 PRINT : PRINT : PRINT
2080 PRINT "As you play the game, I will be your eyes and hands. Direct me with ordinary    English sentences of one or two words."
2090 PRINT "Some examples are : " CHR$(34) "enter car" CHR$(34)", "CHR$(34)"drive north" CHR$(34)", " CHR$(34)"get key" CHR$(34)", and " CHR$(34)"go west" CHR$(34)"." : PRINT
2100 PRINT "Use any verb/noun combination or you can ask for * H E L P *.  If this game is  taking you too long to play or too long a time to solve, don't worry. It was    designed to do so. To save a ";
2110 PRINT "game, type " CHR$(34)"save"CHR$(34)". To load a game, type ";
2120 PRINT CHR$(34)"load"CHR$(34)"." : PRINT "               Press the space bar to begin..."
2130 PRINT : PRINT "HINT *** Examine "; : COLOR 16,7 : PRINT " EVERYTHING "; : COLOR 7,0
2140 PRINT "  Be patient. Know where you are at all times."
2150 IF INKEY$ = "" THEN 2150 ELSE CLS : RETURN
2160 CP = 2 : NN = 28 : LO = 41 : PN = 38 : NV = 30 : DIM NO$(NN), OB$(LO), OB(LO, 1), P$(PN), P(PN, 3), VB$(NV)
2170 P$(1) = "inside a Barn" : DATA 2, 0, 0 ,0
2180 P$(2) = "on my farm outside Possum Hollow" : DATA 0, 0, 0, 3
2190 P$(3) = "15 miles from Possum Hollow" : DATA 4, 5, 2, 7
2200 P$(4) = "at a dead end" : DATA 0, 3, 0, 0
2210 P$(5) = "going down a hill on Dead Man's Curve" : DATA 0, 6, 0, 0
2220 P$(6) = "D E A D ! ----My car went off the cliff" : DATA 0, 0, 0, 0
2230 P$(7) = "at a narrow road" : DATA 0, 0, 0, 0
2240 P$(8) = "past the road block" : DATA 0, 0, 0, 9
2250 P$(9) = "at a "+CHR$(34)+"T"+CHR$(34)+" in the road" : DATA 10, 33, 0, 0
2260 P$(10) = "on the side of the road by a cliff" : DATA 0, 0, 0, 0
2270 P$(11) = "on a dark country road" : DATA 12, 0, 0, 0
2280 P$(12) = "at a "+CHR$(34)+"T"+CHR$(34)+" in the road" : DATA 0, 0, 13, 30
2290 P$(13) = "on a gravel road" : DATA 0, 19, 14, 0
2300 P$(14) = "on a winding road" : DATA 0, 0, 15, 0
2310 P$(15) = "in front of a church parking lot" : DATA 0, 18, 0, 0
2320 P$(16) = "in front of the church" : DATA 0, 0, 0, 0
2330 P$(17) = "inside church" : DATA 0, 0, 0, 0
2340 P$(18) = "at a gas station" : DATA 13, 0, 15, 19
2350 P$(19) = "at a long driveway" : DATA 0, 0, 0, 20
2360 P$(20) = "on an unkown dark road" : DATA 31, 22, 0, 21
2370 P$(21) = "in a fire, the car was struck by lightning" : DATA 0, 0, 0, 0
2380 P$(22) = "in front of a bridge" : DATA 0, 0, 0, 0
2390 P$(23) = "on an old abandoned road" : DATA 0, 24, 0, 0
2400 P$(24) = "at a dead end road" : DATA 0, 0, 0, 0
2410 P$(25) = "in Farmer Brown's pasture" : DATA 0, 27, 28, 26
2420 P$(26) = "in a bull pasture" : DATA 0, 0, 0, 0
2430 P$(27) = "stuck in farmer Brown's Lake" : DATA 0, 0, 0, 0
2440 P$(28) = "back on the main road" : DATA 37, 0, 0, 0
2450 P$(29) = "in Knawbone" : DATA 0, 0, 0, 0
2460 P$(30) = "in a dark tunnel" : DATA 0, 0, 0, 31
2470 P$(31) = "coming out of a tunnel" : DATA 0, 20, 0, 32
2480 P$(32) = "at a dead end" : DATA 0, 0, 0, 0
2490 P$(33) = "on a road in a dark forest" : DATA 0, 34, 0, 0
2500 P$(34) = "on a bumpy road" : DATA 0, 36, 0, 0
2510 P$(35) = "on an old dirt road" : DATA 0, 0, 0, 0
2520 P$(36) = "on a narrow road" : DATA 0, 0, 0, 0
2530 P$(37) = "at a narrow ridge" : DATA 0, 0, 0, 0
2540 P$(38) = "at the other side of the bridge" : DATA 29, 0, 0, 0
2550 OB$(1) = "My '57 souped up chevy loaded with white-lightning" : DATA 2, 0
2560 OB$(2) = "An old barn" : DATA 2, 0
2570 OB$(3) = "- 2 spare tires -" : DATA 1, 10
2580 OB$(4) = "Some old parts for the still" : DATA 1, 0
2590 OB$(5) = "Old trusted still" : DATA 2, 0
2600 OB$(6) = "the revenuers about 10 miles behind me" : DATA 3, 0
2610 OB$(7) = "3 forks in the road" : DATA 3, 0
2620 OB$(8) = "revenuers 5 miles back" : DATA 4, 0
2630 OB$(9) = "a lot of fog and lots of curves" : DATA 4, 0
2640 OB$(10) = "all that moonshine gone to waste" : DATA 6, 0
2650 OB$(11) = "dumb old deputy Earnest Hardley set up a road-block" : DATA 7, 10
2660 OB$(12) = "an angry deputy and the busted up road block" : DATA 8, 10
2670 OB$(13) = "woods. Something is wrong with the car" : DATA 10, 0
2680 OB$(14) = "a funny looking box" : DATA 0, 10
2690 OB$(15) = "a fortune cookie" : DATA 0, 10
2700 OB$(16) = "the revenuers about 12 miles behind me" : DATA 12, 0
2710 OB$(17) = "good! The revenuers turned the wrong way." : DATA 13, 0
2720 OB$(18) = "a dim light up ahead" : DATA 14, 0
2730 OB$(19) = "a church with it's lights on." : DATA 15, 0
2740 OB$(20) = "an open door" : DATA 16, 0
2750 OB$(21) = "a set of keys" : DATA 0, 10
2760 OB$(22) = "a large pipe organ" : DATA 17, 0
2770 OB$(23) = "all that moonshine gone to waste" : DATA 21, 0
2780 OB$(24) = "a sign" : DATA 22,0
2790 OB$(25) = "some high bushes and tree limbs on the side of road" : DATA 0, 0
2800 OB$(26) = "the small bridge is closed for repairs" : DATA 37, 0
2810 OB$(27) = "a large mean looking bear" : DATA 0, 0
2820 OB$(28) = "an old pipe" : DATA 0, 10
2830 OB$(29) = "the revenuers about 3 miles back" : DATA 24, 0
2840 OB$(30) = "lots of trees and no sign of the road" : DATA 25, 0
2850 OB$(31) = "bulls charging the car, I'm done for" : DATA 26, 0
2860 OB$(32) = "a lot of mud and water, I'm stuck" : DATA 27, 0
2870 OB$(33) = "a sign" : DATA 28, 0
2880 OB$(34) = "the boy's waiting with all their money" : DATA 29, 20
2890 OB$(35) = "a strange light up ahead" : DATA 31, 0
2900 OB$(36) = "sheriff Buba with a gun at my head" : DATA 32, 0
2910 OB$(37) = "lots of tall dark trees" : DATA 33, 0
2920 OB$(38) = "a cute blond lady hitchiking" : DATA 34, 0
2930 OB$(39) = "my car's roaring ahead without me! The blond took the moonshine" : DATA 35, 0
2940 OB$(40) = "a lot of smoke from my hood. I think the engine blew up" : DATA 36,0
2950 OB$(41) = "a locked gate" : DATA 24, 0
2960 D$(0) = "north" : D$(1) = "south" : D$(2) = "east" : D$(3) = "west"
2970 GOTO 2980
2980 FOR I = 1 TO PN : FOR J = 0 TO 3 : READ P(I, J) : NEXT J, I
2990 FOR I = 1 TO LO
3000 IF OB$(I) = "" THEN 3020
3010 READ OB(I, 0), OB(I, 1)
3020 NEXT I
3030 DATA nor, sou, eas, wes, car, bar, tir, roa, chu, org, key, lad, tre, bus, pip, bea, gat, rid, hil, dep, n, s, e, w, box, coo, bri, sig
3040 FOR I = 1 TO NN : READ NO$(I) : NEXT I
3050 DATA go, dri, ent, get, tak, loo, exa, run, bus, hel, qui, sav, loa, sco, pic, exi, cha, fix, pla, say, hit, kil, mov, unl, jum, bre, fig, rea, dro, ope
3060 FOR I = 1 TO NV : READ VB$(I) : NEXT I
3070 GOSUB 1940 : GOTO 60
3080 END
3090 FOR AA = 1 TO 1500 : NEXT : RETURN
3100 LX = 0 : PRINT "**  Too bad --";
3110 IF CP = 7 OR CP = 4 OR CP = 10 OR CP = 32 OR CP = 24 OR CP = 27 OR CP = 36 OR CP = 35 THEN PRINT " - the long arm of the law got you." ELSE 3130
3120 GOSUB 3090 : GOTO 1860
3130 IF CP = 6 OR CP = 26 OR CP = 21 THEN PRINT "-- you are dead --"
3140 GOSUB 3090 : GOTO 1860
3150 GOSUB 3090 : PRINT : COLOR 16,7 : PRINT "        ****   Y O U   M A D E   I T  !  ****       " : COLOR 7,0: GOTO 1860

VAMPIRE.BAS

100 KEY OFF:CLS:COLOR 10,0
110 PRINT,"Welcome to the VAMPIRE'S CASTLE Adventure":PRINT:PRINT
112 INPUT "Do you need the instructions";A$:A$=LEFT$(A$+" ",1)
114 IF A$="y" OR A$= "Y" THEN GOSUB 2000 ELSE PRINT
120 DIM D$(19),O$(31),L(25),P(19,6):L=1
130 FOR X=1 TO 19:READ D$(X):NEXT
140 DATA Entrance Hall,Study,Library,Armory,Tower
150 DATA Lower Tower,Chapel,Brick Fireplace
160 DATA Hidden Corridor,Secret Passage
170 DATA Underground Lake Chamber,Boat,Alchemist's Lab
180 DATA Storeroom,Overhang,Gallery,Antechamber,Vampire's Tomb
190 DATA Torture Chamber
200 FOR X=1 TO 31:READ O$(X):IF X>6 THEN READ L(X-6)
220 NEXT:T2=8:R=11:WS$="Wooden Stakes"
230 DATA North,South,East,West,"Up ",Down,Sledge Hammer,5
240 DATA Timepiece,1,Coil of Rope,9,Parchment Scroll,3,Axe,4,Oar,6,Key,99
250 DATA Holywater,7,Flask of Oil,13,Crate,14,Bucket,14
260 DATA Torch,8,Nails,15,Tapestry,16,Boat,11,Rusty Door,17
270 DATA Closed Coffin,18,Fire in the Fireplace,2
280 DATA Bookcase,3,Sign,1,Parapets,5,Brick Fireplace,2
290 DATA Rat,19,Wine,2,Cheddar Cheese,2
300 FOR Y=1 TO 19:FOR X=1 TO 6:READ P(Y,X):NEXT X,Y
310 DATA ,,3,2,,,,,1,,,,,,4,1,,,,,5,3,,,,,,4,,,,7,,,5,,6,,,,4,
320 DATA ,2,,,,,13,,,,3,,11,8,,19,,,,10,,,,,,11,,,,,14,9,,,,
330 DATA ,13,,,2,,,,,,,16,,,,,,,,16,,,,,,17,,,,,,,10,13,,
340 W$="GO GETLOODROHITOPETIEPUSKILOILROWCLITAKREATHRBRE"
350 N$="N  01S  02E  03W  04U  05D  06HAM07SCR10AX 11WAT14OIL15DOO22COF23VAM23FIR28"
355 O$="NORSOUEASWESUP DOWSLETIMROPPARAXEOARKEYHOLFLACRABUCTORNAITAPBOARUSCLOFIRBOOSIGPARBRIRATWINCHE"
360 COLOR 2,0:PRINT "You are in the ";D$(L):Y=0:L2=L
370 IF L(12)= 0 OR L< 10 OR (L> 12 AND L< > 18)THEN 390
380 PRINT "It's Dark! you can't see":GOTO 440
390 PRINT "You see ";:FOR X=1 TO 25:IF L(X)=L2 THEN PRINT O$(X+ 6);", ";:Y=Y+1
400 NEXT:IF Y=0 THEN PRINT "nothing interesting." ELSE PRINT CHR$(29)CHR$(29)" "
420 PRINT "Obvious exits are: ";:FOR X=1 TO 6:IF P(L,X)>0 THEN PRINT O$(X);" ";
430 NEXT:PRINT
440 S=0:F=0:PRINT:INPUT "What do you want to do";A$:PRINT:COLOR 2
450 A$=A$:B$="   ":FOR X=1 TO LEN(A$)
460 IF MID$(A$,X,1)=" " THEN B$=MID$(A$+"   ",X+1,3)
490 NEXT:IF LEN(A$)=1 THEN B$=A$+"  ":A$="GO "
500 GOSUB 1800:L2=L:T1=T1+1:IF T1=60 THEN T1=0:T2=T2+1
510 IF T2=12 THEN COLOR 7,0                                                         :PRINT " It's midnight: the Vampire is awake, He's at your neck ";:GOTO 1750
520 IF A$="SWI" AND L=11 THEN COLOR 7,0                                             :PRINT " You have Drowned in the ice cold water ";:GOTO 1750
530 X=INSTR(N$,B$):IF X MOD 5 = 1 THEN S=VAL(MID$(N$,X+3,2)):GOTO 590
560 X=INSTR(O$,B$):IF X MOD 3 = 1 THEN S=(X+2)/3
590 X=INSTR(W$,A$):IF X MOD 3 = 1 THEN F=(X+2)/3
620 IF F>11 THEN F=F-11
630 IF A$<>"INV" THEN 680
640 PRINT "You are carrying: ";:A=0:FOR X=1 TO 25
650 IF L(X)=0 THEN PRINT O$(X+6)", ";:A=A+1
660 NEXT:IF A=0 THEN PRINT "nothing";
670 PRINT:GOTO 440
680 ON F GOTO 720,890,1100,1240,1300,1390,1480,1560,1610,1680,1720
690 PRINT "I don't know how to do that":GOTO 440
700 PRINT "I don't know that word":GOTO 440
710 REM  -GO-
720 IF S<1 OR S>6 THEN 760
730 IF P(L,S)>0 THEN L=P(L,S):GOTO 360
740 PRINT "You can't go that way":GOTO 440
750 PRINT "You see nothing special":GOTO 440
760 IF S<>28 OR L<>2 THEN 790
770 IF FI=0 THEN COLOR 0,7:PRINT " You have Burned to Death ";:GOTO 1750
780 L=8:GOTO 360
790 IF S<>27 OR L<>5 THEN 820
800 IF LEFT$(O$(27),1)="R" THEN L=6:PRINT "Climbed down rope":PRINT:GOTO 360
810 COLOR 0,7:PRINT " You fell and Died ";:GOTO 1750
820 IF S=21 AND L(15)=L THEN L=12:GOTO 360
830 IF L=16 AND B$="OVE" THEN 860
840 IF S<1 THEN 700
850 PRINT "You can't go there":GOTO 440
860 IF L(10)=L AND O$(16)="Crate" THEN L=15:GOTO 360
870 PRINT "It's a little too high":GOTO 440
880 REM  -GET-
890 IF S<7 THEN GOTO 700
900 IF C>6 THEN PRINT "You can't carry any more":GOTO 440
910 IF L(S-6)<>L THEN 1070
920 IF S<>14 THEN 960
940 V$="In":GOSUB 1850:IF A$="BUC" AND L(11)=0 THEN 1080
950 PRINT "You can't do that":GOTO 440
960 IF S<>20 THEN 990
970 IF TA=0 THEN PRINT "It's nailed to an overhang":GOTO 440
980 P(16,1)=17:PRINT "AHA! - A hole in the wall":PRINT:GOTO 1080
990 IF S<>19 THEN 1020
1000 IF L(1)<>0 THEN PRINT "You have no hammer":GOTO 440
1010 IF L(13)=15 THEN TA=1:PRINT "The tapestry is loose":GOTO 1080
1020 IF S<>13 THEN 1050
1030 L(23)=L:IF L(25)=L THEN 1080
1040 PRINT "The Rat has it":GOTO 440
1050 IF S>20 AND S<30 THEN PRINT "You can't get it":GOTO 440 ELSE 1080
1070 PRINT "I don't see any "O$(S):GOTO 440
1080 C=C+1:L(S-6)=0:PRINT "You got the "O$(S):GOTO 440
1090 REM  -LOOK-
1100 IF S<7 THEN 360
1120 IF S=26 AND L=1 THEN PRINT "'The Vampire Wakes at Midnight'":GOTO 440
1130 IF S<>29 THEN 1160
1140 IF L(23)<>L THEN 1070
1150 PRINT "A Key is in it's mouth!":L(7)=L:GOTO 440
1160 IF S<>10 THEN 1200
1170 IF L(4)=0 THEN 1190
1180 PRINT "You don't have it":GOTO 440
1190 PRINT "The Scroll reads: 'Not all exits are obvious.'":GOTO 440
1200 IF S<>8 THEN 750
1210 IF L(2)<>0 THEN 1180
1220 PRINT USING "The time is now ##:##";T2,T1:GOTO 440
1230 REM  -DROP-
1240 IF S<7 THEN GOTO 700
1250 IF L(S-6)<>0 THEN 1180
1260 IF S<>14 OR L<>2 THEN 1280
1270 O$(24)="Smoldering Ashes":FI=1:L(8)=99:C=C-1:GOTO 360
1280 PRINT "Okay, the "O$(S)" is on the "D$(L)" floor":L(S-6)=L:C=C-1:GOTO 440
1290 REM  -HIT-
1300 IF S<7 THEN 700
1310 IF L(S-6)<>L AND (L<>8 OR S<>28) THEN 1070
1330 V$="With":GOSUB 1850:IF A$<>"AXE" OR S<>16 OR L(5)<>0 THEN 1350
1340 O$(16)=WS$:N$=N$+"WOO16STA16":GOTO 360
1350 IF (A$<>"SLE" AND A$<>"HAM") OR S<>28 OR L(1)<>0 THEN 1370
1360 O$(28)="Broken Fireplace":P(8,1)=10:D$(8)=O$(28):GOTO 360
1370 PRINT "Nothing happened":GOTO 440
1380 REM  -OPEN-
1390 IF S<7 THEN 700
1400 IF L(S-6)<> L THEN 1070
1410 IF S<>23 THEN 1440
1420 IF L(7)<>0 THEN PRINT "The coffin is locked ... ";:GOTO 1370
1430 O$(23)="Vampire in the Coffin":GOTO 360
1440 IF S<>22 THEN 1370
1450 IF OI=0 THEN PRINT "Too much rust ... ";:GOTO 1370
1460 O$(22)="Open Door":P(17,1)=18:GOTO 360
1470 REM  -TIE-
1480 IF S<7 THEN 700
1490 IF L(S-6)<>0 THEN 1180
1500 IF S<>9 THEN 950
1520 V$="To":GOSUB 1850:IF A$<>"PAR" THEN 950
1530 L(3)=99:C=C-1:O$(27)="Rope tied to the Parapet":N$=N$+"ROP27"
1540 PRINT O$(27);"!":GOTO 440
1550 REM  -PUSH-
1560 IF S<7 THEN 700
1570 IF L(S-6)<>L THEN 1070
1580 IF S<>25 THEN 1370
1590 PRINT "Aha! - You have revealed a Doorway":PRINT:P(L,6)=9:GOTO 360
1600 REM  -KILL-
1610 IF S<7 THEN 700
1620 IF S<>23 OR LEFT$(O$(23),1)<>"V" THEN 950
1630 V$="With":GOSUB 1850
1640 IF (A$="WOO" OR A$="STA") AND L(10)=0 AND O$(16)=WS$ THEN 1660
1650 COLOR 0,7:PRINT " You Failed!  The Vampire awakes and sucks your Blood! ";      :GOTO 1750
1660 COLOR 26:PRINT "Congratulations!  You have killed the Vampire":GOTO 1750
1670 REM  -OIL-
1680 IF L(9)<>0 OR L<>17 OR S<>22 THEN 950
1690 PRINT "The Door squeaks Open":PRINT
1700 OI=1:O$(22)="Open Door":P(17,1)=18:GOTO 360
1710 REM  -ROW-
1720 IF L<>12 OR L(6)<>0 THEN 950
1730 R=27-R:L=R:PRINT "You have rowed to the ";D$(L)
1740 PRINT:L(15)=L:GOTO 360
1750 COLOR 10,0:PRINT:PRINT:INPUT "Would you like to try again";A$:COLOR 7,0:GOSUB 1800
1760 IF LEFT$(A$,1)="Y" THEN RUN 100
1770 IF LEFT$(A$,1)="R" THEN T1=T1-2:GOTO 440
1780 KEY ON:END
1800 REM  - MAKE INPUT U/C -
1810 A$=LEFT$(A$+"   ",3):FOR I=1 TO 3
1820 CH=ASC(MID$(A$,I,1)):IF CH>96 THEN MID$(A$,I,1)=CHR$(CH-32)
1830 CH=ASC(MID$(B$,I,1)):IF CH>96 THEN MID$(B$,I,1)=CHR$(CH-32)
1840 NEXT:RETURN
1850 REM - GET "WHAT" -
1860 COLOR 10:PRINT TAB(40);CHR$(30);CHR$(30);:PRINT "-- "V$" what";:INPUT A$
1870 COLOR 2:PRINT:GOSUB 1800:RETURN
2000 PRINT:PRINT:COLOR 2
2010 PRINT "VAMPIRE'S CASTLE has a concealed goal.  You learn what the goal is"
2020 PRINT "by exploring your surroundings.  The computer will act as your eyes"
2030 PRINT "and hands.  It will accepts short phrases as commands and assumes"
2040 PRINT "that the first word is a verb and the last word is the object."
2050 PRINT "For example: READ THE SIGN.  The computer has a vocabulary of about"
2060 PRINT "70 words.  Some of the more important words you should know before"
2070 PRINT "you start ≡laying are: GET <object>, DROP <object>, LOOK <object>"
2080 PRINT "or just LOOK, GO <direction> or <place>, and INVENTORY (tells what"
2084 PRINT "you are carrying).  The computer knows the abbreviations: E, W, N,"
2086 PRINT "S, U and D for GO EAST, GO WEST, etc.":PRINT
2090 PRINT "The computer's vocabulary is good, but limited.  If you are having"
2100 PRINT "trouble doing something, try re-phrasing the command or you may"
2110 PRINT "need some object to accomplish the task.  By the way, the computer"
2120 PRINT "only looks at the first 3 letters of each word.":PRINT
2130 COLOR 10:PRINT TAB(25)"--- GOOD LUCK! ---":PRINT:RETURN

Directory of PC-SIG Library Disk #0228

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

CRIBBAGE BLD       128   8-22-82   1:21p
CRIBBAGE BAS     23296   1-01-80  12:05a
PAC-GAL  EXE     39296   8-05-83   7:41a
COLSLOT  BAS      7552   2-18-84   9:47p
MAZE     BAS      3328  11-08-82  10:56p
FIREFIRE BAS      3072  11-08-82   9:33p
README   DOC       786  10-07-84   2:29p
T-ROAD   BAS     17481   1-01-80  12:24a
SLOT     BAS      4811   4-05-84   5:16p
VAMPIRE  BAS      7424   4-14-84   7:48p
NEWFONT  BAS      6935   4-30-84   4:44p
NUKE-SF  BAS     11058   3-03-84   3:39p
CRC      TXT      1123  11-16-84   6:59a
CRCK4    COM      1536  10-21-82   7:54p
       14 file(s)     127826 bytes
                       29184 bytes free