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 09:45] prokusheven:docs:os2:api:vio [2021/09/14 09:51] (current) prokushev
Line 28: Line 28:
 Application calls VioGetAnsi in VIOCALLS Application calls VioGetAnsi in VIOCALLS
 VioGetAnsi calls VioRoute VioGetAnsi calls VioRoute
-if AVS registered then VioRoute calls AVS VioGetAnsi +if AVS registered then 
-  if AVS VioGetAnsi requires to call BVS then VioRouter сalls BVS VioGetAnsi +  VioRoute calls AVS VioGetAnsi 
-else VioRouter calls BVS VioGetAnsi+  if AVS VioGetAnsi requires to call BVS then 
 +    VioRouter сalls BVS VioGetAnsi 
 +else 
 +  VioRouter calls BVS VioGetAnsi
 Return to application Return to application
 </code> </code>
Line 60: 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. +In pseudo code it looks like this
  
 <code> <code>
 Application calls VioGetAnsi in VIOCALLS Application calls VioGetAnsi in VIOCALLS
-VIOCALLS forwards to DOSCALLs 
 VioGetAnsi calls VioRoute VioGetAnsi calls VioRoute
-if AVS registered then VioRoute calls AVS VioGetAnsi +if AVS registered then 
-  if AVS VioGetAnsi requires to call BVS then VioRouter сalls BVS VioGetAnsi +  VioRoute calls AVS VioGetAnsi 
-    BVSCALLS forwards to DOSCALLS +  if AVS VioGetAnsi requires to call BVS then 
-else VioRouter calls BVS VioGetAnsi +    VioRouter сalls BVS VioGetAnsi 
-  BVSCALLS forwards to DOSCALLS +else 
 +  VioRouter calls BVS VioGetAnsi 
 +If GVS registered then 
 +  VioRouter calls GVS VioGetAnsi
 Return to application Return to application
 </code> </code>
  
-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 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 105: 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