home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
376-400
/
apd385
/
mazeman.amos
/
mazeman.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1992-04-12
|
18KB
|
545 lines
Screen Open 0,320,8,2,Lowres
Curs Off : Clw : Hide : No Icon Mask : No Mask
Dim SQ(4) : SQ(0)=1 : SQ(1)=2 : SQ(2)=4 : SQ(3)=8 : SQ(4)=16
Dim LIVES(1),SCORE(1),LEVEL(1),EATEN(1)
For F=2 To 7 : Channel F To Sprite F : Next F
Update Off : Synchro Off
'
INIT:
Flash Off : Sprite Off : Sprite Update
Unpack 6 To 0 : Screen Display 0,160,42,,
Pen 3 : PLYERS=0
Repeat
Wait 5
If Joy(1)=2 Then Add PLYERS,1,0 To 2
If Joy(1)=1 Then Add PLYERS,-1,0 To 2
Paper -(PLYERS=0) : Print At(9,18);" 1 PLAYER "
Paper -(PLYERS=1) : Print At(9,20);" 2 PLAYERS "
Paper -(PLYERS=2) : Print At(9,22);" QUIT GAME "
Until(Joy(1) and 16)=16
If PLYERS=2 Then End
Palette 0,0,0,0,0,0,0,0,0 : Ink 0 : Clw
For P=0 To PLYERS
LIVES(P)=2 : SCORE(P)=0 : LEVEL(P)=1
Gosub NXTLEVEL
Next P
P=0 : LIVE$=Chr$(169)+Chr$(169)+Chr$(169)+Chr$(169)
Clear Key
'
MAIN_LOOP:
Do
Amal Off : Sprite Off
Gosub INITAMAL
Flash Off : Fade 1 : Wait 14 : Sprite Update
Gosub SETUPSCREEN
Fade 1 To -1 : Wait 14
Gosub REDY
Amal On
Synchro : Wait Vbl : Sprite Update
BONUS=41 : SLOW=0 : T=0
While EATEN(P)
If Inkey$=Chr$(27) Then Goto INIT
If(Joy(1) and 16)
Print At(14*P,31);" PAUSED ";
While(Joy(1) and 16) : Wend
While(Joy(1) and 16)=0
If Key State(20) and Key State(19) and Key State(18) and Key State(54) and Key State(32)
EATEN(P)=0
End If
Wend
While(Joy(1) and 16) : Wend
Print At(14*P,31);" ";At(14*P,31);SCORE(P);
End If
LOC=Amreg(3)
Amreg(7,9)=Peek(MAZE+LOC+1000)
Amreg(2,9)=Peek(MAZE+Amreg(2,1)*4+Amreg(2,0)/8+1000) or SLOW
Amreg(3,9)=Peek(MAZE+Amreg(3,1)*4+Amreg(3,0)/8+1000) or SLOW
Amreg(4,9)=Peek(MAZE+Amreg(4,1)*4+Amreg(4,0)/8+1000) or SLOW
Amreg(5,9)=Peek(MAZE+Amreg(5,1)*4+Amreg(5,0)/8+1000) or SLOW
Synchro : Sprite Update : Wait Vbl
If Amreg(2)
A=Peek(MAZE+LOC)
If A=22
Add SCORE(P),10
Bar Amreg(0),Amreg(1) To Amreg(0)+7,Amreg(1)+7
Print At(14*P,31);SCORE(P);
Sam Play 4,5,8000
Dec EATEN(P)
Poke MAZE+LOC,24
End If
If A=23
If T
Colour 23,$F7 : Colour 27,$F7
End If
Flash Off : Colour 21,$38 : Colour 22,$3B : Colour 25,$38 : Colour 26,$3B
Amreg(4)=640 : Add SCORE(P),50
Bar Amreg(0),Amreg(1) To Amreg(0)+7,Amreg(1)+7
Print At(14*P,31);SCORE(P);
Sam Play 8,5,5000
Dec EATEN(P)
Poke MAZE+LOC,24
SLOW=(SLOW and 128)
End If
End If
If T Then Dec T : If T=0 Then SLOW=0 : Colour 23,$FFF : Colour 27,$FFF
If Amreg(8)
Sam Play 8,5,5000
Add SCORE(P),SQ(Amreg(8))*100 : Print At(14*P,31);SCORE(P);
Amreg(8)=0
If Amreg(6,8)=50 and SLOW=0 and Amreg(4)=0
Colour 23,$F7 : Colour 27,$F7
T=500 : SLOW=128
Sam Play 4,2 : Wait 2 : Sam Play 8,2 : Wait 22
End If
If Amreg(6,8)=51 and SLOW=0 and Amreg(4)=0
Colour 23,0 : Colour 27,0
T=500 : SLOW=255
Sam Play 4,2 : Wait 2 : Sam Play 8,2 : Wait 22
End If
If Amreg(6,8)=52 and Amreg(4)=0 and Rnd(3)=0
Colour 21,$38 : Colour 22,$3B : Colour 25,$38 : Colour 26,$3B
Amreg(4)=640 : Sam Play 4,2 : Wait 2 : Sam Play 8,2 : Wait 22
End If
If Amreg(6,8)=53 and LIVES(P)<4
Sam Play 4,2 : Wait 12 : Sam Play 8,2 : Wait 12
Inc LIVES(P)
Pen 4 : Print At(8+P*14,31);Left$(LIVE$,LIVES(P)); : Pen 5
End If
End If
If Amreg(6)
Get Sprite Palette
Amal Off 2 : Amal Off 3 : Amal Off 4 : Amal Off 5
Amal 7,"Anim 1,(1,4)(7,4)(6,4)(32,4)(33,4)(34,4)(35,4)(36,4)(37,4)(38,4)(39,4)(45,4);"
Amal On 7
For F=0 To 59
Wait Vbl : Synchro : Sprite Update
If(F mod 10)=0
If F<40
Sam Play 3,3,8000-F*50
Else
Sam Play 3,4,9000
End If
End If
Next F
Dec LIVES(P)
If LIVES(P)=-1
Sprite Off : Sprite Update : Wait Vbl
Colour 22,$F00 : Colour 26,$F00
For F=0 To 3 : Sprite F+2,240+F*16,24+(F>1)*-300,46+F
Amal F+2,"M 0,"+Str$(150+(F>1)*300)+",75;"
Next F
Amal On
Update On : Synchro On
Wait 250
Update Off : Synchro Off
If LIVES(0)=-1 and(LIVES(1)=-1 or PLYERS=0)
Goto INIT
End If
End If
Sprite Off : Gosub INITAMAL
If LIVES(1-P)>-1 and PLYERS=1
P=1-P
Fade 1 : Wait 15 : Sprite Update
Gosub SETUPSCREEN
Fade 1 To -1 : Wait 15
End If
Gosub REDY
Amal On
Amreg(7)=0 : BONUS=41 : SLOW=0 : T=0 : Flash Off
End If
If Amreg(4)=64
Flash 21,"(36F,4)(038,4)" : Flash 25,"(36F,4)(038,4)"
Flash 22,"(36F,4)(038,4)" : Flash 26,"(36F,4)(038,4)"
End If
If Amreg(4)=1 or BONUS=45
Flash Off : Get Sprite Palette
BONUS=41 : Amreg(7)=0 : Amreg(4)=1 : Amreg(5)=0
End If
If Amreg(7)
Sprite Amreg(7),,,BONUS : Sprite Update
Add SCORE(P),SQ(BONUS-40)*100
Print At(14*P,31);SCORE(P);
Sam Play 12,2,8000 : Wait 24 : BONUS=BONUS+1 : Amreg(7)=0
End If
'
Wend
Flash Off : Flash 2,"(FFF,16)(777,16)"
Gosub NXTLEVEL
Loop
'
NXTLEVEL:
F$="MAZE"+Str$(LEVEL(P))-" "+".abk"
If Not Exist(F$) Then LEVEL(P)=1 : F$="MAZE1.abk"
Erase(7+P) : Load F$,(7+P)
If Peek(Start(7+P)+1997)<>LEVEL(P) Then End
Inc LEVEL(P)
Return
'
SETUPSCREEN:
EATEN(P)=0 : MAZE=Start(7+P)
For Y=0 To 30
For X=0 To 29
A=Peek(MAZE+Y*32+X) : If A=22 or A=23 Then Inc EATEN(P)
Paste Icon X*8-16,Y*8,A
Next X
Next Y
Doke Start(1)+Deek(Start(1))*8+4,Deek(MAZE+1998)
Return
'
REDY:
For F=0 To PLYERS
Pen 5-2*(F<>P)
Print At(F*14,31);SCORE(F);
Pen 4-2*(F<>P)
Print At(8+F*14,31);Left$(LIVE$,LIVES(F)-(LIVES(F)<0 or F<>P));" ";
Next F
Pen 5 : Flash 5,"(fff,16)(000,8)"
Sprite 7,264,222,1 : Sprite Update : Wait Vbl
If PLYERS=0
Sprite 0,256,310,54 : Sprite 1,272,310,55
Else
Sprite 0,256,310,56 : Sprite 1,272,310,57+P
End If
Update On : Synchro On
A$="M 0,-160,20; F R0=1 T 80; N R0; M 0,-160,20;"
Amal 0,A$ : Amal 1,A$
Amal On 0 : Amal On 1 : Wait 120
Sprite Off 0 : Sprite Off 1
Synchro Off : Update Off : Flash Off : Colour 5,$FFF
Return
'
INITAMAL:
Restore PACMAN
A$=""
Repeat
Read AA$
A$=A$+AA$
Until AA$=""
Amal 7,A$
'
For F=2 To 5
A$=""
Restore "GHOST"+Chr$(F+47)
Repeat
Read AA$
A$=A$+AA$
Until AA$=""
Restore BLUEGHOST
Repeat
Read AA$
A$=A$+AA$
Until AA$=""
Amal F,A$
Next F
'
Restore BONUS
A$=""
Repeat
Read AA$
A$=A$+AA$
Until AA$=""
Amal 6,A$
Return
'
PACMAN:
Data "Init: L R0=124; L R1=184;"
Data " L R9=0; L RE=0; L RF=0; L RG=0; L RH=0;"
Data " L R2=-1; L R3=0;"
Data " L R5=8; L R4=R5; Anim 1,(9,2)(1,2);"
Data "Strt: L R7=J1;"
Data " If R7&15=0 Jump Noj;"
Data " L R5=8; If R7&4 Jump Noj;"
Data " L R5=2; If R7&8 Jump Noj;"
Data " L R5=1; If R7&1 Jump Noj;"
Data " L R5=4;"
Data "Noj: L RC=0;"
Data " If R0|R1&7 Jump Move;"
Data " L RA=R0-16; L RB=R1; L RC=-1;"
Data " If R5&R9 Jump Rt;"
Data " L R4=R5;"
Data "Rt: L R6=R4&14; L R6=R4&1*6|R6;"
Data " L R2=R4&8/8; L R2=R4&2/2-R2;"
Data " L R3=R4&1; L R3=R4&4/4-R3;"
Data "Chk: If R4&R9=0 Jump Over;"
Data " L R2=0; L R3=0; Jump Move;"
Data "Over: Anim 1,(R6+1,2)(R6,2)(R6+1,2)(1,1);"
Data "Move: L R0=R0+R2&255; L R1=R1+R3;"
Data " If R0 Jump K; L R1=224-R1; L R0=R0+R2;"
Data "K: L X=R0+140; L Y=R1+38;"
Data " L RX=R0; Let RY=R1;"
Data " Let RE=RE>0+RE; L RD=R1*32+R0/8; Pause;"
Data " L RZ=1; L R8=RX-RP&65528=65528; L R8=RX-RP&65528=0|R8;"
Data " L R7=RY-RQ&65528=65528; L R7=RY-RQ&65528=0|R7; If R8&R7 Jump Hit;"
Data " L RZ=2; L R8=RX-RR&65528=65528; L R8=RX-RR&65528=0|R8;"
Data " L R7=RY-RS&65528=65528; L R7=RY-RS&65528=0|R7; If R8&R7 Jump Hit;"
Data " L RZ=4; L R8=RX-RT&65528=65528; L R8=RX-RT&65528=0|R8;"
Data " L R7=RY-RU&65528=65528; L R7=RY-RU&65528=0|R7; If R8&R7 Jump Hit;"
Data " L RZ=8; L R8=RX-RV&65528=65528; L R8=RX-RV&65528=0|R8;"
Data " L R7=RY-RW&65528=65528; L R7=RY-RW&65528=0|R7; If R8&R7 Jump Hit;"
Data " Jump Strt;"
'
Data "Hit:"
Data " If RZ&RF Jump Strt;"
Data " L RH=RZ&3; L RH=RZ&4*3/4|RH; L RH=RZ&8/2|RH+1;"
Data " L RF=RF|RZ;"
Data " If RE Jump Strt;"
Data " L RG=-1;"
Data "Wait: If RG Jump Wait;"
Data " Jump Init;"
Data ""
'
BLUEGHOST:
Data "Frst: L R8=30;"
Data " Anim 0,(R8,8)(R8+1,8);"
Data " If R0|R1&7 J Anim;"
Data "Nxt: If R9&112=0 Jump Anim;"
Data " L R7=R4*16|R4/4&15;"
Data " L R9=R9|R7;"
Data " L R5=R0>RX*6+8; L R6=R1<RY*3+4;"
Data " L R4=R5;"
Data " If R4&R9=0 Jump Hmve;"
Data " L R4=R6;"
Data " If R4&R9=0 Jump Hmve;"
Data " L R4=5-R6;"
Data " If R4&R9=0 Jump Hmve;"
Data " L R4=10-R5;"
Data " If R4&R9=0 Jump Hmve;"
Data " L R4=R7;"
Data "Hmve: L R2=R4&8/8; L R2=R4&2/2-R2;"
Data " L R3=R4&1; L R3=R4&4/4-R3;"
Data "Anim: L R0=R0+R2&255; L R1=R1+R3;"
Data " If R0 Jump U; L R1=224-R1;"
Data "U: L X=R0+140; L Y=R1+38;"
Data " L R"+Chr$(F*2+76)+"=R0; L R"+Chr$(F*2+77)+"=R1;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Eten; Pause;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Eten; Pause;"
Data " If R9&128=0 Jump Jck;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Eten; Pause;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Eten; Pause;"
Data "Jck: If R0|R1&7 Jump Anim;"
Data " If RE Jump Frst;"
Data " Anim 0,(R6,4)(R6+1,4);"
Data " L R9=R9|16; Jump Bgn;"
'
Data "Eten:"
Data " L R0=R0&1022; L R1=R1&1022; L X=X&1022; L Y=Y&1022;"
Data " L R2=R2*2; L R3=R3*2;"
Data " L R"+Chr$(F*2+76)+"=9999;"
Data " L R5=R4&3; L R5=R4&4*3/4|R5; L R4=R4&8/2|R5;"
Data " Anim 0,(R4+25,4);"
Data " Pause;"
Data " If R0|R1&7 Jump Y;"
Data "Woop: If R9&112=0 Jump Y;"
Data " L R4=R9/16&7;"
Data " L R2=R4=4*2; L R2=R4=2*-2|R2;"
Data " L R3=R4=1*2; L R3=R4=3*-2|R3;"
Data "Y: L R0=R0+R2&255;L R1=R1+R3;"
Data " If R0 Jump V; L R1=224-R1;"
Data "V: L X=R0+140; L Y=R1+38;"
Data " Pause; If R0|R1&7 Jump Y;"
Data " If R9&112<112 Jump Woop;"
Data " Anim 0,("+Str$(29+(F>3)*2)+",1);"
Data " "
Data " Move "+Str$(96+F*8)+"-R0,0,16;"
Data " Jump Init;"
Data ""
'
'REDGHOST
GHOST1:
Data "Init: L X=252; L Y=150;"
Data " L R"+Chr$(F*2+76)+"=9999"
Data " Anim 0,(20,4)(21,4);"
Data " Move 0,4,8;"
Data " Anim 0,(24,4)(25,4);"
Data " Move 0,-8,16;"
Data " Anim 0,(20,4)(21,4);"
Data " Move 0,4,8;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Init;"
Data " Anim 0,(18,4)(19,4); Move 12,0,24;"
Data " Anim 0,(24,4)(25,4); Move 0,-24,48;"
Data " L R6=18; L R9=21; L R4=2;"
Data " L R0=X-140; L R1=Y-38;"
Data " Anim 0,(R6,4)(R6+1,4);"
Data "Bgn: If R9&112=0 Jump Show;"
Data " L R7=R4*16|R4/4&15;"
Data " L R9=R9|R7;"
Data " L R5=R0<RX*6+8; L R6=R1>RY*3+4;"
Data " If R1<>RY Jump Test;"
Data " L R4=R5; L R5=R6; L R6=R4;"
Data "Test: L R4=R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R5*16|R5/4&15;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R6*16|R6/4&15;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R7;"
Data "Move: If R4&1=0 J Dn; L R2=0; L R3=-1; L R6=24; J Show;"
Data "Dn: If R4&4=0 J Lt; L R2=0; L R3=1; L R6=20; J Show;"
Data "Lt: If R4&8=0 J Rt; L R2=-1; L R3=0; L R6=22; J Show;"
Data "Rt: L R2=1; L R3=0; L R6=18;"
Data "Show: L R0=R0+R2&255; L R1=R1+R3;"
Data " If R0 Jump C; L R1=224-R1;"
Data " C: L X=R0+140; L Y=R1+38;"
Data " L R"+Chr$(F*2+76)+"=R0; L R"+Chr$(F*2+77)+"=R1;"
Data " Pause; If RE Jump Frst;"
Data " If R9&128=0 Jump Qck;"
Data " Pause; If RE Jump Frst;"
Data "Qck: If R0|R1&7 Jump Show;"
Data " Jump Bgn;"
Data ""
'
'PINKGHOST
GHOST2:
Data "Init: L X=260; L Y=150;"
Data " L R"+Chr$(F*2+76)+"=9999"
Data " For R0=1 To 2;"
Data " Anim 0,(16,4)(17,4);"
Data " Move 0,-4,8;"
Data " Anim 0,(12,4)(13,4);"
Data " Move 0,8,16;"
Data " Anim 0,(16,4)(17,4);"
Data " Move 0,-4,8;"
Data " Next R0;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Init;"
Data " Anim 0,(10,4)(11,4); Move 4,0,8;"
Data " Anim 0,(16,4)(17,4); Move 0,-24,48;"
Data " L R0=X-140; L R1=Y-38;"
Data " L R6=14; L R9=21; L R4=8;"
Data " Anim 0,(R6,4)(R6+1,4);"
Data "Bgn: If R9&112=0 Jump Show;"
Data " L R7=R4*16|R4/4&15;"
Data " L R9=R9|R7;"
Data " L R5=R0>RX*-6+2; L R6=R1<RY*-3+1;"
Data "Test: L R4=R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=5-R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=10-R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R7;"
Data "Move: If R4&1=0 J Dn; L R2=0; L R3=-1; L R6=16; J Show;"
Data "Dn: If R4&4=0 J Lt; L R2=0; L R3=1; L R6=12; J Show;"
Data "Lt: If R4&8=0 J Rt; L R2=-1; L R3=0; L R6=14; J Show;"
Data "Rt: L R2=1; L R3=0; L R6=10;"
Data "Show: L R0=R0+R2&255; L R1=R1+R3;"
Data " If R0 Jump C; L R1=224-R1;"
Data " C: L X=R0+140; L Y=R1+38;"
Data " L R"+Chr$(F*2+76)+"=R0; L R"+Chr$(F*2+77)+"=R1;"
Data " If R0|R1&31=20 Jump Kck;"
Data " Pause; If RE Jump Frst;"
Data "Kck: If R9&128=0 Jump Qck;"
Data " Pause; If RE Jump Frst;"
Data "Qck: If R0|R1&7 Jump Show;"
Data " Jump Bgn;"
Data ""
'
'CYANGHOST
GHOST3:
Data "Init: L X=268; L Y=150;"
Data " L R"+Chr$(F*2+76)+"=9999"
Data " For R0=1 To 3;"
Data " Anim 0,(20,4)(21,4);"
Data " Move 0,4,8;"
Data " Anim 0,(24,4)(25,4);"
Data " Move 0,-8,16;"
Data " Anim 0,(20,4)(21,4);"
Data " Move 0,4,8;"
Data " Next R0;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Init;"
Data " Anim 0,(22,4)(23,4); Move -4,0,8;"
Data " Anim 0,(24,4)(25,4); Move 0,-24,48;"
Data " L R0=X-140; L R1=Y-38;"
Data " L R6=18; L R9=21; L R4=2;"
Data " Anim 0,(R6,4)(R6+1,4);"
Data "Bgn: If R9&112=0 Jump Show;"
Data " L R7=R4*16|R4/4&15;"
Data " L R9=R9|R7;"
Data " L R5=R0<RX*6+8; L R6=R1>RY*3+4;"
Data "Test: L R4=R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=5-R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=10-R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R7;"
Data "Move: If R4&1=0 J Dn; L R2=0; L R3=-1; L R6=24; J Show;"
Data "Dn: If R4&4=0 J Lt; L R2=0; L R3=1; L R6=20; J Show;"
Data "Lt: If R4&8=0 J Rt; L R2=-1; L R3=0; L R6=22; J Show;"
Data "Rt: L R2=1; L R3=0; L R6=18;"
Data "Show: L R0=R0+R2&255; L R1=R1+R3;"
Data " If R0 Jump C; L R1=224-R1;"
Data " C: L X=R0+140; L Y=R1+38;"
Data " L R"+Chr$(F*2+76)+"=R0; L R"+Chr$(F*2+77)+"=R1;"
Data " Pause; If RE Jump Frst;"
Data " If R9&128=0 Jump Qck;"
Data " Pause; If RE Jump Frst;"
Data "Qck: If R0|R1&7 Jump Show;"
Data " Jump Bgn;"
Data ""
'
'ORANGEGHOST
GHOST4:
Data "Init: L X=276; L Y=150;"
Data " L R"+Chr$(F*2+76)+"=9999"
Data " For R0=1 To 4;"
Data " Anim 0,(16,4)(17,4);"
Data " Move 0,-4,8;"
Data " Anim 0,(12,4)(13,4);"
Data " Move 0,8,16;"
Data " Anim 0,(16,4)(17,4);"
Data " Move 0,-4,8;"
Data " Next R0;"
Data " If RF&"+Str$(SQ(F-2))+" Jump Init;"
Data " Anim 0,(14,4)(15,4); Move -12,0,24;"
Data " Anim 0,(16,4)(17,4); Move 0,-24,48;"
Data " L R0=X-140; L R1=Y-38;"
Data " L R6=14; L R9=21; L R4=8;"
Data " Anim 0,(R6,4)(R6+1,4);"
Data "Bgn: If R9&112=0 Jump Show;"
Data " L R7=R4*16|R4/4&15;"
Data " L R9=R9|R7;"
Data " L R5=R0<RX*6+8; L R6=R1>RY*3+4;"
Data "Test: L R4=R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=10-R5;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=5-R6;"
Data " If R4&R9=0 Jump Move;"
Data " L R4=R7;"
Data "Move: If R4&1=0 J Dn; L R2=0; L R3=-1; L R6=16; J Show;"
Data "Dn: If R4&4=0 J Lt; L R2=0; L R3=1; L R6=12; J Show;"
Data "Lt: If R4&8=0 J Rt; L R2=-1; L R3=0; L R6=14; J Show;"
Data "Rt: L R2=1; L R3=0; L R6=10;"
Data "Show: L R0=R0+R2&255; L R1=R1+R3;"
Data " If R0 Jump C; L R1=224-R1;"
Data " C: L X=R0+140; L Y=R1+38;"
Data " L R"+Chr$(F*2+76)+"=R0; L R"+Chr$(F*2+77)+"=R1;"
Data " Pause; If RE Jump Frst;"
Data " If R9&128=0 Jump Qck;"
Data " Pause; If RE Jump Frst;"
Data "Qck: If R0|R1&7 Jump Show;"
Data " Pause; If RE Jump Frst;"
Data " Jump Bgn;"
Data ""
'
BONUS:
Data "L X=264; L Y=174; L RI=0; L R0=X-140; L R1=Y-38;"
Data "Init: Anim 1,(45,1); For R9=1 To 600; Next R9;"
Data " L R8=Z(127)/41+50; L A=R8;"
Data " For R9=1 To 400;"
Data " If RY<>R1 Jump Over;"
Data " If RX-R0&65528=65528 Jump Eten;"
Data " If RX-R0&65528=0 Jump Eten;"
Data "Over: Next R9; Jump Init;"
Data "Eten: L RI=Z(3)+1; L R2=RI+40;"
Data " Anim 0,(R2,8)(45,4); For R9=1 To 36; P; Next R9;"
Data " J Init;"
Data ""