Prev: 53577 Up: Map Next: 53649
53581: Cycle attributes (short, full-screen) and clear display buffers
Used by the routine at 36616.
53581 LD B,7 Set repeat counter to 7
This entry point is used by the routine at 53577.
53583 PUSH BC Store BC (B = remaining number of iterations required)
53584 LD HL,22528 Point HL at start of attribute file
53587 LD BC,704 Set BC to 704 (i.e. gap between start of attribute file and start of second-last row (timer figures))
53590 LD A,(HL) Load current attribute at memory location HL into A
53591 AND 7 Strip out other components to leave only INK component
53593 JR Z,53602 If value is zero (black INK) then skip ahead to 53602
53595 INC A Increase INK value to next colour
53596 AND 7 Strip out other components to leave only INK component
53598 JR NZ,53602 If value is not zero (black INK) then skip ahead to 53602
53600 LD A,1 INK value was zero, so set now to blue INK
53602 LD E,A Load new INK value into E
53603 LD A,(HL) Load current attribute at memory location HL into A
53604 AND 56 Strip out other components to leave only PAPER component
53606 JR Z,53616 If black PAPER, then skip ahead to 53616
53608 ADD A,8 Increase to next PAPER colour
53610 AND 56 Strip out other components to leave only PAPER component
53612 JR NZ,53616 If PAPER component is not black then skip ahead to 53616
53614 LD A,8 PAPER value was zero, so set now to blue PAPER
53616 OR E Add INK component back in
53617 OR 64 Set BRIGHT flag
53619 LD (HL),A Paint new attribute back to current position in attribute file
53620 AND 16 Set / reset speaker bit
53622 OR 2 Set RED bit to maintain red border
53624 OUT (254),A Set border and set / reset speaker state
53626 INC HL Advance to next byte of attribute file
53627 DEC BC Decrease remaining number of character blocks to process
53628 LD A,B If number of remaining character blocks is not zero...
53629 OR C ...
53630 JR NZ,53590 ...then loop back to 53590
53632 POP BC Restore BC (B = remaining number of iterations required)
53633 DJNZ 53583 Loop back for next iteration
This entry point is used by the routine at 53887.
53635 LD HL,61312 Clear display buffers 1 and 2...
53638 LD BC,4224 ...
53641 LD (HL),0 ...
53643 LD D,H ...
53644 LD E,L ...
53645 INC DE ...
53646 LDIR ...
53648 RET Return
Prev: 53577 Up: Map Next: 53649