Jump to content

VioSetMode (FAPI): Difference between revisions

From EDM2
Created page with "==Description== This call sets the mode of the display. ==Syntax== <PRE> VioSetMode (ModeData, VioHandle) </PRE> ==Parameters== ; ModeData (PVIOMODEINFO) - input : Ad..."
 
Ak120 (talk | contribs)
No edit summary
Line 1: Line 1:
==Description==
This call sets the mode of the display.
This call sets the mode of the display.


==Syntax==
==Syntax==
<PRE>
  VioSetMode (ModeData, VioHandle)
  VioSetMode
 
    (ModeData, VioHandle)
</PRE>


==Parameters==
==Parameters==
; ModeData (PVIOMODEINFO) - input : Address of the mode characteristics structure:
;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.
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:
type (UCHAR) : Mode characteristics bit mask:
  '''Bit            Description'''
  '''Bit            Description'''
  7-4        Reserved, set to zero.  
  7-4        Reserved, set to zero.  
Line 31: Line 24:
          
          
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:
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'''  
  '''Value                Definition'''  
  0                Monochrome modes 7, 7+, and F.  
  0                Monochrome modes 7, 7+, and F.  
Line 65: Line 57:
==Return Code==
==Return Code==
  rc (USHORT) - return
  rc (USHORT) - return
Return code descriptions are:
Return code descriptions are:
* 0          NO_ERROR  
* 0          NO_ERROR  
* 355        ERROR_VIO_MODE  
* 355        ERROR_VIO_MODE  
Line 94: Line 84:


Note: Although graphics mode support is provided in VioSetMode, this support is not provided by the Base Video Handlers provided with OS/2.
Note: Although graphics mode support is provided in VioSetMode, this support is not provided by the Base Video Handlers provided with OS/2.
 
{|class="wikitable"
<PRE>
|+Table 5-1. Display Mode Attributes Supported by Adapters
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
Table 5-1. Display Mode Attributes Supported by Adapters
!BIOS MODE||TYPE||COLOR||COLS||ROWS||HRES||VRES||VALID ADAPTER/DISPLAY COMBINATIONS [EMULATED]
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
BIOS TYPE COLOR COLS ROWS HRES VRES   VALID ADAPTER/DISPLAY
|0||5||4||40||25||320||200||[CGA/CD], CGA/Comp, [EGA/CD], [EGA/ECD], VGA/Mono, VGA/Color, VGA/Plasma
MODE                                        COMBINATIONS [EMULATED]
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|0*||5||4||40||25||320||350||[EGA/ECD], VGA/Mono, VGA/Color, VGA/Plasma
0     5     4     40   25   320   200   [CGA/CD], CGA/Comp,
|-
                                            [EGA/CD], [EGA/ECD],
|0+||5||4||40||25||360||400||VGA/Mono, VGA/Color
                                            VGA/Mono, VGA/Color,
|-
                                            VGA/Plasma
|0#||5||4|| 40||25||320||400||VGA/Mono, VGA/Color, VGA/Plasma
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
0*   5     4     40   25   320   350   [EGA/ECD], VGA/Mono,
|1||1||4||40||25||320||200||CGA/CD, CGA/Comp, EGA/CD, EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
                                            VGA/Color, VGA/Plasma
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|1*||1||4|| 40||25||320||350||EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
0+   5     4     40   25   360   400   VGA/Mono, VGA/Color
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|1+||1||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||400||[VGA/Mono], VGA/Color, [VGA/Plasma]
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
1     1     4     40   25   320   200   CGA/CD, CGA/Comp,
||2||5||4||80||25||640||200||[CGA/CD], CGA/Comp, [EGA/CD], [EGA/ECD], VGA/Mono, VGA/Color, VGA/Plasma
                                            EGA/CD, EGA/ECD,
|-
                                            [VGA/Mono], VGA/Color,
||2*||5||4||80||25||640||350||[EGA/ECD], VGA/Mono, VGA/Color, VGA/Plasma
                                            [VGA/Plasma]
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|2+||5||4||80||25||720||400||VGA/Mono, VGA/Color
1*   1     4     40   25   320   350   EGA/ECD, [VGA/Mono],
|-
                                            VGA/Color, [VGA/Plasma]
|2#||5||4||80||25||640||400||VGA/Mono, VGA/Color, VGA/Plasma
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
1+   1     4     40   25   360   400   [VGA/Mono], VGA/Color
|3||1||4||80||25||640||200||CGA/CD, CGA/Comp, EGA/CD, EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
1#   1     4     40   25   320   400   [VGA/Mono], VGA/Color,
|3*||1||4||80||25||640||350||EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
                                            [VGA/Plasma]
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|3+||1||4||80||25||720||400||[VGA/Mono], VGA/Color
2     5     4     80   25   640   200   [CGA/CD], CGA/Comp,
|-
                                            [EGA/CD], [EGA/ECD],
|3#||1||4|| 80||25||640||400||[VGA/Mono], VGA/Color, [VGA/Plasma]
                                            VGA/Mono, VGA/Color,
|-
                                            VGA/Plasma
|7||0||0||80||25||720||350||MPA/MD, EGA/MD, VGA/Mono, VGA/Color
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
2*   5     4     80   25   640   350   [EGA/ECD], VGA/Mono,
|7+||0||0||80||25||720||400||VGA/Mono, VGA/Color
                                            VGA/Color, VGA/Plasma
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|7#||0||0||80||25||640||400||VGA/Mono, VGA/Color, VGA/Plasma
2+   5     4     80   25   720   400   VGA/Mono, VGA/Color
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|n/a||0||0||80||25||640||350||VGA/Mono, VGA/Color, VGA/Plasma
2#   5     4     80   25   640   400   VGA/Mono, VGA/Color,
|-
                                            VGA/Plasma
|n/a||1||4||80||30||720||480||[VGA/Mono], VGA/Color
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
3     1     4     80   25   640   200   CGA/CD, CGA/Comp,
|n/a||1||4|| 80||30||640||480||[VGA/Mono], VGA/Color, [VGA/Plasma]
                                            EGA/CD, EGA/ECD,
|-
                                            [VGA/Mono], VGA/Color,
|4||3||2||[40]||[25]||320||200||CGA/CD, CGA/Comp, EGA/CD, EGA/ECD, [VGA/Mono], VGA/Color,[VGA/Plasma]
                                            [VGA/Plasma]
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|5||7||2||[40]||[25]||320||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]
|6||3||1||[80]||[25]||640||200||CGA/CD, CGA/Comp, EGA/CD, EGA/ECD, VGA/Mono, VGA/Color, VGA/Plasma
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
3+   1     4     80   25   720   400   [VGA/Mono], VGA/Color
|D||3||4||[40]||[25]||320||200||EGA/CD, EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
3#   1     4     80   25   640   400   [VGA/Mono], VGA/Color,
|E||3||4||[80]||[25]||640||200||EGA/CD, EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
                                            [VGA/Plasma]
|-
-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|F||2||0||[80]||[25]||640||350||EGA/MD, VGA/Mono, VGA/Color, VGA/Plasma
7     0     0     80   25   720   350   MPA/MD, EGA/MD,
|-
                                            VGA/Mono, VGA/Color
|10||3||4||[80]||[25]||640||350||EGA/ECD, [VGA/Mono], VGA/Color, [VGA/Plasma]
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
7+   0     0     80   25   720   400   VGA/Mono, VGA/Color
|11||3||1||[80]||[30]||640||480||VGA/Mono, VGA/Color, VGA/Plasma
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
7#   0     0     80   25   640   400   VGA/Mono, VGA/Color,
|12||3||4||[80]||[30]||640||480||[VGA/Mono], VGA/Color, [VGA/Plasma]
                                            VGA/Plasma
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|13||3||8||[40]||[25]||320||200||[VGA/Mono], VGA/Color, [VGA/Plasma]
n/a   0     0     80   25   640   350   VGA/Mono, VGA/Color,
|-
                                            VGA/Plasma
|n/a||11||8||[80]||[30]||640||480||[8514A/Mono], 8514A/Color
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
n/a   1     4     80   30   720   480   [VGA/Mono], VGA/Color
|n/a||11||4||[80]||[30]||640||480||[8514A/Mono], 8514A/Color
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
n/a   1     4     80   30   640   480   [VGA/Mono], VGA/Color,
|n/a||11||8||[85]||[38]||1024||768||[8514A/HMono], 8514A/HColor
                                            [VGA/Plasma]
|-
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|n/a||11||4||[85]||[38]||1024||768||[8514A/HMono], 8514A/HColor
4     3     2     [40] [25] 320   200   CGA/CD, CGA/Comp,
|-
                                            EGA/CD, EGA/ECD,
|colspan=8|Display Adapters:
                                            [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
  MPA      Monochrome/Printer Adapter
  CGA      Color Graphics Adapter
  CGA      Color Graphics Adapter
Line 227: Line 167:
  VGA      Video Graphics Array, PS/2 Display Adapter
  VGA      Video Graphics Array, PS/2 Display Adapter
  8514A    8514/A Display Adapter
  8514A    8514/A Display Adapter
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|-
Displays:
|colspan=8|Displays:
 
  MD        5151 Monochrome Display
  MD        5151 Monochrome Display
  CD        5153 Color Display
  CD        5153 Color Display
Line 240: Line 179:
  COMP      Composite Video Monitor
  COMP      Composite Video Monitor


Notes:
Notes:
 
#Types 0, 1, and 5 are text modes; types 2, 3, 7, and 11 are graphics modes.
1.  Types 0, 1, and 5 are text modes; types 2, 3, 7, and 11 are graphics modes.
#For BIOS modes 0, 2, 5, the color burst is disabled on the CGA and VGA.
2.  For BIOS modes 0, 2, 5, the color burst is disabled on the CGA and VGA.
#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.
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.
 
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
 
</ PRE>
 
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.
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===
===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,
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
Text Rows = requested Text Rows, Horizontal Resolution = 640, and Vertical
Resolution = 16 * (Text Rows).
Resolution = 16 * (Text Rows).


===Family API Considerations===
===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:
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:


Line 331: Line 259:
*  
*  


[[Category:The OS/2 API Project]]
[[Category:Vio]]

Revision as of 18:45, 28 February 2017

This call sets the mode of the display.

Syntax

VioSetMode (ModeData, VioHandle)

Parameters

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.

Return Code

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 MODE TYPE COLOR COLS ROWS HRES VRES VALID ADAPTER/DISPLAY 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.

Example Code

C Binding

typedef struct _VIOMODEINFO {
  USHORT cb;                    /* Length of the entire data structure  */
  UCHAR  fbType;                /* Bit mask of mode being set           */
  UCHAR  color;                 /* Number of colors (power of 2)        */
  USHORT col;                   /* Number of text columns               */
  USHORT row;                   /* Number of text rows                  */
  USHORT hres;                  /* Horizontal resolution                */
  USHORT vres;                  /* Vertical resolution                  */
  UCHAR  fmt_ID;                /* Attribute format                     */
  UCHAR  attrib;                /* Number of attributes                 */
  ULONG  buf_addr;
  ULONG  buf_length;
  ULONG  full_length;
  ULONG  partial_length;
  PCH    ext_data_addr;
  } VIOMODEINFO;
typedef VIOMODEINFO far *PVIOMODEINFO;

#define INCL_VIO

USHORT  rc = VioSetMode(ModeData, VioHandle);

PVIOMODEINFO     ModeData;      /* Mode characteristics */
HVIO             VioHandle;     /* Video handle */

USHORT           rc;            /* return code */

MASM Binding

VIOMODEINFO struc
  viomi_cb             dw ? ;Length of the entire data structure
  viomi_fbType         db ? ;Bit mask of mode being set
  viomi_color          db ? ;Number of colors (power of 2)
  viomi_col            dw ? ;Number of text columns
  viomi_row            dw ? ;Number of text rows
  viomi_hres           dw ? ;Horizontal resolution
  viomi_vres           dw ? ;Vertical resolution
  viomi_fmt_ID         db ? ;Attribute format
  viomi_attrib         db ? ;Number of attributes
  viomi_buf_addr       dd ? ;
  viomi_buf_length     dd ? ;
  viomi_full_length    dd ? ;
  viomi_partial_length dd ? ;
  viomi_ext_data_addr  dd ? ;
VIOMODEINFO ends

EXTRN  VioSetMode:FAR
INCL_VIO            EQU 1

PUSH@  OTHER   ModeData      ;Mode characteristics
PUSH   WORD    VioHandle     ;Video handle
CALL   VioSetMode

Returns WORD

Related Functions