Mined-Out

Products: Mined Out
Developer(s): Ian Andrew
Date: 1983
Type: Program
Platform(s): TS 2068
Tags: Game

Mined-Out is Ian Andrew’s 1983 Quicksilva game. You walk your man up from the bottom of a fenced field to the gap at the top, moving with keys 5, 6, 7 and 8, while the status line shows how many mines are adjacent to where you stand. Your trail stays on screen, so you can work out where the mines must be. Later levels add damsels to rescue and other hazards, and the score rewards crossing quickly; finishing the last level rescues Bill and wins the game.

The program is all BASIC. The Quicksilva “Game Lords of Britain” logo loader from Bob Swoger’s disk runs first.

Program Analysis

Setup at lines 9000–9008 defines 16 graphics characters from DATA and shows “DON’T GO AWAY!” while it works; the program then starts at line 9000 when loaded. The field is drawn with PRINT AT and the mines are found again by testing screen attributes with ATTR. Movement at lines 520–522 is LET x=x+(INKEY$="6")-(INKEY$="7").

Notable Techniques

  • Line 1 is a REM that reads “NO CHEATING NOW !!” and several lines end in LIST, so breaking in or failing a level lists that message instead of the program.
  • The high-score name starts as H$="IAN", the author’s.
  • Sound effects are short BEEP loops with the border cycling through colours.

This copy came from a Larken disk. The disk prefixes on the LOAD and SAVE lines were removed and the program’s auto-start line corrected. Tested in ZEsarUX on a stock TS2068.

Related Products

You are presented with a blank field, densely sown with mines. You must get to the other side without blowing up.

Related Articles

Review of the game, from Quicksilva.

Image Gallery

