home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / FSC.ZIP / FSC-0021.DOC < prev    next >
Text File  |  1988-05-23  |  25KB  |  834 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                 VFOSSIL - An OS/2-Subset Video FOSSIL Appendage
  15.  
  16.                          Version 1.00,  May 23,  1988
  17.  
  18.                        Rick Moore,  Solar Wind Computing
  19.                           FidoNet Address:  1:115/333
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                  FidoNet Standards Committee index:  FSC-0021
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  Copyright (C) 1988, Rick Moore,  Homewood,  IL, 60430. All rights reserved.
  48.  
  49.  This document may be distributed freely as long as it is distributed in its
  50.  original,  unmodified form.
  51.  
  52. VFOSSIL - An OS/2-Subset Video FOSSIL Appendage                         FSC-0021
  53.                                                                          Page  2
  54.  
  55.  
  56. VFOSSIL design criteria:
  57.  
  58. The VFOSSIL appendage proposed here is designed to be an compatible subset of
  59. the OS/2 VIO subsystem.  All services are proper subsets of the equivalent OS/2
  60. VIO API's,  and if you stick to the services defined in this document,  you
  61. will be able to compile and run your programs with very minor changes in an
  62. OS/2 environment.
  63.  
  64. VFOSSIL (and OS/2 VIO at this time) only supports text modes.  It is possible
  65. to use the "set mode" service to set a graphics mode,  but that is the only
  66. support for pixel-oriented graphics functions provided by VFOSSIL.  The minimum
  67. environment supported by VFOSSIL is a 80 by 24 monochrome text screen,  and any
  68. program using VFOSSIL calls should be capable of operating within this level of
  69. support.  By querying the VFOSSIL,  the full capabilities of a specific
  70. implementation may be determined and used,  but all programs using VFOSSIL
  71. should be capable of operating with the 80 by 24 monochrome text environment.
  72.  
  73.  
  74. The organization of the video screen:
  75.  
  76. The virtual screen is organized in rows of columns of character/attribute
  77. pairs,  hereafter referred to as cells.  The characters actually displayed
  78. are located on the even addresses,  the attribute for each character is
  79. located at character+1.
  80.  
  81. Regardless of the manner in which the video screen is actually organized,  the
  82. programmer will view it as a a contiguous area of memory,  referred to as the
  83. "logical video buffer" (LVB).  The LVB is (NumRow * NumCol) cells in length.
  84.  
  85. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  86.                                                                          Page  3
  87.  
  88. VFOSSIL installation:
  89.  
  90. The VFOSSIL appendage is installed via the standard FOSSIL external
  91. application function.  The FOSSIL interrupt (14h) is issued with the
  92. following parameters:
  93.  
  94.         AH = 7Eh    Install appendage
  95.         AL = 81h    VFOSSIL application code
  96.         DX = offset of VFOSSIL entry point
  97.         ES = segment of VFOSSIL entry point
  98.  
  99. Upon return from the FOSSIL interrupt,  the following registers are
  100. modified:
  101.  
  102.         AX = 1954h    FOSSIL signature
  103.         BL = 81h    VFOSSIL application code
  104.         BH = 01h - Installation was successful
  105.              00h - Installation  was unsuccessful
  106.  
  107. VFOSSIL removal:
  108.  
  109. The VFOSSIL appendage is removed via the standard FOSSIL external
  110. application function.  The FOSSIL interrupt (14h) is issued with the
  111. following parameters:
  112.  
  113.         AH = 7Fh    Remove appendage
  114.         AL = 81h    VFOSSIL application code
  115.         DX = offset of VFOSSIL entry point
  116.         ES = segment of VFOSSIL entry point
  117.  
  118. Upon return from the FOSSIL interrupt,  the following registers are
  119. modified:
  120.  
  121.         AX = 1954h    FOSSIL signature
  122.         BL = 81h    VFOSSIL identification code
  123.         BH = 01h - Removal was successful
  124.              00h - Removal was unsuccessful
  125.  
  126. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  127.                                                                          Page  4
  128.  
  129.  
  130. VFOSSIL functions called via the standard FOSSIL interrupt (14h):
  131.  
  132. The following three functions are called via the standard FOSSIL interrupt,
  133. int 14h.  All other VFOSSIL functions are called via the OS/2 compatible
  134. direct call interface.
  135.  
  136. Subfunction 00h - Return VFOSSIL information
  137.  
  138.     Entry:    AH = 81h    VFOSSIL application code
  139.         AL = 00h    VFOSSIL subfunction
  140.         ES:DI = Far pointer to VFOSSIL information structure
  141.  
  142.     Exit:    AX = 1954h     FOSSIL signature
  143.  
  144.     This function is used before calling the open function (sub-function 01h)
  145.     to determine the characteristics of the VFOSSIL. Such things returned in
  146.     the structure are current version level and number of functions supported.
  147.     
  148.     The format of the information structure filled in by this call is as
  149.     follows:
  150.  
  151.     DW    Size of this structure,  in bytes,  including this field
  152.     DW    VFOSSIL major version
  153.     DW    VFOSSIL revision level
  154.     DW    Highest VFOSSIL application function supported
  155.  
  156. Subfunction 01h - Open VFOSSIL
  157.  
  158.     Entry:    AH = 81h    VFOSSIL application code
  159.         AL = 01h    VFOSSIL subfunction
  160.         CX = Length of application function table (in bytes)
  161.         ES:DI = Far pointer to application function table
  162.  
  163.     Exit:    BH = Highest VFOSSIL application function supported
  164.         AX = 1954h    FOSSIL signature
  165.  
  166.     This VFOSSIL subfunction will initialize the table pointed to by
  167.     ES:DI with far pointers to the VFOSSIL application services.  The
  168.     number of far pointers initialized is equal to the value returned
  169.     in register BH + 1.  Under no circumstances will the number of
  170.     far pointers initialized exceed the value passed in register CX / 4.
  171.     All other processing necessary to ready the VFOSSIL for use by the
  172.     application program should be performed at this time.
  173.  
  174. Subfunction 02h - Close VFOSSIL
  175.  
  176.     Entry:    AH = 81h    VFOSSIL application code
  177.         AL = 02h    VFOSSIL subfunction
  178.  
  179.     Exit:    AX = 1954h    FOSSIL signature
  180.  
  181.     This VFOSSIL function terminates all VFOSSIL operations,  and leaves
  182.     the VFOSSIL in a state that allows for it to be removed from memory,
  183.     or to be reinitialized via VFOSSIL function 01h.
  184.  
  185. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  186. Application Services                                                     Page  5
  187.  
  188.  
  189. VFOSSIL application services:
  190.  
  191. All calls to VFOSSIL services are made in a manner identical to the OS/2 API
  192. protocol.  All services are entered via a far call,  with parameters passed
  193. via the stack.  All services return an error code in register AX.  The
  194. parameters are pushed onto the stack Pascal-style,  from left to right.  The
  195. parameters are passed on the stack in one of the three following ways:
  196.  
  197.     WORD   A one-word value pushed directly onto the stack
  198.  
  199.     DWRD   A double-word value pushed directly onto the stack
  200.            (low word first,  followed by the high word)
  201.  
  202.     PTR    A far pointer to a memory area.  Far pointers are passed
  203.            as double-word values,  segment followed by offset.
  204.  
  205. Single-word and double-word input parameters are always passed as WORD and
  206. DWRD.  If the service returns information in the parameter field itself,
  207. then it is pushed as a PTR,  even if the object is a WORD or a DWRD.  Variable
  208. length parameters,  such as data structures or ASCIIZ strings, are always
  209. passed as PTR objects.
  210.  
  211. All cursor coordinates are expressed as zero (0) based numbers.
  212.  
  213. Each VFOSSIL service requires a "handle" parameter as the last parameter
  214. passed to the service.  At this time,  zero (0) is the only valid handle.
  215.  
  216. The actual addresses used to call the application services are contained in
  217. the address table filled in by the VFOSSIL initialization call described
  218. above.  All addresses are in far (segment/offset) format.  Here is the format
  219. of the application service address table:
  220.  
  221. Table    +00h    VioGetMode        Query current video mode
  222.     +04h    VioSetMode        Set video mode
  223.     +08h    VioGetConfig        Query video hardware configuration
  224.     +0Ch    VioWrtTTY        Write data in TTY mode
  225.     +10h    VioGetANSI        Query current ANSI state
  226.     +14h    VioSetANSI        Set ANSI state
  227.     +18h    VioGetCurPos        Query current cursor position
  228.     +1Ch    VioSetCurPos        Set cursor position
  229.     +20h    VioGetCurType        Query current cursor parameters
  230.     +24h    VioSetCurType        Set cursor parameters
  231.     +28h    VioScrollUp        Scroll screen up
  232.     +2Ch    VioScrollDn        Scroll screen down
  233.     +30h    VioReadCellStr        Read cell string from display
  234.     +34h    VioReadCharStr        Read char string from display
  235.     +38h    VioWrtCellStr        Write cell string
  236.     +3Ch    VioWrtCharStr        Write char string (existing attributes)
  237.     +40h    VioWrtCharStrAtt    Write char string (constant attributes)
  238.     +44h    VioWrtNAttr        Replicate attribute
  239.     +48h    VioWrtNCell        Replicate cell
  240.     +4Ch    VioWrtNChar        Replicate char
  241.  
  242. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  243. Application Services                                                     Page  6
  244.  
  245.  
  246. VioGetMode - Query current video mode
  247.  
  248.  
  249. Parameters:
  250.  
  251.     PTR    Pointer to a video mode data structure
  252.     WORD    VIO handle (must be 0)
  253.  
  254.  
  255. Video mode data structure:
  256.  
  257.     DW    Structure length (including this field)
  258.     DB    Mode characteristics
  259.         -------0    Monochrome/printer adapter
  260.         -------1    Other adapter
  261.         ------0-    Text mode
  262.         ------1-    Graphics mode
  263.         -----0--    Enable color
  264.         -----1--    Disable color (black and white)
  265.     DB    Number of colors supported by the display
  266.         1 =  2 colors
  267.         2 =  4 colors
  268.         4 = 16 colors
  269.     DW    Number of text columns
  270.     DW    Number of text rows
  271.     DW    Reserved
  272.     DW    Reserved
  273.     DD    Reserved
  274.  
  275.  
  276. A partial video mode buffer may be specified.  VFOSSIL returns only the data
  277. that will fit into the buffer.  The minimum buffer length is 3,  and the
  278. maximum buffer length is 12.  Partial fields are not returned.
  279.  
  280.  
  281. Error codes returned:
  282.  
  283.       0 - Successful completion
  284.     116 - Internal VIO failure
  285.     382 - Buffer too small
  286.     436 - Invalid VIO handle
  287.  
  288. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  289. Application Services                                                     Page  7
  290.  
  291.  
  292. VioSetMode - Set video mode
  293.  
  294.  
  295. Parameters:
  296.  
  297.     PTR    Pointer to a video mode data structure (see VioGetMode)
  298.     WORD    VIO handle (must be 0)
  299.  
  300.  
  301. A partial video mode buffer may be specified.  The minimum buffer length is 3,
  302. and the maximum buffer length is 12.  Partial fields are not supported.  The
  303. remaining fields are set to default values.
  304.  
  305.  
  306. Error codes returned:
  307.  
  308.       0 - Successful completion
  309.     116 - Internal VIO failure
  310.     355 - Unsupported mode
  311.     382 - Buffer too small
  312.     421 - Invalid VIO parameter
  313.     436 - Invalid VIO handle
  314.  
  315. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  316. Application Services                                                     Page  8
  317.  
  318.  
  319. VioGetConfig - Query video hardware configuration
  320.  
  321.  
  322. Parameters:
  323.  
  324.     PTR    Pointer to a video configuration data area
  325.     WORD    VIO handle (must be 0)
  326.  
  327.  
  328. Video configuration data area:
  329.  
  330.     DW    Structure length (includes this field)
  331.     DW    Adapter type
  332.         0 = Monochrome/printer
  333.         1 = CGA
  334.         2 = EGA
  335.         3 = VGA
  336.         7 = 8514A
  337.     DW    Display type
  338.         0 = Monochrome
  339.         1 = Color
  340.         2 = Enhanced color
  341.         9 = 8514
  342.     DD    Adapter memory size
  343.  
  344.  
  345. Error codes returned:
  346.  
  347.       0 - Successful completion
  348.     116 - Internal VIO failure
  349.     382 - Buffer too small
  350.     436 - Invalid VIO handle
  351.  
  352. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  353. Application Services                                                     Page  9
  354.  
  355.  
  356. VioWriteTTY - Write data in TTY mode
  357.  
  358.  
  359. Parameters:
  360.  
  361.     WORD    Pointer to a character string that VFOSSIL will write
  362.         to the screen
  363.     WORD    String length
  364.     WORD    VIO handle (must be 0)
  365.  
  366.  
  367. This service writes a string to the video screen in TTY mode.  The characters
  368. CR,  LF,  BS,  TAB,  and BELL are interpreted as control values rather than
  369. being display as values.  If ANSI mode has been enabled (see VioGetANSI,  
  370. VioSetANSI),  then ANSI control sequences are also interpreted as control 
  371. strings.  In ANSI mode,  this service is not required to be reentrant,  and
  372. should not be called when a MS/DOS function is in progress.  When in non-ANSI
  373. mode,  this service is required to be reentrant,  and may be called from 
  374. within a MS/DOS function.  If the write goes beyond the end of a line,  it
  375. continues at the start of the next line.  The write terminates at the end of
  376. the screen.  The cursor is left positioned at the next character position to
  377. be written.
  378.  
  379.  
  380. Error codes returned:
  381.  
  382.       0 - Successful completion
  383.     116 - Internal VIO failure
  384.     436 - Invalid VIO handle
  385.  
  386. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  387. Application Services                                                     Page 10
  388.  
  389.  
  390. VioGetANSI - Query current ANSI state
  391.  
  392.  
  393. Parameters:
  394.  
  395.     PTR    Pointer to a one-word field in which VFOSSIL will return the
  396.         current ANSI state:
  397.             0 = Off
  398.             1 = On 
  399.     WORD    VIO handle (must be 0)
  400.  
  401.  
  402. Error codes returned:
  403.  
  404.       0 - Successful completion
  405.     116 - Internal VIO failure
  406.     436 - Invalid VIO handle
  407.  
  408. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  409. Application Services                                                     Page 11
  410.  
  411.  
  412. VioSetANSI - Set ANSI state
  413.  
  414.  
  415. Parameters:
  416.  
  417.     PTR    Pointer to a one-word field indicating how ANSI processing
  418.         is to be set:
  419.             0 = Off
  420.             1 = On 
  421.     WORD    VIO handle (must be 0)
  422.  
  423.  
  424. Error codes returned:
  425.  
  426.       0 - Successful completion
  427.     116 - Internal VIO failure
  428.     421 - Invalid VIO parameter
  429.     436 - Invalid VIO handle
  430.  
  431. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  432. Application Services                                                     Page 12
  433.  
  434.  
  435. VioGetCurPos - Query current cursor position
  436.  
  437.  
  438. Parameters:
  439.  
  440.     PTR    Pointer to a one word field in which VFOSSIL will return
  441.         the current cursor row
  442.     PTR    Pointer to a one word field in which VFOSSIL will return
  443.         the current cursor column
  444.     WORD    VIO handle (must be 0)
  445.  
  446.  
  447. This service returns the current cursor position.  Cursor coordinates are
  448. zero based.
  449.  
  450.  
  451. Error codes returned:
  452.  
  453.       0 - Successful completion
  454.     116 - Internal VIO failure
  455.     436 - Invalid VIO handle
  456.  
  457. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  458. Application Services                                                     Page 13
  459.  
  460.  
  461. VioSetCurPos - Set cursor position
  462.  
  463.  
  464. Parameters:
  465.  
  466.     WORD    Desired cursor row
  467.     WORD    Desired cursor column
  468.     WORD    VIO handle (must be 0)
  469.  
  470.  
  471. This service sets the cursor position to the zero based coordinates specified
  472. by the parameters.  If either of the parameters is invalid,  the cursor
  473. position is left unchanged.
  474.  
  475.  
  476. Error codes returned:
  477.  
  478.       0 - Successful completion
  479.     116 - Internal VIO failure
  480.     358 - Invalid row value
  481.     359 - Invalid column value
  482.     436 - Invalid VIO handle
  483.  
  484. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  485. Application Services                                                     Page 14
  486.  
  487.  
  488. VioGetCurType - Query current cursor parameters
  489.  
  490.  
  491. Parameters:
  492.  
  493.     PTR    Pointer to a cursor type data area
  494.     WORD    VIO handle (must be 0)
  495.  
  496.  
  497. Cursor type data area:
  498.  
  499.     DW    Cursor start line
  500.     DW    Cursor end line
  501.     DW    Cursor width (always 1)
  502.     DW    Cursor attribute (-1 = hidden)
  503.  
  504.  
  505. Error codes returned:
  506.  
  507.       0 - Successful completion
  508.     116 - Internal VIO failure
  509.     436 - Invalid VIO handle
  510.  
  511. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  512. Application Services                                                     Page 15
  513.  
  514.  
  515. VioSetCurType - Set cursor parameters
  516.  
  517.  
  518. Parameters:
  519.  
  520.     PTR    Pointer to a cursor type data area (see VioGetCurType)
  521.     WORD    VIO handle (must be 0)
  522.  
  523.  
  524. Error codes returned:
  525.  
  526.       0 - Successful completion
  527.     116 - Internal VIO failure
  528.     421 - Invalid VIO parameter
  529.     436 - Invalid VIO handle
  530.  
  531. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  532. Application Services                                                     Page 16
  533.  
  534.  
  535. VioScrollUp - Scroll screen up
  536.  
  537.  
  538. Parameters:
  539.  
  540.     WORD    Top row of the scroll area
  541.     WORD    Left column of the scroll area
  542.     WORD    Bottom row of the scroll area
  543.     WORD    Right column of the scroll area
  544.     WORD    Number of rows to scroll.  A value of -1 causes the scroll
  545.         area to be cleared.
  546.     PTR    Pointer to a char/attr cell that is used to fill the scroll
  547.         area.
  548.     WORD    VIO handle (always 0)
  549.  
  550.  
  551. Error codes returned:
  552.  
  553.       0 - Successful completion
  554.     116 - Internal VIO failure
  555.     358 - Invalid row value
  556.     359 - Invalid column value
  557.     436 - Invalid VIO handle
  558.  
  559. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  560. Application Services                                                     Page 17
  561.  
  562.  
  563. VioScrollDn - Scroll screen down
  564.  
  565.  
  566. Parameters:
  567.  
  568.     WORD    Top row of the scroll area
  569.     WORD    Left column of the scroll area
  570.     WORD    Bottom row of the scroll area
  571.     WORD    Right column of the scroll area
  572.     WORD    Number of rows to scroll.  A value of -1 causes the scroll
  573.         area to be cleared.
  574.     PTR    A pointer to a char/attr cell that is used to fill the scroll
  575.         area.
  576.     WORD    VIO handle (always 0)
  577.  
  578.  
  579. Error codes returned:
  580.  
  581.       0 - Successful completion
  582.     116 - Internal VIO failure
  583.     358 - Invalid row value
  584.     359 - Invalid column value
  585.     436 - Invalid VIO handle
  586.  
  587. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  588. Application Services                                                     Page 18
  589.  
  590.  
  591. VioReadCellStr - Read cell string from display
  592.  
  593.  
  594. Parameters:
  595.  
  596.     PTR    Pointer to a buffer into which the cell string is to be
  597.         placed
  598.     PTR    Pointer to a one-word field which,  upon entry,  specifies
  599.         the length of the cell buffer (in bytes),  and,  on return,
  600.         contains the number of bytes actually read.  Each cell
  601.         occupies two bytes,  so the number of cells read is equal to
  602.         half of the buffer length specified.
  603.     WORD    Row where the read is to start
  604.     WORD    Column where the read is to start
  605.     WORD    VIO handle (always 0)
  606.  
  607.  
  608. If the read request extends beyond the end of the line,  it continues at the
  609. first column of the next line.  If an attempt is made to read past the end of
  610. the screen,  the read operation terminates and the length field is set to the
  611. actual number of bytes read.
  612.  
  613.  
  614. Error codes returned:
  615.  
  616.       0 - Successful completion
  617.     116 - Internal VIO failure
  618.     358 - Invalid row value
  619.     359 - Invalid column value
  620.     436 - Invalid VIO handle
  621.  
  622. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  623. Application Services                                                     Page 19
  624.  
  625.  
  626. VioReadCharStr - Read character string from display
  627.  
  628.  
  629. Parameters:
  630.  
  631.     PTR    Pointer to a buffer into which the character string is to be
  632.         placed
  633.     PTR    Pointer to a one-word field which,  upon entry,  specifies
  634.         how many characters are to be read,  and,  on return,
  635.         contains the number of characters actually read.
  636.     WORD    Row where the read is to start
  637.     WORD    Column where the read is to start
  638.     WORD    VIO handle (always 0)
  639.  
  640.  
  641. If the read request extends beyond the end of the line,  it continues at the
  642. first column of the next line.  If an attempt is made to read past the end of
  643. the screen,  the read operation terminates and the length field is set to the
  644. actual number of characters read.
  645.  
  646.  
  647. Error codes returned:
  648.  
  649.       0 - Successful completion
  650.     116 - Internal VIO failure
  651.     358 - Invalid row value
  652.     359 - Invalid column value
  653.     436 - Invalid VIO handle
  654.  
  655. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  656. Application Services                                                     Page 20
  657.  
  658.  
  659. VioWrtCellStr - Write a cell string
  660.  
  661.  
  662. Parameters:
  663.  
  664.     PTR    Pointer to the cell string to be written
  665.     WORD    Cell string length.  Since each cell occupies two bytes,
  666.         this number is twice the number of cells to be written.
  667.     WORD    Row at which write is to begin
  668.     WORD    Column at which write is to begin
  669.     WORD    Vio handle (must be 0)
  670.  
  671.  
  672. If the write request extends beyond the end of the line,  it continues at the
  673. first column of the next line.  If an attempt is made to write past the end of
  674. the screen,  the write operation terminates.
  675.  
  676.  
  677. Error codes returned:
  678.  
  679.       0 - Successful completion
  680.     116 - Internal VIO failure
  681.     358 - Invalid row value
  682.     359 - Invalid column value
  683.     436 - Invalid VIO handle
  684.  
  685. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  686. Application Services                                                     Page 21
  687.  
  688.  
  689. VioWrtCharStr - Write a character string,  using existing attributes
  690.  
  691.  
  692. Parameters:
  693.  
  694.     PTR    Pointer to the character string to be written
  695.     WORD    Character string length
  696.     WORD    Row at which write is to begin
  697.     WORD    Column at which write is to begin
  698.     WORD    Vio handle (must be 0)
  699.  
  700.  
  701. The attributes of the display cells whose characters are replaced are not
  702. modified.  If the write request extends beyond the end of the line,  it
  703. continues at the first column of the next line.  If an attempt is made to
  704. write past the end of the screen,  the write operation terminates.
  705.  
  706.  
  707. Error codes returned:
  708.  
  709.       0 - Successful completion
  710.     116 - Internal VIO failure
  711.     358 - Invalid row value
  712.     359 - Invalid column value
  713.     436 - Invalid VIO handle
  714.  
  715. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  716. Application Services                                                     Page 22
  717.  
  718.  
  719. VioWrtCharStrAtt - Write a character string,  using constant attribute
  720.  
  721.  
  722. Parameters:
  723.  
  724.     PTR    Pointer to the character string to be written
  725.     WORD    Character string length
  726.     WORD    Row at which write is to begin
  727.     WORD    Column at which write is to begin
  728.     PTR    Pointer to the display attribute to be used with each
  729.         character written
  730.     WORD    Vio handle (must be 0)
  731.  
  732.  
  733. If the write request extends beyond the end of the line,  it continues at the
  734. first column of the next line.  If an attempt is made to write past the end of
  735. the screen,  the write operation terminates.
  736.  
  737.  
  738. Error codes returned:
  739.  
  740.       0 - Successful completion
  741.     116 - Internal VIO failure
  742.     358 - Invalid row value
  743.     359 - Invalid column value
  744.     436 - Invalid VIO handle
  745.  
  746. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  747. Application Services                                                     Page 23
  748.  
  749.  
  750. VioWrtNAttr - Replicate an attribute byte,  leaving characters unchanged
  751.  
  752.  
  753. Parameters:
  754.  
  755.     PTR    Pointer to the display attribute to be replicated
  756.     WORD    Replication count
  757.     WORD    Row at which write is to begin
  758.     WORD    Column at which write is to begin
  759.     WORD    Vio handle (must be 0)
  760.  
  761.  
  762. The characters contained in the display cells whose attributes are replaced
  763. are not modified.  If the write request extends beyond the end of the line,
  764. it continues at the first column of the next line.  If an attempt is made to
  765. write past the end of the screen,  the write operation terminates.
  766.  
  767.  
  768. Error codes returned:
  769.  
  770.       0 - Successful completion
  771.     116 - Internal VIO failure
  772.     358 - Invalid row value
  773.     359 - Invalid column value
  774.     436 - Invalid VIO handle
  775.  
  776. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  777. Application Services                                                     Page 24
  778.  
  779.  
  780. VioWrtNCell - Replicate a cell
  781.  
  782.  
  783. Parameters:
  784.  
  785.     PTR    Pointer to the cell to be replicated
  786.     WORD    Replication count
  787.     WORD    Row at which write is to begin
  788.     WORD    Column at which write is to begin
  789.     WORD    Vio handle (must be 0)
  790.  
  791.  
  792. If the write request extends beyond the end of the line,  it continues at the
  793. first column of the next line.  If an attempt is made to write past the end of
  794. the screen,  the write operation terminates.
  795.  
  796.  
  797. Error codes returned:
  798.  
  799.       0 - Successful completion
  800.     116 - Internal VIO failure
  801.     358 - Invalid row value
  802.     359 - Invalid column value
  803.     436 - Invalid VIO handle
  804.  
  805. VFOSSIL - An OS/2 Subset Video FOSSIL Appendage                         FSC-0021
  806. Application Services                                                     Page 25
  807.  
  808.  
  809. VioWrtNChar - Replicate an character,  leaving attributes unchanged
  810.  
  811.  
  812. Parameters:
  813.  
  814.     PTR    Pointer to the character to be replicated
  815.     WORD    Replication count
  816.     WORD    Row at which write is to begin
  817.     WORD    Column at which write is to begin
  818.     WORD    Vio handle (must be 0)
  819.  
  820.  
  821. The attributes contained in the display cells whose characters are replaced
  822. are not modified.  If the write request extends beyond the end of the line,
  823. it continues at the first column of the next line.  If an attempt is made to
  824. write past the end of the screen,  the write operation terminates.
  825.  
  826.  
  827. Error codes returned:
  828.  
  829.       0 - Successful completion
  830.     116 - Internal VIO failure
  831.     358 - Invalid row value
  832.     359 - Invalid column value
  833.     436 - Invalid VIO handle
  834.