en:docs:fapi:vioregister

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:docs:fapi:vioregister [2021/09/11 06:58] prokusheven:docs:fapi:vioregister [2021/09/19 05:33] (current) prokushev
Line 1: Line 1:
 +{{page>en:templates:fapiint}}
 +====== VioRegister ======
 + 
 This call registers an alternate video subsystem within a session. This call registers an alternate video subsystem within a session.
  
-==Syntax==+===== Syntax ===== 
  
 <code c> <code c>
Line 7: Line 11:
 </code> </code>
  
-==Parameters== +===== Parameters ===== 
-  *ModuleName (PSZ) - input: Address of the ASCIIZ string containing the 1-8 character file name of the subsystem. The maximum length of the ASCIIZ string is 9 bytes including the terminating byte of zero. The module must be a dynamic link library but the name supplied must not include the .DLL extension. + 
-  *EntryPoint (PSZ) - input: Address of the ASCIIZ name string containing the dynamic link entry point name of the routine in the subsystem to receive control when any of the registered functions is called. The maximum length of the ASCIIZ string is 33 bytes including the terminating byte of zero. +  *ModuleName ([[PSZ]]) - input: Address of the ASCIIZ string containing the 1-8 character file name of the subsystem. The maximum length of the ASCIIZ string is 9 bytes including the terminating byte of zero. The module must be a dynamic link library but the name supplied must not include the .DLL extension. 
-  *FunctionMask1 (ULONG) - input: A bit mask where each bit identifies a video function being registered. The bit definitions are shown below. The first word pushed onto the stack contains the high-order 16 bits of the function mask, and the second word contains the low-order 16 bits.+  *EntryPoint ([[PSZ]]) - input: Address of the ASCIIZ name string containing the dynamic link entry point name of the routine in the subsystem to receive control when any of the registered functions is called. The maximum length of the ASCIIZ string is 33 bytes including the terminating byte of zero. 
 +  *FunctionMask1 ([[ULONG]]) - input: A bit mask where each bit identifies a video function being registered. The bit definitions are shown below. The first word pushed onto the stack contains the high-order 16 bits of the function mask, and the second word contains the low-order 16 bits.
  
 ^ BIT ^ REGISTERED FUNCTION ^ ^ BIT ^ REGISTERED FUNCTION ^
Line 46: Line 51:
 |0|VioGetCurPos| |0|VioGetCurPos|
  
-  * FunctionMask2 (ULONG) - input : A bit mask where each bit identifies a video function being registered. The bit mask has the format shown below. The first word pushed onto the stack contains the high order 16 bits of the function mask, and the second word contains the low order 16 bits. Unused bits are reserved and must be set to zero. +  * FunctionMask2 ([[ULONG]]) - input : A bit mask where each bit identifies a video function being registered. The bit mask has the format shown below. The first word pushed onto the stack contains the high order 16 bits of the function mask, and the second word contains the low order 16 bits. Unused bits are reserved and must be set to zero.
-:{| +
-!Bit||Description +
-|- +
-|31-9||Reserved, set to zero +
-|- +
-|8||VioSetState +
-|- +
-|7||VioGetState +
-|- +
-|6||VioSetFont +
-|- +
-|5||VioGetCp +
-|- +
-|4||VioSetCp +
-|- +
-|3||VioGetConfig  +
-|- +
-|2||VioGetFont +
-|- +
-|1||VioModeUndo  +
-|- +
-|0||VioModeWait +
-|}+
  
-==Return Code== +^ Bit ^ Description ^ 
-;rc (USHORT) - return:Return code descriptions are:+|31-9|Reserved, set to zero| 
 +|8|VioSetState| 
 +|7|VioGetState| 
 +|6|VioSetFont| 
 +|5|VioGetCp| 
 +|4|VioSetCp| 
 +|3|VioGetConfig| 
 +|2|VioGetFont| 
 +|1|VioModeUndo| 
 +|0|VioModeWait| 
 + 
 +===== Return Code ===== 
 + 
 +rc ([[USHORT]]) - return:Return code descriptions are:
  
   *0 NO_ERROR   *0 NO_ERROR
Line 82: Line 77:
   *494 ERROR_VIO_EXTENDED_SG   *494 ERROR_VIO_EXTENDED_SG
  
-==Remarks==+===== Remarks ===== 
 An alternate video subsystem must register which video calls it handles. The default OS/2 video subsystem is the Base Video Subsystem. An alternate video subsystem must register which video calls it handles. The default OS/2 video subsystem is the Base Video Subsystem.
  
Line 89: Line 85:
 The first value is the index number (Word) of the routine being called. The second value is a near pointer (Word). The third value is the caller's DS register(Word). The fourth value is the return address(DWord) to the VIO router. The first value is the index number (Word) of the routine being called. The second value is a near pointer (Word). The third value is the caller's DS register(Word). The fourth value is the return address(DWord) to the VIO router.
  
