RANDOMIZE TIMER
GAMEPAD 1
FONT 64

DIM TY(1)
TY(0)=56
TY(1)=64
DIM FIRE(9,3)
DIM EN(9,7)
DIM WLVL(19,15,0)

GOSUB RESTART
GOSUB STARTSCREEN

DO

   IF DOWN(0) THEN Y=64
   IF UP(0) THEN Y=56
   SPRITE 0,8,Y,3

   IF L=0 THEN GO=1

   IF P>5 AND P<19 THEN 
      LU=5
      LVL=2
   END IF
   IF P>20 AND P<39 THEN
      LU=7
      LVL=3
   END IF
   IF P>40 AND P<59 THEN
      LU=10
      LVL=4
   END IF
   IF P>60 AND P<79 THEN
      LU=13
      LVL=5
   END IF
   IF P>80 AND P<99 THEN 
      LU=16
      LVL=6
   END IF
   IF P>100 AND P<119 THEN
      LU=20
      LVL=7
   END IF
   IF P>120 AND P<139 THEN
      LU=24
      LVL=8
   END IF
   IF P>140 THEN 
      LU=30
      LVL=9
   END IF
   IF P=150 THEN GOSUB WIN

   GOSUB FIRE
   GOSUB ENEMY
   GOSUB BONUS
   GOSUB LBONUS
   GOSUB HUD
   IF BGSHAKE=1 THEN GOSUB BGS
   IF GO=1 THEN GOSUB GAMEOVER

   WAIT VBL

LOOP

ENEMY:

   IF INT(RND*40-LU)=1 AND EN(EC,2)=0 AND TIMER>ET+30-LU THEN
      EN(EC,2)=1
      EN(EC,1)=TY(INT(RND*2))
      EN(EC,0)=170
      EN(EC,4)=INT(RND*2)+1+(LU/10)
      EC=EC+1
      IF EC=10 THEN EC=0
      ET=TIMER
   END IF

   FOR I=0 TO 9
      IF EN(I,5)=1 AND EN(I,2)=1 THEN
         SPRITE EN(I,3),EN(I,0),EN(I,1),EN(I,6)
         EN(I,6)=EN(I,6)+0.5
         IF EN(I,6)=40 THEN
            EN(I,2)=0
            EN(I,6)=32
            EN(I,5)=0
            EN(I,4)=(RND*2)+1
         END IF
      END IF
      IF EN(I,2)=1 AND EN(I,5)=0 THEN
         EN(I,0)=EN(I,0)-EN(I,4)
         SPRITE EN(I,3),EN(I,0),EN(I,1),3
         IF EN(I,0)<-8 THEN 
            EN(I,2)=0
            P=P-1
            IF P<0 THEN P=0
         END IF
         IF SPRITE HIT(EN(I,3),0) THEN
            SPRITE OFF EN(I,3)
            PLAY 0,40,8 SOUND 3
            EN(I,2)=0
            L=L-1
            BGSHAKE=1
         END IF
      END IF
   NEXT I

RETURN

FIRE:

  IF BUTTON TAP (0,0) AND FIRE(FC,2)=0 AND AMMO<>0 THEN
     PLAY 0,50,2 SOUND 1
     FIRE(FC,0)=4
     FIRE(FC,1)=Y
     FIRE(FC,2)=1
     FC=FC+1
     IF FC>9 THEN FC=0
     AMMO=AMMO-1
  END IF
  
  FOR I=0 TO 9
      IF FIRE(I,2)=1 THEN
         FIRE(I,0)=FIRE(I,0)+3
         IF FIRE(I,0)>160 THEN FIRE(I,2)=0
         SPRITE FIRE(I,3),FIRE(I,0),FIRE(I,1),8
         IF SPRITE HIT (FIRE(I,3),11 TO 20) THEN
            SPRITE OFF FIRE(I,3)
            FIRE(I,2)=0
            SPRITE OFF HIT
            PLAY 0,68,10 SOUND 0
            EN(HIT-11,5)=1
            P=P+1
         END IF
         IF SPRITE HIT (FIRE(I,3),21) AND SKILL$="HARD" THEN
            SPRITE OFF FIRE(I,3)
            FIRE(I,2)=0
            SPRITE OFF HIT
            PLAY 0,68,10 SOUND 0
            BON=0
         END IF
         IF SPRITE HIT (FIRE(I,3),22) AND SKILL$="HARD" THEN
            SPRITE OFF FIRE(I,3)
            FIRE(I,2)=0
            SPRITE OFF HIT
            PLAY 0,68,10 SOUND 0
            LBON=0
         END IF
      END IF
  NEXT I
     
