Prev: EB05 Up: Map Next: EB8D
EB49: Player: Move Left
Used by the routines at PlayerControls_Kempston and PlayerControls.
Input
IX On entry will be set to TablePlayerAttributes
PlayerMoveLeft EB49 LD A,(IX+$11) Return if *IX+11 is equal to 02.
EB4C CP $02
EB4E RET Z
EB4F CP $03 Jump to PlayerMoveLeft_0 if *IX+11 is not equal to 03.
EB51 JR NZ,PlayerMoveLeft_0
EB53 LD A,(IX+$03) Return if *IX+03 is not equal to 03.
EB56 CP $03
EB58 RET NZ
EB59 LD A,$FF Write FF to *F32D.
EB5B LD ($F32D),A
EB5E LD A,(IX+$01) Jump to PlayerMoveLeft_0 if *IX+01 is equal to *IX+12.
EB61 CP (IX+$12)
EB64 JR Z,PlayerMoveLeft_0
EB66 CP (IX+$13) Return if *IX+01 is not equal to *IX+13.
EB69 RET NZ
PlayerMoveLeft_0 EB6A LD A,(IX+$11) Jump to PlayerMoveLeft_1 if *IX+11 is equal to 04.
EB6D CP $04
EB6F JR Z,PlayerMoveLeft_1
EB71 LD (IX+$11),$04 Write 04 to *IX+11.
EB75 LD (IX+$06),$4A Write 4A to *IX+06.
PlayerMoveLeft_1 EB79 LD A,(IX+$06) A=*IX+06.
EB7C ADD A,$06 A+=06.
EB7E LD (IX+$06),A Write A to *IX+06.
EB81 CP $80 Jump to PlayerMoveLeft_2 if A is not equal to 80.
EB83 JR NZ,PlayerMoveLeft_2
EB85 LD (IX+$06),$50 Write 50 to *IX+06.
PlayerMoveLeft_2 EB89 INC (IX+$04) Increment *IX+04 by one.
EB8C RET Return.
Prev: EB05 Up: Map Next: EB8D