Prev: 63437 Up: Map Next: 63472
63450: Collect the window flags for a play area location
Used by the routine at 59148. On entry, A holds the T value (rotated left once), and DE points at the window flags for the play area location under consideration at (X,Y) (in one of the data blocks at 47168, 47424, 47680, 47936, 48192, 48448 and 48704). The window flags have the following meanings:
Bit(s) Meaning
6,7 Decorations for the only window, or the left-hand window of a pair: 11=blind is down; 10=blind is up; 01=other; 00=none
5 If set, the light switch is in the 'off' position; reset='on'
2-4 Unused
0,1 Decorations for the right-hand window of a pair (used when bit 2 of T is set)
The window flags are also relevant for play area locations (41,33), (113,33), (154,33), (209,33), (234,33) and (250,33), where house number signs are displayed. In this case, bits 6 and 7 of the window flags determine which sign to display.
On exit, A holds the window flags (with bit 5 set if the lights are out, reset otherwise), and the zero flag is reset if the play area location contains part of the right-hand window of a pair.
Input
A T value, rotated left once
DE Address of the window flags
63450 BIT 3,A Reset the zero flag if we're dealing with a tile for the right-hand window of a pair
63452 LD A,(DE) A=window flags
63453 PUSH AF Save the window flags briefly
63454 SET 7,E Point DE at the entry in the table at 65472 that corresponds to the window's location
63456 LD D,255
63458 LD A,(DE) Pick up the entry from the table
63459 LD E,A Point DE at the blown fuse delay counter for the fuse that affects the window (if any; see 32674)
63460 LD D,127
63462 LD A,(DE) Pick up the blown fuse delay counter
63463 AND A Is the fuse currently blown?
63464 JR Z,63470 Jump if not
63466 POP AF Restore the window flags to A
63467 SET 5,A Signal: the lights are out (because the fuse is blown)
63469 RET
63470 POP AF Restore the window flags to A
63471 RET
Prev: 63437 Up: Map Next: 63472