![]() |
Routines |
| Prev: 39933 | Up: Map | Next: 40008 |
|
||||||||
| 39958 | PUSH AF | Store AF | ||||||
| 39959 | PUSH BC | Store BC | ||||||
| 39960 | CALL 41504 | Copy 2 × 4 (characters) region of display file into temporary storage at 23299 | ||||||
| 39963 | LD A,(23367) | Set character-is-incoming flag... | ||||||
| 39966 | INC A | ... | ||||||
| 39967 | LD (23367),A | ... | ||||||
| 39970 | LD C,30 | Load C with 30 (graphic index of first puff of smoke frame) | ||||||
| 39972 | LD B,5 | Load B with 5 (number of smoke frames to draw) [bug] | ||||||
| 39974 | PUSH BC | Store BC (B = remaining number of frames to draw, C = current frame's lookup index) | ||||||
| 39975 | PUSH IX | Store IX (address of position data) | ||||||
| 39977 | PUSH AF | Store AF | ||||||
| 39978 | LD A,C | Load A with current graphic index | ||||||
| 39979 | LD C,(IX+1) | Load C with x-coordinate (characters) | ||||||
| 39982 | LD B,(IX+2) | Load B with y-coordinate (characters) | ||||||
| 39985 | CALL 63494 | Draw 2 × 3 graphic with lookup index A at character coordinates (C, B) | ||||||
| 39988 | PUSH BC | Store BC (B = remaining number of frames to draw, C = current frame's lookup index) | ||||||
| 39989 | LD B,12 | Load B with 12 (number of interrupt cycles to wait per frame) | ||||||
| 39991 | HALT | Wait for interrupt | ||||||
| 39992 | DJNZ 39991 | Decrease remaining number of interrupt cycles to wait and loop back to 39991 if not zero | ||||||
| 39994 | POP BC | Restore BC (B = remaining number of frames to draw, C = current frame's lookup index) | ||||||
| 39995 | CALL 41545 | Copy 2 × 4 (characters) region from temporary storage at 23299 into display file | ||||||
| 39998 | POP AF | Restore AF | ||||||
| 39999 | POP IX | Restore IX (address of position data) | ||||||
| 40001 | POP BC | Restore BC (B = remaining number of frames to draw, C = current frame's lookup index) | ||||||
| 40002 | INC C | Advance to next puff of smoke frame | ||||||
| 40003 | DJNZ 39974 | Decrease remaining number of frames to draw and loop back to 39974 if not zero | ||||||
| 40005 | POP BC | Restore BC | ||||||
| 40006 | POP AF | Restore AF | ||||||
| 40007 | RET | Return | ||||||
| Prev: 39933 | Up: Map | Next: 40008 |