Window Management information
The following enquiry calls are for fetching low level window information.
NQ_WBOX
NQ_WBOX (BC = $8300), return window information
IN:
A = window ID (ASCII '1' - '8') or A = 0 for current window
BC = NQ_WBOX
OUT:
A = window id (ASCII '1' to '8')
C = width
B = depth
E = offset from left of screen (always 0)
D = offset from top of screen (always 0)
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different
Notes
D and E return 0 always, ie. offset of start of window relative to start of window, not the screen.
NQ_WCUR
NQ_WCUR (BC = $8303), return cursor information
IN:
A = window ID (ASCII '1' - '8') or A = 0 for current window
BC = NQ_WCUR
OUT:
A = window ID (ASCII '1' to '8')
C = x coordinate of cursor
B = y coordinate of cursor
D = bit 7 set if cursor is ON
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different
NQ_RDS
NQ_RDS (BC = $8306), read text from the screen
IN:
BC = NQ_RDS
DE = pointer to a buffer to store text
HL = number of bytes to read
OUT:
-
Registers changed after return:
A.BCDEHL/IXIY same
.F....../.... different
Notes
This call reads text from the current window starting at the current cursor position. Screen locations which have not been written to are read as NUL (not as SPC) and all the screen locations return same value, ie. if the window width is 40 characters then 40 bytes will be returned for that line. If more than a whole line of characters is to be read then reading resumes at the start of the next line. The cursor position is not affected by this call, but if a ludicrously large value of HL is used then the screen may be affected.
, multiple selections available,