Routines |
Prev: 38242 | Up: Map | Next: 38356 |
Used by the routine at 37497.
|
||||
38296 | LD A,(23491) | Load y-coordinate of top of hand cursor into A | ||
38299 | LD C,A | Copy into C | ||
38300 | LD DE,26064 | Point DE at table of display file addresses of starts of each pixel row | ||
38303 | LD H,0 | Load y-coordinate into HL... | ||
38305 | LD L,A | ... | ||
38306 | ADD HL,HL | Double it | ||
38307 | ADD HL,DE | And add as offset to table of display file addresses of starts of each pixel row | ||
38308 | PUSH HL | Transfer value into IX... | ||
38309 | POP IX | ... | ||
38311 | LD A,(23492) | Load y-coordinate of bottom of window into A | ||
38314 | SUB C | Subtract y-coordinate of top of hand cursor | ||
38315 | DEC A | Decrease by one, so now holds distance between top of hand cursor and bottom of window | ||
38316 | EX AF,AF' | Exchange A register | ||
38317 | LD A,(23490) | Load x-coordinate of left of interior of window (characters) into A | ||
38320 | LD C,A | Copy into BC... | ||
38321 | LD B,0 | ... | ||
38323 | EX AF,AF' | Switch A register | ||
38324 | EX AF,AF' | Switch A register (now holds y-coordinate of top of interior of window on first pass) | ||
38325 | INC IX | Advance IX by two bytes... | ||
38327 | INC IX | ... | ||
38329 | LD L,(IX+0) | Load HL with display file address of start of pixel row 1... | ||
38332 | LD H,(IX+1) | ... | ||
38335 | LD E,(IX+2) | Load DE with display file address of start of pixel row 2... | ||
38338 | LD D,(IX+3) | ... | ||
38341 | ADD HL,BC | Add x-coordinate of left of interior of window to display file address | ||
38342 | EX DE,HL | Swap addresses | ||
38343 | ADD HL,BC | Add x-coordinate of left of interior of window to display file address | ||
38344 | EX DE,HL | Swap addresses back (HL points to upper row and DE points to lower row) | ||
38345 | LD A,(DE) | Read display file data from lower row... | ||
38346 | LD (HL),A | ...and copy into upper row | ||
38347 | INC DE | Increase DE and HL (as hand cursor is two characters wide)... | ||
38348 | INC HL | ... | ||
38349 | LD A,(DE) | Read display file data from lower row... | ||
38350 | LD (HL),A | ...and copy into upper row | ||
38351 | EX AF,AF' | Swap A register (holds remaining distance between top of hand cursor and bottom of window) | ||
38352 | DEC A | Decrease A, as one less pixel row to scroll up | ||
38353 | JR NZ,38324 | Loop back to 38324 for next pixel row | ||
38355 | RET | Return |
Prev: 38242 | Up: Map | Next: 38356 |