![]() |
Routines |
Prev: D5F0 | Up: Map | Next: D658 |
This entry point is used by the routine at A0F8.
|
||||
D609 | LD A,(HL) | Return if weapon has been collected previously | ||
D60A | OR A | |||
D60B | RET NZ | |||
D60C | LD (HL),$FF | Set weapon collected in text definition buffer | ||
D60E | INC HL | Set HL the number of lines to draw on windows | ||
D60F | LD A,(HL) | |||
D610 | INC HL | Point HL to text definition data | ||
D611 | PUSH IX | Save IX, IY and BC | ||
D613 | PUSH IY | |||
D615 | PUSH BC | |||
D616 | CALL $D36F | Reset channel volumes | ||
D619 | PUSH HL | Copy HL into IX | ||
D61A | POP IX | |||
D61C | CALL $D63B | Copy screen display file into room graphic data buffer | ||
D61F | LD B,A | Set B the number of lines to draw | ||
D620 | CALL $A2E6 | Draw windows with weapon text | ||
D623 | LD BC,$2710 | Set BC = 10.000 | ||
D626 | CALL $C94E | Wait some time ~0.5s (128 t-states 10.000 times) | ||
D629 | CALL $97AB | Reset sound buffer, volume channels and check for FIRE key | ||
D62C | CALL $A432 | Copy room graphic buffer to display file | ||
D62F | CALL $C932 | Copy room color attribute buffer to attribute file | ||
D632 | CALL $D346 | Reset sound data buffer | ||
D635 | POP BC | Restore BC, IY and #rEGix | ||
D636 | POP IY | |||
D638 | POP IX | |||
D63A | RET | |||
Copy screen display file into room graphic data buffer
|
||||
D63B | LD IY,$ACCA | Set IY to the address into the display lookup table | ||
D63F | LD B,$A8 | Set B to the number of pixel-rows to copy | ||
D641 | LD DE,$EAFF | Set DE to the base address for the room graphic buffer | ||
D644 | PUSH BC | Save REGbc | ||
D645 | LD L,(IY+$00) | Copy a pixel-row from display file to room graphic data | ||
D648 | LD H,(IY+$01) | |||
D64B | LD BC,$0020 | |||
D64E | LDIR | |||
D650 | INC IY | Increment address into the display lookup table | ||
D652 | INC IY | |||
D654 | POP BC | Restore BC | ||
D655 | DJNZ $D644 | Jump back until all the screen copied | ||
D657 | RET |
Prev: D5F0 | Up: Map | Next: D658 |