RETURN

HUD:

   TEXT 0,0,"AMMO:"
   NUMBER 5,0,AMMO,3
   TEXT 9,0,"POINTS:"
   NUMBER 16,0,P,4
   TEXT 0,1,"LIVE:"
   NUMBER 5,1,L,3
   TEXT 9,1,"LEVEL:"
   NUMBER 15,1,LVL,2
   TEXT 8,15,SKILL$

RETURN

BONUS:

   IF INT(RND*(500-HL-LU*10))=1 AND BON=0 THEN 
      BY=TY(INT(RND*2))
      IF BY=56 THEN BIMG=4
      IF BY=64 THEN BIMG=5
      BON=1
      BX=170
      BOS=INT(RND*2)+1+(LU/10)
   END IF

   IF BON=1 THEN
      BX=BX-BOS
      SPRITE 21,BX,BY,BIMG
      IF SPRITE HIT (21,0) THEN 
         PLAY 0,68,6 SOUND 2
         AMMO=AMMO+ADDAMMO
         BON=0
         SPRITE OFF 21
      END IF   
   END IF

RETURN

LBONUS:

   IF INT(RND*(1000-LU*10))=1 AND LBON=0 THEN 
      LBY=TY(INT(RND*2))
      IF LBY=56 THEN LBIMG=6
      IF LBY=64 THEN LBIMG=7
      LBON=1
      LBX=170
      LBOS=INT(RND*2)+1+(LU/10)
   END IF

   IF LBON=1 THEN
      LBX=LBX-LBOS
      SPRITE 22,LBX,LBY,LBIMG
      IF SPRITE HIT (22,0) THEN 
         PLAY 0,68,6 SOUND 2
         L=L+1
         LBON=0
         SPRITE OFF 22
      END IF   
   END IF

RETURN

STARTSCREEN:

   SKILL$="EASY"
   TMPSKILL$="HARD"
   M$="ON "
   TM$="OFF"

   MUSIC 0

   BG COPY 20,0,20,16 TO 0,0
   TEXT 1,5,"R  U   N   N  E  R"
   TEXT 5,9,"-SHOOT THEM"
   TEXT 5,10,"-EXTRA AMMO"
   TEXT 5,11,"-EXTRA LIVE"
   TEXT 4,12,"A-START GAME"
   TEXT 4,13,"B-SKILL-"
   TEXT 3,14,"LEFT+DOWN-MUSIC " 
   TEXT 9,15,M$
   TEXT 3,6,"GET 150 POINTS"

   REPEAT

      GOSUB ENEMY

      IF BUTTON TAP (0,1) THEN SWAP SKILL$,TMPSKILL$
      TEXT 12,13,SKILL$

      IF LEFT(0) AND DOWN(0) THEN 
         SWAP M$,TM$
         TEXT 9,15,M$
         IF M$="ON " THEN 
            MUSIC 0
         ELSE
            STOP
         END IF
      END IF
      
      WAIT VBL

   UNTIL BUTTON TAP (0,0)

   SPRITE OFF

   IF SKILL$="HARD" THEN 
      ADDAMMO=5
      HL=200
   ELSE
      ADDAMMO=10
      HL=0
   END IF

   GOSUB RESTART

RETURN

BGS:

   SH=SH-1
   SCROLL 0,SIN(SH)*2,COS(SH)*2
   IF SH=0 THEN
      SH=10
      BGSHAKE=0
      SCROLL 0,0,0
   END IF

RETURN

GAMEOVER:

   FOR I=32 TO 40 STEP 0.5
       SPRITE 0,8,Y,I
       WAIT VBL
   NEXT I

   WAIT 30

   TRACK 8,0

   BG 1
   BG COPY 40,3,20,5 TO 0,9
   TEXT 5,11,"GAME  OVER"

   REPEAT
   UNTIL BUTTON TAP (0,0)

   BG 0
   CLS

   SPRITE OFF

   GOSUB STARTSCREEN
   GOSUB RESTART

