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.


web analytics