Initialize_Bunny: LD A, $50 LD ($80), A LD A, $50 LD ($81), A RET Move_Bunny: LD A, ($83) CP $00 JR NZ, =Move_Bunny.check_direction LD A, ($82) LD ($83), A CP $00 JR Z, =Move_Bunny.end Move_Bunny.check_direction: LD ($85), A DEC A LD B, $01 BIT 0, A JR NZ, =Move_Bunny.check_direction_end LD B, $FF Move_Bunny.check_direction_end: BIT 1, A JR NZ, =Move_Bunny.vertical_px_move Move_Bunny.horizontal_px_move: LD A, ($81) ADD B CP $30 JR C, =Move_Bunny.horizontal_px_move.scrolling_fallback CP $71 JR NC, =Move_Bunny.horizontal_px_move.scrolling_fallback LD ($81), A JP =Move_Bunny.check_end_of_movement Move_Bunny.horizontal_px_move.scrolling_fallback: LD A, ($43) ADD B LD ($43), A JP =Move_Bunny.check_end_of_movement Move_Bunny.vertical_px_move: LD A, ($80) ADD B CP $30 JR C, =Move_Bunny.vertical_px_move.scrolling_fallback CP $71 JR NC, =Move_Bunny.vertical_px_move.scrolling_fallback LD ($80), A JP =Move_Bunny.check_end_of_movement Move_Bunny.vertical_px_move.scrolling_fallback: LD A, ($42) ADD B LD ($42), A JP =Move_Bunny.check_end_of_movement Move_Bunny.check_end_of_movement: LD A, ($84) INC A AND $0f LD ($84), A JR NZ, =Move_Bunny.end LD ($83), A LD A, ($85) DEC A BIT 1, A JR NZ, =Move_Bunny.vertical_tile_move Move_Bunny.horizontal_tile_move: LD A, ($86) ADD B LD ($86), A JP =Move_Bunny.end Move_Bunny.vertical_tile_move: LD A, ($87) ADD B LD ($87), A Move_Bunny.end: RET Display_Bunny: ; X position in $81, Y position in $80 LD A, ($86) LD HL, $9800 CALL =Print_8bit LD A, ($87) LD HL, $9820 CALL =Print_8bit LD A, ($81) LD B, A LD A, ($80) LD C, A LD A, ($84) SUB $08 BIT 7, A JR Z, =Display_Bunny.Hop_ABS1_end ; Adding hop animation to Y XOR $ff INC A Display_Bunny.Hop_ABS1_end: SUB $04 BIT 7, A JR Z, =Display_Bunny.Hop_ABS2_end XOR $ff INC A Display_Bunny.Hop_ABS2_end: ADD C LD C, A ; X flip LD A, ($85) CP $02 LD E, $01 LD D, $00 JR NZ, =Display_Bunny.Write_OBJ LD D, $20 LD E, $03 Display_Bunny.Write_OBJ: ; First OBJ (left) LD HL, $FE00 LD A, C LD (HL+), A LD A, B LD (HL+), A LD A, E LD (HL+), A LD A, D LD (HL+), A ; Second OBJ LD A, B ADD $08 LD B, A LD A, C LD (HL+), A LD A, B LD (HL+), A LD A, E XOR $02 LD (HL+), A LD A, D LD (HL+), A RET