[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
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

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson