![]() |
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 |