Routines
 Prev: 6291 Up: Map Next: 62D0
62A0: Update the display
 Used by the routines at 51DC, 6E00, F28E and F6EA. Goes through the screen refresh buffer (SRB) and for every set bit found, updates the corresponding character square on-screen. 62A0 CALL \$68E1 Update the SRB so that speech bubbles are not corrupted by moving characters 62A3 LD B,\$54 21 screen rows, 4 bytes (32 bits) per row 62A5 LD A,(HL) Pick up a byte from the screen refresh buffer 62A6 AND A Anything need updating in this particular 8-tile segment? 62A7 JR Z,\$62CC Jump if not 62A9 PUSH BC Save the SRB byte counter 62AA LD A,L For this particular byte of the SRB, compute the corresponding screen row number (0-20) in D 62AB AND \$FC 62AD RRCA 62AE RRCA 62AF LD D,A 62B0 LD A,L Also for this particular SRB byte, compute the column of the screen (0, 8, 16 or 24) corresponding to bit 7 62B1 AND \$03 62B3 ADD A,A 62B4 ADD A,A 62B5 ADD A,A 62B6 DEC A 62B7 LD E,A 62B8 INC E 62B9 SLA (HL) Does a character square need printing? 62BB JR C,\$62C1 Jump if so 62BD JR NZ,\$62B8 Jump back if there are still non-zero bits left in this SRB byte 62BF JR \$62CB Jump forward to consider the next SRB byte We found a set bit in the current SRB byte. Print the corresponding character square. 62C1 PUSH HL Save the SRB pointer 62C2 PUSH DE Save the screen (row,column) pointer 62C3 EX DE,HL Switch the screen (row,column) pointer to HL 62C4 CALL \$606C Print the character square at this row and column 62C7 POP DE Restore the screen (row,column) pointer to DE 62C8 POP HL Restore the SRB pointer to HL 62C9 JR \$62B8 Examine the next bit of the current SRB byte There are no set bits remaining in the current SRB byte. Move to the next SRB byte. 62CB POP BC Restore the SRB byte counter to B 62CC INC L Point HL at the next SRB byte 62CD DJNZ \$62A5 Jump back until all 84 SRB bytes have been dealt with 62CF RET
 Prev: 6291 Up: Map Next: 62D0