Prev: $267A Up: Map Next: $26E0
$2696: Make ANGELFACE throw a punch (2)
This corresponds to $6F8E in the ZX Spectrum version.
The address of this uninterruptible subcommand routine is placed into ANGELFACE's buffer by the routine at $267A.
$2696 LDA #$26 Replace the address of this uninterruptible subcommand routine in ANGELFACE's buffer with that of $26E0.
$2698 STA $B1
$269A LDA #$E0
$269C STA $B0
$269E JSR $322E Update the SRB for ANGELFACE's current animatory state and location.
$26A1 INC $26 Increment ANGELFACE's animatory state to $2B/$AB: hitting phase 2.
$26A3 JSR $322E Update the SRB for ANGELFACE's new animatory state.
$26A6 LDY $FB Pick up ANGELFACE's y-coordinate from $FB.
$26A8 LDA $26 Pick up ANGELFACE's animatory state from $26.
$26AA ASL A Is ANGELFACE facing right?
$26AB BCS $26B5 Branch if so.
$26AD LDA $FC Pick up ANGELFACE's x-coordinate from $FC.
$26AF SEC Subtract 2 to get the x-coordinate of ANGELFACE's fist.
$26B0 SBC #$02
$26B2 JMP $26BA Jump forward.
$26B5 LDA $FC Pick up ANGELFACE's x-coordinate from $FC.
$26B7 CLC Add 2 to get the x-coordinate of ANGELFACE's fist.
$26B8 ADC #$02
$26BA TAX Transfer the fist x-coordinate to X.
$26BB JSR $27D2 Did ANGELFACE's fist land on anyone's jaw?
$26BE BCC $26EE Return if not.
$26C0 CMP #$14 Was ERIC hit?
$26C2 BEQ $26D7 Branch if so.
$26C4 STA $57 Store the character number of ANGELFACE's victim at $57.
$26C6 JSR $33BF Restore ANGELFACE's character buffer from page 0.
$26C9 LDA $60 Pick up ANGELFACE's character number from $60 and store it at $2F.
$26CB STA $2F
$26CD LDA $57 Pick up the character number of ANGELFACE's victim from $57.
$26CF STA $60 Update the current character number at $60.
$26D1 JSR $3279 Copy the character buffer of ANGELFACE's victim to page 0.
$26D4 JMP $2A19 Knock ANGELFACE's victim over.
$26D7 LDA $2B Set bit 4 of ERIC's status flags at $2B: ERIC has just been knocked down.
$26D9 ORA #$10
$26DB STA $2B
$26DD JMP $26EE Return.
Prev: $267A Up: Map Next: $26E0