The following enquiry calls are for fetching low level 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 |
D and E return 0 always, ie. offset of start of window relative to start of window, not the screen.
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 |
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 |
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.