[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 15 Fn 12  - Topview - Send Message - "write" - Write String To Window  [Q]

   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

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

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

Data Structure:
   MAGIC  DB  1Bh
   MODE   DB  ?   ; 00h, 01h, 10h, 14h-1Fh legal
   LENGTH DW  ?   ; length of remainder in bytes
   var-length fields follow, each an OPCODE followed by
        zero or more args

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

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

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

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