![]() |
Routines |
Prev: 698E | Up: Map |
Called from the main loop at 6229.
|
||||||||
69A4 | LD HL,($7CC4) | Pick up the bell's location in the current maze. | ||||||
69A7 | LD A,H | Has Horace already sounded the alarm? | ||||||
69A8 | OR L | |||||||
69A9 | JR NZ,$69D0 | Jump if not. | ||||||
Horace has already sounded the alarm. Produce an appropriate delay in place of the bell sound.
|
||||||||
69AB | LD A,($7C62) | Pick up the game speed parameter in A. | ||||||
69AE | LD E,A | HL=350+30*A. | ||||||
69AF | LD HL,$015E | |||||||
69B2 | LD BC,$001E | |||||||
69B5 | ADD HL,BC | |||||||
69B6 | DEC E | |||||||
69B7 | JR NZ,$69B2 | |||||||
69B9 | XOR A | Clear A for no apparent reason. | ||||||
69BA | LD A,($6B0A) | Pick up the active guard counter (0-3) in A. | ||||||
69BD | RLA | Subtract 128*A from HL. | ||||||
69BE | RLA | |||||||
69BF | RLA | |||||||
69C0 | RLA | |||||||
69C1 | RLA | |||||||
69C2 | RLA | |||||||
69C3 | LD B,$00 | |||||||
69C5 | LD C,A | |||||||
69C6 | SBC HL,BC | |||||||
69C8 | SBC HL,BC | |||||||
69CA | PUSH HL | Copy HL to BC. | ||||||
69CB | POP BC | |||||||
69CC | CALL $6B0C | Wait for 26*BC+5 T states. | ||||||
69CF | RET | |||||||
Horace has not sounded the alarm yet. Produce an appropriate bell sound if necessary.
|
||||||||
69D0 | LD A,($7CC6) | Pick up the bell animation frame counter. | ||||||
69D3 | AND $3F | Keep only bits 0-5. | ||||||
69D5 | CP $00 | Is the frame counter a multiple of 64 at the moment? (This instruction is redundant.) | ||||||
69D7 | JR NZ,$69F6 | Jump if not. | ||||||
69D9 | LD HL,$7C69 | Pick up the sound on/off indicator in A. | ||||||
69DC | LD A,(HL) | |||||||
69DD | CP $1F | Is the sound on? | ||||||
69DF | JR NZ,$69AB | Jump if not. | ||||||
69E1 | LD DE,$0016 | Call the ROM to make a short sound effect. | ||||||
69E4 | LD HL,$0193 | |||||||
69E7 | CALL $03B5 | |||||||
69EA | DI | Disable interrupts after the ROM call. | ||||||
69EB | LD DE,$001A | Call the ROM again to make another short sound effect. | ||||||
69EE | LD HL,$0168 | |||||||
69F1 | CALL $03B5 | |||||||
69F4 | DI | Disable interrupts after the ROM call. | ||||||
69F5 | RET | |||||||
69F6 | CP $20 | Is the bell animation frame counter a multiple of 32 at the moment? | ||||||
69F8 | JR NZ,$69AB | Jump if not. | ||||||
69FA | LD HL,$7C69 | Pick up the sound on/off indicator in A. | ||||||
69FD | LD A,(HL) | |||||||
69FE | CP $1F | Is the sound on? | ||||||
6A00 | JR NZ,$69AB | Jump if not. | ||||||
6A02 | LD DE,$001A | Call the ROM to make a short sound effect. | ||||||
6A05 | LD HL,$0168 | |||||||
6A08 | CALL $03B5 | |||||||
6A0B | DI | Disable interrupts after the ROM call. | ||||||
6A0C | LD DE,$0016 | Call the ROM again to make another short sound effect. | ||||||
6A0F | LD HL,$0193 | |||||||
6A12 | CALL $03B5 | |||||||
6A15 | DI | Disable interrupts after the ROM call. | ||||||
6A16 | RET |
Prev: 698E | Up: Map |