.Player1flag
holds the playerâs input along %xxxFUDLR
(Function, Up, Down, Left, Right). The holder is set in various places, according to the input method (joystick, keyboard)
- Line 4411 loads
Player1flag
into register R1
- The code proceeds to check the input and reacts accordingly
- Line 4413 for example compares the flag with with the pattern for the input for left and branches of to
.noLeft
if not.
TST R1,#%00010:CMPEQ R13,#0:BNE noleft ; LEFT ;
- On Line 4430, if
.Player1flag
is set for left, the code also checks if Space was pressed, the input for doing an action.
CMP R14,#0:TSTEQ R1,#%10000:BNE FinishReadKey ; SPACE ; ;
- If that is the case, the code continues, or branches of to
.FinishReadKey
.
- Several things can happen: block breaks, electric fence is activated, or the block is pushed.
- This routine is copied and slightly adjusted for the four directions Pengo can move.
- I didnât figure out yet, how a blockâs rule come into play at this point