|  | Routines | 
| Prev: CB88 | Up: Map | Next: CF0A | 
| 
Used by the routine at A13E.
 
 | ||||||||||||||||||||
| CE7B | PUSH IX | Save IX | ||||||||||||||||||
| CE7D | LD ($A093),A | Save color attribute for the windows border at A093 | ||||||||||||||||||
| CE80 | LD A,D | Save the length of the longest line at A02A | ||||||||||||||||||
| CE81 | LD ($A02A),A | |||||||||||||||||||
| CE84 | LD A,E | Save number of lines at A02B | ||||||||||||||||||
| CE85 | LD ($A02B),A | |||||||||||||||||||
| CE88 | LD A,H | Save horizontal position at A028 | ||||||||||||||||||
| CE89 | LD ($A028),A | |||||||||||||||||||
| CE8C | LD A,L | Save vertical position at A029 | ||||||||||||||||||
| CE8D | LD ($A029),A | |||||||||||||||||||
| CE90 | LD A,C | Save color attribute for the windows body at A09F | ||||||||||||||||||
| CE91 | LD ($A09F),A | |||||||||||||||||||
| CE94 | LD A,($A029) | Set HL to the vertical position of the windows | ||||||||||||||||||
| CE97 | LD L,A | |||||||||||||||||||
| CE98 | LD H,$00 | |||||||||||||||||||
| CE9A | ADD HL,HL | Computes the offset of the horizontal position into the attribute file | ||||||||||||||||||
| CE9B | ADD HL,HL | |||||||||||||||||||
| CE9C | ADD HL,HL | |||||||||||||||||||
| CE9D | ADD HL,HL | |||||||||||||||||||
| CE9E | ADD HL,HL | |||||||||||||||||||
| CE9F | LD A,($A028) | Set DE to the horizontal position of the windows | ||||||||||||||||||
| CEA2 | LD E,A | |||||||||||||||||||
| CEA3 | LD D,$00 | |||||||||||||||||||
| CEA5 | ADD HL,DE | Add the vertical position to the offset previously computed | ||||||||||||||||||
| CEA6 | LD DE,$5802 | Point HL to the address of the windows location into the attribute file | ||||||||||||||||||
| CEA9 | ADD HL,DE | |||||||||||||||||||
| CEAA | PUSH HL | Save HL | ||||||||||||||||||
| CEAB | LD A,($A02B) | Pick up the number of lines | ||||||||||||||||||
| CEAE | ADD A,$02 | Adds two to the number of lines (border top and bottom) to obtain the height of the windows | ||||||||||||||||||
| CEB0 | LD B,A | Set B to the height of the windows | ||||||||||||||||||
| CEB1 | LD A,($A02A) | Pick up the length of the longest line | ||||||||||||||||||
| CEB4 | ADD A,$02 | Adds two to the height of the longest line (border left and right) to obtain the height of the windows | ||||||||||||||||||
| CEB6 | LD E,A | Set E to the width of the windows | ||||||||||||||||||
| CEB7 | LD A,($A093) | Pick up the color attribute for the windows border | ||||||||||||||||||
| CEBA | CALL $D909 | Fill the windows (border included) with the color attribute of the borders | ||||||||||||||||||
| CEBD | POP HL | Restore HL | ||||||||||||||||||
| CEBE | LD DE,$0021 | Point HL to the address of the first line of the windows into the attribute file | ||||||||||||||||||
| CEC1 | ADD HL,DE | |||||||||||||||||||
| CEC2 | LD A,($A02B) | Set B to the number of lines | ||||||||||||||||||
| CEC5 | LD B,A | |||||||||||||||||||
| CEC6 | LD A,($A02A) | Set E to the length of the longest line | ||||||||||||||||||
| CEC9 | LD E,A | |||||||||||||||||||
| CECA | LD A,($A09F) | Pick up the color attribute for the windows body | ||||||||||||||||||
| CECD | CALL $D909 | Fill the windows (only body) with the color attribute of the body | ||||||||||||||||||
| CED0 | LD A,($A029) | Set HL to the vertical position | ||||||||||||||||||
| CED3 | LD L,A | |||||||||||||||||||
| CED4 | LD H,$00 | |||||||||||||||||||
| CED6 | ADD HL,HL | Computes the pixel of the vertical position (x8) | ||||||||||||||||||
| CED7 | ADD HL,HL | |||||||||||||||||||
| CED8 | ADD HL,HL | |||||||||||||||||||
| CED9 | ADD HL,HL | |||||||||||||||||||
| CEDA | LD DE,$ABDD | Point HL to the display file lookup table corresponding to this vertical pixel | ||||||||||||||||||
| CEDD | ADD HL,DE | |||||||||||||||||||
| CEDE | LD IX,$6120 | Point IX to the graphics data of the top-left border windows tile | ||||||||||||||||||
| CEE2 | LD IY,$6140 | Point IY to the graphics data of the top-middle border windows tile | ||||||||||||||||||
| CEE6 | CALL $CF0A | Draw the top border of the windows | ||||||||||||||||||
| CEE9 | LD A,($A02B) | Set B to the number of lines | ||||||||||||||||||
| CEEC | LD B,A | |||||||||||||||||||
| CEED | PUSH BC | Save BC | ||||||||||||||||||
| CEEE | LD IX,$61B8 | Point IX to the graphics data of the left border windows tile | ||||||||||||||||||
| CEF2 | LD IY,$61C8 | Point IY to the graphics data of the middle border windows tile (black tile) | ||||||||||||||||||
| CEF6 | CALL $CF0A | Draw the middle border of the windows | ||||||||||||||||||
| CEF9 | POP BC | Restore BC | ||||||||||||||||||
| CEFA | DJNZ $CEED | Jump back while there are lines to draw | ||||||||||||||||||
| CEFC | LD IX,$6130 | Point IX to the graphics data of the bottom-left border windows tile | ||||||||||||||||||
| CF00 | LD IY,$6158 | Point IY to the graphics data of the bottom-middle border windows tile | ||||||||||||||||||
| CF04 | CALL $CF0A | Draw the bottom border of the windows | ||||||||||||||||||
| CF07 | POP IX | Restore IX | ||||||||||||||||||
| CF09 | RET | |||||||||||||||||||
| Prev: CB88 | Up: Map | Next: CF0A |