home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
126-150
/
apd149
/
gobbit.amos
/
gobbit.amosSourceCode
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
AMOS Source Code
|
1990-08-11
|
26.3 KB
|
1,325 lines
Dim HIGH(9),HIGHNAME$(9)
Global COUNT,LIVES,NAM,SPRNO,SCORE,TILES,XCOORD1,YCOORD1
Global SPR8X,SPR8Y,SPR9X,SPR9Y,SPR10X,SPR10Y,SPR11X,SPR11Y
Global CURRENTSCR,BL1X,BL1Y,ALNO,ROUND,HIGH(),HIGHNAME$(),A
INITHIGHSCORES
LDER
Rem Going down left x-11,y+15
Rem going down right x+10,y+15
Rem All subsequent blocks on same y co-ord add 21 to X
Procedure LDER
Screen Close 0
Screen Open 0,320,256,32,Lowres
Hide On : Curs Off : Flash Off : Cls 0
Load Iff "Gobbit.pic"
Load "Loader.abk"
Music 1 : Mvolume 63 : Tempo 17
Repeat
Until Mouse Key
Fade 10 : Wait 150
Music Off
INIT
End Proc
Procedure INIT
Screen Close 0
Screen Open 0,320,220,8,Lowres
Load "enemy1.abk"
Hide On : Curs Off : Flash Off : Cls 0
Randomize Timer
Writing 0,2
LIVES=3
SCORE=4000
CHPALETTE
RBOW
ROUND=1
SCR1
CURRENTSCR=1
ALIENNOS
MAIN
End Proc
Procedure MAIN
If ROUND=2 Then TILES=TILES*2
If ROUND=3 Then TILES=TILES*3
Repeat
Home : Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
JYCTRL
ALIEN
If SCORE=5000 and FLAG=0 Then LIVES=LIVES+1 : FLAG=1
If SCORE=10000 and FLAG<2 Then LIVES=LIVES+1 : FLAG=2
If SCORE=20000 and FLAG<3 Then LIVES=LIVES+1 : FLAG=3
If SCORE=30000 and FLAG<4 Then LIVES=LIVES+1 : FLAG=4
Until COUNT=TILES
CURRENTSCR=CURRENTSCR+1
Locate 26,0 : Print "Score =";SCORE
COMPLETE
CHOOSESCR
FINNISH
End Proc
Procedure CHOOSESCR
If CURRENTSCR<9 Then ROUND=1
If CURRENTSCR>=9 Then ROUND=2
If CURRENTSCR>=16 Then ROUND=3
If CURRENTSCR=2 Then SCR2
If CURRENTSCR=3 Then SCR3
If CURRENTSCR=4 Then SCR4
If CURRENTSCR=5 Then SCR5
If CURRENTSCR=6 Then SCR6
If CURRENTSCR=7 Then SCR7
If CURRENTSCR=8 Then SCR8
If CURRENTSCR=9 Then SCR1
If CURRENTSCR=10 Then SCR2
If CURRENTSCR=11 Then SCR3
If CURRENTSCR=12 Then SCR4
If CURRENTSCR=13 Then SCR5
If CURRENTSCR=14 Then SCR6
If CURRENTSCR=15 Then SCR7
If CURRENTSCR=16 Then SCR8
If CURRENTSCR=17 Then SCR1
If CURRENTSCR=18 Then SCR2
If CURRENTSCR=19 Then SCR3
If CURRENTSCR=20 Then SCR4
If CURRENTSCR=21 Then SCR5
If CURRENTSCR=22 Then SCR6
If CURRENTSCR=23 Then SCR7
If CURRENTSCR=24 Then SCR8
If CURRENTSCR=25 Then FINNISH
ALIENNOS
MAIN
End Proc
Procedure ALIENNOS
If CURRENTSCR<=4 Then ALIEN1
If CURRENTSCR=5 Then ALIEN2
If CURRENTSCR=6 Then ALIEN2
If CURRENTSCR>=7 Then ALIEN3
End Proc
Procedure ALIEN1
AL1X=X Hard(BL1X)
AL1Y=Y Hard(BL1Y)
Sprite 9,(AL1X+4),(AL1Y-11),1 : Channel 2 To Sprite 9
Sprite Off 10
Sprite Off 11
ALNO=2
End Proc
Procedure ALIEN2
AL1X=X Hard(BL1X)
AL1Y=Y Hard(BL1Y)
Sprite 9,(AL1X+4),(AL1Y-11),1 : Channel 2 To Sprite 9
Sprite 10,(AL1X+4),(AL1Y-11),1 : Channel 3 To Sprite 10
Sprite Off 11
ALNO=3
End Proc
Procedure ALIEN3
AL1X=X Hard(BL1X)
AL1Y=Y Hard(BL1Y)
Sprite 9,(AL1X+4),(AL1Y-11),1 : Channel 2 To Sprite 9
Sprite 10,(AL1X+4),(AL1Y-11),1 : Channel 3 To Sprite 10
Sprite 11,(AL1X+4),(AL1Y-11),1 : Channel 4 To Sprite 11
ALNO=4
End Proc
Procedure ALIEN
For NAM=2 To ALNO
If NAM=2 Then SPRNO=9
If NAM=3 Then SPRNO=10
If NAM=4 Then SPRNO=11
AMOVE=Int(Rnd(3))
If AMOVE=0 Then AUPLEFT
If AMOVE=1 Then ADOWNLEFT
If AMOVE=2 Then AUPRIGHT
If AMOVE=3 Then ADOWNRIGHT
CHCOLISION
Next NAM
End Proc
Procedure CHCOLISION
SPR8X=X Sprite(8)
SPR8Y=(Y Sprite(8)+3)
SPR9X=X Sprite(9)
SPR9Y=Y Sprite(9)
SPR10X=X Sprite(10)
SPR10Y=Y Sprite(10)
SPR11X=X Sprite(11)
SPR11Y=Y Sprite(11)
If SPR8X=SPR9X Then CHSPR89Y
If SPR8X=SPR10X Then CHSPR810Y
If SPR8X=SPR11X Then CHSPR811Y
End Proc
Procedure CHSPR89Y
If SPR8Y=SPR9Y Then DEAD
End Proc
Procedure CHSPR810Y
If SPR8Y=SPR10Y Then DEAD
End Proc
Procedure CHSPR811Y
If SPR8Y=SPR11Y Then DEAD
End Proc
Procedure AUPLEFT
Wait Vbl
ALIENX1=(X Sprite(SPRNO)-3-10)
ALIENY1=(Y Sprite(SPRNO)+11-15)
ALIENX=X Screen(ALIENX1)
ALIENY=Y Screen(ALIENY1)
If Point(ALIENX,ALIENY)=3 Then Amal NAM,"Let X=X-10 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=4 Then Amal NAM,"Let X=X-10 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=5 Then Amal NAM,"Let X=X-10 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=6 Then Amal NAM,"Let X=X-10 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
End Proc
Procedure ADOWNLEFT
Wait Vbl
ALIENX1=(X Sprite(SPRNO)-3-11)
ALIENY1=(Y Sprite(SPRNO)+11+15)
ALIENX=X Screen(ALIENX1)
ALIENY=Y Screen(ALIENY1)
If Point(ALIENX,ALIENY)=3 Then Amal NAM,"Let X=X-11 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=4 Then Amal NAM,"Let X=X-11 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=5 Then Amal NAM,"Let X=X-11 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=6 Then Amal NAM,"Let X=X-11 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
End Proc
Procedure AUPRIGHT
Wait Vbl
ALIENX1=(X Sprite(SPRNO)-3+11)
ALIENY1=(Y Sprite(SPRNO)+11-15)
ALIENX=X Screen(ALIENX1)
ALIENY=Y Screen(ALIENY1)
If Point(ALIENX,ALIENY)=3 Then Amal NAM,"Let X=X+11 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=4 Then Amal NAM,"Let X=X+11 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=5 Then Amal NAM,"Let X=X+11 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=6 Then Amal NAM,"Let X=X+11 ; Let Y=Y-15" : Amal On NAM : Wait Vbl
End Proc
Procedure ADOWNRIGHT
Wait Vbl
ALIENX1=(X Sprite(SPRNO)-3+10)
ALIENY1=(Y Sprite(SPRNO)+11+15)
ALIENX=X Screen(ALIENX1)
ALIENY=Y Screen(ALIENY1)
If Point(ALIENX,ALIENY)=3 Then Amal NAM,"Let X=X+10 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=4 Then Amal NAM,"Let X=X+10 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=5 Then Amal NAM,"Let X=X+10 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
If Point(ALIENX,ALIENY)=6 Then Amal NAM,"Let X=X+10 ; Let Y=Y+15" : Amal On NAM : Wait Vbl
End Proc
Procedure CHPALETTE
Palette $0,$FAF,$D5D,$F0F,$707,$F,$F00,,,,,,,,,,,$666,$444,$F0
Colour 17,$666 : Colour 18,$444 : Colour 19,$F0
Colour 21,$F0 : Colour 22,$FFF : Colour 23,$FF0
End Proc
Procedure CHPALETTE2
Palette $0,$F0,$70,$FF4,$F00,$F,$FF
Colour 17,$666 : Colour 18,$444 : Colour 19,$F0
Colour 21,$F0 : Colour 22,$FFF : Colour 23,$FF0
End Proc
Procedure CHPALETTE3
Palette $0,$FF4,$CC1,$CCC,$D0,$F00,$FF
Colour 17,$666 : Colour 18,$444 : Colour 19,$F0
Colour 21,$F0 : Colour 22,$FFF : Colour 23,$FF0
End Proc
Procedure JYCTRL
If CURRENTSCR<=4 Then Wait 5
COUNT1=0
Repeat
Wait Vbl
COUNT1=COUNT1+1
CONTROL=Joy(1)
Rem If CONTROL=1 Then Amal 1,"Move 0,-3,1"
Rem If CONTROL=2 Then Amal 1,"Move 0,3,1"
Rem If CONTROL=4 Then Amal 1,"Move -3,0,1"
Rem If CONTROL=8 Then Amal 1,"Move 3,0,1"
If CONTROL=5 Then Amal 1,"Let X=X-10 ; Let Y=Y-15"
If CONTROL=6 Then Amal 1,"Let X=X-11 ; Let Y=Y+15"
If CONTROL=9 Then Amal 1,"Let X=X+11 ; Let Y=Y-15"
If CONTROL=10 Then Amal 1,"Let X=X+10 ; Let Y=Y+15"
Amal On 1
If CONTROL=16 Then End
If COUNT1=5 Then Goto EEND
Until CONTROL=5 or CONTROL=6 or CONTROL=9 or CONTROL=10
If ROUND=1 Then CHECK
If ROUND=2 Then CHECK2
If ROUND=3 Then CHECK3
EEND:
End Proc
Procedure CHECK2
Wait Vbl
XPOS1=(X Sprite(8)-3)
YPOS1=(Y Sprite(8)+14)
XPOS=X Screen(XPOS1)
YPOS=Y Screen(YPOS1)
If Point(XPOS,YPOS)=4 Then CHBLOCK2[XPOS-1,YPOS]
If Point(XPOS,YPOS)=3 Then CHBLOCK[XPOS-1,YPOS]
If Point(XPOS,YPOS)=0 Then DEAD
End Proc
Procedure CHECK3
Wait Vbl
XPOS1=(X Sprite(8)-3)
YPOS1=(Y Sprite(8)+14)
XPOS=X Screen(XPOS1)
YPOS=Y Screen(YPOS1)
If Point(XPOS,YPOS)=5 Then CHBLOCK3[XPOS-1,YPOS]
If Point(XPOS,YPOS)=4 Then CHBLOCK2[XPOS-1,YPOS]
If Point(XPOS,YPOS)=3 Then CHBLOCK[XPOS-1,YPOS]
If Point(XPOS,YPOS)=0 Then DEAD
End Proc
Procedure SCR1
CHPALETTE
Cls 0
Rem Load in for drawing screen and play
Load "ingame.abk"
Music 1 : Mvolume 63 : Tempo 16
TILES=91 : COUNT=0
BL1X=150 : BL1Y=20
Rem Row 1
DRBLOCK[150,20]
Rem row 2
DRBLOCK[139,35]
DRBLOCK[160,35]
Rem Row 3
DRBLOCK[128,50]
DRBLOCK[149,50]
DRBLOCK[170,50]
Rem Row 4
DRBLOCK[117,65]
DRBLOCK[138,65]
DRBLOCK[159,65]
DRBLOCK[180,65]
Rem Row 5
DRBLOCK[106,80]
DRBLOCK[127,80]
DRBLOCK[148,80]
DRBLOCK[169,80]
DRBLOCK[190,80]
Rem Row 6
DRBLOCK[95,95]
DRBLOCK[116,95]
DRBLOCK[137,95]
DRBLOCK[158,95]
DRBLOCK[179,95]
DRBLOCK[200,95]
Rem Row 7
DRBLOCK[84,110]
DRBLOCK[105,110]
DRBLOCK[126,110]
DRBLOCK[147,110]
DRBLOCK[168,110]
DRBLOCK[189,110]
DRBLOCK[210,110]
Rem Row 8
DRBLOCK[73,125]
DRBLOCK[94,125]
DRBLOCK[115,125]
DRBLOCK[136,125]
DRBLOCK[157,125]
DRBLOCK[178,125]
DRBLOCK[199,125]
DRBLOCK[220,125]
Rem Row 9
DRBLOCK[62,140]
DRBLOCK[83,140]
DRBLOCK[104,140]
DRBLOCK[125,140]
DRBLOCK[146,140]
DRBLOCK[167,140]
DRBLOCK[188,140]
DRBLOCK[209,140]
DRBLOCK[230,140]
Rem Row 10
DRBLOCK[51,155]
DRBLOCK[72,155]
DRBLOCK[93,155]
DRBLOCK[114,155]
DRBLOCK[135,155]
DRBLOCK[156,155]
DRBLOCK[177,155]
DRBLOCK[198,155]
DRBLOCK[219,155]
DRBLOCK[240,155]
Rem Row 11
DRBLOCK[40,170]
DRBLOCK[61,170]
DRBLOCK[82,170]
DRBLOCK[103,170]
DRBLOCK[124,170]
DRBLOCK[145,170]
DRBLOCK[166,170]
DRBLOCK[187,170]
DRBLOCK[208,170]
DRBLOCK[229,170]
DRBLOCK[250,170]
Rem Row 12
DRBLOCK[29,185]
DRBLOCK[50,185]
DRBLOCK[71,185]
DRBLOCK[92,185]
DRBLOCK[113,185]
DRBLOCK[134,185]
DRBLOCK[155,185]
DRBLOCK[176,185]
DRBLOCK[197,185]
DRBLOCK[218,185]
DRBLOCK[239,185]
DRBLOCK[260,185]
Rem Row 13
DRBLOCK[18,200]
DRBLOCK[39,200]
DRBLOCK[60,200]
DRBLOCK[81,200]
DRBLOCK[102,200]
DRBLOCK[123,200]
DRBLOCK[144,200]
DRBLOCK[165,200]
DRBLOCK[186,200]
DRBLOCK[207,200]
DRBLOCK[228,200]
DRBLOCK[249,200]
DRBLOCK[270,200]
XCOORD1=X Hard(22)
YCOORD1=Y Hard(186)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
Rem Music Off
End Proc
Procedure SCR2
CHPALETTE
Cls 0
BL1X=134 : BL1Y=20
TILES=88 : COUNT=0
Rem 1
DRBLOCK[50,20]
DRBLOCK[134,20]
DRBLOCK[218,20]
Rem 2
DRBLOCK[39,35]
DRBLOCK[60,35]
DRBLOCK[123,35]
DRBLOCK[144,35]
DRBLOCK[207,35]
DRBLOCK[228,35]
Rem 3
DRBLOCK[28,50]
DRBLOCK[49,50]
DRBLOCK[70,50]
DRBLOCK[112,50]
DRBLOCK[133,50]
DRBLOCK[154,50]
DRBLOCK[196,50]
DRBLOCK[217,50]
DRBLOCK[238,50]
Rem 4
DRBLOCK[17,65]
DRBLOCK[38,65]
DRBLOCK[59,65]
DRBLOCK[80,65]
DRBLOCK[101,65]
DRBLOCK[122,65]
DRBLOCK[143,65]
DRBLOCK[164,65]
DRBLOCK[185,65]
DRBLOCK[206,65]
DRBLOCK[227,65]
DRBLOCK[248,65]
Rem 5
DRBLOCK[27,80]
DRBLOCK[90,80]
DRBLOCK[174,80]
DRBLOCK[237,80]
Rem 6
DRBLOCK[37,95]
DRBLOCK[79,95]
DRBLOCK[100,95]
DRBLOCK[163,95]
DRBLOCK[184,95]
DRBLOCK[226,95]
Rem 7
DRBLOCK[47,110]
DRBLOCK[68,110]
DRBLOCK[89,110]
DRBLOCK[110,110]
DRBLOCK[152,110]
DRBLOCK[173,110]
DRBLOCK[194,110]
DRBLOCK[215,110]
Rem 8
DRBLOCK[57,125]
DRBLOCK[78,125]
DRBLOCK[99,125]
DRBLOCK[120,125]
DRBLOCK[141,125]
DRBLOCK[162,125]
DRBLOCK[183,125]
DRBLOCK[204,125]
Rem 9
DRBLOCK[46,140]
DRBLOCK[130,140]
DRBLOCK[214,140]
Rem 10
DRBLOCK[35,155]
DRBLOCK[56,155]
DRBLOCK[119,155]
DRBLOCK[140,155]
DRBLOCK[203,155]
DRBLOCK[224,155]
Rem 11
DRBLOCK[24,170]
DRBLOCK[45,170]
DRBLOCK[66,170]
DRBLOCK[87,170]
DRBLOCK[108,170]
DRBLOCK[129,170]
DRBLOCK[150,170]
DRBLOCK[171,170]
DRBLOCK[192,170]
DRBLOCK[213,170]
DRBLOCK[234,170]
Rem 12
DRBLOCK[13,185]
DRBLOCK[34,185]
DRBLOCK[55,185]
DRBLOCK[76,185]
DRBLOCK[97,185]
DRBLOCK[118,185]
DRBLOCK[139,185]
DRBLOCK[160,185]
DRBLOCK[181,185]
DRBLOCK[202,185]
DRBLOCK[223,185]
DRBLOCK[244,185]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(17)
YCOORD1=Y Hard(171)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure SCR3
CHPALETTE
Cls 0
BL1X=140 : BL1Y=20
TILES=103 : COUNT=0
Rem Row 1
DRBLOCK[35,20]
DRBLOCK[140,20]
DRBLOCK[245,20]
Rem ROW 2
DRBLOCK[24,35]
DRBLOCK[45,35]
DRBLOCK[129,35]
DRBLOCK[150,35]
DRBLOCK[234,35]
DRBLOCK[255,35]
Rem Row 3
DRBLOCK[34,50]
DRBLOCK[55,50]
DRBLOCK[118,50]
DRBLOCK[160,50]
DRBLOCK[223,50]
DRBLOCK[244,50]
Rem Row 4
DRBLOCK[44,65]
DRBLOCK[65,65]
DRBLOCK[86,65]
DRBLOCK[107,65]
DRBLOCK[170,65]
DRBLOCK[191,65]
DRBLOCK[212,65]
DRBLOCK[233,65]
Rem Row 5
DRBLOCK[54,80]
DRBLOCK[75,80]
DRBLOCK[96,80]
DRBLOCK[117,80]
DRBLOCK[159,80]
DRBLOCK[180,80]
DRBLOCK[201,80]
DRBLOCK[222,80]
Rem Row 6
DRBLOCK[43,95]
DRBLOCK[64,95]
DRBLOCK[85,95]
DRBLOCK[106,95]
DRBLOCK[127,95]
DRBLOCK[148,95]
DRBLOCK[169,95]
DRBLOCK[190,95]
DRBLOCK[211,95]
DRBLOCK[232,95]
Rem Row 7
DRBLOCK[32,110]
DRBLOCK[53,110]
DRBLOCK[74,110]
DRBLOCK[95,110]
DRBLOCK[116,110]
DRBLOCK[137,110]
DRBLOCK[158,110]
DRBLOCK[179,110]
DRBLOCK[200,110]
DRBLOCK[221,110]
DRBLOCK[242,110]
Rem Row 8
DRBLOCK[21,125]
DRBLOCK[42,125]
DRBLOCK[63,125]
DRBLOCK[84,125]
DRBLOCK[105,125]
DRBLOCK[126,125]
DRBLOCK[147,125]
DRBLOCK[168,125]
DRBLOCK[189,125]
DRBLOCK[210,125]
DRBLOCK[231,125]
DRBLOCK[252,125]
Rem Row 9
DRBLOCK[31,140]
DRBLOCK[52,140]
DRBLOCK[73,140]
DRBLOCK[94,140]
DRBLOCK[115,140]
DRBLOCK[136,140]
DRBLOCK[157,140]
DRBLOCK[178,140]
DRBLOCK[199,140]
DRBLOCK[220,140]
DRBLOCK[241,140]
Rem Row 10
DRBLOCK[41,155]
DRBLOCK[62,155]
DRBLOCK[83,155]
DRBLOCK[104,155]
DRBLOCK[125,155]
DRBLOCK[146,155]
DRBLOCK[167,155]
DRBLOCK[188,155]
DRBLOCK[209,155]
DRBLOCK[230,155]
Rem Row 11
DRBLOCK[51,170]
DRBLOCK[72,170]
DRBLOCK[93,170]
DRBLOCK[177,170]
DRBLOCK[198,170]
DRBLOCK[219,170]
Rem Row 12
DRBLOCK[40,185]
DRBLOCK[61,185]
DRBLOCK[82,185]
DRBLOCK[187,185]
DRBLOCK[208,185]
DRBLOCK[229,185]
Rem Row 13
DRBLOCK[29,200]
DRBLOCK[50,200]
DRBLOCK[71,200]
DRBLOCK[197,200]
DRBLOCK[218,200]
DRBLOCK[239,200]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(33)
YCOORD1=Y Hard(186)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure SCR4
CHPALETTE2
Load "dep0.abk"
Music 1 : Mvolume 63 : Tempo 16
TILES=67 : COUNT=0
Cls 0
BL1X=140 : BL1Y=20
Rem 1
DRBLOCK[140,20]
DRBLOCK[161,20]
Rem 2
DRBLOCK[129,35]
DRBLOCK[150,35]
DRBLOCK[171,35]
Rem 3
DRBLOCK[118,50]
DRBLOCK[139,50]
DRBLOCK[160,50]
DRBLOCK[181,50]
Rem 4
DRBLOCK[107,65]
DRBLOCK[128,65]
DRBLOCK[170,65]
DRBLOCK[191,65]
Rem 5
DRBLOCK[96,80]
DRBLOCK[117,80]
DRBLOCK[180,80]
DRBLOCK[201,80]
Rem 6
DRBLOCK[85,95]
DRBLOCK[106,95]
DRBLOCK[190,95]
DRBLOCK[211,95]
Rem 7
DRBLOCK[74,110]
DRBLOCK[95,110]
DRBLOCK[200,110]
DRBLOCK[221,110]
Rem 8
DRBLOCK[63,125]
DRBLOCK[84,125]
DRBLOCK[105,125]
DRBLOCK[126,125]
DRBLOCK[147,125]
DRBLOCK[168,125]
DRBLOCK[189,125]
DRBLOCK[210,125]
DRBLOCK[231,125]
Rem 9
DRBLOCK[52,140]
DRBLOCK[73,140]
DRBLOCK[94,140]
DRBLOCK[115,140]
DRBLOCK[136,140]
DRBLOCK[157,140]
DRBLOCK[178,140]
DRBLOCK[199,140]
DRBLOCK[220,140]
DRBLOCK[241,140]
Rem 10
DRBLOCK[41,155]
DRBLOCK[62,155]
DRBLOCK[83,155]
DRBLOCK[104,155]
DRBLOCK[125,155]
DRBLOCK[146,155]
DRBLOCK[167,155]
DRBLOCK[188,155]
DRBLOCK[209,155]
DRBLOCK[230,155]
DRBLOCK[251,155]
Rem 11
DRBLOCK[30,170]
DRBLOCK[51,170]
DRBLOCK[240,170]
DRBLOCK[261,170]
Rem 12
DRBLOCK[19,185]
DRBLOCK[40,185]
DRBLOCK[250,185]
DRBLOCK[271,185]
Rem 13
DRBLOCK[8,200]
DRBLOCK[29,200]
DRBLOCK[260,200]
DRBLOCK[281,200]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(12)
YCOORD1=Y Hard(186)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure SCR5
CHPALETTE2
Cls 0
TILES=76 : COUNT=0
BL1X=150 : BL1Y=20
Rem 1
DRBLOCK[150,20]
Rem 2
DRBLOCK[139,35]
DRBLOCK[160,35]
Rem 3
DRBLOCK[128,50]
DRBLOCK[149,50]
DRBLOCK[170,50]
Rem 4
DRBLOCK[117,65]
DRBLOCK[138,65]
DRBLOCK[159,65]
DRBLOCK[180,65]
Rem 5
DRBLOCK[22,80]
DRBLOCK[43,80]
DRBLOCK[64,80]
DRBLOCK[85,80]
DRBLOCK[106,80]
DRBLOCK[127,80]
DRBLOCK[148,80]
DRBLOCK[169,80]
DRBLOCK[190,80]
DRBLOCK[211,80]
DRBLOCK[232,80]
DRBLOCK[253,80]
DRBLOCK[274,80]
Rem 6
DRBLOCK[32,95]
DRBLOCK[53,95]
DRBLOCK[74,95]
DRBLOCK[95,95]
DRBLOCK[116,95]
DRBLOCK[137,95]
DRBLOCK[158,95]
DRBLOCK[179,95]
DRBLOCK[200,95]
DRBLOCK[221,95]
DRBLOCK[242,95]
DRBLOCK[263,95]
Rem 7
DRBLOCK[42,110]
DRBLOCK[63,110]
DRBLOCK[84,110]
DRBLOCK[105,110]
DRBLOCK[126,110]
DRBLOCK[147,110]
DRBLOCK[168,110]
DRBLOCK[189,110]
DRBLOCK[210,110]
DRBLOCK[231,110]
DRBLOCK[252,110]
Rem 8
DRBLOCK[52,125]
DRBLOCK[73,125]
DRBLOCK[94,125]
DRBLOCK[115,125]
DRBLOCK[136,125]
DRBLOCK[157,125]
DRBLOCK[178,125]
DRBLOCK[199,125]
DRBLOCK[220,125]
DRBLOCK[241,125]
Rem 9
DRBLOCK[62,140]
DRBLOCK[83,140]
DRBLOCK[104,140]
DRBLOCK[125,140]
DRBLOCK[167,140]
DRBLOCK[188,140]
DRBLOCK[209,140]
DRBLOCK[230,140]
Rem 10
DRBLOCK[72,155]
DRBLOCK[93,155]
DRBLOCK[114,155]
DRBLOCK[177,155]
DRBLOCK[198,155]
DRBLOCK[219,155]
Rem 11
DRBLOCK[82,170]
DRBLOCK[103,170]
DRBLOCK[187,170]
DRBLOCK[208,170]
Rem 12
DRBLOCK[92,185]
DRBLOCK[197,185]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(96)
YCOORD1=Y Hard(171)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure SCR6
CHPALETTE2
Cls 0
TILES=115 : COUNT=0
BL1X=272 : BL1Y=20
Rem 1
DRBLOCK[20,20]
DRBLOCK[41,20]
DRBLOCK[62,20]
DRBLOCK[83,20]
DRBLOCK[104,20]
DRBLOCK[125,20]
DRBLOCK[146,20]
DRBLOCK[167,20]
DRBLOCK[188,20]
DRBLOCK[209,20]
DRBLOCK[230,20]
DRBLOCK[251,20]
DRBLOCK[272,20]
Rem 2
DRBLOCK[30,35]
DRBLOCK[51,35]
DRBLOCK[72,35]
DRBLOCK[93,35]
DRBLOCK[114,35]
DRBLOCK[135,35]
DRBLOCK[156,35]
DRBLOCK[177,35]
DRBLOCK[198,35]
DRBLOCK[219,35]
DRBLOCK[240,35]
DRBLOCK[261,35]
Rem 3
DRBLOCK[40,50]
DRBLOCK[61,50]
DRBLOCK[103,50]
DRBLOCK[124,50]
DRBLOCK[166,50]
DRBLOCK[187,50]
DRBLOCK[229,50]
DRBLOCK[250,50]
Rem 4
DRBLOCK[50,65]
DRBLOCK[71,65]
DRBLOCK[92,65]
DRBLOCK[113,65]
DRBLOCK[176,65]
DRBLOCK[197,65]
DRBLOCK[218,65]
DRBLOCK[239,65]
Rem 5
DRBLOCK[60,80]
DRBLOCK[81,80]
DRBLOCK[102,80]
DRBLOCK[186,80]
DRBLOCK[207,80]
DRBLOCK[228,80]
Rem 6
DRBLOCK[70,95]
DRBLOCK[91,95]
DRBLOCK[196,95]
DRBLOCK[217,95]
Rem 7
DRBLOCK[59,110]
DRBLOCK[80,110]
DRBLOCK[101,110]
DRBLOCK[185,110]
DRBLOCK[206,110]
DRBLOCK[227,110]
Rem 8
DRBLOCK[48,125]
DRBLOCK[69,125]
DRBLOCK[90,125]
DRBLOCK[111,125]
DRBLOCK[174,125]
DRBLOCK[195,125]
DRBLOCK[216,125]
DRBLOCK[237,125]
Rem 9
DRBLOCK[37,140]
DRBLOCK[58,140]
DRBLOCK[100,140]
DRBLOCK[121,140]
DRBLOCK[163,140]
DRBLOCK[184,140]
DRBLOCK[226,140]
DRBLOCK[247,140]
Rem 10
DRBLOCK[26,155]
DRBLOCK[47,155]
DRBLOCK[110,155]
DRBLOCK[131,155]
DRBLOCK[152,155]
DRBLOCK[173,155]
DRBLOCK[236,155]
DRBLOCK[257,155]
Rem 11
DRBLOCK[15,170]
DRBLOCK[36,170]
DRBLOCK[120,170]
DRBLOCK[141,170]
DRBLOCK[162,170]
DRBLOCK[246,170]
DRBLOCK[267,170]
Rem 12
DRBLOCK[4,185]
DRBLOCK[25,185]
DRBLOCK[46,185]
DRBLOCK[67,185]
DRBLOCK[88,185]
DRBLOCK[109,185]
DRBLOCK[130,185]
DRBLOCK[151,185]
DRBLOCK[172,185]
DRBLOCK[193,185]
DRBLOCK[214,185]
DRBLOCK[235,185]
DRBLOCK[256,185]
DRBLOCK[277,185]
Rem 13
DRBLOCK[14,200]
DRBLOCK[35,200]
DRBLOCK[56,200]
DRBLOCK[77,200]
DRBLOCK[98,200]
DRBLOCK[119,200]
DRBLOCK[140,200]
DRBLOCK[161,200]
DRBLOCK[182,200]
DRBLOCK[203,200]
DRBLOCK[224,200]
DRBLOCK[245,200]
DRBLOCK[266,200]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(18)
YCOORD1=Y Hard(186)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure SCR7
Load "crock.abk"
Music 1 : Mvolume 63 : Tempo 16
CHPALETTE3
BL1X=20 : BL1Y=20
TILES=109 : COUNT=0
Cls 0
Rem 1
DRBLOCK[20,20]
DRBLOCK[272,20]
Rem 2
DRBLOCK[30,35]
DRBLOCK[51,35]
DRBLOCK[72,35]
DRBLOCK[93,35]
DRBLOCK[114,35]
DRBLOCK[135,35]
DRBLOCK[156,35]
DRBLOCK[177,35]
DRBLOCK[198,35]
DRBLOCK[219,35]
DRBLOCK[240,35]
DRBLOCK[261,35]
Rem 3
DRBLOCK[40,50]
DRBLOCK[61,50]
DRBLOCK[82,50]
DRBLOCK[103,50]
DRBLOCK[124,50]
DRBLOCK[145,50]
DRBLOCK[166,50]
DRBLOCK[187,50]
DRBLOCK[208,50]
DRBLOCK[229,50]
DRBLOCK[250,50]
Rem 4
DRBLOCK[29,65]
DRBLOCK[50,65]
DRBLOCK[113,65]
DRBLOCK[176,65]
DRBLOCK[239,65]
DRBLOCK[260,65]
Rem 5
DRBLOCK[18,80]
DRBLOCK[39,80]
DRBLOCK[60,80]
DRBLOCK[102,80]
DRBLOCK[186,80]
DRBLOCK[228,80]
DRBLOCK[249,80]
DRBLOCK[270,80]
Rem 6
DRBLOCK[7,95]
DRBLOCK[28,95]
DRBLOCK[70,95]
DRBLOCK[91,95]
DRBLOCK[112,95]
DRBLOCK[133,95]
DRBLOCK[154,95]
DRBLOCK[175,95]
DRBLOCK[196,95]
DRBLOCK[217,95]
DRBLOCK[259,95]
DRBLOCK[280,95]
Rem 7
DRBLOCK[17,110]
DRBLOCK[38,110]
DRBLOCK[80,110]
DRBLOCK[101,110]
DRBLOCK[122,110]
DRBLOCK[143,110]
DRBLOCK[164,110]
DRBLOCK[185,110]
DRBLOCK[206,110]
DRBLOCK[248,110]
DRBLOCK[269,110]
Rem 8
DRBLOCK[27,125]
DRBLOCK[48,125]
DRBLOCK[69,125]
DRBLOCK[90,125]
DRBLOCK[111,125]
DRBLOCK[132,125]
DRBLOCK[153,125]
DRBLOCK[174,125]
DRBLOCK[195,125]
DRBLOCK[216,125]
DRBLOCK[237,125]
DRBLOCK[258,125]
Rem 9
DRBLOCK[37,140]
DRBLOCK[58,140]
DRBLOCK[121,140]
DRBLOCK[142,140]
DRBLOCK[163,140]
DRBLOCK[226,140]
DRBLOCK[247,140]
Rem 10
DRBLOCK[47,155]
DRBLOCK[68,155]
DRBLOCK[131,155]
DRBLOCK[152,155]
DRBLOCK[215,155]
DRBLOCK[236,155]
Rem 11
DRBLOCK[57,170]
DRBLOCK[78,170]
DRBLOCK[120,170]
DRBLOCK[141,170]
DRBLOCK[162,170]
DRBLOCK[204,170]
DRBLOCK[225,170]
Rem 12
DRBLOCK[67,185]
DRBLOCK[88,185]
DRBLOCK[109,185]
DRBLOCK[130,185]
DRBLOCK[151,185]
DRBLOCK[172,185]
DRBLOCK[193,185]
DRBLOCK[214,185]
Rem 13
DRBLOCK[77,200]
DRBLOCK[98,200]
DRBLOCK[119,200]
DRBLOCK[140,200]
DRBLOCK[161,200]
DRBLOCK[182,200]
DRBLOCK[203,200]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(81)
YCOORD1=Y Hard(186)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure SCR8
CHPALETTE3
Cls 0
BL1X=150 : BL1Y=20
TILES=62 : COUNT=0
Rem 1
DRBLOCK[129,20]
DRBLOCK[150,20]
Rem 2
DRBLOCK[118,35]
DRBLOCK[139,35]
DRBLOCK[160,35]
Rem 3
DRBLOCK[107,50]
DRBLOCK[128,50]
DRBLOCK[149,50]
DRBLOCK[170,50]
Rem 4
DRBLOCK[96,65]
DRBLOCK[117,65]
DRBLOCK[138,65]
DRBLOCK[159,65]
DRBLOCK[180,65]
Rem 5
DRBLOCK[85,80]
DRBLOCK[106,80]
DRBLOCK[127,80]
DRBLOCK[148,80]
DRBLOCK[169,80]
DRBLOCK[190,80]
Rem 6
DRBLOCK[74,95]
DRBLOCK[95,95]
DRBLOCK[116,95]
DRBLOCK[137,95]
DRBLOCK[158,95]
DRBLOCK[179,95]
DRBLOCK[200,95]
Rem 7
DRBLOCK[63,110]
DRBLOCK[84,110]
DRBLOCK[105,110]
DRBLOCK[126,110]
DRBLOCK[147,110]
DRBLOCK[168,110]
DRBLOCK[189,110]
DRBLOCK[210,110]
Rem 8
DRBLOCK[73,125]
DRBLOCK[94,125]
DRBLOCK[115,125]
DRBLOCK[136,125]
DRBLOCK[157,125]
DRBLOCK[178,125]
DRBLOCK[199,125]
Rem 9
DRBLOCK[83,140]
DRBLOCK[104,140]
DRBLOCK[125,140]
DRBLOCK[146,140]
DRBLOCK[167,140]
DRBLOCK[188,140]
Rem 10
DRBLOCK[93,155]
DRBLOCK[114,155]
DRBLOCK[135,155]
DRBLOCK[156,155]
DRBLOCK[177,155]
Rem 11
DRBLOCK[103,170]
DRBLOCK[124,170]
DRBLOCK[145,170]
DRBLOCK[166,170]
Rem 12
DRBLOCK[113,185]
DRBLOCK[134,185]
DRBLOCK[155,185]
Rem 13
DRBLOCK[123,200]
DRBLOCK[144,200]
Home
Print "Lives =";LIVES
Locate 26,0 : Print "Score =";SCORE
XCOORD1=X Hard(127)
YCOORD1=Y Hard(186)
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
End Proc
Procedure DRBLOCK[X,Y]
Ink 1
Polygon X,Y To X,Y+10 To X+9,Y+15 To X+9,Y+5 To X,Y
Ink 2
Polygon X+10,Y+5 To X+10,Y+15 To X+20,Y+10 To X+20,Y To X+10,Y+5
Ink 3
Polygon X,Y To X+9,Y+5 To X+10,Y+5 To X+20,Y To X+10,Y-5 To X+9,Y-5 To X,Y
End Proc
Procedure RBOW
Auto View Off
Set Rainbow 0,0,90,"","",""
Rainbow 0,0,40,260
Wave 0 To 15
TEMP1=1
TEMP2=1
For LOP=89 To 0 Step -1
Rain(0,LOP)=TEMP2*1
Rain(0,89-LOP)=TEMP2*1
Play 96-(20+(LOP/2)),0
View
Add TEMP1,1,1 To 2
If TEMP1=2 Then Inc TEMP2
Next LOP
End Proc
Procedure CHECK
Wait Vbl
XPOS1=(X Sprite(8)-3)
YPOS1=(Y Sprite(8)+14)
XPOS=X Screen(XPOS1)
YPOS=Y Screen(YPOS1)
If Point(XPOS,YPOS)=3 Then CHBLOCK[XPOS-1,YPOS]
If Point(XPOS,YPOS)=0 Then DEAD
End Proc
Procedure CHBLOCK[X,Y]
Ink 4
Polygon X,Y To X+9,Y+5 To X+10,Y+5 To X+20,Y To X+10,Y-5 To X+9,Y-5 To X,Y
COUNT=COUNT+1
SCORE=SCORE+10
End Proc
Procedure CHBLOCK2[X,Y]
Ink 5
Polygon X,Y To X+9,Y+5 To X+10,Y+5 To X+20,Y To X+10,Y-5 To X+9,Y-5 To X,Y
COUNT=COUNT+1
SCORE=SCORE+20
End Proc
Procedure CHBLOCK3[X,Y]
Ink 6
Polygon X,Y To X+9,Y+5 To X+10,Y+5 To X+20,Y To X+10,Y-5 To X+9,Y-5 To X,Y
COUNT=COUNT+1
SCORE=SCORE+30
End Proc
Procedure DEAD
LIVES=LIVES-1
Home : Print "Lives =";LIVES
If LIVES=0 Then FINNISH
Sprite 8,XCOORD1,YCOORD1,2 : Channel 1 To Sprite 8
Wait 50
End Proc
Procedure FINNISH
Shift Up 10,1,4,1
Wait 150
Auto View Off
Sprite Off
Shift Off
Music Off
Rainbow 0,0,0,0
View
HIGHSCORE
Wait 150
LDER
End Proc
Procedure COMPLETE
Wait 100
Sprite Off
Auto View Off
Rainbow 0,0,0,0
Set Rainbow 0,0,4095,"","","(2,1,1)"
Rainbow 0,1,40,260
Shift Up 10,1,4,1
For C=40 To 260
View
Rainbow 0,C,40,260
Wait 1
Next C
Shift Off
RBOW
End Proc
Procedure INITHIGHSCORES
A=0 : Repeat
HIGHNAME$(A)=Left$("Hopper"+Space$(20),20)
HIGH(A)=11000-(A*1000)
Inc A
Until A=10
End Proc
Procedure HIGHSCORE
A=0 : Repeat
If SCORE>=HIGH(A)
HIGHADD
A=11
End If
Inc A
Until A>=10
Auto View Off
Screen Open 2,320,10,16,Lowres
Curs Off : Flash Off
Screen To Back 2
Auto View On
HIGHLINE["High Scores",12,61]
A=0 : Repeat
H$=HIGHNAME$(A)+Space$(5)+Right$("000000"+Mid$(Str$(HIGH(A)),2),6)
HIGHLINE[H$,15,A+62]
Inc A
Until A=10
Screen Close 2
Put Block 61,80,10
A=0 : Repeat
Put Block A+62,50,30+A*15
Inc A
Until A=10
End Proc
Procedure HIGHADD
Screen Open 2,230,25,16,Lowres
Curs Off : Flash Off
Set Rainbow 2,3,25,"","","(1,2,8)"
Ink 5 : Bar 0,0 To 320,25
Ink 3 : Box 0,0 To 320,25
Paper 0 : Ink 6
Locate 0,0
Auto View On
Centre "Enter Your Name!"
Rainbow 2,0,Y Hard(1),25
Paper 3 : Pen 5
Locate 0,1
Screen To Front 2
Line Input ":";NAME$
NAME$=Left$(NAME$+Space$(20),20)
B=9 : While B>A
HIGH(B)=HIGH(B-1)
HIGHNAME$(B)=HIGHNAME$(B-1)
Dec B : Wend
HIGH(A)=SCORE
HIGHNAME$(A)=NAME$
Screen Close 2
End Proc
Procedure HIGHLINE[A$,C,B]
SC=Screen
Screen 2
Locate 0,0 : Paper 0 : Pen C
Print A$;
Get Block B,0,0,Len(A$)*8,10,1
Screen SC
End Proc
End