MODE 00h (set or display values) "WINDOW STREAM"
Opcodes:args
00h  display 20h blanks with the default attribute
01h-1Fh display OPCODE blanks with the default attribute
20h  display char with default attribute 20h times
BYTE char to repeat
21h-3Fh display char with default attribute OPCODE-20h times
BYTE char to repeat
40h  display 20h blanks with specified attribute
BYTE attribute of blanks
41h-5Fh display OPCODE-40h blanks with specified attribute
BYTE attribute of blanks
60h  display next 20h characters
20h BYTEs characters to display
61h-7Fh display next OPCODE-60h characters
N BYTEs characters to display
80h-87h  display N blanks with default attribute
BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
[000h means 800h]
88h-8Fh display N copies of the character
BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
[000h means 800h]
BYTE character to repeat
90h-97h  display N blanks with specified attribute
BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
[000h means 800h]
BYTE attribute
98h-9FH  display string at logical cursor pos
BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
[000h means 800h]
N BYTEs string to display
A0h  set logical cursor row
BYTE row number (0 is top)
A1h  set logical cursor column
BYTE column number (0 is leftmost)
A2h  set top edge of scrolling region
BYTE row
A3h  set left edge of scrolling region
BYTE column
A4h  set row of physical window position
BYTE line
A5h  set column of physical window position
BYTE column
A6h  set height of physical window
BYTE #rows
A7h  set width of physical window
BYTE #columns
A8h  set viewport row
BYTE row
A9h  set viewport column
BYTE column
AAh  set virtual screen height [contents of window unpredictable after]
BYTE rows
ABh  set virtual screen width [contents of window unpredictable after]
BYTE columns
ACh-AEh  unused
AFh  set compatible/preferred video modes
BYTE compatibility/preference mask
bit 7   compatible with monochrome
bit 6   compatible with color text, EGA/VGA graphics
bit 5   compatible with medium-resolution CGA graphics
bit 4   compatible with high-resolution CGA graphics
bit 3   prefer monochrome
bit 2   prefer color text, EGA/VGA graphics
bit 1   prefer medium-resolution CGA graphics
bit 0   prefer high-resolution CGA graphics
B0h  move logical cursor down
BYTE #rows (signed, negative values move up)
[if #rows=0 and hardware cursor owner, update hw crsr]
B1h  move logical cursor right
BYTE #cols (signed, negative values move left)
[if #cols=0 and hardware cursor owner, update hw crsr]
B2h  shift top edge of scrolling region
BYTE #rows (signed)
B3h  shift left edge of scrolling region
BYTE #cols (signed)
B4h  shift physical window down
BYTE #lines (signed)
B5h  shift physical window right
BYTE #columns (signed)
B6h  expand physical window vertically
BYTE #lines (signed)
B7h  expand physical window horizontally
BYTE #columns (signed)
B8h  adjust viewport row
BYTE #rows (signed)
B9h  adjust viewport column
BYTE #columns (signed)
BAh  adjust virtual screen height [contents of window unpredict after]
BYTE #rows to increase (signed)
BBh  adjust virtual screen width [contents of window unpredictbl after]
BYTE #cols to increase (signed)
BCh-BFh  reserved (currently unused)
C0h  set logical cursor position
BYTE row number (0 is top border)
BYTE column number (0 is left border)
C1h  set top left corner of scrolling region
BYTE row
BYTE column
C2h  set physical window pos
BYTE upper left row (no top border if 0)
BYTE upper left column (no left border if 0)
C3h  set current window size
BYTE #rows
BYTE #cols
C4h  set upper left corner of viewport (portion of virtual screen
displayed in window)
BYTE row
BYTE column
C5h  set size of virtual screen [contents unpredictable afterwards]
BYTE #rows
BYTE #cols
C6h  unused
C7h  unused
C8h  set logical cursor relative to current position
BYTE number of rows to move down (signed)
BYTE number of columns to move right (signed)
[if #rows=#cols=0 and hardware cursor owner, update hw cursr]
C9h  shift top left corner of scrolling region
BYTE #rows (signed)
BYTE #cols (signed)
CAh  set window pos relative to current position
BYTE number of rows to shift down (signed)
BYTE number of columns to shift right (signed)
CBh  set window size relative to current size
BYTE number of rows to expand (signed)
BYTE number of cols to expand (signed)
CCh  shift viewport relative to current position
BYTE rows to shift (signed)
BYTE cols to shift (signed)
CDh  resize virtual screen
BYTE #rows to expand (signed)
BYTE #cols to expand (signed)
CEh  scroll text when using E8h-EBh/F8h-FBh opcodes (default)
CFh  scroll attributes when using  E8h-EBh/F8h-FBh opcodes
D0h  allow window frame to extend beyond screen
D1h  always display a complete frame, even if window extends beyond
edge of screen
D2h  allow DV to change logical colors on video mode switch (default)
D3h  application changes logical attributes
D4h  window is visible [must redraw to actually make visible]
D5h  window is hidden [must redraw to actually remove]
D6h  window has frame (default)
D7h  window unframed [must redraw to actually remove frame]
D8h  READ/READN will read characters from window (default)
D9h  READ/READN will read attributes from window
DAh  use logical attributes, which may be remapped
attributes
1 normal text
2 highlighted normal text
3 help text
4 highlighted help text
5 error message
6 highlighted error message
7 emphasized text
8 marked text
9-16 are reverse video versions of 1-8
DBh  use physical attributes for characters
DCh  enable special actions for control characters (default)
DDh  disable special control char handling, all chars displayable by
BIOS TTY call
DEh  write both character and attribute (default)
DFh  write character only, leave attribute untouched
E0h  repeat following commands through E1h opcode
BYTE number of times to repeat (00h means 256 times)
E1h  end of commands to repeat, start repeating them
E2h  set current output color
BYTE color
E3h  clear virtual screen from scroll origin to end using current color
E4h  redraw window
E5h  select menu style
BYTE style (normally 18h)
bits 5,4 = 01 use two-letter menu entries for remainder of
this stream
E5h  (panel file only)
BYTE modifier
bits 7,6 = 11 panel stream creates new window
= 10 panel defines new field table for existing window
= 01 panel stream uses existing window & field table
bit 5 = 1 stream contains a field table (create kyboard object)
bit 4 = 1 stream defines input fields (create keyboard object)
bit 3 = 1 stream defines select fields but not input fields
bit 2 = 1 stream defines exclusive input window (DV 2.2)
bit 1 reserved
bit 0 reserved
E6h  create new window and perform rest of manipulations in new window
BYTE number of rows
BYTE number of columns
Return: DWORD object handle of new window returned on stack at end
E7h  no operation
E8h  scroll area up (top left corner defined by opcode C1h)
BYTE height
BYTE width
E9h  scroll area down (top left corner defined by opcode C1h)
BYTE height
BYTE width
EAh  scroll area left (top left corner defined by opcode C1h)
BYTE height
BYTE width
EBh  scroll area right (top left corner defined by opcode C1h)
BYTE height
BYTE width
ECh  set logical attributes for window contents
BYTE video modes command applies to
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 set
bit 7  if set, copy single following byte to indicated attribs
bits 4-6  # of first attribute to change - 1
bits 0-3  # of consecutive attributes to change
N BYTEs new attributes
EDh  set logical attributes for window frame
BYTE video modes command applies to (see opcode ECh)
BYTE which attributes to set
bit 7  if set, copy single following byte to indicated attrs
bits 4-6  # of first attribute to change - 1
bits 0-3  # of consecutive attributes to change
N BYTEs new attributes
attributes
1 = top left corner
2 = top right corner
3 = bottom left corner
4 = bottom right corner
5 = top edge
6 = bottom edge
7 = left edge
8 = right edge
EEh  set characters for window frame
BYTE video modes command applies to (see opcode ECh)
BYTE which characters to set
bit 7  if set, copy single following byte to indicated chars
bits 4-6  # of first char to change - 1
bits 0-3  # of consecutive chars to change
N BYTEs new chars (same relative position as attributes above)
EFh  set window name
BYTE length of name (should be in range 0 to logical screen width)
N BYTEs name
F0h  clear input field to blanks
BYTE field number
F1h  fill input field with character
BYTE field number
BYTE char
F2h  set color of input field
BYTE field number (1-N)
BYTE attribute
F3h  set initial contents of input field
BYTE field number (1-N)
N BYTEs enough chars to exactly fill field as defined by op FFh
F4h  position cursor to start of specific input field
BYTE field number (1-N)
F5h  change field table entry
BYTE field number
7-8 BYTEs field table entry (see opcode FFh below)
F6h  set field type
BYTE field number
BYTE type
00h inactive
40h output field
80h input field
C0h deselected field
C2h selected field
F7h  "broadcast write"  write data to fields with program output bit
set in field table entry, in field number order
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
BYTE number of fields (must be <= existing number of fields)
BYTE screen behavior bits
bit 7  reserved
bit 6  set if menu items may be selected via keyboard
bit 5  set if left mouse button may terminate entry
bit 4  set if right mouse button may terminate entry
bit 3  if set, select fields return contents or blanks rather
than 'Y' or 'N'
bit 2  if set, modified bits reset on return to application
bits 0,1 = 00 no data returned on read of keyboard
01 data returned as array of chars 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
BYTE current input field (updated by DESQview)
BYTE current select field (updated by DESQview)
BYTE attribute for select fields when they are pointed at
BYTE attribute for select fields which have been selected
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 opcode FCh above)
the field table entries, one for each field
BYTE start row    \
BYTE start column  \ if menu selection and start is to
BYTE end row       / right or below end, select from kbd only
BYTE end column   /
BYTE field type
bits 7,6 = 00 inactive (non-entry) field
01 echos keystrokes input to make menu selection
10 fill-in field
11 select field
bit 5  field can be filled by broadcast write (F7h opcode)
bit 4  reserved
bit 3  reserved
bit 2  reserved
bit 1  set if field selected
bit 0  set if field modified
BYTE modifier
if type is fill-in, then bit flags to determine behavior
bit 7  if set, automatically enter CR when field full
bit 6  move to next field when current field is full
bit 5  if set, enter text from right end (for numbers)
bit 4  if set, force input to uppercase
bit 3  if set, clear old contents on first keystroke
bit 2  if set, input returned when cursor moves out
of modified field (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)
BYTE (select field only) normal color of field
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
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.


1512 - TopView MODE 00