Prev: 64303 Up: Map Next: 64466
64400: Update Actor
Used by the routine at JumpTable_UpdateActor.
Stamps the actor mask onto the display file.
Input
IX Actor data
Update_Actor 64400 XOR A Write 0 to the mask at 64453.
64401 LD (64453),A
This entry point is used by the routine at Draw_Actor.
Update_Actor_Target 64404 LD A,33 Convert the actor column and row into a pixel address.
64406 SUB (IX+0)
64409 ADD A,A
64410 ADD A,A
64411 ADD A,A
64412 LD C,A
64413 LD A,(IX+1)
64416 SUB 3
64418 ADD A,A
64419 ADD A,A
64420 ADD A,A
64421 ADD A,(IX+3)
64424 LD B,A
64425 LD E,4 E=4.
Update_Actor_Continue 64427 PUSH BC Jump to Update_Actor_Branch if this pixel row is off-screen.
64428 PUSH DE
64429 LD A,B
64430 CP 176
64432 JR NC,Update_Actor_Branch
64434 CALL 8874 Call PIXEL_ADD.
64437 LD B,(IX+4) Increase the copy width when the fine-X is not 7.
64440 LD A,(IX+2)
64443 CP 7
64445 JR Z,Update_Actor_Skip
64447 INC B
Update_Actor_Skip 64448 LD DE,25664 DE=Actor_MaskBuffer.
Update_Actor_Target2 64451 LD A,(DE) A=*DE.
Update_Actor_Mask 64452 AND 255 Merge the mask (self-modified AND).
64454 LD (HL),A Write the byte and loop back to Update_Actor_Target2.
64455 INC HL
64456 INC DE
64457 DJNZ Update_Actor_Target2
Update_Actor_Branch 64459 POP DE Move up one pixel row and loop back to Update_Actor_Continue.
64460 POP BC
64461 DEC B
64462 DEC E
64463 JR NZ,Update_Actor_Continue
64465 RET
Prev: 64303 Up: Map Next: 64466