Int 15 Fn 12 - Topview - Send Message - "write" - Write String To Window (Cont.)

N BYTEs (total length of all program output fields)
F8h scroll field up a line
BYTE field number
F9h scroll field down a line
BYTE field number
FAh scroll field left
BYTE field number
FBh scroll field right
BYTE field number
FCh set field table header
6 BYTEs field table header (see #0368)
FDh reset modified bit for all fields
FEh reset selected and modified bits for all fields
FFh set up input fields
6 BYTEs table header (see #0368)
7/8N BYTEs the field table entries, one for each field (see #0370)

Note: DESQview uses and updates the actual copy of the information
which is contained in the stream. Thus this info must remain
intact until after the data entry is complete.

See Also: #0365,#0372

(Table 0367)
Values for TopView logical attributes:
01h normal text
02h highlighted normal text
03h help text
04h highlighted help text
05h error message
06h highlighted error message
07h emphasized text
08h marked text
9-16 reverse video versions of 1-8

See Also: #0366

Format of TopView field table header:
Offset Size Description (Table 0368)
00h BYTE number of fields (must be <= existing number of fields)
01h BYTE screen behavior bits (see #0369)
02h BYTE current input field (updated by DESQview)
03h BYTE current select field (updated by DESQview)
04h BYTE attribute for select fields when they are pointed at
05h BYTE attribute for select fields which have been selected

See Also: #0366,#0370

Bitfields for TopView screen behavior bits:
Bit(s) Description (Table 0369)
7 reserved
6 menu items may be selected via keyboard
5 left mouse button in "status" mode (press anywhere in window
immediately returns control to application)
4 right mouse button in "status" mode
3 select fields return contents or blanks rather than 'Y' or 'N'
2 modified bits reset on return to application
1-0 type of data returned
00 no data returned on read of keyboard
01 data returned as array of characters containing all fields packed
together, with no field numbers
10 data returned as numbered variable-length records for all fields
11 data returned as numbered variable-length records for the fields
which were modified

See Also: #0366

Format of TopView field table entry:
Offset Size Description (Table 0370)
00h BYTE start row \
01h BYTE start column \ if menu selection and start is to
02h BYTE end row / right or below end, select from kbd only
03h BYTE end column /
04h BYTE field type (see #0371)
05h BYTE modifier
if type is fill-in, then bit flags to determine behavior
bit 7 automatically enter CR when field full
bit 6 move to next field when current field is full
bit 5 enter text from right end (for numbers)
bit 4 force input to uppercase
bit 3 clear old contents on first keystroke
bit 2 input returned when cursor moves out of
modified field ("validate", API level 2.02+)
bit 1 reserved
bit 0 reserved
if select field, first key to press to activate
00h if have to point-&-click or is an extended-ASCII
keystroke (only if two-key menus enabled)
06h BYTE (select field only) normal color of field
07h BYTE second key for select field. This byte is present iff
two-letter menu entries selected with opcode E5h, and in that
case is present regardless of field type

See Also: #0368

Bitfields for TopView field type:
Bit(s) Description (Table 0371)
7,6 field class
00 inactive (non-entry) field
01 echos keystrokes input to make menu selection
10 fill-in field
11 select field
5 field can be filled by broadcast write (F7h opcode)
4 reserved
3 reserved
2 reserved
1 set if field selected
0 set if field modified

See Also: #0370

(Table 0372)
Values for MODE 01h "QUERY STREAM" opcodes:
(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 number of consecutive attributes
N BYTEs buffer to hold attributes
EDh get logical attributes for window frame
BYTE execute call if currently in video mode (also see opcode ECh)
BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 number of consecutive attributes
N BYTEs buffer to hold attributes
EEh get characters for window frame
BYTE execute call if currently in video mode (also see opcode ECh)
BYTE which attributes to get
bit 7 unused???
bits 4-6 first char to get - 1
bits 0-3 number of 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 equal to field size)
F5h get field table entry
BYTE field number
7-8 BYTEs buffer to hold field table entry (see #0370)

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 field table header (see #0368)

See Also: #0365,#0373

(Table 0373)
Values for MODE 10h "MANAGER STREAM" opcodes (valid only for those listed):
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 (see #0375)
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


.NG limit reached, continued in next section...