-For example, if VioSetCurPos were a registered function, the stack would appear as if the following instruction sequence were executed if VioSetCurPos were called and control routed to EntryPoint:+For example, if [[VioSetCurPos]] were a registered function, the stack would appear as if the following instruction sequence were executed if [[VioSetCurPos]] were called and control routed to EntryPoint:
  
 <code asm> <code asm>
Line 103: Line 99:
  
 The index numbers that correspond to the registered functions are listed below: The index numbers that correspond to the registered functions are listed below:
-<PRE> + 
-  0 VioGetPhysBuf +^ Index ^ Function ^ 
-  1 VioGetBuf +VioGetPhysBuf| 
-  2 VioShowBuf +VioGetBuf| 
-  3 VioGetCurPos +VioShowBuf| 
-  4 VioGetCurType +VioGetCurPos| 
-  5 VioGetMode +VioGetCurType| 
-  6 VioSetCurPos +VioGetMode| 
-  7 VioSetCurType +VioSetCurPos| 
-  8 VioSetMode +VioSetCurType| 
-  9 VioReadCharStr +VioSetMode| 
- 10 VioReadCellStr +VioReadCharStr| 
- 11 VioWrtNChar +10 VioReadCellStr| 
- 12 VioWrtNAttr +11 VioWrtNChar| 
- 13 VioWrtNCell +12 VioWrtNAttr| 
- 14 VioWrtCharStr +13 VioWrtNCell| 
- 15 VioWrtCharStrAtt +14 VioWrtCharStr| 
- 16 VioWrtCellStr +15 VioWrtCharStrAtt| 
- 17 VioWrtTTY +16 VioWrtCellStr| 
- 18 VioScrollUp +17 VioWrtTTY| 
- 19 VioScrollDn +18 VioScrollUp| 
- 20 VioScrollLf  +19 VioScrollDn| 
- 21 VioScrollRt +20 VioScrollLf| 
- 22 VioSetAnsi +21 VioScrollRt| 
- 23 VioGetAnsi +22 VioSetAnsi| 
- 24 VioPrtSc +23 VioGetAnsi| 
- 25 VioScrLock +24 VioPrtSc| 
- 26 VioScrUnLock +25 VioScrLock| 
- 27 VioSavRedrawWait +26 VioScrUnLock| 
- 28 VioSavRedrawUndo +27 VioSavRedrawWait| 
- 29 VioPopUp +28 VioSavRedrawUndo| 
- 30 VioEndPopUp +29 VioPopUp| 
- 31 VioPrtScToggle +30 VioEndPopUp| 
- 32 VioModeWait +31 VioPrtScToggle| 
- 33 VioModeUndo +32 VioModeWait| 
- 34 VioGetFont +33 VioModeUndo| 
- 35 VioGetConfig +34 VioGetFont| 
- 36 VioSetCp +35 VioGetConfig| 
- 37 VioGetCp +36 VioSetCp| 
- 38 VioSetFont +37 VioGetCp| 
- 39 VioGetState +38 VioSetFont| 
- 40 VioSetState +39 VioGetState| 
-</PRE>+40 VioSetState| 
 When a registered function returns to the video router, the return code is interpreted as follows: When a registered function returns to the video router, the return code is interpreted as follows:
   * Return code = 0 : No error. Do not invoke the corresponding Base Video Subsystem routine. Return to caller with Return code = 0.   * Return code = 0 : No error. Do not invoke the corresponding Base Video Subsystem routine. Return to caller with Return code = 0.
   * Return code = -1 : No error. Invoke the corresponding Base Video Subsystem routine. Return to caller with Return code = return code from Base Video Subsystem.   * Return code = -1 : No error. Invoke the corresponding Base Video Subsystem routine. Return to caller with Return code = return code from Base Video Subsystem.
   * Return code = error (not 0 or -1) : Do not invoke the corresponding Base Video Subsystem routine. Return to caller with Return code = error.   * Return code = error (not 0 or -1) : Do not invoke the corresponding Base Video Subsystem routine. Return to caller with Return code = error.
-When an application registers a replacement for [[VioPopUp]] within a session, the registered routine is only invoked when that session is in the foreground. If ''VioPopUp'' is issued when that session is in the background, the OS/2 default routine is invoked.+When an application registers a replacement for [[VioPopUp]] within a session, the registered routine is only invoked when that session is in the foreground. If [[VioPopUp]] is issued when that session is in the background, the OS/2 default routine is invoked.
  
 An alternate video subsystem should be designed so the routines registered do not cause any hard errors when they are invoked. Otherwise, a system lockout occurs. Code and data segments of registered routines, that might be loaded from diskette, must be preloaded. An alternate video subsystem should be designed so the routines registered do not cause any hard errors when they are invoked. Otherwise, a system lockout occurs. Code and data segments of registered routines, that might be loaded from diskette, must be preloaded.
Line 158: Line 155:
 [[http://www.edm2.com/index.php/VioRegister]] [[http://www.edm2.com/index.php/VioRegister]]
  
 +{{page>en:templates:fapi}}