Routines 
Prev: 52717  Up: Map  Next: 52924 
Used when applyhorizontalmirror flag is set
Used by the routine at 52714.


52820  LD A,(23449)  Increase pixel row counter...  
52823  DEC A  ...  
52824  AND 7  ...and reset to 7 if it falls below zero...  
52826  LD (23449),A  ...  
52829  CP 7  If new value of pixel row counter is 7 (i.e. we have rolled over to a new character block)...  
52831  JR Z,52836  ...then advance HL to next character block to be drawn and return  
52833  DEC H  Decrease display file address by 256 bytes (i.e. move to next pixel row up)  
52834  XOR A  Set A to zero  
52835  RET  Return  
This next section advances HL to next character block to be drawn


52836  LD A,(23450)  Load A with applyhorizontalmirror and applyverticalmirror flags  
52839  AND 1  If applyverticalmirror flag is set...  
52841  JP NZ,52897  ...then skip ahead to 52897  
52844  PUSH BC  Store BC  
52845  LD A,(23444)  Load xcoordinate of character block currently being drawn into A...  
52848  INC A  ...increase by one...  
52849  LD B,A  ...and load into B  
52850  LD A,(23495)  Load (xcoordinate + 1) of right of graphic being drawn into A  
52853  CP B  If both xcoordinates are the same (i.e. we have moved beyond graphic's right edge)...  
52854  JR Z,52874  ...then jump to 52874  
52856  LD A,B  Store increased xcoordinate at 23444...  
52857  LD (23444),A  ...  
52860  LD BC,(23444)  Load BC with coordinates of new character block to draw  
52864  CALL 54132  Move virtual cursor (bitmap) to display file address for coordinates x=C, y=B and load address into HL  
52867  LD A,7  Advance HL down seven pixel rows to bottom of character block...  
52869  ADD A,H  ...  
52870  LD H,A  ...  
52871  XOR A  Set A to zero  
52872  POP BC  Restore BC  
52873  RET  Return  
This next section advances HL to next character row to be drawn


52874  LD A,(23493)  Load A with xcoordinate of left of graphic to draw...  
52877  LD (23444),A  ...and set current xcoordinate to match  
52880  LD A,(23445)  Load current ycoordinate into C, decreasing by one...  
52883  DEC A  ...  
52884  LD C,A  ...  
52885  LD A,(23494)  Load ycoordinate of top of graphic being drawn into A  
52888  CP C  If both ycoordinates are the same (i.e. we have moved beyond graphic's top edge)...  
52889  JR Z,52788  ...then jump to 52788 (load A with 1, reset zero flag and return)  
52891  LD A,C  Store increased ycoordinate at 23445...  
52892  LD (23445),A  ...  
52895  JR 52860  Move virtual cursor (bitmap) to display file address for coordinates x=C, y=B and load address into HL then return  
This next section advances HL to next character block to be drawn where the applyverticalmirror flag is set


52897  PUSH BC  Store BC  
52898  LD A,(23444)  Load xcoordinate of character block currently being drawn into A...  
52901  DEC A  ...decrease by one...  
52902  LD B,A  ...and load into B  
52903  LD A,(23493)  Load xcoordinate of left of graphic being drawn into A...  
52906  DEC A  ...and decrease by one  
52907  CP B  If both xcoordinates are the same (i.e. we have moved beyond graphic's left edge)...  
52908  JR Z,52917  ...then jump to 52917  
52910  LD A,B  Store decreased xcoordinate at 23444...  
52911  LD (23444),A  ...  
52914  JP 52860  Move virtual cursor (bitmap) to display file address for coordinates x=C, y=B and load address into HL then return  
52917  LD A,(23495)  Load xcoordinate of right of graphic being drawn into A...  
52920  DEC A  ...  
52921  JP 52877  Move current character position down one character row and return 
Prev: 52717  Up: Map  Next: 52924 