Routines |
Prev: 49132 | Up: Map | Next: 49470 |
49187 | LD A,(IX+7) | A=*IX+7. | ||
49190 | BIT 7,A | Jump to 49211 if bit 7 of A is not set. | ||
49192 | JR Z,49211 | |||
49194 | SUB (IX+8) | A-=*IX+8. | ||
49197 | BIT 3,A | Jump to 49218 if bit 3 of A is not set. | ||
49199 | JR Z,49218 | |||
49201 | ADD A,8 | A+=8. | ||
49203 | LD (IX+7),A | Write A to *IX+7. | ||
49206 | DEC (IX+0) | Decrease *IX+0 by one. | ||
49209 | JR 49239 | Jump to 49239. | ||
49211 | ADD A,(IX+8) | A+=*IX+8. | ||
49214 | BIT 3,A | Jump to 49231 if bit 3 of A is set. | ||
49216 | JR NZ,49231 | |||
49218 | LD (IX+7),A | Write A to *IX+7. | ||
49221 | LD A,(IX+0) | A=*IX+0. | ||
49224 | CP (IX+11) | Return if A is higher than *IX+11. | ||
49227 | RET NC | |||
49228 | JP 49426 | Jump to 49426. | ||
49231 | RES 3,A | Reset bit 3 of A. | ||
49233 | LD (IX+7),A | Write A to *IX+7. | ||
49236 | INC (IX+0) | Increment *IX+0 by one. | ||
This entry point is used by the routines at 46014 and 46481.
|
||||
49239 | LD A,(IX+0) | A=*IX+0. | ||
49242 | CP (IX+11) | Return if A is higher than *IX+11. | ||
49245 | RET NC | |||
49246 | CP 20 | Jump to 49321 if A is higher than 20. | ||
49248 | JR NC,49321 | |||
49250 | CP (IX+12) | Jump to 49263 if A is lower than *IX+12. | ||
49253 | JR C,49263 | |||
49255 | LD A,(IX+12) | A=*IX+12. | ||
49258 | LD (IX+3),A | Write A to *IX+3. | ||
49261 | JR 49267 | Jump to 49267. | ||
49263 | INC A | Increment A by one. | ||
49264 | LD (IX+3),A | Write A to *IX+3. | ||
49267 | LD A,(IX+5) | A=*IX+5. | ||
49270 | AND %00011111 | Keep only bits 0-4. | ||
49272 | LD C,A | C=A. | ||
49273 | LD A,(IX+0) | A=*IX+0. | ||
49276 | NEG | NEG. | ||
49278 | ADD A,21 | A+=21. | ||
49280 | LD E,A | E=A. | ||
49281 | RRCA | RRCA. | ||
49282 | RRCA | RRCA. | ||
49283 | RRCA | RRCA. | ||
49284 | LD B,A | B=A. | ||
49285 | AND %11100000 | Keep only bits 5-7. | ||
49287 | OR C | Set the bits from C. | ||
49288 | LD (IX+5),A | Write A to *IX+5. | ||
49291 | LD (IX+1),A | Write A to *IX+1. | ||
49294 | LD A,3 | A=3. | ||
49296 | AND B | Merge the bits from B. | ||
49297 | OR %01011000 | Set bits 3-4, 6. | ||
49299 | LD D,A | D=A. | ||
49300 | SET 5,D | Set bit 5 of D. | ||
49302 | LD (IX+6),A | Write A to *IX+6. | ||
49305 | LD A,24 | A=24. | ||
49307 | AND E | Merge the bits from E. | ||
49308 | OR %01000000 | Set bits 6. | ||
49310 | LD (IX+2),A | Write A to *IX+2. | ||
49313 | LD E,(IX+5) | E=*IX+5. | ||
49316 | LD BC,0 | BC=0000. | ||
49319 | JR 49368 | Jump to 49368. | ||
49321 | NEG | NEG. | ||
49323 | ADD A,(IX+11) | A+=*IX+11. | ||
49326 | LD (IX+3),A | Write A to *IX+3. | ||
49329 | SUB (IX+12) | A-=*IX+12. | ||
49332 | NEG | NEG. | ||
49334 | BIT 0,(IX+4) | Jump to 49341 if bit 0 of *IX+4 is set. | ||
49338 | JR NZ,49341 | |||
49340 | RLCA | RLCA. | ||
49341 | LD C,A | C=A. | ||
49342 | LD B,0 | B=0. | ||
49344 | LD A,(IX+5) | A=*IX+5. | ||
49347 | AND %00011111 | Keep only bits 0-4. | ||
49349 | OR %01000000 | Set bits 6. | ||
49351 | LD E,A | E=A. | ||
49352 | LD (IX+5),A | Write A to *IX+5. | ||
49355 | LD (IX+1),A | Write A to *IX+1. | ||
49358 | LD D,120 | D=120. | ||
49360 | LD (IX+6),88 | Write 6 to *IX+6. | ||
49364 | LD (IX+2),64 | Write 2 to *IX+2. | ||
49368 | LD L,(IX+9) | L=*IX+9. | ||
49371 | LD H,(IX+10) | H=*IX+10. | ||
49374 | LD A,C | A=C. | ||
49375 | PUSH AF | Stash AF and HL on the stack. | ||
49376 | PUSH HL | |||
49377 | ADD HL,BC | HL+=BC. | ||
49378 | LD C,(IX+12) | C=*IX+12. | ||
49381 | BIT 0,(IX+4) | Jump to 49389 if bit 0 of *IX+4 is set. | ||
49385 | JR NZ,49389 | |||
49387 | SLA C | Shift C left (with carry). | ||
49389 | SLA C | Shift C left (with carry). | ||
49391 | ADD HL,BC | HL+=BC. | ||
49392 | LD B,(IX+3) | B=*IX+3. | ||
49395 | LD C,(IX+4) | C=*IX+4. | ||
49398 | PUSH BC | Stash BC and DE on the stack. | ||
49399 | PUSH DE | |||
49400 | CALL 45490 | Call 45490. | ||
49403 | POP HL | Restore HL from the stack. | ||
49404 | ADD HL,HL | HL+=HL. | ||
49405 | LD A,7 | A=7. | ||
49407 | AND H | Merge the bits from H. | ||
49408 | OR %01110000 | Set bits 4-6. | ||
49410 | LD D,A | D=A. | ||
49411 | LD E,L | E=L. | ||
49412 | POP BC | Restore BC, HL and AF from the stack. | ||
49413 | POP HL | |||
49414 | POP AF | |||
49415 | RLCA | RLCA. | ||
49416 | ADD A,L | A+=L. | ||
49417 | LD L,A | L=A. | ||
49418 | JR NC,49421 | Jump to 49421 if {} is higher. | ||
49420 | INC H | Increment H by one. | ||
49421 | SLA C | Shift C left (with carry). | ||
49423 | CALL PlayareaCopier | Call PlayareaCopier. | ||
49426 | CALL 49470 | Call 49470. | ||
49429 | LD B,(IX+3) | B=*IX+3. | ||
49432 | LD A,(IX+7) | A=*IX+7. | ||
49435 | AND %00000111 | Keep only bits 0-2. | ||
49437 | LD C,A | C=A. | ||
49438 | LD DE,61 | DE=0061. | ||
49441 | LD A,(HL) | A=*HL. | ||
49442 | AND %11111000 | Keep only bits 3-7. | ||
49444 | OR C | Set the bits from C. | ||
49445 | LD (HL),A | Write A to *HL. | ||
49446 | INC L | Increment L by one. | ||
49447 | SET 7,(HL) | Set bit 7 of *HL. | ||
49449 | INC L | Increment L by two. | ||
49450 | INC L | |||
49451 | BIT 0,(IX+4) | Jump to 49466 if bit 0 of *IX+4 is set. | ||
49455 | JR NZ,49466 | |||
49457 | DEC L | Decrease L by one. | ||
49458 | LD A,(HL) | A=*HL. | ||
49459 | AND %11111000 | Keep only bits 3-7. | ||
49461 | OR C | Set the bits from C. | ||
49462 | LD (HL),A | Write A to *HL. | ||
49463 | INC L | Increment L by one. | ||
49464 | SET 7,(HL) | Set bit 7 of *HL. | ||
49466 | ADD HL,DE | HL+=DE. | ||
49467 | DJNZ 49441 | Decrease counter by one and loop back to 49441 until counter is zero. | ||
49469 | RET | Return. |
Prev: 49132 | Up: Map | Next: 49470 |