B9FC: Draw one object's sprite into the back buffer
| draw_object |
B9FC |
CALL object_backbuf_addr |
|
B9FF |
OR A |
|
BA00 |
JP NZ,draw_object_shifted |
|
BA03 |
PUSH BC |
|
BA04 |
LD (draw_sp_save),SP |
|
BA08 |
LD H,(IX+$07) |
|
BA0B |
LD L,(IX+$06) |
|
BA0E |
LD SP,HL |
|
BA0F |
LD A,$10 |
| draw_object_row |
BA11 |
EX AF,AF' |
|
BA12 |
POP HL |
|
BA13 |
LD A,(BC) |
|
BA14 |
OR H |
|
BA15 |
LD (BC),A |
|
BA16 |
INC C |
|
BA17 |
LD A,(BC) |
|
BA18 |
OR L |
|
BA19 |
LD (BC),A |
|
BA1A |
DEC C |
|
BA1B |
INC B |
|
BA1C |
LD A,B |
|
BA1D |
AND $07 |
|
BA1F |
JR NZ,draw_object_next_row |
|
BA21 |
LD A,C |
|
BA22 |
AND $E0 |
|
BA24 |
CP $E0 |
|
BA26 |
JR Z,draw_object_third_cross |
|
BA28 |
LD A,B |
|
BA29 |
SUB $08 |
|
BA2B |
LD B,A |
|
BA2C |
LD A,C |
|
BA2D |
ADD A,$20 |
|
BA2F |
LD C,A |
|
BA30 |
JP draw_object_next_row |
| draw_object_third_cross |
BA33 |
LD A,C |
|
BA34 |
SUB $E0 |
|
BA36 |
LD C,A |
| draw_object_next_row |
BA37 |
EX AF,AF' |
|
BA38 |
DEC A |
|
BA39 |
JR NZ,draw_object_row |
|
BA3B |
LD SP,(draw_sp_save) |
|
BA3F |
POP HL |
|
BA40 |
LD C,H |
|
BA41 |
LD A,H |
|
BA42 |
AND $18 |
|
BA44 |
RRCA |
|
BA45 |
RRCA |
|
BA46 |
RRCA |
|
BA47 |
ADD A,WORKBUF_FB/$100 |
|
BA49 |
LD H,A |
|
BA4A |
LD A,C |
|
BA4B |
AND $07 |
|
BA4D |
JP NZ,draw_object_stamp_lower |
|
BA50 |
LD (HL),$02 |
|
BA52 |
INC L |
|
BA53 |
LD (HL),$02 |
|
BA55 |
CALL advance_buffer_row |
|
BA58 |
LD (HL),$02 |
|
BA5A |
DEC L |
|
BA5B |
LD (HL),$02 |
|
BA5D |
RET |
| draw_object_stamp_lower |
BA5E |
LD (HL),$02 |
|
BA60 |
INC L |
|
BA61 |
LD (HL),$02 |
|
BA63 |
CALL advance_buffer_row |
|
BA66 |
LD (HL),$02 |
|
BA68 |
DEC L |
|
BA69 |
LD (HL),$02 |
|
BA6B |
CALL advance_buffer_row |
|
BA6E |
LD (HL),$02 |
|
BA70 |
INC L |
|
BA71 |
LD (HL),$02 |
| draw_object_aligned_done |
BA73 |
RET |
| draw_object_shifted |
BA74 |
ADD A,A |
|
BA75 |
LD (draw_shifted_dispatch+$0001),A |
|
BA78 |
PUSH BC |
|
BA79 |
LD (draw_sp_save),SP |
|
BA7D |
LD H,(IX+$07) |
|
BA80 |
LD L,(IX+$06) |
|
BA83 |
LD SP,HL |
|
BA84 |
LD A,$10 |
| draw_shifted_row |
BA86 |
EX AF,AF' |
|
BA87 |
POP HL |
|
BA88 |
XOR A |
| draw_shifted_dispatch |
BA89 |
JR draw_shifted_dispatch |
Fork me on GitHub