[Toc][Index]

VioSetMode


Bindings:  C, MASM 

This call sets the mode of the display. 
 VioSetMode    (ModeData, VioHandle) 
 
 ModeData (PVIOMODEINFO) - input 
    Address of the mode characteristics structure: 
    length (USHORT) 
       Input parameter to VioSetMode.  Length specifies the length of the 
       data structure in bytes including Length itself.  The minimum 
       structure size required is 3 bytes. OS/2 sets to the first mode (in 
       the list of modes supported by this display configuration) with a 
       data structure matching the mode data specified. 
    type (UCHAR) 
       Mode characteristics bit mask: 
       Bit       Description 
       7-4       Reserved, set to zero. 
       3         0 = VGA-compatible modes 0 thru 13H. 
                 1 = Native mode. 
       2         0 = Enable color burst 
                 1 = Disable color burst. 
       1         0 = Text mode. 
                 1 = Graphics mode. 
       0         0 = Monochrome compatible mode. 
                 1 = Other. 
    numcolors (UCHAR) 
       Number of colors defined as a power of 2.  This is equivalent to 
       the number of color bits that define the color, for example: 
       Value     Definition 
       0         Monochrome modes 7, 7+, and F. 
       1         2 colors. 
       2         4 colors. 
       4         16 colors. 
       8         256 colors. 
    textcols (USHORT) 
       Number of text columns. 
    textrows (USHORT) 
       Number of text rows. 
    pelcols (USHORT) 
       Horizontal resolution, number of pel columns. 
    pelrows (USHORT) 
       Vertical resolution, number of pel rows. 
    Attribute Format (UCHAR) 
       Identifies the format of the attributes. 
    Number of Attributes (UCHAR) 
       Identifies the number of attributes in a character cell. 
    Buffer Address (ULONG) 
       32-bit physical address of the physical display buffer for this 
       mode. 
    Buffer Length (ULONG) 
       Length of the physical display buffer for this mode. 
    Full Buffer Size (ULONG) 
       Size of the buffer required for a full save of the physical display 
       buffer for this mode. 
    Partial Buffer Size (ULONG) 
       Size of the buffer required for a partial (pop-up) save of the 
       physical display buffer for this mode. 
    Extended Data Area Address (PCH) 
       Far address to an extended mode data structure or zero if none. 
        The format of the extended mode data structure is determined by 
       the device driver and is unknown to OS/2. 
 VioHandle (HVIO) - input 
    Reserved word of 0s. 
 rc (USHORT) - return 
    Return code descriptions are: 
    0         NO_ERROR 
    355       ERROR_VIO_MODE 
    430       ERROR_VIO_ILLEGAL_DURING_POPUP 
    436       ERROR_VIO_INVALID_HANDLE 
    438       ERROR_VIO_INVALID_LENGTH 
    465       ERROR_VIO_DETACHED 
    467       ERROR_VIO_FONT 
    468       ERROR_VIO_USER_FONT 
    494       ERROR_VIO_EXTENDED_SG 
 
 Remarks 
 VioSetMode initializes the cursor position and type. 
 VioSetMode does not clear the screen. To clear the screen, use one of the 
 VioScrollxx calls. 
 The disable color burst bit in the Type field in the VioSetMode data 
 structure is functional only for the CGA and VGA. This bit causes the 
 color portion of the video signal to be suppressed, producing a black and 
 white mode on composite monitors attached to the CGA.  On VGA, the bit 
 causes the color lookup table to be loaded with values that produce 
 shades of gray instead of colors, again producing a black and white mode. 
 For all other combinations of adapters and displays, the setting of this 
 bit is recorded and returned on any subsequent VioGetMode call, but 
 otherwise is ignored. 
 For text modes in full-screen sessions, the number of rows on the screen 
 is determined by the availability of fonts  of the correct size.  For any 
 specified mode, the size of the character defined by the font must be 
 (Horizontal Resolution)/(Text Columns) dots wide and (Vertical 
 Resolution)/(Text Rows) dots high. For example, an 8x8 font would support 
 39 through 43 text rows if the screen resolution were 640x350. 
 If VioSetState request type 6 has been issued previously to select the 
 target display configuration for VioSetMode, the mode is set on the 
 display configuration selected. If that display configuration does not 
 support the mode specified, an error is returned. 
 Assuming no target display configuration for VioSetMode is selected, the 
 mode is set on the primary configuration. If the primary configuration 
 does not support the mode specified, the mode is set on the secondary 
 configuration. 
 The table below shows the VioSetMode parameters required to set all the 
 modes supported by the CGA, EGA, VGA, and PS/2 Display Adapters.  The 
 modes native to the 8514/A and other advanced video adapters are set with 
 the Adapter (programming) Interface to these adapters, not VioSetMode. 
 Note:  Although graphics mode support is provided in VioSetMode, this 
        support is not provided by the Base Video Handlers provided with 
        OS/2. 
 

 ---------------------------------------------------------------------
  Table  5-1. Display Mode Attributes Supported by Adapters
 ---------------------------------------------------------------------
  BIOS  TYPE  COLOR  COLS  ROWS  HRES  VRES   VALID ADAPTER/DISPLAY
  MODE                                        COMBINATIONS [EMULATED]
 ---------------------------------------------------------------------
  0     5     4      40    25    320   200    [CGA/CD], CGA/Comp,
                                              [EGA/CD], [EGA/ECD],
                                              VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  0*    5     4      40    25    320   350    [EGA/ECD], VGA/Mono,
                                              VGA/Color, VGA/Plasma
 ---------------------------------------------------------------------
  0+    5     4      40    25    360   400    VGA/Mono, VGA/Color
 ---------------------------------------------------------------------
  0#    5     4      40    25    320   400    VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  1     1     4      40    25    320   200    CGA/CD, CGA/Comp,
                                              EGA/CD, EGA/ECD,
                                              [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  1*    1     4      40    25    320   350    EGA/ECD, [VGA/Mono],
                                              VGA/Color, [VGA/Plasma]
 ---------------------------------------------------------------------
  1+    1     4      40    25    360   400    [VGA/Mono], VGA/Color
 ---------------------------------------------------------------------
  1#    1     4      40    25    320   400    [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  2     5     4      80    25    640   200    [CGA/CD], CGA/Comp,
                                              [EGA/CD], [EGA/ECD],
                                              VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  2*    5     4      80    25    640   350    [EGA/ECD], VGA/Mono,
                                              VGA/Color, VGA/Plasma
 ---------------------------------------------------------------------
  2+    5     4      80    25    720   400    VGA/Mono, VGA/Color
 ---------------------------------------------------------------------
  2#    5     4      80    25    640   400    VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  3     1     4      80    25    640   200    CGA/CD, CGA/Comp,
                                              EGA/CD, EGA/ECD,
                                              [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  3*    1     4      80    25    640   350    EGA/ECD, [VGA/Mono],
                                              VGA/Color, [VGA/Plasma]
 ---------------------------------------------------------------------
  3+    1     4      80    25    720   400    [VGA/Mono], VGA/Color
 ---------------------------------------------------------------------
  3#    1     4      80    25    640   400    [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  7     0     0      80    25    720   350    MPA/MD, EGA/MD,
                                              VGA/Mono, VGA/Color
 ---------------------------------------------------------------------
  7+    0     0      80    25    720   400    VGA/Mono, VGA/Color
 ---------------------------------------------------------------------
  7#    0     0      80    25    640   400    VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  n/a   0     0      80    25    640   350    VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  n/a   1     4      80    30    720   480    [VGA/Mono], VGA/Color
 ---------------------------------------------------------------------
  n/a   1     4      80    30    640   480    [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  4     3     2      [40]  [25]  320   200    CGA/CD, CGA/Comp,
                                              EGA/CD, EGA/ECD,
                                              [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  5     7     2      [40]  [25]  320   200    [CGA/CD], CGA/Comp,
                                              [EGA/CD], [EGA/ECD],
                                              VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  6     3     1      [80]  [25]  640   200    CGA/CD, CGA/Comp,
                                              EGA/CD, EGA/ECD,
                                              VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  D     3     4      [40]  [25]  320   200    EGA/CD, EGA/ECD,
                                              [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  E     3     4      [80]  [25]  640   200    EGA/CD, EGA/ECD,
                                              [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  F     2     0      [80]  [25]  640   350    EGA/MD, VGA/Mono,
                                              VGA/Color, VGA/Plasma
 ---------------------------------------------------------------------
  10    3     4      [80]  [25]  640   350    EGA/ECD, [VGA/Mono],
                                              VGA/Color, [VGA/Plasma]
 ---------------------------------------------------------------------
  11    3     1      [80]  [30]  640   480    VGA/Mono, VGA/Color,
                                              VGA/Plasma
 ---------------------------------------------------------------------
  12    3     4      [80]  [30]  640   480    [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  13    3     8      [40]  [25]  320   200    [VGA/Mono], VGA/Color,
                                              [VGA/Plasma]
 ---------------------------------------------------------------------
  n/a   11    8      [80]  [30]  640   480    [8514A/Mono],
                                              8514A/Color
 ---------------------------------------------------------------------
  n/a   11    4      [80]  [30]  640   480    [8514A/Mono],
                                              8514A/Color
 ---------------------------------------------------------------------
  n/a   11    8      [85]  [38]  1024  768    [8514A/HMono],
                                              8514A/HColor
 ---------------------------------------------------------------------
  n/a   11    4      [85]  [38]  1024  768    [8514A/HMono],
                                              8514A/HColor
 ---------------------------------------------------------------------
  Display Adapters:
 
  MPA       Monochrome/Printer Adapter
  CGA       Color Graphics Adapter
  EGA       Enhanced Graphics Adapter
  VGA       Video Graphics Array, PS/2 Display Adapter
  8514A     8514/A Display Adapter
 ---------------------------------------------------------------------
  Displays:
 
  MD        5151 Monochrome Display
  CD        5153 Color Display
  ECD       5154 Enhanced Color Display
  MONO      8503 PS/2 Monochrome Display, 8507/8604 Display
  HMONO     8507/8604 Display
  COLOR     8512/13 PS/2 Color Display, 8514 Display
  HCOLOR    8514 Display
  PLASMA    Plasma Display Panel
  COMP      Composite Video Monitor
 
  Notes:
 
  1.  Types 0, 1, and 5 are text modes; types 2, 3, 7, and 11 are
      graphics modes.
  2.  For BIOS modes 0, 2, 5, the color burst is disabled on the
      CGA and VGA.
  3.  The Personal System/2 Display Adapter 8514/A(TM) has advanced
      function modes, which are supported through the 8514/A display
      adapter interface, not the VIO Subsystem.  Refer to the
      Personal System/2 Display Adapter 8514/A Technical Reference
      for details of this support.
 
 ---------------------------------------------------------------------
 
 
 Note:  For text modes in full-screen, the number of rows may differ from 
        the 
        mode table due to the availability of fonts of the correct size as 
        described 
        above. 
 
 
 PM Considerations   
 Windowable VIO sessions support only 80-column, color text modes. When 
 VioSetMode is called from a Windowable VIO session, it only verifies that 
 an 80-column text mode was requested, with Text Rows between 1 and 255. 
  The resulting mode, which can be queried using VioGetMode, always has 
 Type = 1, Color = 4, Text Columns = 80, 
 Text Rows = requested Text Rows, Horizontal Resolution = 640, and 
 Vertical 
 Resolution = 16 * (Text Rows). 
 
 Family API Considerations 
 Some options operate differently in the DOS mode than in the OS/2 mode. 
  Therefore, the following consideration applies to VioSetMode when coding 
 for the DOS mode: 
 VioSetMode clears the screen. 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs