Prev: D5F0 Up: Map Next: D658
D609: Show weapon bonus windows
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