RETURN

RESTART:

   Y=56

   P=0
   L=5

   BON=0
   BY=56
   BX=170
   BIMG=4

   LBON=0
   LBY=56
   LBX=170
   LBIMG=6

   LVL=1
   LU=0
   GO=0

   SH=10
   BGSHAKE=0

   FC=0
   AMMO=10
   

   EC=0
   ET=TIMER

   FOR I=0 TO 9
      FIRE(I,2)=0
      FIRE(I,3)=I+1
   NEXT I

   FOR I=0 TO 9
      EN(I,2)=0
      EN(I,3)=I+11
      EN(I,4)=(RND*2)+1
      EN(I,5)=0
      EN(I,6)=32
      EN(I,7)=48
   NEXT I

   BG COPY 0,0,20,16 TO 0,0

RETURN

WIN:

   TRACK 9,0

   WAIT 30
   
   WAIT 60

   FOR   I=0 TO 319
         REPEAT
            PRESS=BUTTON(0,0)
            XW=INT(RND*20)
            YW=INT(RND*16)
         UNTIL WLVL (XW,YW,0)=0
         CELL XW,YW,RND*3+9
         WLVL(XW,YW,0)=1
         IF I MOD 4=0 THEN WAIT VBL
   NEXT I

   SPRITE OFF

   BG 1
   BG COPY 40,3,20,5 TO 0,5
   TEXT 6,7,"YOU  WIN"
   BG 0

   WAIT 60

   FOR   I=0 TO 319
         REPEAT
            PRESS=BUTTON(0,0)
               XW=INT(RND*20)
               YW=INT(RND*16)
         UNTIL WLVL (XW,YW,0)=1
         CELL XW,YW,0
         WLVL(XW,YW,0)=0
         IF I MOD 4=0 THEN WAIT VBL
   NEXT I

   REPEAT
   UNTIL BUTTON(0,0)

   BG 0
   CLS

   SPRITE OFF

   GOSUB STARTSCREEN
   GOSUB RESTART

RETURN

#1:MAIN PALETTES
2A003C3000383400003C0C00003F3C00
003F2A15003F2A15003F2A15003F2A15

#2:MAIN CHARACTERS
00000000000000000000000000000000
FF000000000000000000000000000000
00000000000000FF0000000000000000
FFFFFFFFFFFFFFFF0000000000000000
00000000000000FFFFFFFFFFFFFFFF00
FF0000000000000000FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF
00000006000000000000000000000000
FFFFFFFFFFFFFFFF0000000000000000
0000000000000000FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
38F0B8F018171E0B23E4A2E186F4BCE8
42425A00000000FF0000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
030C1020404080800000000000000000
00000000000000000000000000000000
80808080808080800000000000000000
01010101010101010000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
007E7E7E7E7E7E000000000000000000
00003C3C3C3C00000000000000000000
00000018180000000000000000000000
00000010000000000000000000000000
00000410180000000000000000000000
0012287C3C3812000000000000000000
8934B97E7DBA6C110000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00181818180018000000000000000000
006C6C24000000000000000000000000
00247E24247E24000000000000000000
00083E380E3E08000000000000000000
00626408102646000000000000000000
001C34386E643A000000000000000000
00181830000000000000000000000000
000C183030180C000000000000000000
0030180C0C1830000000000000000000
000024187E1824000000000000000000
000000081C0800000000000000000000
00000000181830000000000000000000
000000001C0000000000000000000000
00000000001818000000000000000000
00060C18306040000000000000000000
00003E435D613E000000000000000000
00000808080808000000000000000000
00007F017F407F000000000000000000
00007E011F017E000000000000000000
000041417F0101000000000000000000
00007F407F017F000000000000000000
00003F407E413E000000000000000000
00007E01010101000000000000000000
00003E417F413E000000000000000000
00003E413F017E000000000000000000
00000018001800000000000000000000
00000018001830000000000000000000
00000C1830180C000000000000000000
0000007E007E00000000000000000000
000030180C1830000000000000000000
003C660C180018000000000000000000
003C666E6E603C000000000000000000
00003E417F4141000000000000000000
00007E417E417E000000000000000000
00003F4040403F000000000000000000
00007E4141417E000000000000000000
00003F407C403F000000000000000000
00003F407C4040000000000000000000
00003F404F413E000000000000000000
000041417F4141000000000000000000
00007F0808087F000000000000000000
00007E0101413E000000000000000000
000041427C4241000000000000000000
0000404040403F000000000000000000
00004163554941000000000000000000
00006151494543000000000000000000
00003E4141413E000000000000000000
00003E417E4040000000000000000000
00003E4149453A000000000000000000
00003E417E4241000000000000000000
00003F403E017E000000000000000000
00007F08080808000000000000000000
0000414141413E000000000000000000
00004141221408000000000000000000
00004149556341000000000000000000
00006314081463000000000000000000
000041413F0101000000000000000000
00007F021C207F000000000000000000
003C303030303C000000000000000000
006030180C0602000000000000000000
003C0C0C0C0C3C000000000000000000
00183C66000000000000000000000000
0000000000007E000000000000000000

