home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1978-05-20 | 20.1 KB | 796 lines |
- Set Buffer 10
- '******************Re-Written In AMOS,*****************
- '*************Including AMAL And Scrolling,************
- '***************By Gary Symons BSc(Hons)***************
- 'Note,what may seem redundant is there for timing!
- Dir$="SkateTribe:"
- If Mouse Key=3 Then Erase 1 : Erase 3 : Erase 5 : List Bank : Bell : End
- 'Break Off
- Erase 5
- Dim A$(27)
- Load "amal_data.abk",5
- M=Start(5)
- For F=1 To 26
- A$(F)=""
- Repeat
- A$(F)=A$(F)+Chr$(Peek(M))
- Inc M
- Until Peek(M)=255
- Inc M
- Next F
- Hide
- Auto View Off
- Screen Open 0,320,200,16,Lowres : Paper 0 : Clw : Curs Off : Flash Off
- Double Buffer
- Erase 5
- Erase 1 : Load "credsp.abk",1
- Load "broken.abk"
- Autoback 0 : Update Off
- For I=1 To 11 : Channel I To Bob I : Next I
- Channel 14 To Sprite 6
- Channel 15 To Sprite 0
- Channel 12 To Sprite 0
- Screen Open 1,320,200,16,Lowres : Paper 0 : Clw : Curs Off : Flash Off
- Get Sprite Palette
- Dim HGH$(9) : Dim HGH(9)
- For F=1 To 9 : HGH(F)=10000-1000*F : Next F
- HGH$(1)="G Symons" : HGH$(2)="Lorna..." : HGH$(3)="Vickrage"
- HGH$(4)="Peter J." : HGH$(5)="Hickman " : HGH$(6)="D J....."
- HGH$(7)="Nuttall " : HGH$(8)="J M Wood" : HGH$(9)="........"
- Dim T$(7)
- Colour 0,$0
- Curs Off
- Cls
- Flash Off
- '
- Erase 5
- Load "back1e.ABK",5
- Unpack 5 To 1
- Screen To Front 0 : Screen 0 : Cls 0
- Get Palette 1
- Colour 0,$0
- '
- View
- Screen Copy 1 To Logic
- Gosub ROLL_ON_SCREEN
- Music 1 : Tempo 17 : MV=63 : Mvolume MV
- Screen 0 : Get Sprite Palette %11111111111111110000000000000000
- A$="A:L X=X+1&511;P;If X<>255 J A;FR0=0T100;NR0;J A"
- Channel 0 To Sprite 0
- Sprite 0,0,198,1
- Amal 0,A$
- Amal On
- Sprite Update On
- H_F=False : F_F=False
- Autoback 0
- F_W=25
- Do
- If H_F
- Dec F_W : Add MV,-2 : Mvolume MV
- Else
- If Fire(1)
- Fade 4 : H_F=True
- End If
- End If
- Exit If F_W<1
- Screen Copy Physic,0,8,24,193 To Logic,0,0
- Screen Copy Physic,0,0,24,8 To Logic,0,185
- Screen Copy Physic,48,4,64,193 To Logic,48,0
- Screen Copy Physic,48,0,64,4 To Logic,48,189
- Screen Copy Physic,64,2,80,193 To Logic,64,0
- Screen Copy Physic,64,0,80,2 To Logic,64,191
- Screen Copy Physic,240,2,256,193 To Logic,240,0
- Screen Copy Physic,240,0,256,2 To Logic,240,191
- Screen Copy Physic,256,1,272,193 To Logic,256,0
- Screen Copy Physic,256,0,272,1 To Logic,256,192
- Screen Copy Physic,272,5,340,193 To Logic,272,0
- Screen Copy Physic,272,0,340,5 To Logic,272,188
- Screen Swap
- Wait Vbl
- Loop
- Music Off : Sprite Off : Amal Off : Wait Vbl : Update Off
- SKILL=0
- Gosub HIGH_SCORE_BIT
- Repeat
- SC=1
- LEV=2
- LIVES=7
- Gosub CHEAT_CHECK
- '
- Repeat
- Gosub SET_UP_LEVEL : Wait Vbl
- Noise To 1
- Set Envel 0,3 To 50,0
- A$="GAME"+Str$(LEV)
- A$=A$-" "
- Gosub A$
- '
- Music Off
- If LEV>10 Then Amal Freeze : Fade 5 : Wait 70
- Sprite Off : Bob Off
- Amal Off
- Sprite Update : Bob Update
- If LEV<11
- Gosub STAGE_FILLER : Inc LEV : Gosub PRIZES_GALORE
- End If
- Until LEV>10
- '
- Gosub HIGH_SCORE_BIT
- Until False
- '
- GAME2:
- Gosub BCK_HIT
- Return
- '
- GAME3:
- Repeat
- Synchro
- Screen Copy 1,64,COUNT1,74,200 To Logic,64,0
- Screen Copy 1,64,0,74,COUNT1 To Logic,64,200-COUNT1
- Add COUNT1,12,0 To 188
- Screen Copy 1,74,COUNT2,256,200 To Logic,74,0
- Screen Copy 1,74,0,256,COUNT2 To Logic,74,200-COUNT2
- Add COUNT2,16,0 To 184
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=Spritebob Col(0,1 To 5) : Gosub DETCT_COL
- Until Timer>TIM or LEV>10
- Return
- '
- GAME4:
- OF1=8-Amreg(22) : OF2=200-OF1
- OF3=5-Amreg(22) : OF4=200-OF3
- Repeat
- Synchro
- Screen Copy 1,32,COUNT1,128,200 To Logic,32,0
- Screen Copy 1,32,0,128,COUNT1 To Logic,32,200-COUNT1
- Screen Copy 1,128,COUNT2,192,200 To Logic,128,0
- Screen Copy 1,128,0,192,COUNT2 To Logic,128,200-COUNT2
- Screen Copy 1,192,COUNT1,288,200 To Logic,192,0
- Screen Copy 1,192,0,288,COUNT1 To Logic,192,200-COUNT1
- Add COUNT1,OF1,0 To OF2
- Add COUNT2,OF3,0 To OF4
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=(Amreg(23)>110) and(Amreg(23)<210) or(Spritebob Col(0,1 To 1))
- CP1=CP1 and(Amreg(9)=0) : Gosub DETCT_COL
- Until Timer>TIM or LEV>10
- Return
- '
- GAME5:
- OF1=8-Amreg(22) : OF2=200-OF1
- OF3=-4+Amreg(22) : OF4=200+OF3
- Repeat
- Synchro
- Screen Copy 1,32,COUNT1,288,200 To Logic,32,0
- Screen Copy 1,32,0,288,COUNT1 To Logic,32,200-COUNT1
- Screen Copy 1,288,COUNT2,320,200 To Logic,288,0
- Screen Copy 1,288,0,320,COUNT2 To Logic,288,200-COUNT2
- Add COUNT1,OF1,0 To OF2
- Add COUNT2,OF3,0 To OF4
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=(Amreg(2)=2) or(Spritebob Col(0,1 To 1))
- CP1=CP1 and(Amreg(9)=0)
- Gosub DETCT_COL
- Until Timer>TIM or LEV>10
- Return
- '
- GAME6:
- Repeat
- Synchro
- Screen Copy Physic,288,4,320,44 To Logic,288,0
- Screen Copy Physic,288,44,320,200 To Logic,288,40
- Screen Copy Physic,288,0,320,4 To Logic,288,196
- Screen Copy 1,208,COUNT2,288,200 To Logic,208,0
- Screen Copy 1,208,0,288,COUNT2 To Logic,208,200-COUNT2
- Screen Copy 1,0,COUNT1,208,200 To Logic,0,0
- Screen Copy 1,0,0,208,COUNT1 To Logic,0,200-COUNT1
- Add COUNT1,8,0 To 192
- Add COUNT2,2,0 To 198
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=(Amreg(23)>191) or(Spritebob Col(0,1 To 1))
- CP1=CP1 and(Amreg(9)=0) : Gosub DETCT_COL
- Until Timer>TIM or LEV>10
- Return
- '
- '
- GAME7:
- Repeat
- Synchro
- Screen Copy 1,0,COUNT1,320,200 To Logic,0,0
- Screen Copy 1,0,0,320,COUNT1 To Logic,0,200-COUNT1
- Add COUNT1,5,0 To 195
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=Spritebob Col(0,1 To 7) : Gosub DETCT_COL
- Amreg(1,8)=Peek(PT)
- Amreg(1,9)=Peek(PT+1)
- Add PT,2
- If Amreg(8,9)=1 Then Add CLCT,10 : Play 1,90,0 : Amreg(8,9)=0
- If Amreg(12)=0 Then Timer=TIM+250 : Fade 4 : FAD_MUS
- Until Timer>TIM or LEV>10
- Return
- '
- '
- GAME8:
- Repeat
- Synchro
- Screen Copy Physic,64,8,256,28 To Logic,64,0
- Screen Copy Physic,64,28,256,108 To Logic,64,20
- Screen Copy 1,64,100,256,140 To Logic,64,100
- Screen Copy Physic,0,0,64,1 To Logic,0,199
- Screen Copy Physic,0,1,64,200 To Logic,0,0
- Screen Copy Physic,256,0,320,1 To Logic,256,199
- Screen Copy Physic,256,1,320,200 To Logic,256,0
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=Spritebob Col(0,1 To 2) : Gosub DETCT_COL
- If Amreg(22)=0 Then Bob 2,320-Peek(PT),Peek(PT+1),28
- Bob 1,Peek(PT),Peek(PT+1),28 : Add PT,2
- Until Timer>TIM or LEV>10
- Return
- '
- GAME9:
- S1=0 : S2=1
- Repeat
- Synchro
- Screen Copy 1,241,COUNT0,280,200 To Logic,241,0
- Screen Copy 1,241,0,280,COUNT0 To Logic,241,200-COUNT0
- Screen Copy 1,50,COUNT1,241,200 To Logic,50,0
- Screen Copy 1,50,0,241,COUNT1 To Logic,50,200-COUNT1
- Screen Copy 1,32,COUNT2,50,200 To Logic,32,0
- Screen Copy 1,32,0,50,COUNT2 To Logic,32,200-COUNT2
- Screen Copy 1,0,COUNT3,32,200 To Logic,S1,0
- Screen Copy 1,0,0,32,COUNT3 To Logic,S1,200-COUNT3
- Add COUNT0,-4,0 To 196
- Add COUNT1,2,0 To 198
- Add COUNT2,8,0 To 192
- Add COUNT3,6,0 To 194
- Add S1,S2
- If S1>7 Then S2=-1
- If S1<1 Then S2=1
- Bob Draw
- Screen Swap
- Sprite Update
- CP1=Spritebob Col(0,1 To 1) : Gosub DETCT_COL
- Until Timer>TIM or LEV>10
- Return
- '
- GAME10:
- Gosub BCK_HIT
- Return
- '
- BCK_HIT:
- CNT=0
- If LEV=2
- OF1=10-Amreg(22)
- Else
- OF1=8-Amreg(22) : OF4=12-Amreg(22) : OF5=200-OF4
- End If
- OF2=OF1+20 : OF3=200-OF1
- Repeat
- Synchro
- If LEV=2
- Screen Copy Physic,0,OF1,320,OF2 To Logic,0,0
- Screen Copy Physic,0,OF2,320,200 To Logic,0,20
- Screen Copy 1,0,COUNT2,320,COUNT2+OF1 To Logic,0,OF3
- Add COUNT2,OF1,0 To OF3
- Else
- Screen Copy Physic,32,OF1,320,OF2 To Logic,32,0
- Screen Copy Physic,32,OF2,320,200 To Logic,32,20
- Screen Copy 1,32,COUNT2,320,COUNT2+OF1 To Logic,32,OF3
- Screen Copy 1,0,COUNT1,32,200 To Logic,0,0
- Screen Copy 1,0,0,28,COUNT1 To Logic,0,200-COUNT1
- Add COUNT1,OF4,0 To OF5
- Add COUNT2,OF1,0 To OF3
- End If
- Bob Draw
- Screen Swap
- Sprite Update
- Add CNT,1,0 To 3
- If CNT=0 and COUNT2>63
- Add PT,2
- If Peek(PT+1)>0 and Not FADING
- Bob 1,Peek(PT),168,OBJST+Peek(PT+1)
- End If
- Else
- Bob Off 1
- End If
- MX=Amreg(23)
- CP1=(Point(MX,50)<12)
- CP1=CP1 or(Point(MX-7,55)<12)
- CP1=CP1 or(Point(MX+7,55)<12)
- CP1=CP1 and(Amreg(9)=0)
- Gosub DETCT_COL
- '
- If Amreg(2)=1
- Inc CLCT
- Play 1,70,0
- Amreg(2)=0
- End If
- Until Timer>TIM or LEV>10
- Return
- '
- SET_UP_SCREEN:
- If(LEV mod 4)=0 Then Load "lament.abk"
- If(LEV mod 4)=1 Then Load "cag.abk"
- If(LEV mod 4)=2 Then Load "broken.abk"
- If(LEV mod 4)=3 Then Load "chaos.abk"
- Screen 0
- Autoback 1 : Colour 0,0 : Cls 0 : Autoback 0
- If LEV=2 Then Load "bushbeg.abk",5 : Unpack 5 To 1
- If LEV=3 Then Load "trojans.abk",5 : Unpack 5 To 1
- Screen 0
- Screen Copy 1 To Logic
- Erase 5 : Load F$,5 : Unpack 5 To 1 : Colour 0,0
- Get Sprite Palette %11111111111111110000000000000000
- If LEV=2 Then Erase 5 : Load "lev1.abk",5 : Colour 8,$333
- If LEV=7 Then Erase 5 : Load "lev3.abk",5
- If LEV=8 Then Erase 5 : Load "lev2.abk",5
- If LEV=10 Then Erase 5 : Load "lev4.abk",5 : Colour 8,$333
- PT=Start(5)
- Screen 0
- Get Palette 1
- If LEV<>2 and LEV<>3 Then Screen Copy 1 To Logic
- Gosub ROLL_ON_SCREEN
- If LEV=3 Then Screen Copy 1 To Logic
- If LEV=2 Then Sprite 0,X Hard(0,120),Y Hard(0,50),11
- Sprite Update
- If LEV=2
- Wait 100
- Play 14,7,12
- Play 14,7,5
- Play 14,7,5
- Play 14,7,12
- Play 14,7,12
- Play 14,9,12
- Play 14,7,12
- Play 14,11,12
- Repeat : Until Joy(1)<>0
- End If
- Timer=0
- Autoback 0
- Music 1 : Tempo 17 : Mvolume 63
- Return
- '
- DETCT_COL:
- If CP1
- If SAFE<1 and Timer<TIM2
- Amreg(2)=0
- Shoot
- Gosub LOSE_A_LIFE
- End If
- End If
- If Timer>TIM2
- If FADING and(MV>1) : Mvolume MV : Dec MV : End If
- If Not FADING : FADING=True : Fade 7 : MV=63 : End If
- If LEV<>7 : Sprite 0,,Y Sprite(0)+4, : End If
- End If
- If SAFE>0 Then Dec SAFE
- Inc TS
- Return
- '
- STAGE_FILLER:
- CLCT=CLCT*10
- Load "lament.abk"
- Erase 5
- Load "dsc8.abk",5
- Unpack 5 To 1
- Screen 0 : Autoback 1 : Cls 0
- Screen To Front 0
- Flash Off : Curs Off
- Screen Copy 1,160,150,314,200 To Physic,80,150
- Screen Copy 1,160,150,314,200 To Logic,80,150
- Pen 15
- Locate 11,2 : Print "END OF LEVEL";LEV-1
- Locate 11,5 : Pen 4 : Print "SCORE: "
- Locate 11,7 : Print "BONUS: "
- Locate 11,9 : Print " CASH..."
- Locate 11,12 : Print "LIVES: ";LIVES
- Music 1 : Tempo 17 : Mvolume 63
- Fade 8 To 1 : Wait 50
- Pen 6
- For F=1 To TS Step 10
- Add SC,100 : Add TS,-10
- Locate 25-Len(Str$(SC)),5 : Print SC : Locate 25-Len(Str$(TS)),7
- If TS>0 Then Print TS : Else Print 0
- Next F
- Pen 6
- If CLCT>0
- For F=1 To CLCT
- Add SC,100 : Locate 25-Len(Str$(F)),9 : Print F
- Next F
- End If
- Locate 2,20 : Pen 10 : Print "FIRE!" : Locate 32,20 : Print "FIRE!";
- Repeat
- Until Fire(1)
- Autoback 0
- Screen To Front 0
- Fade 3
- SC_ST=Y Hard(0,0)
- Screen Hide 1
- MV=63
- For G=2 To 200 Step 4
- Screen Display 0,,G+SC_ST,,
- Dec MV : Mvolume MV
- View
- Wait Vbl
- Next G
- Music Off
- Screen Display 0,,SC_ST,,
- Screen Show 1 : View : Wait 20
- Return
- '
- PRIZES_GALORE:
- Load "cag.abk"
- Screen 0
- Autoback 1 : Cls 0 : Autoback 0
- Get Palette 1 : PRZ=LEV-1
- If PRZ=2 Then Screen Copy 1,0,0,80,50 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
- If PRZ=3 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
- If PRZ=4 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,50,160,100 To Physic,160,20
- If PRZ=5 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
- If PRZ=6 Then Screen Copy 1,0,100,80,150 To Physic,80,20 : Screen Copy 1,80,100,160,150 To Physic,160,20
- If PRZ=7 Then Screen Copy 1,0,100,80,150 To Physic,80,20 : Screen Copy 1,80,50,160,100 To Physic,160,20
- If PRZ=8 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,0,150,80,200 To Physic,160,20
- If PRZ=9 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
- If PRZ=10 Then Screen Copy 1,80,150,160,200 To Physic,120,20 : Add SC,LIVES*1000
- Screen Copy Physic To Logic
- Wait 25
- Pen 15 : Locate 0,1 : Centre T$(1)
- For F=1 To 5
- Locate 0,F*2+8 : Pen 15 : Centre T$(1+F)
- Next F
- Music 1 : Tempo 17 : Mvolume 63
- Appear Logic To Physic,51
- Repeat : Until Fire(1)
- Fade 4 : FAD_MUS : Return
- '
- LOSE_A_LIFE:
- HOLD=Timer
- If CHEAT<>1 Then Dec LIVES
- If LEV<>7 and LEV<>8
- B_X=100
- B_Y=Y Screen(0,Y Sprite(0))+32
- B_W=160
- If B_Y+100>199
- B_H=200-B_Y
- Else
- B_H=100
- End If
- Wait Vbl : Screen Swap
- If LEV=2 or LEV=10
- Get Block 1,B_X,B_Y,B_W,B_H
- End If
- Paste Bob B_X,B_Y,CRASH
- Screen Swap : Wait Vbl
- End If
- Boom : For F=1 To 30 : Play 60-F,1 : Play 10+F,0 : Next F : Shoot
- Wait Vbl : Screen Swap
- If LEV=2 or LEV=10
- Put Block 1,B_X,B_Y
- Del Block
- End If
- Screen Swap
- SAFE=22 : If LEV=5 Then SAFE=10
- Timer=HOLD : Add TS,-100 : If LIVES<1 Then LEV=12 : Add SC,TS : Timer=TIM
- Return
- '
- HIGH_SCORE_BIT:
- Load "chaos.abk"
- If SC<1 and TIM<>0 Then SC=50
- If SC>HGH(8)
- Erase 5
- Screen 1
- Colour 0,0 : Colour 1,0 : Curs Off : Flash Off : Colour 3,0
- Paper 0 : Pen 1 : Clw
- Clw : Screen To Front 1 : View
- Fade 5,0,$FFF,,,,,,,,,,,,,,
- Clear Key
- Locate 1,10 : Print "ENTER YOUR NAME...";
- SC$=""
- L=1
- Do
- A$=Upper$(Inkey$)
- L=Len(SC$)
- If(Scancode=65) and(L>0) : SC$=Left$(SC$,L-1) : End If
- If(L<8) and(A$>=" ")
- SC$=SC$+A$
- End If
- Locate 20,10 : Print SC$;" "
- Exit If A$=Chr$(13)
- Loop
- SC$=SC$+" " : SC$=Left$(SC$,8)
- Fade 4 : Wait 70
- CHEAT=0-(SC$="HORTON I")
- Screen 0 : Autoback 1 : Cls 0 : Autoback 0 : Screen To Front 0 : View
- For F=8 To 1 Step -1
- If SC>HGH(F)
- HGH(F+1)=HGH(F) : HGH$(F+1)=HGH$(F) : HGH(F)=SC : HGH$(F)=SC$
- End If
- Next F
- End If
- Erase 5
- Load "dsc8.abk",5
- Unpack 5 To 1
- Screen 0 : Curs Off : Flash Off : Cls 0 : Screen To Front 0 : View
- Music 1 : Tempo 17 : Mvolume 63
- Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- Autoback 1 : Cls 0 : View
- For F=1 To 8 : Locate 20,(F*2)+1
- Pen 4 : If F<5 Then Pen 6 : If F=1 Then Pen 15
- Print F;" ";HGH$(F);HGH(F) : Next F
- Fade 5 To 1
- View
- Autoback 0
- A$=Str$(SKILL+1)-" "
- Locate 5,20 : Print "Difficulty(Hard 1-3 Normal):";A$;" "
- Screen Copy 1,160,121,320,130 To Logic,90,1
- Screen Copy 1,160,0,320,120 To Logic,0,24
- Wait 10
- Appear Logic To Physic,51
- Autoback 1
- Repeat
- A$=Inkey$
- If(A$>"0") and(A$<"4") Then SKILL=Val(A$)-1
- Add A,1,0 To 10
- If A=0
- If Jdown(1) : Add SKILL,-1,0 To 2 : End If
- If Jup(1) : Add SKILL,1,0 To 2 : End If
- End If
- A$=Str$(SKILL+1)-" "
- Locate 33,20 : Print A$
- Wait Vbl
- Until Fire(1)
- Fade 4
- FAD_MUS
- Cls 0
- Return
- '
- Procedure FAD_MUS
- For MV=63 To 1 Step -1
- Mvolume MV
- Wait Vbl
- Next MV
- Music Off
- End Proc
- '
- ROLL_ON_SCREEN:
- F=0
- F1=8
- F2=1
- Noise To 1
- Set Envel 0,3 To 50,0
- Do
- MV=F : Ror.l 2,MV : MV=MV and $FF : Add MV,10
- Play 1,MV,0
- Screen Copy Logic,0,F,320,F2 To Physic,0,F
- C0=F1 : C1=F1 : Inc C1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,4 : Add C1,4 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,3 : Add C1,3 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,2 : Add C1,2 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,1 : Add C1,1 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,1 : Add C1,1 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,2 : Add C1,2 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Add C0,3 : Add C1,3 : Dec F1
- Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
- Inc F : Inc F2 : Add F1,8
- Exit If F>200
- Loop
- Return
- '
- CHEAT_CHECK:
- If Mouse Key
- Screen To Front 1
- Screen 1
- Clear Key
- Colour 0,0 : Colour 1,$FFF : Colour 3,0
- Flash 2,"(F00,2)(0F0,2)(F0F,2)(FF0,2)(00F,2)(0FF,2)"
- Paper 0 : Clw : View
- Pen 2 : Locate 0,10
- Print : Centre "Lorna 'Jam' Vickrage!!!!!!!!!"
- Print : Centre "Champion"
- Print : Centre "Colour clasher!"
- Print : Print
- Pen 1
- Print "Fast :";Hex$(Fast Free,8);" ";Fast Free
- Print "Chip :";Hex$(Chip Free,8);" ";Chip Free
- Print "Total:";Hex$(Chip Free+Fast Free,8);" ";Chip Free+Fast Free
- Print "Level(1-9):";
- Repeat
- A$=Inkey$
- Until(A$>"0") and(A$<="9")
- Print A$ : LEV=Val(A$)+1
- Print "Infinite lives(Y/N):";
- Repeat
- A$=Upper$(Inkey$)
- Until(A$="Y") or(A$="N")
- Print A$
- CHEAT=(A$="Y") and 1
- Flash Off : Fade 4 : Wait 70
- Screen 0 : Screen To Front 0 : View
- End If
- Return
- '
- SET_UP_LEVEL:
- Bob Off : Sprite Off : Amal Off
- Sprite Update : Bob Update
- For I=1 To 12 : Set Bob I,-1,%1111,%11001010 : Next I
- TIM=0
- Colour 0,$0
- TIM=5900 : TS=0 : CLCT=0 : SAFE=0
- Cls 0
- Colour 0,$0
- Restore "L"+Str$(LEV)-" "
- Erase 1
- A$="SP"+Str$(LEV-1)+".ABK"
- A$=A$-" "
- Load A$,1
- Gosub OBTAIN_DATA
- '
- Timer=0
- Gosub SET_UP_SCREEN
- CP1=False
- Amreg(2)=0
- If LEV=2
- TIM=5700 : CRASH=31 : OBJST=31
- SKID=10
- Sprite 6,220,250,28
- Amal 14,A$(7)
- End If
- If LEV=3
- TIM=2000 : CRASH=36
- For I=1 To 5 : Bob I,240,159,28 : Amal I,A$(I) : Next I
- SKID=10
- End If
- If LEV=4
- TIM=3000 : CRASH=29
- Bob 1,212,212,28 : Amal 1,A$(6) : SKID=6
- End If
- If LEV=5
- TIM=4000 : CRASH=31
- Bob 1,84,200,28
- Bob 2,100,130,29
- Bob 3,144,130,30
- Amal 1,A$(13)
- Amal 2,A$(10)
- Amal 3,A$(11)
- Amal 15,A$(12)
- SKID=3
- End If
- If LEV=6
- TIM=4500 : CRASH=29
- SKID=1 : CARI=2
- Bob 1,8,-200,28
- Amal 1,A$(14)
- End If
- If LEV=7
- TIM=5000
- For I=1 To 7 : Bob I,-100,-100,29 : Amal I,A$(I+15) : Next I
- Amreg(12)=7
- Bob 8,-70,-70,28
- Amal 8,A$(15)
- Amal 15,A$(23)
- SKID=1
- End If
- If LEV=8
- TIM=2900
- Amal 15,A$(24)
- SKID=3
- End If
- If LEV=9
- TIM=3000 : CRASH=30
- SKID=1
- Bob 1,74,210,28
- Amal 1,A$(25)
- End If
- If LEV=10
- TIM=5700 : CRASH=36 : OBJST=36
- SKID=6
- Sprite 6,200,300,28
- Amal 14,A$(7)
- End If
- '
- Make Mask
- Synchro Off
- X=88 : Y=50 : BOARD=1
- If LEV=7 or LEV=8 Then Y=122 : X=94 : BOARD=25
- If LEV=3 Then X=176
- If LEV=6 Then Y=60 : X=20
- Add TIM,-TIM/3
- TIM2=TIM-100
- If LEV<>5 and LEV<>7 and LEV<>8
- Amal 15,A$(8) : Amal 12,A$(9)
- Amreg(12,0)=X : Amreg(12,1)=Y : Amreg(12,2)=BOARD
- If LEV<>2 and LEV<>3 and LEV<>9
- Amreg(12,9)=1
- Else
- Amreg(12,9)=0
- End If
- End If
- Amreg(15,7)=XMIN
- Amreg(15,8)=XMAX
- Amreg(11)=LEV
- Amreg(15,5)=SKID/3
- Amreg(15,6)=SKID/2
- If SKID=1 Then Amreg(15,5)=1 : Amreg(15,6)=1
- '
- Amreg(15,0)=X : Amreg(15,1)=Y : Amreg(15,2)=BOARD
- ADSKT=0
- If LEV=2
- Amreg(9)=1
- Else
- Amreg(9)=0
- End If
- Amal On
- FADING=False
- Amreg(22)=SKILL
- Return
- '
- OBTAIN_DATA:
- Read F$,XMIN,XMAX
- For F=1 To 6 : Read T$(F) : Next F
- COUNT0=0 : COUNT1=0 : COUNT2=0 : COUNT3=0
- Return
- '
- L2:
- Data "BUSHES.ABK",0,320
- Data "TROJAN GATE BRIDGE","Race the trojans..."
- Data "Move left and right to dodge the bombs","TURBO WHEELS ARE NOW ACTIVE!"
- Data " "," "
- '
- L3:
- Data "TROJANS2.ABK",118,204
- Data "BROKEN TRANSIT BRIDGE","Use power flip board to cross sides"
- Data "FIRE ACTIVATES FLIP ","AVOID HOLES "," Don 't misjudge jump"," "
- '
- L4:
- Data "TRANSIT.ABK",64,256
- Data "RAILROAD GLIDE","Power glide rail slide..."
- Data "Keep balance with left & right","Fire to flip to other side"," "," "
- '
- L5:
- Data "RAILROAD.ABK",0,320
- Data "MANIC METROPOLIS","Avoid Cars...","JUMP and STEER LEFT/RIGHT"
- Data " "," "," "
- '
- L6:
- Data "HOLE.ABK",20,200
- Data "AIR-O-PEDE","Move proportionally...","all directions..."
- Data "Fire to launch hydrobomb","Bomb follows your trajectory"
- Data "Destroy all AIR-O-PEDE segments"
- '
- L7:
- Data "MUSHROOM.ABK",0,320
- Data "STRATOSNAKE","Move proportionally left/right","Docking rails on ship"
- Data "Dodge snake when it lunges"," "," "
- '
- L8:
- Data "FIRESEA.ABK",94,226
- Data "DESERT GRIND","Steer sharply with GRIND-X Trucks","Dodge Bikes"
- Data "WARNING:","THE TUFTEX BOARD IS RIGID ",""
- '
- L9:
- Data "DESERTG.ABK",40,220
- Data "STREET PARTY","Dodge obstacles","collect coins","Flip Carefully"
- Data " "," "
- '
- L10:
- Data "SEAROAD.ABK",44,256
- Data "CONGRATULATIONS","You have completed the run","BONUS=1000 x LIVES LEFT"
- Data "Eternal Glory is yours"," ","Your tribe were welcomed home !"