| Chase H.Q. | Routines |
| Prev: B76C | Up: Map | Next: B828 |
|
Used when barriers are turned upside down. It works out the address of the last row of the bitmap, (rows - 1) * stride + base, negates the stride and calls pms_entry, so the bitmap is consumed in reverse row order. Seen with BC' = $0704, seven rows of four byte stride, and HL' pointing at the four-lane barrier bitmap.
Used by the routine at draw_object_right.
|
||||||||||||||||
| plot_masked_sprite_inverted | B7EF | LD ($B720),SP | Self modify B71F - exit of plot_masked_sprite to be SP to be restored on exit | |||||||||||||
| B7F3 | LD IX,$B729 | Point IX at pms_jumptable | ||||||||||||||
| B7F7 | CPL | A = 8 - A -- jump table index | ||||||||||||||
| B7F8 | ADD A,$09 | |||||||||||||||
| B7FA | RLCA | IX += A * 6 -- jump table entry size | ||||||||||||||
| B7FB | LD C,A | |||||||||||||||
| B7FC | RLCA | |||||||||||||||
| B7FD | ADD A,C | |||||||||||||||
| B7FE | LD C,A | |||||||||||||||
| B7FF | LD B,$00 | |||||||||||||||
| B801 | ADD IX,BC | |||||||||||||||
| B803 | LD B,$0F | B = $0F -- mask for line stepper | ||||||||||||||
| B805 | EXX | Bank | ||||||||||||||
| B806 | LD D,$00 | D = 0 | ||||||||||||||
| B808 | PUSH BC | pushing banked-on-entry BC | ||||||||||||||
| B809 | PUSH HL | pushing banked-on-entry HL | ||||||||||||||
| B80A | LD H,D | Zero HL | ||||||||||||||
| B80B | LD L,D | |||||||||||||||
|
Multiplier
|
||||||||||||||||
| B80C | LD A,B | A = B | ||||||||||||||
| B80D | LD B,$05 | 5 iterations | ||||||||||||||
| B80F | DEC A | A = (A - 1) * 4 | ||||||||||||||
| B810 | RLA | |||||||||||||||
| B811 | RLA | |||||||||||||||
| pmsv_loop | B812 | RLA | Test top bit | |||||||||||||
| B813 | JR NC,pmsv_2 | Jump if not set | ||||||||||||||
| B815 | ADD HL,DE | HL += DE | ||||||||||||||
| pmsv_2 | B816 | ADD HL,HL | Double HL | |||||||||||||
| B817 | DJNZ pmsv_loop | Loop until iterations is zero | ||||||||||||||
| B819 | RLA | Test top bit | ||||||||||||||
| B81A | JR NC,pmsv_3 | Jump if not set | ||||||||||||||
| B81C | ADD HL,DE | HL += DE | ||||||||||||||
| pmsv_3 | B81D | POP BC | pop and add banked-on-entry BC | |||||||||||||
| B81E | ADD HL,BC | |||||||||||||||
| B81F | POP BC | pop banked-on-entry HL | ||||||||||||||
| B820 | DEC D | Negate DE | ||||||||||||||
| B821 | LD A,E | |||||||||||||||
| B822 | NEG | |||||||||||||||
| B824 | LD E,A | |||||||||||||||
|
HL -> graphic data here
|
||||||||||||||||
| B825 | JP pms_entry | Exit via pms_entry | ||||||||||||||
| Prev: B76C | Up: Map | Next: B828 |