#3:MAIN BG
00006010000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000300
01000300000003000100030000000300
0100010003000000030003000D000300
03000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000300
03000000000003000200000000000300
02000200030000000300000003000000
03000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000300
01000300000003000100000000000300
01000100030000000300000000000000
03000000000000000110011001100110
01100110011001100110011001100110
01100110011001100008000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000300
02000300000003000200030000000300
00000000030000000300000000000000
03000000000010000100010001000100
01000100010001000100010001000100
01000100010001001008000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000012000000000000000000
00000000000000000000000000000000
00000000000000001300000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000010100200020002000200
02000200020002000200020002000200
02000200020002001018000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000020002000200020002000200
02000200020002000200020002000200
02000200020002000200020002000200
02000200020002000200020002000200
02000200020002000200020002000200
02000200000000000100010001000100
01000100010001000100010001000100
01000100010001000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000010001000100010001000100
01000100010001000100010001000100
01000100010001000100010001000100
01000100010001000100010001000100
01000100010001000100010001000100
01000100000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000090000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000A0000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000B0000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000C00000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000

#15:MAIN SOUND
500A50C007FD0000680A00A201FF4000
5006006C0DFB00005008F06F05FD0F00
78080072000000003800505000000000
680B302400016000680C70C5010B5000
0800000F000000000800000F00000000
0800000F000000000800000F00000000
0800000F000000000800000F00000000
0800000F00000000500100C606DD0000
C0004040400240404003404040044040
40000140400201404003014040040140
40000040400201054003010640040107
40000105400201064003010740040105
40000108400201094003010840040109
4000400840C001094040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
40404040404040404040404040404040
19660019660000000019660019660019
66001966000000001966001966000000
00196600196600196600196600000000
1966001966000000001966001966001B
66001966000000001966001966000000
00196600256600256600196600000000
0000000000000000000000005F4F0000
00000000000000000000000000000000
000000005F4F00000000000000000000
0000000000000000000000005F4F0000
00000000000000000000000000000000
000000005E4F00000000000000000000
20660020660000000020660020660020
66002066000000002066002066000000
00206600206600206600206600000000
20660020660000000020660020660020
66001E66000000002066002066000000
001E6600226600206600206600000000
1D66001D66000000001D66001D66001D
66001D66000000001D66001D66000000
001D66001D66001D66001D6600000000
1D66001E66000000001D66001E66001E
66001D66000000001D66001D66000000
002266002066001E66001D6600000000
18660018660000000018660018660018
66001866000000001866001866000000
00186600186600186600196600000000
1866001866000000001B660018660018
66001866000000001866001866000000
001B6600196600186600186600000000
30740000000000000000000000000000
00000000000000003074000000000000
00000000000000000000000000000000
31740000000000000000000000000000
00000000000000003174000000000000
00000000000000000000000000000000
29740000000000000000000000000000
00000000000000002974000000000000
00000000000000000000000000000000
2C740000000000000000000000000000
00000000000000002E74000000000000
00000000000000000000000000000000
2E740000000000000000000000000000
00000000000000003074000000000000
00000000000000000000000000000000
25740000000000000000000000000000
00000000000000002774000000000000
00000000000000000000000000000000
49F90000000046F90000000044F90000
000041F9000000003FF9000000003DF9
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
3DF9000000003FF90000000042F90000
000044F90000000048F90000000049F9
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
