![]() |
Routines |
| Prev: 27022 | Up: Map |
|
Used by the routine at 24576.
|
|||||||
| 27044 | LD HL,(31940) | Pick up the bell's location in the current maze. | |||||
| 27047 | LD A,H | Has Horace already sounded the alarm? | |||||
| 27048 | OR L | ||||||
| 27049 | JR NZ,27088 | Jump if not. | |||||
|
Horace has already sounded the alarm. Produce an appropriate delay in place of the bell sound.
|
|||||||
| 27051 | LD A,(31842) | Pick up the game speed parameter in A. | |||||
| 27054 | LD E,A | HL=350+30*A. | |||||
| 27055 | LD HL,350 | ||||||
| 27058 | LD BC,30 | ||||||
| 27061 | ADD HL,BC | ||||||
| 27062 | DEC E | ||||||
| 27063 | JR NZ,27058 | ||||||
| 27065 | XOR A | Clear A for no apparent reason. | |||||
| 27066 | LD A,(27402) | Pick up the active guard counter (0-3) in A. | |||||
| 27069 | RLA | Subtract 128*A from HL. | |||||
| 27070 | RLA | ||||||
| 27071 | RLA | ||||||
| 27072 | RLA | ||||||
| 27073 | RLA | ||||||
| 27074 | RLA | ||||||
| 27075 | LD B,0 | ||||||
| 27077 | LD C,A | ||||||
| 27078 | SBC HL,BC | ||||||
| 27080 | SBC HL,BC | ||||||
| 27082 | PUSH HL | Copy HL to BC. | |||||
| 27083 | POP BC | ||||||
| 27084 | CALL 27404 | Wait for 26*BC+5 T states. | |||||
| 27087 | RET | ||||||
|
Horace has not sounded the alarm yet. Produce an appropriate bell sound if necessary.
|
|||||||
| 27088 | LD A,(31942) | Pick up the bell animation frame counter. | |||||
| 27091 | AND 63 | Keep only bits 0-5. | |||||
| 27093 | CP 0 | Is the frame counter a multiple of 64 at the moment? (This instruction is redundant.) | |||||
| 27095 | JR NZ,27126 | Jump if not. | |||||
| 27097 | LD HL,31849 | Pick up the sound on/off indicator in A. | |||||
| 27100 | LD A,(HL) | ||||||
| 27101 | CP 31 | Is the sound on? | |||||
| 27103 | JR NZ,27051 | Jump if not. | |||||
| 27105 | LD DE,22 | Call the ROM to make a short sound effect. | |||||
| 27108 | LD HL,403 | ||||||
| 27111 | CALL 949 | ||||||
| 27114 | DI | Disable interrupts after the ROM call. | |||||
| 27115 | LD DE,26 | Call the ROM again to make another short sound effect. | |||||
| 27118 | LD HL,360 | ||||||
| 27121 | CALL 949 | ||||||
| 27124 | DI | Disable interrupts after the ROM call. | |||||
| 27125 | RET | ||||||
| 27126 | CP 32 | Is the bell animation frame counter a multiple of 32 at the moment? | |||||
| 27128 | JR NZ,27051 | Jump if not. | |||||
| 27130 | LD HL,31849 | Pick up the sound on/off indicator in A. | |||||
| 27133 | LD A,(HL) | ||||||
| 27134 | CP 31 | Is the sound on? | |||||
| 27136 | JR NZ,27051 | Jump if not. | |||||
| 27138 | LD DE,26 | Call the ROM to make a short sound effect. | |||||
| 27141 | LD HL,360 | ||||||
| 27144 | CALL 949 | ||||||
| 27147 | DI | Disable interrupts after the ROM call. | |||||
| 27148 | LD DE,22 | Call the ROM again to make another short sound effect. | |||||
| 27151 | LD HL,403 | ||||||
| 27154 | CALL 949 | ||||||
| 27157 | DI | Disable interrupts after the ROM call. | |||||
| 27158 | RET | ||||||
| Prev: 27022 | Up: Map |