MODE 01h "QUERY STREAM" (valid only for those opcodes listed here)
A0h return logical cursor row in next byte
A1h return logical cursor column in next byte
A2h return top row of scrolling region in next byte
A3h return left column of scrolling region in next byte
A4h return row of physical window origin in next byte
A5h return column of physical window origin in next byte
A6h return height of physcial window in next byte
A7h return width of physical window in next byte
A8h return row of viewport origin in next byte
A9h return column of viewport origin in next byte
AAh return height of virtual screen in next byte
ABh return width of virtual screen in next byte
AFh return current video mode in next byte
C0h return current logical cursor position in next two bytes
C1h return top left corner of scrolling region in next two bytes
C2h return current window position in next two bytes
C3h return current window size in next two bytes
C4h return current viewport origin in next two bytes
C5h return current virtual screen size in next two bytes
D0h \ overwritten with D0h if frames may fall off screen edge
D1h /                  D1h if frames always displayed entirely
D2h \ overwritten with D2h if DESQview controls color palette
D3h /                  D3h if application changes color palette
D4h \ overwritten with D4h if window visible
D5h /                  D5h if window hidden
D6h \ overwritten with D6h if window has frame
D7h /                  D7h if window unframed
D8h \ overwritten with D8h if reading characters from window
D9h /                  D9h if reading attributes from window
DAh \ overwritten with DAh if using logical attributes
DBh /                  DBh if using physical attributes
DCh \ overwritten with DCh if TTY control char interpretation on
DDh /                  DDh if TTY control char interpretation off
DEh \ overwritten with DEh if writing both characters and attributes
DFh /                  DFh if leaving attributes untouched
E2h return current color in next byte
ECh get logical attributes for window contents
BYTE execute call if currently in specified video mode
bit 7   monochrome
bit 6   color text, EGA/VGA graphics
bit 5   medium-resolution CGA graphics
bit 4   high-resolution CGA graphics
BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 # consecutive attributes
N BYTEs buffer to hold attributes
EDh get logical attributes for window frame
BYTE execute call if currently in video mode (see opcode ECh)
BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 # consecutive attributes
N BYTEs buffer to hold attributes
EEh get characters for window frame
BYTE execute call if currently in video mode (see opcode ECh)
BYTE which attributes to get
bit 7 unused???
bits 4-6 first char to get - 1
bits 0-3 # consecutive chars
N BYTEs buffer to hold chars
EFh return first N characters of current window name
BYTE    max length of returned name
N BYTEs buffer to hold window name
F3h return contents of specified field
BYTE field number
N BYTEs buffer to hold field contents (size exactly equal to field
size)
F5h get field table entry
BYTE field number
7-8 BYTEs buffer to hold field table entry
Notes: DV < 2.26 always returns 7 bytes
DV 2.26+ w/ APILEVEL < 2.26 returns 8 bytes iff field
table is using 8-byte entries and eighth byte after
F5h is E7h (NOP); otherwise, 7 bytes are returned
DV 2.26+ w/ APILEVEL > 2.26 returns 7 or 8 bytes
depending on the field table entry size
F6h get type of a field
BYTE field number
BYTE type
FCh get field table header
6 BYTEs buffer to store header

