Routines |
Prev: 62072 | Up: Map | Next: 62310 |
Used by the routine at 65524.
|
||||||||
62178 | CALL 62959 | Store all registers on the stack | ||||||
62181 | BIT 0,(IY+65) | If game-in-progress flag is reset... | ||||||
62185 | JP Z,62288 | ...then skip ahead to 62288 | ||||||
62188 | CALL 64687 | If do-not-draw-storm-cloud flag is reset then draw Storm Cloud | ||||||
62191 | LD A,(23441) | If redraw-Magic-Knight-on-next-interrupt flag is set... | ||||||
62194 | OR A | ... | ||||||
62195 | CALL NZ,61823 | ...then erase Magic Knight from display, advance his current position then redraw | ||||||
62198 | CALL 62330 | Update game time, time left and move characters if appropriate | ||||||
62201 | LD A,(23403) | Load B with MSB of Off-White-Knight-sent-to-sleep flag... | ||||||
62204 | AND 128 | ... | ||||||
62206 | LD B,A | ... | ||||||
62207 | LD A,(24782) | Set Off-White Knight's asleep flag... | ||||||
62210 | OR B | ...if MSB of Off-White-Knight-sent-to-sleep flag is set... | ||||||
62211 | LD (24782),A | ... | ||||||
The instructions between 62214 and 62252 (inclusive) are not used in the 48k version of Stormbringer. These instructions relate to the LOCATE A CHARACTER functionality that is present in the 128k version of Stormbringer - see trivia
|
||||||||
62214 | LD BC,(23471) | Load x- & y- coordinate of top-left character of currently glowing "locate compass" component into BC | ||||||
62218 | LD A,B | If this is zero (i.e. compass not glowing because Magic Knight isn't "locating")... | ||||||
62219 | OR C | ... | ||||||
62220 | JR Z,62255 | ...then skip ahead to 62255 | ||||||
62222 | LD A,(23436) | Load compass-glow-update flag into A | ||||||
62225 | INC A | Invert compass-glow-update flag | ||||||
62226 | AND 1 | Store back at 23436 and if compass-glow-update flag is set... | ||||||
62228 | LD (23436),A | ... | ||||||
62231 | JR NZ,62255 | ...then skip over glow attribute update section to 62255 (don't update glowing attributes this time) | ||||||
62233 | CALL 63219 | Load HL with attribute file address for coordinates (C, B) | ||||||
62236 | CALL 62317 | Update glowing blocks' attribute to next colour in sequence and load into E | ||||||
62239 | CALL 62310 | Write current attribute for a glowing block to attribute file (HL) and advance HL | ||||||
62242 | CALL 62310 | Write current attribute for a glowing block to attribute file (HL) and advance HL | ||||||
62245 | LD BC,30 | Advance attribute file address (HL) down to next row, to the block immediately below the first one updated at instruction 62239 | ||||||
62248 | ADD HL,BC | |||||||
62249 | CALL 62310 | Write current attribute for a glowing block to attribute file (HL) and advance HL | ||||||
62252 | CALL 62310 | Write current attribute for a glowing block to attribute file (HL) and advance HL | ||||||
62255 | BIT 1,(IY+65) | If disable-in-game-glow flag is set... | ||||||
62259 | JP NZ,62302 | ...then skip to end of interrupt routine | ||||||
62262 | LD IX,23368 | Point IX at table of glowing attribute file addresses | ||||||
62266 | CALL 62317 | Update glowing blocks' attribute to next colour in sequence and load into E | ||||||
62269 | LD L,(IX+0) | Load a glowing attribute file address into HL... | ||||||
62272 | LD H,(IX+1) | ... | ||||||
62275 | LD A,L | If HL is zero... | ||||||
62276 | OR H | ... | ||||||
62277 | JR Z,62288 | ...then jump to 62288 (to exit loop) | ||||||
62279 | CALL 62310 | Write current attribute for a glowing block to attribute file (HL) and advance HL | ||||||
62282 | INC IX | Advance to next attribute file address in list of glowing blocks... | ||||||
62284 | INC IX | ... | ||||||
62286 | JR 62269 | Jump back to 62269 to update next block | ||||||
62288 | LD HL,(23672) | Load HL with current value in lowest two bytes of frame counter... | ||||||
62291 | INC HL | ...increase... | ||||||
62292 | LD (23672),HL | ...and write back to memory | ||||||
62295 | LD A,H | If these are not both zero... | ||||||
62296 | OR L | ... | ||||||
62297 | JR NZ,62302 | ...then skip ahead to 62302 | ||||||
62299 | INC (IY+64) | Increase most significant byte of frame counter | ||||||
62302 | CALL 703 | Call ROM routine to read keyboard | ||||||
62305 | CALL 62987 | Restore all registers from the stack | ||||||
62308 | EI | Enable interrupts | ||||||
62309 | RET | Return |
Prev: 62072 | Up: Map | Next: 62310 |