|  | Routines | 
| Prev: 34982 | Up: Map | Next: 35123 | 
| 
 | ||||||||||
| 34990 | EX AF,AF' | Switch AF and AF' | ||||||||
| 34991 | LD A,111 | Reset draw-hand-menu-cursor flag (later in this routine)... | ||||||||
| 34993 | LD (35087),A | ... | ||||||||
| 
This entry point is used by the routine at 34982.
 | ||||||||||
| 34996 | SET 1,(IY+65) | Set characters-free-to-move flag | ||||||||
| 35000 | EX AF,AF' | Restore original AF (with A being index of window) | ||||||||
| 35001 | LD (54334),A | Set this index as the "current" window index | ||||||||
| 35004 | LD L,A | Load HL with A value (index of required window)... | ||||||||
| 35005 | LD H,0 | ... | ||||||||
| 35007 | ADD HL,HL | Multiply index by eight (as each window's data takes up eight bytes in table at 37089)... | ||||||||
| 35008 | ADD HL,HL | ... | ||||||||
| 35009 | ADD HL,HL | ... | ||||||||
| 35010 | LD BC,37089 | Set BC to start of window data table | ||||||||
| 35013 | ADD HL,BC | Calculate location of start of required window's data | ||||||||
| 35014 | LD E,(HL) | Load E with x-coordinate of left edge (characters) | ||||||||
| 35015 | INC HL | Load C with x-coordinate of right edge (characters)... | ||||||||
| 35016 | LD C,(HL) | ... | ||||||||
| 35017 | INC HL | Load D with y-coordinate of top edge (characters)... | ||||||||
| 35018 | LD D,(HL) | ... | ||||||||
| 35019 | INC HL | Load B with y-coordinate of bottom edge (characters)... | ||||||||
| 35020 | LD B,(HL) | ... | ||||||||
| 35021 | LD (23493),DE | Store values for later use... | ||||||||
| 35025 | LD (23495),BC | ... | ||||||||
| 35029 | INC HL | Load A with window's upper edge border style... | ||||||||
| 35030 | LD A,(HL) | ... | ||||||||
| 35031 | LD (54235),A | Store for later use in routine at 54231 | ||||||||
| 35034 | INC HL | Load A with window's border attribute... | ||||||||
| 35035 | LD A,(HL) | ... | ||||||||
| 35036 | EX AF,AF' | Exchange AF and AF' | ||||||||
| 35037 | INC HL | Load A with starting y-coordinate of hand cursor... | ||||||||
| 35038 | LD A,(HL) | ... | ||||||||
| 35039 | LD (23456),A | Store for later use | ||||||||
| 35042 | INC HL | Load A with window's content attribute... | ||||||||
| 35043 | LD A,(HL) | ... | ||||||||
| 35044 | LD (23481),A | Store for later use | ||||||||
| 35047 | EX AF,AF' | Exchange AF and AF' (restoring border attribute to A and putting background colour in A') | ||||||||
| 35048 | CALL 35123 | Draw window frame | ||||||||
| 35051 | LD HL,23493 | Point HL at previously stored values | ||||||||
| 35054 | INC (HL) | Increase top-left x-coordinate | ||||||||
| 35055 | INC HL | Increase top-left y-coordinate... | ||||||||
| 35056 | INC (HL) | ... | ||||||||
| 35057 | INC HL | Decrease bottom-right x-coordinate... | ||||||||
| 35058 | DEC (HL) | ... | ||||||||
| 35059 | INC HL | Decrease bottom-right y-coordinate... | ||||||||
| 35060 | DEC (HL) | ... | ||||||||
| 35061 | LD A,(23481) | Load window content attribute into A | ||||||||
| 35064 | LD (35948),A | Prepare to fill a region with the attribute in A | ||||||||
| 35067 | LD (23695),A | Store window content attribute at 23695 | ||||||||
| 35070 | CALL 35940 | Fill a region of attribute file with specified attribute | ||||||||
| 35073 | CALL 35994 | Blank the interior of the window (display file) | ||||||||
| 35076 | LD HL,23493 | Load x-coordinate of left of interior of window into C... | ||||||||
| 35079 | LD C,(HL) | ... | ||||||||
| 35080 | INC HL | Load y-coordinate of top of interior of window into B... | ||||||||
| 35081 | LD B,(HL) | ... | ||||||||
| 35082 | CALL 54132 | Move virtual cursor (bitmap) to top-left of interior or window and load address into HL | ||||||||
| 35085 | PUSH HL | Store HL (address in display file of top-left of interior of window) | ||||||||
| 35086 | LD A,0 | Load A with draw-hand-menu-cursor flag | ||||||||
| 35088 | CP 105 | If value is not 105... | ||||||||
| 35090 | JP NZ,35114 | ...then jump to 35114 (i.e. don't draw the hand cursor) | ||||||||
| 
Window is a menu (105)
 | ||||||||||
| 35093 | LD BC,(23493) | Load B with y-coordinate of top edge and C with x-coordinate of left edge | ||||||||
| 35097 | LD A,(23456) | Load A with starting y-coordinate of hand cursor | ||||||||
| 35100 | ADD A,B | Add y-coordinate of top of area to this... | ||||||||
| 35101 | LD B,A | ...and place back into B | ||||||||
| 35102 | LD A,2 | Load A with 2 (graphic lookup index of menu hand cursor graphic in table at 55950) | ||||||||
| 35104 | LD DE,514 | Load D (graphic width) with 2 and E (graphic height) with 2 | ||||||||
| 35107 | PUSH IX | Store IX | ||||||||
| 35109 | CALL 54414 | Draw a graphic with lookup index A at character coordinates (C, B) with width E and height D | ||||||||
| 35112 | POP IX | Restore IX | ||||||||
| 35114 | XOR A | Set A to zero | ||||||||
| 35115 | LD (23479),A | Set hand cursor's current y-coordinate to zero (i.e. defaults to top of its movement range within current window) | ||||||||
| 35118 | POP HL | Restore HL (address in display file of top-left of interior of window) | ||||||||
| 35119 | LD (54110),HL | Set memory location to start printing character in character printing routine | ||||||||
| 35122 | RET | Return | ||||||||
| Prev: 34982 | Up: Map | Next: 35123 |