Prev: 38296 Up: Map Next: 38417
38356: Scroll hand cursor down a unit
Used by the routine at 37523.
38356 LD A,(23492) Load y-coordinate of bottom of window (pixels) into A
38359 LD C,A Copy into C
38360 LD DE,26064 Point DE at table of display file addresses of starts of each pixel row
38363 LD H,0 Load y-coordinate into HL...
38365 LD L,A ...
38366 ADD HL,HL Double it
38367 ADD HL,DE And add as offset to table of display file addresses of starts of each pixel row
38368 PUSH HL Transfer value into IX...
38369 POP IX ...
38371 LD A,(23491) Load y-coordinate of top of hand cursor (pixels) into A
38374 SUB C Subtract y-coordinate of bottom of window
38375 NEG Negate, so A now holds distance between top of hand cursor and bottom of window
38377 EX AF,AF' Exchange A register
38378 LD A,(23490) Load x-coordinate of left of interior of window (characters) into A
38381 LD C,A Copy into BC...
38382 LD B,0 ...
38384 EX AF,AF' Switch A register (A now holds distance between top of hand cursor and bottom of window)
38385 EX AF,AF' Switch A register (now holds x-coordinate of left of interior of window in characters on first pass)
38386 DEC IX Move IX back by two bytes...
38388 DEC IX ...
38390 LD L,(IX+0) Load HL with display file address of start of pixel row 1...
38393 LD H,(IX+1) ...
38396 LD E,(IX+2) Load DE with display file address of start of pixel row 2...
38399 LD D,(IX+3) ...
38402 ADD HL,BC Add x-coordinate of left of interior of window to display file address
38403 EX DE,HL Swap addresses
38404 ADD HL,BC Add x-coordinate of left of interior of window to display file address
38405 EX DE,HL Swap addresses back (HL points to upper row and DE points to lower row)
38406 LD A,(HL) Read display file data from upper row...
38407 LD (DE),A ...and copy into lower row
38408 INC DE Increase DE and HL (as hand cursor is two characters wide)...
38409 INC HL ...
38410 LD A,(HL) Read display file data from upper row...
38411 LD (DE),A ...and copy into lower row
38412 EX AF,AF' Swap A register (A now holds remaining distance between top of hand cursor and bottom of window)
38413 DEC A Decrease remaining distance in A
38414 JR NZ,38385 Loop back to 38385 for next pixel row
38416 RET Return
Prev: 38296 Up: Map Next: 38417