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 |