Int 15/AH=12h/BH=05h

lup.gif ldown.gif Interrups Categories Contents

rbline.gif

TopView - SEND MESSAGE - WRITE - WRITE STRING TO WINDOW

AH = 12h
BH = 05h
BL = window to write to
00h DWORD on top of stack is window handle
01h write string to task's default window
0Ch (DV 2.26+) default window of task owning handle on top of stack
0Dh (DV 2.26+) default window of parent of current task.

STACK:
DWORD object handle if handle passed on stack DWORD total length of string (high word == 0) DWORD address of string to display (see #00439)

Return:
Indicated actions performed a. non-control characters are displayed (opcodes DEh and DFh control whether the attributes are left or changed to the current attrib) b. CR/LF/BS/Tab cause the usual cursor movement c. ESC starts a data structure with additional commands if following byte is less than 20h; otherwise, it is written to the window.

STACK:
DWORD handle of new window if window stream opcode E6h else nothing (arguments have been popped)

See Also: AH=12h/BH=04h - AH=12h/BH=85h

Format of stream data structure: Offset Size Description (Table 00439) 00h BYTE 1Bh magic value identifying start of stream 01h BYTE stream type (00h, 01h, 10h, 14h-1Fh legal) (see #00440,#00446,#00447,#00448) 02h WORD length of remainder of stream in bytes. Var-length fields follow, each an OPCODE followed by zero or more args

(Table 00440) Values for MODE 00h (set or display values) "WINDOW STREAM" opcodes: 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 number of rows A7h set width of physical window. BYTE number of 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 number of rows (signed, negative values move up) [if rows=0 and hardware cursor owner, update hardware cursor] B1h move logical cursor right. BYTE number of columns (signed, negative values move left) [if cols=0 and hardware cursor owner, update hardware cursor] B2h shift top edge of scrolling region. BYTE number of rows (signed) B3h shift left edge of scrolling region. BYTE number of columns (signed) B4h shift physical window down. BYTE number of lines (signed) B5h shift physical window right. BYTE number of columns (signed) B6h expand physical window vertically. BYTE number of lines (signed) B7h expand physical window horizontally. BYTE number of columns (signed) B8h adjust viewport row. BYTE number of rows (signed) B9h adjust viewport column. BYTE number of columns (signed) BAh adjust virtual screen height [contents of window unpredict after]. BYTE number of rows to increase (signed) BBh adjust virtual screen width [contents of window unpredictbl after]. BYTE number of columns 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 number of rows. BYTE number of columns 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 number of rows. BYTE number of columns 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 hardw cursor] C9h shift top left corner of scrolling region. BYTE number of rows (signed). BYTE number of columns (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 number of rows to expand (signed). BYTE number of columns 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 (see #00441) 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.

Note: The window is created with a physical size of 0x0 at the same position as the window to which this stream was sent 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 number of first attribute to change - 1 bits 0-3 number of consecutive attributes to change. N BYTEs new attributes EDh set logical attributes for window frame. BYTE video modes command applies to (also see opcode ECh). BYTE which attributes to set bit 7 if set, copy single following byte to indicated attrs bits 4-6 number of first attribute to change - 1 bits 0-3 number 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 (also see opcode ECh). BYTE which characters to set bit 7 if set, copy single following byte to indicated chars bits 4-6 number of first character to change - 1 bits 0-3 number of consecutive characters 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 (also 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 the 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. 6 BYTEs field table header (see #00442) 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 #00442). 7/8N BYTEs the field table entries, one for each field (see #00444).

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: #00439 - #00446

(Table 00441) 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: #00440

Format of TopView field table header: Offset Size Description (Table 00442) 00h BYTE number of fields (must be <= existing number of fields) 01h BYTE screen behavior bits (see #00443) 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: #00440 - #00444

Bitfields for TopView screen behavior bits: Bit(s) Description (Table 00443) 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: #00440

Format of TopView field table entry: Offset Size Description (Table 00444) 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 #00445) 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: #00442

Bitfields for TopView field type: Bit(s) Description (Table 00445) 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: #00444

(Table 00446) 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 #00444).

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 #00442)

See Also: #00439 - #00447

(Table 00447) 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 #00449). 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

See Also: #00439 - #00446 - #00448

(Table 00448) Values for 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 = number of bytes in stream ES:DI = window's handle

See Also: #00446 - #00447

(Table 00449) Values asynchronous notification routine defined by man.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" tppabs="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

Category: DESQview/TopView and Quarterdeck Programs - Int 15h - T

rbline.gif

lup.gif ldown.gif Interrups Categories Contents