{{page>en:templates:fapiint}} ====== VioSetState ====== This call performs one of the following functions; set palette registers, sets the overscan (border) colour, set the blink/background intensity switch, set color registers, set the underline location, or set the target VioSetMode display configuration. ===== Syntax ===== VioSetState (RequestBlock, VioHandle) ===== Parameters ===== * RequestBlock (PVOID) - input : Address of the video state structures consisting of six different structures depending on the request type: * 0 - Set palette registers * 1 - Set overscan (border) color * 2 - Set blink/background intensity switch * 3 - Set color registers * 4 - Reserved * 5 - Set underline location * 6 - Set target VioSetMode display configuration * 7 - Reserved The six structures, depending on request type, are: ^ ^ Applies to ^ length (USHORT) - input : Length of structure, including length. ^ reqtype (USHORT) - input ^ ^ | VIOPALSTATE | EGA, VGA, or IBM Personal System/2 Display Adapter | 38 - Maximum valid value |Request type 0 for palette registers | palette (USHORT) - input: First palette register in the palette register sequence; must be specified in the range 0 through 15. The palette registers are returned in sequential order. The number returned is based upon length. | | ::: | ::: | ::: | ::: | color (USHORT*(length-6)/2) - input : Color value for each palette register. The maximum number of entries in the color value array is 16 | |VIOOVERSCAN|CGA, VGA, or IBM Personal System/2 Display Adapter|Only valid value.|Request type 1 for overscan (border) color.|Color value. | |VIOINTENSITY|CGA, EGA, MCGA, VGA, or IBM Personal System/2 Display Adapter|Only valid value.|Request type 2 for blink/background intensity switch.| switch (USHORT) - input : Switch set as: | | ::: | ::: | ::: | ::: | 0 - Blinking foreground colors enabled. | | ::: | ::: | ::: | ::: | 1 - High intensity background colors enabled. | |VIOCOLORREG|VGA, or IBM Personal System/2 Display Adapter|12 - Only valid value.|Request type 3 for color registers.| first color (USHORT) - input : First color register to set in the color register sequence; must be specified in the range 0 through 255. The color registers are set in sequential order. | | ::: | ::: | ::: | ::: |number color (USHORT) - input : Number of color registers to set; must be specified in the range 1 through 256. | | ::: | ::: | ::: | ::: |datarea (PCH) - input : Far address of a data area containing one three-byte entry for each color register to be set. The format of each entry is as follows: | | ::: | ::: | ::: | ::: |Byte 1 - Red value | | ::: | ::: | ::: | ::: |Byte 2 - Green value | | ::: | ::: | ::: | ::: |Byte 3 - Blue value | |VIOSETULINELOC|EGA, VGA, or IBM Personal System/2 Display Adapter|Only valid value.|Request type 5 to set the scan line for underlining. Underlining is enabled only when the foreground color is 1 or 9.| scanline (USHORT) - input : Scan line minus 1. Values of 0 through 31 are acceptable. A value of 32 means underlining is disabled. | |VIOSETTARGET| |Only valid value.|Request type 6 to set display configuration to be the target of the next VioSetMode.| :select (USHORT) - input : Configuration: | | ::: | ::: | ::: | ::: | 0 - Default selection algorithm. See VioSetMode. | | ::: | ::: | ::: | ::: | 1 - Primary | | ::: | ::: | ::: | ::: | 2 - Secondary | * VioHandle (HVIO) - input : Reserved word of 0s. ===== Return Code ===== ;rc (USHORT) - return:Return code descriptions are: *0 NO_ERROR *355 ERROR_VIO_MODE *421 ERROR_VIO_INVALID_PARMS *436 ERROR_VIO_INVALID_HANDLE *438 ERROR_VIO_INVALID_LENGTH *465 ERROR_VIO_DETACHED *494 ERROR_VIO_EXTENDED_SG ===== Remarks ===== ==== Family API Considerations ==== Request type = 6, Set Target VioSetMode Display Configuration, and request type = 5, Set Underline Location, are not supported in the family API. Some options operate differently in the DOS mode than in the OS/2 mode. Therefore, the following considerations applies to VioSetMode when coding for the DOS mode: * VioSetMode clears the screen. ===== Bindings ===== ==== C ==== typedef struct _VIOPALSTATE { USHORT cb; /* Length of this structure in bytes */ USHORT type; /* Request type=0 get palette registers */ USHORT iFirst; /* First palette register to return */ USHORT acolor[1]; /* Color value palette register */ }VIOPALSTATE; typedef VIOPALSTATE far *PVIOPALSTATE; typedef struct _VIOOVERSCAN { USHORT cb; /* Length of this structure */ USHORT type; /* Request type=1 get overscan (border) color */ USHORT color; /* Color value */ }VIOOVERSCAN; typedef VIOOVERSCAN far *PVIOOVERSCAN; typedef struct _VIOINTENSITY { USHORT cb; /* Length of this structure */ USHORT type; /* Request type=2 get blink/background intensity switch */ USHORT fs; /* Value of blink/background switch */ }VIOINTENSITY; typedef VIOINTENSITY far *PVIOINTENSITY; typedef struct _VIOCOLORREG { /* viocreg */ USHORT cb; USHORT type; USHORT firstcolorreg; USHORT numcolorregs; PCH colorregaddr; }VIOCOLORREG; typedef VIOCOLORREG far *PVIOCOLORREG; typedef struct _VIOSETULINELOC { /* viouline */ USHORT cb; USHORT type; USHORT scanline; }VIOSETULINELOC; typedef VIOSETULINELOC far *PVIOSETULINELOC; typedef struct _VIOSETTARGET { /* viosett */ USHORT cb; USHORT type; USHORT defaultalgorithm; }VIOSETTARGET; typedef VIOSETTARGET far *PVIOSETTARGET; #define INCL_VIO USHORT rc = VioSetState(RequestBlock, VioHandle); PVOID RequestBlock; /* Request block */ HVIO VioHandle; /* Video handle */ USHORT rc; /* return code */ ====MASM==== VIOPALSTATE struc viopal_cb dw ? ;Length of this structure in bytes viopal_type dw ? ;Request type=0 get palette registers viopal_iFirst dw ? ;First palette register to return viopal_acolor dw 1 dup (?) ;Color value palette register VIOPALSTATE ends VIOOVERSCAN struc vioos_cb dw ? ;Length of this structure vioos_type dw ? ;Request type=1 get overscan (border) color vioos_color dw ? ;Color value VIOOVERSCAN ends VIOINTENSITY struc vioint_cb dw ? ;Length of this structure vioint_type dw ? ;Request type=2 get blink/background ; intensity switch vioint_fs dw ? ;Value of blink/background switch VIOINTENSITY ends VIOCOLORREG struc viocreg_cb dw ? ; viocreg_type dw ? ; viocreg_firstcolorreg dw ? ; viocreg_numcolorregs dw ? ; viocreg_colorregaddr dd ? ; VIOCOLORREG ends VIOSETULINELOC struc viouline_cb dw ? ; viouline_type dw ? ; viouline_scanline dw ? ; VIOSETULINELOC ends VIOSETTARGET struc viosett_cb dw ? ; viosett_type dw ? ; viosett_defaultalgorithm dw ? ; VIOSETTARGET ends EXTRN VioSetState:FAR INCL_VIO EQU 1 PUSH@ OTHER RequestBlock ;Request block PUSH WORD VioHandle ;Video handle CALL VioSetState Returns WORD [[http://www.edm2.com/index.php/VioSetState_(OS/2_1.x)]] {{page>en:templates:fapi}}