MODE 10h "MANAGER STREAM" (valid only for opcodes listed here)
00h allow window to be moved horizontally
01h allow window to be moved vertically
02h allow window to change width
03h allow window to change height
04h allow window to be scrolled horizontally
05h allow window to be scrolled vertically
06h allow "Close Window" menu selection for application
07h allow "Hide Window" menu selection for application
08h allow application to be suspended ("Rearrange/Freeze")
0Eh allow "Scissors" menu
10h allow DESQview main menu to be popped up
11h allow "Switch Windows" menu
12h allow "Open Window" menu
13h allow "Quit" menu selection
20h-33h opposite of 00h-13h, disallow specified action
40h notify if horizontal position of window changes
41h notify if vertical position of window changes
42h notify if width of window changes
43h notify if height of window changes
44h notify if window scrolled horizontally
45h notify if window scrolled vertically
46h notify if window is closed--program has to clean up and exit itself
47h notify if window is hidden
48h notify if "?" on main menu selected
49h notify if pointer message sent to window
4Ah notify if window is placed in foreground
4Bh notify if window is placed in background
4Ch notify if video mode changes
4Dh notify if "Scissors" menu "Cut" option selected
4Eh notify if "Scissors" menu "Copy" option selected
4Fh notify if "Scissors" menu "Paste" option selected
50h notify if DESQview main menu about to pop up
51h notify if DESQview main menu popped down
60h-71h  opposite of 40h-51h: don't notify on specified event
84h attach window to parent task's window (both move together)
85h detach window from parent task's window (may move independently)
86h disable background operation for application
87h enable running in background
88h set minimum size of physical window
BYTE rows
BYTE columns
89h set maximum size of physical window
BYTE rows
BYTE cols
8Ah set primary asynchronous notification routine
DWORD address of routine, 0000h:0000h means none (see also below)
8Bh set async notification parameter
DWORD 32-bit value passed to 8Ah async routine in DS:SI
ACh (DV2.2+) perform regular select field attribute processing
ADh (DV2.2+) protect attributes in selected field from being lost
AEh make window default notify window for owning app (API level 2.00+)
AFh set selected field marker character
BYTE character to display at left edge of selected fields
BCh set standard field processing mode
BDh set alternate field processing mode (enables cursor pad for menus)
BEh disables changing reverse logical attributes with ECh opcode
BFh enables changing reverse logical attributes with ECh opcode
C0h make current window topmost in system
C1h force current process into foreground
C2h make current window topmost in process
C3h position mouse pointer relative to origin of current field
BYTE rows below upper left corner of field
BYTE columns to right of upper left corner of field
C4h position mouse pointer relative to origin of given field
BYTE field number
BYTE rows below upper left corner of field
BYTE columns to right of upper left corner of field
C5h orphan current window (also hides it)
Note: must be last in stream; all subsequent commands ignored
C6h show all windows for this process
C7h hide all windows for this process
C8h suspend process and hide all its windows
C9h force current process into background
CAh make current window bottom-most in process
CBh cancel current window manager operation, remove DV menu, give
control to topmost application
CCh orphan window and give it to the system for use as paste data
CEh reorder windows
DWORD pointer to null-terminated list of words
each word is segment of object handle for a window
FFh no operation

MODES 14h to 1Fh "USER STREAMS"
normally NOPs, but may be defined by SETESC message to invoke FAR
routines, one for each mode number
on entry to handler,
DS:SI -> first byte of actual stream (not header)
CX = #bytes in stream
ES:DI = window's handle

Asynchronous notification routine defined by manager stream 8Ah called with:
ES:DI = handle of window
DS:SI is 32-bit value set by 8Bh manager stream opcode
mailbox contains message indicating event
Opcode
40h  horizontal movement
DWORD object handle of window
BYTE  new row
BYTE  new col
41h  vertical movement
DWORD object handle of window
BYTE  new row
BYTE  new col
42h  horizontal size change
DWORD object handle of window
BYTE  new rows
BYTE  new cols
43h  vertical size change
DWORD object handle of window
BYTE  new rows
BYTE  new cols
44h  scrolled horizontally
DWORD object handle of window
BYTE  mouse row within window
BYTE  mouse column within window
BYTE  field mouse is on, 0 if none
BYTE  amount moved: >0 right, <0 left, 0 done
45h  scrolled vertically
DWORD object hande of window
BYTE  mouse row within window
BYTE  mouse column within window
BYTE  field mouse is on, 0 if none
BYTE  amount moved: >0 down, <0 up, 0 done
46h  window close request
DWORD object handle of window
BYTE  mouse pointer row
BYTE  mouse pointer column
BYTE  field mouse is on, 0 if none
47h  application's windows hidden
48h  Help for Program selected
DWORD object handle of window
BYTE  mouse pointer row
BYTE  mouse pointer column
BYTE  field mouse is on, 0 if none
49h  pointer message sent to window
DWORD pointer handle which received message
4Ah  switched to window from another ("raise")
4Bh  switched away from the window ("lower")
4Ch  video mode changed
BYTE new BIOS video mode
4Dh  Scissors/cUt selected
DWORD object handle of window
BYTE  row of upper left corner
BYTE  column of upper left corner
BYTE  field number ul corner is in, 0=none
DWORD handle of orphaned window created with
copy of data from specified region
BYTE  height of region
BYTE  width of region
4Eh  Scissors/Copy selected
DWORD object handle of window
BYTE  row of upper left corner
BYTE  column of upper left corner
BYTE  field number ul corner is in, 0=none
DWORD handle of orphaned window created with
copy of data from specified region
BYTE  height of region
BYTE  width of region
4Fh  Scissors/Paste selected
DWORD object handle of window
BYTE  row of upper left corner
BYTE  column of upper left corner
BYTE  field number ul corner is in, 0=none
DWORD handle of orphaned window with data
BYTE  height of region
BYTE  width of region
Note: orphaned data window should be adopted or freed
when done
50h  main menu about to pop up
51h  main menu popped down
Return: all registers unchanged


1512 - TopView MODE 01...