Prev: 54753 Up: Map Next: 54955
54853: Call time-dependent routines (main interrupt routine)
Used by the routine at 65524.
Input
IY 23610
54853 CALL 55546 Store all registers on the stack
54856 LD A,(37655) Load A with index of Current Window...
54859 CP 6 ...and if this is 6 (control selection window)...
54861 JP Z,54955 ...then skip ahead to 54955
54864 BIT 0,(IY+65) If update-game-time-and-locate-arrow-glow flag is reset...
54868 JP Z,54949 ...then skip to end of interrupt routine
54871 CALL 54996 Update game time, time left and (every minute) read-text of Crystal Ball
54874 LD BC,(23462) Load x- & y- coordinate of top-left character of currently glowing "locate compass" component into BC
54878 LD A,B If this is zero (i.e. compass not glowing because Magic Knight isn't "locating")...
54879 OR C ...
54880 JP Z,54916 ...jump to 54916...
54883 LD A,(23408) Else, load compass-glow-update flag into A
54886 INC A Invert compass-glow-update flag
54887 AND 1 Store back at 23408 and if compass-glow-update flag is set...
54889 LD (23408),A ...
54892 JR NZ,54916 ...then skip over glow attribute update section to 54916 (don't update glowing attributes this time)
54894 CALL 36569 Update virtual attribute cursor storage location to position (C, B) and point HL to corresponding attribute file address
54897 CALL 54983 Update glowing blocks' attribute to next colour in sequence and load into E
54900 CALL 54976 Write current attribute for a glowing block to attribute file (HL) and advance HL
54903 CALL 54976 Write current attribute for a glowing block to attribute file (HL) and advance HL
54906 LD BC,30 Advance attribute file address (HL) down to next row, to the block immediately below the first one updated at instruction 54900
54909 ADD HL,BC
54910 CALL 54976 Write current attribute for a glowing block to attribute file (HL) and advance HL
54913 CALL 54976 Write current attribute for a glowing block to attribute file (HL) and advance HL
54916 BIT 1,(IY+65) If disable-in-game-glow flag is set...
54920 JP NZ,54949 ...then skip to end of interrupt routine
54923 LD IX,23383 Point IX at table of attribute file addresses that are glowing
54927 CALL 54983 Update glowing blocks' attribute to next colour in sequence and load into E
54930 LD L,(IX+0) Load a glowing attribute file address into HL...
54933 LD H,(IX+1) ...
54936 LD A,L If HL is zero...
54937 OR H ...
54938 JR Z,54949 ...then jump to 54949 (to exit loop)
54940 CALL 54976 Write current attribute for a glowing block to attribute file (HL) and advance HL
54943 INC IX Advance to next attribute file address in list of glowing blocks...
54945 INC IX ...
54947 JR 54930 Jump back to 54930 to update next block
This entry point is used by the routine at 54955.
54949 CALL 55574 Restore all registers from the stack
54952 JP 56 Jump to ROM maskable interrupt routine (update frame counter, read keyboard and then return from interrupt routine)
Prev: 54753 Up: Map Next: 54955