Prev: D019 Up: Map Next: D076
D037: Routine at D037
Todo_Door_Reset D037 LD A,$01 Writes $01 to the address contained at (depending on which door is currently being actioned);
Address Door
Door_Char_Buffer_01 Door 1
Door_Char_Buffer_02 Door 2
Door_Char_Buffer_03 Door 3
This is the first byte of character state data.
D039 LD L,(IX+$0A)
D03C LD H,(IX+$0B)
D03F LD (HL),A
D040 LD DE,$D2AD Writes Prep_Bandit_Draw_Close to the address contained at (depending on which door is currently being actioned);
Address Door Target
Door_Flags_01 Door 1 Door_Routine_01
Door_Flags_02 Door 2 Door_Routine_02
Door_Flags_03 Door 3 Door_Routine_03
This is copying the actual source data into the cache where it can be manipulated by the game events.
D043 LD L,(IX+$00)
D046 LD H,(IX+$01)
D049 LD (HL),E
D04A INC HL
D04B LD (HL),D
D04C LD L,(IX+$0A) Copies 000B bytes of data from (depending on which door is currently being actioned);
Source Destination Door
Door_Char_Buffer_01 Door_Source_01 Door 1
Door_Char_Buffer_02 Door_Source_02 Door 2
Door_Char_Buffer_03 Door_Source_03 Door 3
D04F LD H,(IX+$0B)
D052 LD E,(IX+$02)
D055 LD D,(IX+$03)
D058 LD BC,$000B
D05B LDIR
D05D LD A,$01 Initialise D18F (writes $01 to it).
D05F LD ($D18F),A
D062 LD L,(IX+$0A) Loads A with the flag from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Char_Buffer_01 Door 1
Door_Char_Buffer_02 Door 2
Door_Char_Buffer_03 Door 3
As per Todo_Door_Reset, this should be $01.
D065 LD H,(IX+$0B)
D068 LD A,(HL)
D069 LD (IX+$07),$02
D06D AND A
D06E RET Z
D06F LD (IX+$07),$00
D073 LD (HL),$00
D075 RET Return.
Prev: D019 Up: Map Next: D076