en:docs:os2:api:vio

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:os2:api:vio [2021/09/14 08:07] prokusheven:docs:os2:api:vio [2021/09/14 09:51] (current) prokushev
Line 22: Line 22:
  
 OS/2 Video subsystem placed in VIOCALLS.DLL. Called VIO function passes control to internal VIO router function which, depends on registered functions replacement, routes call to Base Video Subsystem (BVSCALLS.DLL) or to registered Alternate Video Subsystem. OS/2 Video subsystem placed in VIOCALLS.DLL. Called VIO function passes control to internal VIO router function which, depends on registered functions replacement, routes call to Base Video Subsystem (BVSCALLS.DLL) or to registered Alternate Video Subsystem.
 +
 +In pseudo code it looks like this
 +
 +<code>
 +Application calls VioGetAnsi in VIOCALLS
 +VioGetAnsi calls VioRoute
 +if AVS registered then
 +  VioRoute calls AVS VioGetAnsi
 +  if AVS VioGetAnsi requires to call BVS then
 +    VioRouter сalls BVS VioGetAnsi
 +else
 +  VioRouter calls BVS VioGetAnsi
 +Return to application
 +</code>
  
 OS/2 1.1 introduced Program Manager and VIO was extended to support windowed OS/2 text-based sessions. This extended Vio was named as Advanced VIO. OS/2 1.1 introduced Program Manager and VIO was extended to support windowed OS/2 text-based sessions. This extended Vio was named as Advanced VIO.
Line 49: Line 63:
 </diagram> </diagram>
  
-In OS/2 2.0 and later VIO still 16-bit. In late OS/2 versions (3.x?) actual code of Video subsystem and Base Video Subsysten was moved to DOSCALLS.DLL (see Fig). VIOCALLS and BVSCALLS is a forwarders to DOSCALLS. As not part of official OS/2 distribution three independed versions of 32-to-16 bit wrapper subsystems was developed (See Fig). EXMWRAP.DLL was part of eComstation 1.0 and later releases.+In pseudo code it looks like this
  
 +<code>
 +Application calls VioGetAnsi in VIOCALLS
 +VioGetAnsi calls VioRoute
 +if AVS registered then
 +  VioRoute calls AVS VioGetAnsi
 +  if AVS VioGetAnsi requires to call BVS then
 +    VioRouter сalls BVS VioGetAnsi
 +else
 +  VioRouter calls BVS VioGetAnsi
 +If GVS registered then
 +  VioRouter calls GVS VioGetAnsi
 +Return to application
 +</code>
 +
 +In OS/2 2.0 and later VIO still 16-bit. In late OS/2 versions (3.x?) actual code of Video subsystem and Base Video Subsysten was moved to DOSCALLS.DLL (see Fig). VIOCALLS and BVSCALLS is a forwarders to DOSCALLS. 
 +
 +As not part of official OS/2 distribution three independed versions of 32-to-16 bit wrapper subsystems was developed (See Fig). EXMWRAP.DLL was part of eComstation 1.0 and later releases.
  
 <diagram> <diagram>
Line 79: Line 110:
 |DDD|DDD=Global Video Subsystem |DDD|DDD=Global Video Subsystem
 </diagram> </diagram>
 +
 +<code>
 +Application calls VioGetAnsi in VIOCALLS
 +VIOCALLS forwards to DOSCALLS
 +VioGetAnsi calls VioRoute
 +if AVS registered then
 +  VioRoute calls AVS VioGetAnsi
 +  if AVS VioGetAnsi requires to call BVS then
 +    VioRouter сalls BVS VioGetAnsi
 +    BVSCALLS forwards to DOSCALLS
 +else
 +  VioRouter calls BVS VioGetAnsi
 +  BVSCALLS forwards to DOSCALLS
 +If GVS registered then
 +  VioRouter calls GVS VioGetAnsi
 +Return to application
 +</code>
  
 osFree attempts to combine all aproaches and provide following callflow osFree attempts to combine all aproaches and provide following callflow
Line 96: Line 144:
 ||||| |!@4 | ||||| |!@4 |
 ||||| CCC  |CCC=VIO router ||||| CCC  |CCC=VIO router
-||||| |!@4 | 
-||||| DDD |DDD=Global Video Subsystem 
 ||||| |!@4 | ||||| |!@4 |
 ||||| EEE  |EEE=[[en:docs:os2:modules:BVSCALLS|Base Video Subsystem]] ||||| EEE  |EEE=[[en:docs:os2:modules:BVSCALLS|Base Video Subsystem]]
Line 104: Line 150:
 ||||| |!@4 | ||||| |!@4 |
 ||||| EEE  |EEE=Base Video Handlers ||||| EEE  |EEE=Base Video Handlers
 +||||| |!@4 |
 +||||| EEE  |EEE=[[en:docs:os2:modules:BVSCALLS|Base Video Subsystem]]
 +||||| |!@4 |
 +||||| CCC  |CCC=VIO router
 +||||| |!@4 |
 +||||| DDD |DDD=Global Video Subsystem
 </diagram> </diagram>
  
Line 113: Line 165:
 |  AAA |AAA=Application |  AAA |AAA=Application
 | |!@4 | | |!@4 |
-| BBB  |BBB=[[en:docs:os2:libraries:API]].LIB/[[en:docs:os2:libraries:FAPI]].LIB+| BBB  |BBB=[[en:docs:os2:libraries:API]].LIB/[[en:docs:os2:libraries:FAPI]].LIB/FAMAPI.LIB
 </diagram> </diagram>