Source Code

    1 REM                                                               ....................................              NO CHEATING NOW !!              ''''''''''''''''''''''''''''''''''''                                                                       
    2 LET ink=9: LET bonus=0: LET lev=1: LET damsels=1: LET HSC=250 : LET DAMSELS=1              
    4 LET H$="IAN": GO TO 6      
    5 LET SPE=6: BEEP 9,-9: LIST 
    6 IF damsels>2 THEN GO TO 5700                               
    7 LET PAPER=6: LET INK=9     
    8 LET BORDER=0: LET mines=50: LET damsels=1: LET SC=0        
    9 LET bonus=0: LET DAMSELS=1 
   10 LET ink=9: BORDER BORDER: PAPER PAPER: INK INK: CLS : BORDER BORDER                        
   12 LET x=21: LET y=15         
   14 LET t$=CHR$ (x+65)+CHR$ (y+65)
   16 LET XX=21: LET YY=15
   18 LET TI=0
   22 LET oldx=x: LET oldy=y
   24 LET C$="a": LET V$="b"
   26 LET CC=0: LET DD=0: LET EE=0
   28 LET RR=1
   30 LET OO=21: LET PP=15
   32 LET X$="                                  < SAFE AREA >                                  "
   34 LET PA=7
   36 LET ss=0
   40 IF lev<>1 THEN PRINT AT 15,0;: LIST 
   50 GO TO 300
  100 LET RN=INT (RND*13)+4
  103 FOR a=3 TO 30
  104 IF A=10 OR A=20 THEN NEXT A
  105 PRINT AT 21,19; PAPER PAPER; INK 9;"MORE MINES"
  106 IF ATTR (RN,A)=56 THEN GO TO 115
  110 PRINT AT RN,a;"m"
  115 LET K=RN-1+INT (RND*3)
  120 IF ATTR (K,A-1)<>56 THEN PRINT AT K,a-1;"o"
  130 BEEP .002,55
  132 PRINT AT 21,19;"          "
  135 IF ATTR (RN,A)=56 THEN GO TO 150
  140 PRINT AT RN,A;" "
  200 NEXT a
  210 GO TO 570
  300 PRINT AT 0,28; PAPER 0;"    "
  302 PRINT AT 0,0; PAPER 0; INK 7;"ADJACENT pqrs 0";AT 0,17;"NO.";DAMSELS;" SCORE ";SC
  305 PRINT AT 1,0;"fffffffffffffff  fffffffffffffff"
  320 FOR n=2 TO 19
  330 PRINT AT n,0;"f                              f"
  335 NEXT n
  340 PRINT AT 20,0;"ffffffffffffff   fffffffffffffff"
  349 PRINT AT x,y;C$
  390 NEXT n: IF SC=0 AND DAMSELS>2 AND BONUS=0 THEN PRINT AT 15,0;: LIST                       
  400 PRINT AT 21,19; FLASH 1; PAPER 2; INK 7;"MINE LAYING": IF damsels=9 THEN LET mines=mines+32: LET MINES=MINES+(10-INT (SC/1000))
  401 PRINT AT 21,3; FLASH 1; PAPER 2; INK 7; INVERSE 1;"LEVEL ";DAMSELS
  402 FOR w=1 TO mines: PRINT AT INT (RND*16)+3,INT (RND*30)+1; INK PAPER;"o"
  410 BEEP .0015,35
  425 IF DAMSELS<>1 THEN NEXT W
  426 IF DAMSELS<>1 THEN GO TO 439
  430 PRINT AT 19,1;X$(W TO W+29)
  432 PRINT AT 2,1;X$(51-W TO 51-W+29)
  438 NEXT W
  439 IF lev<>1 THEN PRINT AT 15,0;: LIST 
  440 PRINT AT 10,1; INK PAPER;"o";AT 11,15;"oo";AT 10,30;"o"
  442 PRINT AT 21,0;"                               "
  445 IF DAMSELS=1 THEN GO TO 480
  446 IF damsels=9 THEN GO SUB 9900: GO TO 480
  448 PRINT AT 21,0; INVERSE 1; BRIGHT 1;"RESCUE DAMSELS FOR EXTRA POINTS!": GO TO 450
  450 LET CC=INT (RND*12)+4: LET DD=INT (RND*6)+6: LET EE=INT (RND*6)+19
  452 FOR J=1 TO 7
  455 PRINT AT CC,DD;"d";AT CC,EE;"d"
  460 FOR E=1 TO 11: NEXT E
  461 BEEP .002,58
  462 PRINT AT CC,DD;"e";AT CC,EE;"e"
  470 FOR E=1 TO 11: NEXT E
  471 BEEP .002,58
  475 NEXT J
  480 IF damsels<>8 THEN GO TO 490
  482 PRINT AT 21,0; INK 7; FLASH 1; PAPER 0; BRIGHT 1;"HIDE BETWEEN 3 MINES TO OPEN GAP"
  483 PRINT AT 1,15;"ff": PRINT AT 8,11; INK 1; BRIGHT 1; PAPER 7;"GAP CLOSED"
  485 FOR m=60 TO 10 STEP -2.5: FOR n=1 TO 7: NEXT n: BEEP .125,m: NEXT m
  487 PRINT AT 21,0;"                                "
  488 PRINT AT 8,11;"          "
  490 BEEP .0875,10
  491 PRINT AT 21,0;"               a                "
  492 PRINT AT 21,31; INK paper; PAPER paper;"h"
  493 PRINT AT 21,10; INVERSE 1;"GO!": FOR n=1 TO 20: BEEP .002,n+20: NEXT n: PRINT AT 21,10;"   ": BEEP .05,37
  495 GO TO 535
  505 LET oldx=x: LET oldy=y
  520 LET x=x+(INKEY$="6")-(INKEY$="7")
  521 LET x=x-(x=22)
  522 LET y=y+(INKEY$="8")-(INKEY$="5")
  526 LET TI=TI+1
  528 IF DAMSELS>=4 THEN IF TI>(260*PAPER+70) THEN IF INT (TI/(3*PAPER+1))=(TI/(3*PAPER+1)) THEN GO SUB 543
  530 IF oldx=x AND oldy=y THEN GO TO 520
  532 BEEP .003,-4
  535 PRINT AT oldx,oldy; PAPER PA;" "
  537 LET t$=t$+CHR$ (x+65)+CHR$ (y+65)
  540 IF SCREEN$ (x,y)<>" " THEN GO SUB 1000
  541 IF damsels=9 AND pa<>paper AND x<17 THEN GO SUB 8000
  542 GO TO 550
  543 PRINT AT OO,PP; PAPER PA;" "
  544 LET I$=T$+T$: IF DAMSELS>=5 AND PAPER<>PA AND TI>2000 THEN GO SUB 8000
  545 LET RR=RR+2: BEEP .0018,60
  546 LET OO=65-CODE I$(RR): LET PP=65-CODE I$(RR+1)
  547 IF SCREEN$ (OO,PP)<>" " THEN GO SUB 1000
  548 PRINT AT OO,PP; PAPER PA;"h"
  549 RETURN 
  550 PRINT AT x,y; PAPER PA;C$
  570 LET o=(SCREEN$ (x-1,y)<>" ")
  571 LET p=(SCREEN$ (x+1,y)<>" ")
  572 LET q=(SCREEN$ (x,y-1)<>" ")
  573 LET r=(SCREEN$ (x,y+1)<>" ")
  574 LET o=o+p+q+r
  580 IF o THEN BEEP .04,o*10
  599 PRINT AT 0,0; PAPER (4-O); INK 9;"ADJACENT pqrs ";O
  600 IF x=0 THEN GO SUB 3000
  604 IF o=3 AND damsels=8 THEN PRINT AT 8,12; FLASH 1;"GAP OPEN": FOR c=1 TO 40: BEEP .001,30+c/4: BORDER 0: BORDER 7: NEXT c: PRINT AT 1,15;"  ": PRINT AT 8,12;"        ": BORDER 2
  800 IF damsels>2 AND damsels<9 AND ti>50 THEN IF RND>.98 THEN GO TO 100
  900 GO TO 500
  998 STOP 
 1000 IF X=CC THEN IF Y=DD OR Y=EE THEN GO SUB 6000: RETURN 
 1001 IF damsels=9 THEN IF x=8 AND y=5+ss THEN GO TO 8444
 1002 FOR W=20 TO 1 STEP -1: BEEP .003,0+W: PRINT AT X,Y;"c": BEEP .002,10: PRINT AT X,Y;"o": NEXT W
 1003 LET j$="MUFFED": IF RND>.8 THEN LET j$="GOOFED": IF RND>.7 THEN LET j$="BLEW"
 1004 PRINT AT 0,0; PAPER 0; INK 7;" YOU ";j$;" IT ! "
 1005 BEEP 1.6,-35
 1020 GO SUB 2000
 1021 PRINT AT X,Y; PAPER 7; INK 0; OVER 1;CHR$ (65+INT (RND*60))
 1022 BEEP 1,-35
 1023 IF SC>HSC THEN GO SUB 4500
 1024 PRINT AT 0,28; PAPER 0;"  "
 1025 PRINT AT 0,0; PAPER 0; INK 7;" ";"TRY AGAIN ?  LEVEL ";DAMSELS;" ";AT 0,22; FLASH 1;"SCORE ";SC
 1040 PRINT AT 2,1; PAPER 0; INK 7;" PRESS ANY KEY (""I"" FOR INFO) "
 1100 PRINT AT 10,9; INK 7; PAPER 2; BRIGHT 1;"  GAME  OVER  "
 1120 IF paper>=4 THEN INK 0
 1130 IF paper<4 THEN INK 7
 1150 PLOT 72,96: DRAW 112,0: DRAW 0,-9: DRAW -113,0: DRAW 0,9
 1190 INK 9
 1200 PRINT AT 21,29; PAPER BORDER; INK 9;"   ";AT 21,0; PAPER BORDER; INK 9;"  HIGHEST SCORE IS ";HSC;" BY ";H$
 1300 FOR n=1 TO 100: NEXT n
 1500 FOR N=1 TO 10000000
 1510 IF SC=HSC THEN PRINT AT 21,0; PAPER border; INK 9;"d";AT 21,31;"e"
 1512 IF INKEY$="" THEN FOR M=1 TO 16: NEXT M
 1517 IF SC=HSC THEN PRINT AT 21,0; PAPER border; INK 9;"e";AT 21,31;"d"
 1600 IF INKEY$="" THEN FOR M=1 TO 16: NEXT M
 1601 LET s$=INKEY$
 1605 IF s$="" THEN NEXT n
 1610 IF S$="I" OR S$="i" THEN GO SUB 7000
 1620 PRINT AT 2,1;"                              "
 1650 GO TO 6
 1999 STOP : REM I.ANDREW (CARDS) FOR ALL MODERN POSTCARDS      
 2005 FOR n=1 TO 20: NEXT n
 2010 FOR a=1 TO 21
 2020 PRINT AT a,0; OVER 1; INK 9;"                                " 
 2022 NEXT a
 2025 PRINT AT 21,1; FLASH 1; PAPER 7; INK 0;"ACTION REPLAY"
 2026 FOR n=1 TO 100: NEXT n
 2028 LET y$=t$
 2030 FOR t=1 TO LEN y$ STEP 2
 2031 FOR m=1 TO 5: IF INKEY$="S" OR INKEY$="s" THEN GO TO 2033:
 2032 NEXT m
 2033 PRINT AT XX,YY; PAPER 7;" "
 2034 IF damsels>1 AND T=21 THEN PRINT AT 21,0; PAPER 0; INK 7;"HOLD ""S"" FOR SPEED OR ""E"" TO END"
 2035 LET xX=CODE y$(1)-65: LET yY=CODE y$(2)-65
 2037 PRINT AT Xx,Yy; PAPER 7;C$
 2039 BEEP .005,5+(T*40/(LEN T$))
 2040 LET y$=y$(3 TO )
 2045 IF INKEY$="E" OR INKEY$="e" THEN GO TO 2055
 2050 NEXT t
 2070 PRINT AT 21,0;"                                "
 2080 RETURN 
 2998 STOP 
 3000 LET SS=(INT ((2000-TI)/50))*5: IF SS<50 THEN LET SS=50
 3001 LET SS=SS*DAMSELS
 3002 PRINT AT 0,0; PAPER DAMSELS/1.5; INK 9;"  LEVEL ";DAMSELS;"   SPEED SCORE = ";SS;"   "
 3004 IF damsels=1 AND ss<100 THEN PRINT AT 0,31; PAPER 1;" "
 3005 PRINT AT 1,0;"f"
 3010 FOR N=15 TO 50: BEEP .001+((50-30)/2000),(50+N/2.8): BORDER 2:: BORDER 7: BORDER 0: NEXT N
 3012 BORDER border
 3015 IF bonus>0 THEN LET sc=sc+bonus: PRINT AT 21,0; PAPER 7; BRIGHT 1;"INITIAL BONUS = ";BONUS: LET BONUS=0: FOR N=1 TO 20 STEP .6: BEEP .025,n+5: NEXT N: PRINT AT 21,0;"                                "
 3020 GO SUB 2000
 3022 FOR g=4 TO 22 STEP 6: BEEP .005,g+24: NEXT g
 3025 FOR N=1 TO 80: BORDER 1: BORDER 2: BORDER 3: BORDER 4: BORDER 5: BORDER 6: NEXT N
 3026 LET SC=SC+SS
 3027 PRINT AT 0,30; PAPER 0;"  "
 3028 PRINT AT 0,0; PAPER 0; INK 7;"ADJACENT pqrs 0  NO.";DAMSELS;" SCORE ";SC
 3030 FOR n=1 TO 120
 3035 NEXT n
 3060 LET MINES=MINES+10
 3070 LET PAPER=PAPER-1
 3072 LET DAMSELS=DAMSELS+1
 3074 IF PAPER<0 THEN LET BORDER=BORDER+2: LET PAPER=6
 3076 IF PAPER=6 THEN LET MINES=50
 3078 IF damsels=7 THEN LET mines=20
 3080 GO TO 10
 4500 FOR N=1 TO 50: BORDER 1: BORDER 2: BORDER 3: BORDER 4: NEXT N: IF DAMSELS=1 THEN LIST     
 4600 FOR N=1 TO 50: BORDER 6: BORDER 2: BEEP .002,40+(N/10): BORDER 6: NEXT N
 5002 FOR M=1 TO 4
 5005 FOR N=7 TO 0 STEP -1
 5010 PRINT AT 10,7; INK N;"A NEW HIGH SCORE !"
 5015 BEEP .004,50-N
 5020 NEXT N
 5030 NEXT M
 5032 PRINT AT 10,7; INK 9;"A NEW HIGH SCORE !"
 5035 FOR N=1 TO 6
 5040 PRINT AT 0,15;"de"
 5045 FOR L=1 TO 7: NEXT L
 5049 BEEP .006,13
 5050 PRINT AT 0,15;"ed"
 5055 FOR L=1 TO 7: NEXT L
 5058 BEEP .006,16
 5060 NEXT N
 5080 PRINT AT 21,0; FLASH 1; PAPER 1; INK 7;" ENTER YOUR INITIALS NOW "; FLASH 0;"       "
 5082 LET Q$="   "
 5085 FOR N=1 TO 3
 5088 LET Q$(N)=INKEY$
 5090 IF Q$(N)=" " THEN GO TO 5088
 5095 IF CODE Q$(N)>=97 AND CODE Q$(N)<=122 THEN LET Q$(N)=CHR$ ((CODE Q$(N))-32)
 5100 PRINT AT 21,(24+(2*N)); INK 7; PAPER 1;Q$(N)
 5110 BEEP .12,(N*5)+20
 5114 FOR m=1 TO 4: NEXT m
 5120 NEXT N
 5140 LET H$=Q$: LET HSC=SC
 5150 PRINT AT 21,0; PAPER 7; INK 0;"         WELL DONE ";H$;"          "
 5160 FOR N=1 TO 12: BEEP .0045,-10: BORDER 1: BORDER 2: BORDER 6: BORDER 4: NEXT N
 5170 BORDER BORDER
 5195 BEEP .1,8: FOR N=1 TO 4: NEXT N: BEEP .1,8: BEEP .1,8: BEEP .1,20: BEEP .1,24: BEEP .1,18: BEEP .15,29
 5196 FOR N=1 TO 7: NEXT N: BEEP .12,22: FOR N=1 TO 3: NEXT N:: BEEP .07,19: BEEP .08,17: FOR N=1 TO 3: NEXT N: BEEP .1,14: BEEP .1,12
 5198 PRINT AT 10,7;"                  "
 5200 RETURN 
 5700 LET lev=damsels-1
 5701 LET z$="     Which level to start ?       "
 5703 FOR n=0 TO 21: PAPER paper: BEEP .002,n+5: PRINT AT n,0; OVER 1;"::                              ::": NEXT n
 5704 FOR n=1 TO 21: NEXT n: FOR n=0 TO 31: PAPER paper: INK paper: PLOT n*8,0: DRAW 0,175
 5705 BEEP .0015,64: BEEP .0015,59
 5706 PRINT AT 10,n; PAPER INT (RND*6); INK 9;z$(n+1)
 5707 NEXT n
 5708 INK 9: IF sc=0 AND bonus=0 THEN PRINT AT 15,0;: LIST 
 5710 PRINT AT 13,13; FLASH 1;"1";AT 13,14;" TO ";AT 13,18; FLASH 1;lev
 5720 PRINT AT 13,13; FLASH 1;"1"
 5730 PRINT AT 13,14;" TO "
 5740 PRINT AT 13,18; FLASH 1;LEV
 5750 BEEP .1,30: FOR n=1 TO 25: NEXT n
 5751 LET l$=INKEY$: IF l$="" THEN GO TO 5751
 5757 PRINT AT 21,0; INK paper; PAPER paper; INVERSE 1;"      WHOOPS ! TRY AGAIN !!     "
 5758 PRINT AT 0,0; INK paper; PAPER paper; INVERSE 1;"      WHOOPS ! TRY AGAIN !!     "
 5760 IF CODE l$<49 OR CODE l$>57 THEN BEEP 1,-15: GO TO 5700
 5770 LET ll=VAL l$
 5780 IF ll>lev OR ll<>(INT ll) OR ll<1 THEN BEEP 1,-15: GO TO 5700
 5784 LET sc=0
 5788 LET damsels=ll
 5800 IF ll=1 THEN LET paper=6: LET border=0: LET mines=50: LET bonus=0
 5802 FOR n=30 TO 34: BEEP .006,n: NEXT n
 5805 IF ll=2 THEN LET paper=5: LET border=0: LET mines=60: LET bonus=250
 5810 IF ll=3 THEN LET paper=4: LET border=0: LET mines=70: LET bonus=750
 5815 IF ll=4 THEN LET paper=3: LET border=0: LET mines=80: LET bonus=1500
 5820 IF ll=5 THEN LET paper=2: LET border=0: LET mines=90: LET bonus=2200
 5825 IF ll=6 THEN LET paper=1: LET border=0: LET mines=100: LET bonus=2700
 5830 IF ll=7 THEN LET paper=0: LET border=0: LET mines=20: LET bonus=3500
 5832 IF ll=8 THEN LET paper=6: LET border=2: LET mines=50: LET bonus=4200
 5840 IF LL=9 THEN LIST 
 5888 LET lev=1
 5900 GO TO 10
 5998 STOP 
 6000 PRINT AT X,Y;V$: LET C$=V$
 6002 PAPER 7: LET C$=V$
 6010 FOR U=25 TO 50 STEP 5: PRINT AT X,Y;"g"
 6015 FOR N=1 TO 8 STEP 2: BEEP .002,n+u
 6016 LET SC=SC+5
 6017 PRINT AT 0,21; PAPER 0; INK 7;" SCORE ";SC
 6018 NEXT n
 6020 PRINT AT X,Y;"d"
 6025 FOR N=1 TO 8 STEP 2: BEEP .002,n+u
 6028 NEXT n
 6030 NEXT U
 6100 LET ti=ti+35
 6150 PAPER paper
 6200 RETURN 
 7000 REM INSTRUCTIONS
 7005 LET P=0
 7010 BORDER 1: PAPER 1: CLS : INK 7
 7012 PRINT AT 0,0;"    QUICKSILVA PRESENTS ...."
 7013 FOR n=1 TO 60: NEXT n
 7015 FOR N=2 TO 16
 7016 PRINT AT N,0;"                                "
 7020 NEXT N
 7024 BEEP .2,30: BEEP .1,20: FOR N=1 TO 5: NEXT N: BEEP .075,26: BEEP .125,26: BEEP .1,18
 7026 PRINT AT 0,0;" A GAME OF STRATEGY AND SKILL ! "
 7028 FOR N=47 TO 56 STEP 3
 7030 PRINT AT 9,11; PAPER P; OVER 0; INK 9;"MINED OUT!": CIRCLE INK 7;128,99,N: LET P=P+2
 7032 NEXT N
 7035 INK 9
 7040 PRINT AT 18,0;" OR ""RESCUE BILL THE WORM FROM       CERTAIN OLD AGE"""
 7045 PRINT AT 9,11; INK 0; PAPER 7; FLASH 1;"MINED OUT!"
 7050 PAPER 8: FOR N=3 TO 17: PRINT AT N-1,4; PAPER 8;"o";AT N-1,27;"o": PRINT AT 19-n,3;"o";AT 19-n,5;"o";AT 19-n,26;"o";AT 19-n,28;"o"
 7051 BEEP .005,33: NEXT N: PAPER 1
 7052 GO SUB 7057
 7055 GO TO 7080
 7057 PRINT AT 21,21; INVERSE 1;"PRESS A KEY"
 7058 FOR n=1 TO 60: NEXT n
 7060 IF INKEY$="" THEN GO TO 7060
 7065 PAPER 7: INK 0
 7070 CLS 
 7075 RETURN 
 7081 PRINT AT 2,0;"  * MINED OUT!  By  Ian Andrew"
 7090 PRINT ''" YOUR MISSION (should you decide to accept it) IS TO RESCUE BILL THE WORM BY REACHING HIM"''" HE LAYS DORMANT ON THE FINAL    MINEFIELD (LEVEL 9)"
 7100 PRINT '" THIS IS BILL ""n"""
 7110 PRINT ''" YOU ""a"" BEGIN AT EACH LEVEL AT  THE BOTTOM OF THE SCREEN"
 7115 PRINT '" AIM FOR THE GAP AT THE TOP OF   THE SCREEN"
 7120 PRINT AT 21,21; INVERSE 1;"PRESS A KEY"
 7130 FOR N=1 TO 40: NEXT N: FOR N=1 TO 50000: IF INKEY$="" THEN NEXT N
 7140 RESTORE 9980: FOR N=1 TO 44: READ I: READ L:
 7145 PRINT AT I,L;"a": BEEP .035,N/2
 7150 PRINT AT I,L;" ": NEXT N
 7160 CLS 
 7170 PRINT AT 1,0;" MOVE USING KEYS... 5,6,7 & 8"'" [ SEE ARROWS ABOVE THESE KEYS ]"
 7180 PRINT ''" MINES  ""o"" ARE VERY UNPLEASANT"''"  YOU ARE WARNED OF ANY MINES     THAT ARE ADJACENT TO YOUR       POSITION AT THE TOP LEFT OF     THE SCREEN"
 7190 REM "HELLO THERE"
 7200 PRINT '" YOU ONLY LIVE ONCE                        DO NOT HIT ANY MINES"
 7210 PRINT ''" DAMSELS - THESE ALSO REGISTER   AS MINES, BUT IF YOU ARE NEXT   TO ONE DO NOT HESITATE TO RUSH  IN AND RESCUE HER. YOU WILL BE  REWARDED"
 7220 GO SUB 7057
 7230 PRINT AT 2,0;" THE BUG ""h"" (a mine with legs)  WILL CHASE YOU SOMETIMES -      IT CAN GET VERY AGGRESSIVE"
 7235 FOR n=1 TO 15: NEXT n
 7240 LET j$="                                 a        h                                        "
 7250 FOR n=1 TO LEN j$-35: PRINT AT 6,0;j$(n TO n+31): BEEP .0018,60: FOR m=1 TO 1: NEXT m: NEXT n
 7260 PRINT " AND NOW SOME..."''" TIPS - THE SAFE AREAS ARE       COMPLETLY MINE FREE - SO AIM    FOR THE TOP SAFE AREA (NOT JUST THE GAP) & YOU CAN SAFELY MOVE  TO THE GAP FROM THERE.          WHEN THE BUG IS ACTIVE (LEVEL 4 ONWARDS) KEEP ON THE MOVE - YOU CAN USUALLY MOVE QUICKER THAN   THE BUG!"
 7270 GO SUB 7057
 7280 PRINT AT 3,0;" THE FENCE IS MINED AND WILL     REGISTER AS A MINE IF YOU ARE   NEXT TO IT"
 7290 PRINT AT 8,0;"ffffffffffffffffffffffffffffffff"
 7300 REM 
 7304 FOR N=1 TO 2
 7305 FOR O=0 TO 1
 7310 PRINT AT 6+O,14;"a"
 7321 PRINT AT 0,0; PAPER (4-O); INK 9;"ADJACENT pqrs ";O
 7327 IF o THEN BEEP .04,o*10
 7330 FOR M=1 TO 22: NEXT M: PRINT AT 6+O,14;" ": NEXT O: NEXT N
 7340 PRINT AT 6,14;"a": PRINT AT 0,0; PAPER 4; INK 9;"ADJACENT pqrs 0"
 7350 PRINT AT 11,0;" IMPOSSIBLE? - IF IT SEEMS       IMPOSSIBLE TO GET THROUGH - DO  NOT DESPAIR - MINE SPREADERS    ""m"" NOT ONLY ADD MINES BUT "
 7360 PRINT " THEY ALSO REMOVE SOME HIDDEN    ONES  (Kind aren't they!)"
 7370 PRINT ''; PAPER 1; INK 7;"                                 PRESS ""I"" TO SEE INSTRUCTIONS   AGAIN - ANY OTHER KEY TO BEGIN "
 7390 LET s$=INKEY$: IF s$="" THEN GO TO 7390
 7400 IF s$="I" OR s$="i" THEN GO TO 7000
 7450 CLS 
 7500 RETURN 
 7990 GO TO 7990
 7998 STOP 
 8001 LET PA=PAPER
 8002 PRINT AT 21,0; FLASH 1; BRIGHT 1; INK 7; PAPER 1;"YOUR MAP HAS BLOWN AWAY! (SHAME)"
 8003 PRINT AT 20,14; PAPER paper;"   "
 8004 FOR n=19 TO 2 STEP -.5
 8005 BEEP .05,N-10: IF damsels<=8 OR n>14 THEN PRINT AT N,1; OVER 1; INK PAPER; PAPER PAPER;"                              "
 8008 PRINT AT X,Y; PAPER PA;C$
 8010 NEXT N
 8016 PRINT AT 20,14; PAPER PA;"   "
 8018 PRINT AT 21,0;"                                "
 8020 RETURN 
 8444 GO SUB 9300: LET DX=30: FOR u=.155 TO .005 STEP -.01: IF damsels<>9 OR x<>8 THEN PRINT AT 15,0;: LIST 
 8445 PRINT AT 0,dx; INK 0; PAPER 7;"n ": LET dx=dx-1: BEEP u,8: BEEP u,12: BEEP u,16: BORDER RND*7: NEXT u: FOR n=1 TO 16: PRINT AT 0,dx; INK 0; PAPER 7;"n ": LET dx=dx-1+(dx=0): BEEP u+.005,8: BORDER RND*7: BEEP u+.005,12: BEEP u,16: NEXT n
 8446 PRINT AT 0,0; PAPER 7;" ": FOR t=0 TO 2
 8448 FOR l=0 TO 7 STEP 7: INK l
 8449 GO SUB 8450: GO TO 8700
 8450 FOR n=1 TO 5
 8500 PRINT AT x+n,y+n;"*"
 8510 PRINT AT x-n,y+n;"*"
 8512 PRINT AT x+n,y-n;"*"
 8514 PRINT AT x-n,y-n;"*"
 8580 NEXT n
 8600 FOR n=1 TO 5
 8610 PRINT AT x,y+n;">"
 8612 PRINT AT x,y-n;"<"
 8614 PRINT AT x+n,y;"#"
 8616 PRINT AT x-n,y;"#"
 8680 NEXT n
 8685 RETURN 
 8700 NEXT l
 8720 NEXT t
 8740 INK 0
 8750 GO SUB 9300
 8760 PRINT AT 0,0; INK 7; PAPER 0;"   TWO THOUSAND POINTS EXTRA !  "
 8761 LET sc=sc+2000
 8780 FOR b=0 TO 7
 8781 PAPER B: INK 9: PRINT AT x,y;c$
 8782 FOR n=1 TO 14: BEEP .002,50-n+b: BORDER 1: BORDER 2: BORDER 3: BORDER 4: BORDER 5: BORDER 6: BORDER 7: BORDER b: NEXT n
 8784 NEXT b
 8790 BORDER 6: PAPER paper: INK 9
 8799 BORDER 0: PAPER 0: CLS 
 8800 FOR n=0 TO 30 STEP 6: FOR m=1 TO 10
 8810: BEEP .008,n+m: NEXT m: NEXT n
 8900 PRINT AT 3,8;"CONGRATULATIONS";'';" YOU HAVE RESCUED BILL AND THE      WHOLE WORLD IS GRATEFUL !      "
 8910 PRINT ''''';" YOUR SCORE = ";SC;" WHICH ISN'T"'" AT ALL BAD ....  WHY NOT HAVE   ANOTHER GAME AND IMPROVE YOUR              SCORE ?"
 8950 IF SC>HSC THEN GO SUB 4500
 8960 LET DAMSELS=1: GO TO 1200
 8975 LET DAMSELS=1: FOR N=1 TO 50000000: IF INKEY$="" THEN NEXT N
 8980 GO TO 6
 8998 STOP 
 9000 BORDER 1: PAPER 3: INK 9
 9001 CLEAR : RESTORE : PRINT AT 10,9;"STOP THE TAPE"
 9002 PAPER 2: FOR g=1 TO 50: BEEP .000650,50+g/50: BORDER 5: BORDER 2: BORDER 3: BORDER 4: BORDER 1: BORDER 4: BORDER 6: BORDER 1: NEXT g
 9004 POKE 23609,32
 9005 PRINT AT 10,9;"DON'T GO AWAY!"
 9006 PRINT AT 0,0;" ";AT 0,31;" ";AT 21,0;" ";AT 21,31;" "
 9007
 9008 FOR A=1 TO 16: READ A$: FOR B=0 TO 7: READ C: POKE USR A$+B,C: NEXT B: BEEP .012,40: NEXT A
 9010 DATA "o",0,0,0,0,60,126,0,0
 9020 DATA "A",24,24,36,195,195,36,24,24
 9025 DATA "B",90,90,36,219,219,36,90,153
 9030 DATA "C",165,165,66,90,40,189,126,129
 9035 DATA "D",72,84,73,62,8,28,62,62
 9038 DATA "E",18,42,146,124,16,56,124,124
 9040 DATA "F",8,16,8,186,93,16,8,16
 9080 DATA "G",90,90,36,195,195,36,90,153
 9085 BEEP .04 ,23
 9088 PRINT AT 10,0; PAPER 0; INK 7;"   Press ""I"" for INSTRUCTIONS   "'"     Any other Key to begin     "
 9092 BEEP .1 ,23
 9095 LET s$=INKEY$: IF s$="" THEN GO TO 9095
 9098 IF s$="i" OR s$="I" THEN GO SUB 7000
 9100 RUN 
 9111 DATA "h",0,0,0,0,60,126,165,165
 9120 DATA "K",0,0,0,0,0,0,85,170
 9130 DATA "m",192,32,18,13,63,16,32,192
 9140 DATA "N",0,0,192,192,78,74,91,112
 9150 DATA "P",0,132,204,180,132,132,132,0
 9160 DATA "Q",0,144,152,148,146,145,144,0
 9170 DATA "R",0,159,144,158,144,144,159,0
 9180 DATA "S",0,31,32,30,1,33,30,0
 9200 FOR n=2 TO -1 STEP -1
 9207 BEEP .003,27-n: BEEP .003,19-n: BEEP .003,29-n
 9210 IF n>=0 THEN INK n
 9250 IF n=-1 THEN FLASH 1: BRIGHT 0
 9260 GO SUB 9300: GO TO 9340
 9305 PRINT AT 4,4+ss;" :";AT 4,6+ss;": "   
 9310 PRINT AT 5,4+ss;" :";AT 5,6+ss;": "   
 9312 PRINT AT 6,4+ss;" :";AT 6,6+ss;": "   
 9315 PRINT AT 7,1+ss;".......:";AT 7,6+ss;":......."
 9318 PRINT AT 9,1+ss;"''''''':";AT 9,6+ss;":'''''''"
 9320 PRINT AT 10,4+ss;" :";AT 10,6+ss;": "   
 9322 PRINT AT 11,4+ss;" :";AT 11,6+ss;": "   
 9324 PRINT AT 12,4+ss;" :";AT 12,6+ss;": "   
 9333 RETURN 
 9340 NEXT n
 9360 PRINT AT 11,5+ss; INK paper; PAPER paper;"o"
 9400 FLASH 0
 9450 PRINT AT 8,5+ss; FLASH 0;"n"
 9490 RETURN 
 9499 STOP 
 9900 LET ss=INT (RND*11)+6: BEEP .3,-12
 9901 PRINT AT 0,15;"hh";AT 1,15;"ff": BEEP .3,-12
 9902 FOR n=0 TO 1: FOR m=0 TO 6: BORDER n: BEEP .003,n*m: BORDER m: BEEP .002,30+n+m*2: NEXT m: NEXT n
 9903 BORDER 2: FLASH 1
 9904 FOR n=0 TO 9
 9905 PRINT AT n+3,ss+1; PAPER paper; INK paper;"         ": NEXT n
 9910 FLASH 0
 9950 GO TO 9200
 9980 DATA 15,6,15,6,15,6,15,6,15,6,14,6,13,6,13,7,13,8,12,8,11,8,11,7,11,6,11,5,11,4,11,3,11,2,11,1,11,0,10,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0
 9981 DATA 3,1,3,2,3,3,3,4,3,5,3,6,3,7,3,8,3,9,3,10,3,11,3,12,3,13,3,14,2,14,1,14,0,14
 9982 DATA 0,14,0,14
 9992 SAVE "minedO.B2" LINE 9e3
 9998 REM  was LKDOS-only
 9999 REM                                      END

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.