Routines |
Prev: 912C | Up: Map | Next: 9177 |
This is done by checking the area three lines under the crusher is empty
If not, Monty must be underneath it, and is crushed!
|
||||
9148 | LD A,(IY+$01) | Get the crusher Y co-ordinate. | ||
914B | SUB $09 | Convert it to a screen offset. | ||
914D | LD L,A | |||
914E | LD H,$00 | |||
9150 | ADD HL,HL | |||
9151 | LD DE,$EA60 | Add to the screen offset buffer EA60 to get the right screen position. | ||
9154 | ADD HL,DE | |||
9155 | LD A,(HL) | Put the screen position in HL. | ||
9156 | INC HL | |||
9157 | LD H,(HL) | |||
9158 | LD L,A | |||
9159 | LD D,$00 | Add the X co-ordinate to get the correct screen address. | ||
915B | LD E,(IY+$00) | |||
915E | ADD HL,DE | |||
915F | EX DE,HL | Convert the screen offset to an offset in the buffer at D260. | ||
9160 | LD HL,$9260 | |||
9163 | ADD HL,DE | |||
9164 | LD C,$00 | Current line. | ||
9166 | LD B,$03 | Number of lines. | ||
9168 | LD A,(DE) | Get the line from the screen. | ||
9169 | XOR (HL) | Check for any bits on screen found. and copy from the previous line. | ||
916A | OR C | |||
916B | LD C,A | Store next line data. | ||
916C | INC HL | Move to next column on screen. | ||
916D | INC DE | |||
916E | DJNZ $9168 | Loop back if there is more to do. | ||
9170 | LD A,C | Were any bits set? | ||
9171 | OR A | |||
9172 | RET Z | Return if not. | ||
9173 | DI | Otherwise, something was in the way of the crusher, which must have been Monty, so kill him. | ||
9174 | JP $946E |
Prev: 912C | Up: Map | Next: 9177 |