|
| |
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
BYTE rows
ABh set virtual screen width
BYTE columns
ACh-AEh unused
AFh ???
BYTE ??? (ANDed with current value of something)
B0h move logical cursor down
BYTE #rows (signed, negative values move up)
B1h move logical cursor right
BYTE #cols (signed, negative values move left)
B2h shift top edge of scrolling region
BYTE #rows (signed)
B3h shift left edge of scrolling region
BYTE #cols (signed)
B4h shift window down
BYTE #lines (signed)
B5h shift 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
BYTE #rows to increase (signed)
BBh adjust virtual screen width
BYTE #cols to increase (signed)
BCh-BFh 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 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
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)
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 clear ???
CFh set ???
D0h turn on ??? (default)
D1h turn off ???
D2h turn on ???
D3h turn off ??? (default)
D4h window is visible
D5h window is hidden
D6h window has frame
D7h window unframed
D8h read characters from window (default)
D9h 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
BYTE number of times
E1h end of commands to repeat, start repeating them
E2h set color
BYTE color
E3h clear virtual screen
E4h redraw window
E5h select menu style
BYTE style
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 goes in new window
= 01 panel uses existing window
bit 5 = 1 create new keyboard in field mode
bit 4 = 1 make newly-created keyboard active
bits 3-0 unused ???
E6h create new window and perform rest of manipulations
in new window
BYTE number of rows
BYTE number of columns
Return: DWORD object handle returned on stack at end
E7h unused
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 bit flags???
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
EDh set logical attributes for window frame
BYTE bit flags???
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 bit flags???
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
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 specific input field
BYTE field number (1-N)
F5h change field table entry
BYTE field number
7-8 BYTEs field table entry (see FFh below)
F6h set field type
BYTE field number
BYTE type
F7h ???
N BYTES (one for each field???)
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
BYTE screen behavior bits
bit 7 ???
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, menu fields return ' ' rather than
'Y' or 'N'
bit 2 ???
bits 0,1 = 00 no data returned on read of
keyboard
01 data returned as array of chars
containing all fields packed
together, with menu fields
represented by the character 'Y' if
selected and 'N' if not selected
10 data returned as variable-length
records for all fields
11 data returned as variable-length
records for the fields which were
modified
BYTE field in which cursor was when entry was
terminated (updated by DESQview)
BYTE field in which mouse was when entry was
terminated (updated by DESQview)
BYTE color of field currently pointed to during
entry
BYTE color of input 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 FCh above)
the field table entries, one for each field
BYTE start row \
BYTE start column \ if menu selection and start
BYTE end row / is to right or below end,
BYTE end column / select from kbd only
BYTE field type
bits 7,6 = 00 non-entry field
01 echos keystrokes input to make
menu selection
10 fill-in field
11 menu selection
bit 5 ???
bit 4 ???
bit 3 ???
bit 2 ???
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, beep when field is 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 ???
bit 1 ???
bit 0 ???
if type is menu selection, 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 for menu item, color of field after cursor
or mouse passes through it
BYTE second key for activating menu selection if
field type is C0h (0 = only single key).
This byte is present if 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. |