Prev: 9428 Up: Map Next: 948D
946D: LOCK WITH, once the right key is known
Used by the routine at ROCK_DOOR_KEY.
Not if it is locked or open, and not with a broken key ("the ... is broken."). The same code unlocks, from DO_UNLOCK, by writing the last byte of the SET 0 or RES 0 at LOCK_BIT_OP.
DO_LOCK 946D CALL LOCK_STATE Locked or open already: say which
9470 JP NZ,SAY_STATE
9473 LD A,$C6 SET 0: lock it
This entry point is used by the routine at DO_UNLOCK.
TURN_KEY 9475 LD ($948B),A }
9478 LD IY,(INSTRUMENT_RECORD) A broken key will not turn
947C BIT 3,(IY+$07)
9480 LD A,$83
9482 JP NZ,SAY_STATE_OF
9485 CALL FOR_REAL The test ends here
LOCK_BIT_OP 9488 SET 0,(IX+$07) Bit 0: locked, or not
948C RET
Prev: 9428 Up: Map Next: 948D