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 |