home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / vio.def < prev    next >
Text File  |  1995-01-28  |  19KB  |  688 lines

  1. DEFINITION MODULE VIO;
  2.  
  3. (*************************************************************************
  4.   OS/2 2.x or 3.0  Video Kernel API.
  5.  
  6.   (c) 1995 by Juergen Neuhoff
  7. **************************************************************************)
  8.  
  9. (*$XL+    Modula-2 language extensions: '_' allowed for symbol names     *)
  10. (*$A      default alignment scheme for record fields                     *)
  11. (*$API16+ 32 to 16 bit thunking for API functions                        *)
  12.  
  13.  
  14. IMPORT SYSTEM;
  15.  
  16. TYPE
  17.   HVIO             = CARDINAL;
  18.   PHVIO            = POINTER TO HVIO;
  19.   APIRET16         = CARDINAL;
  20.   TYPEPREFIX       = BOOLEAN;
  21.   SEL              = CARDINAL;
  22.  
  23. PROCEDURE VioRegister
  24. (
  25.   ModName          : ARRAY OF CHAR;
  26.   EntryName        : ARRAY OF CHAR;
  27.   Fun1             : LONGCARD;
  28.   Fun2             : LONGCARD
  29. )                  : APIRET16;
  30.  
  31. PROCEDURE VioGlobalReg
  32. (
  33.   ModName          : ARRAY OF CHAR;
  34.   EntryName        : ARRAY OF CHAR;
  35.   Fun1             : LONGCARD;
  36.   Fun2             : LONGCARD;
  37.   Return           : CARDINAL
  38. )                  : APIRET16;
  39.  
  40. CONST (* first parameter registration constants   *)
  41.   VR_VIOGETCURPOS            = 00000001H;
  42.   VR_VIOGETCURTYPE           = 00000002H;
  43.   VR_VIOGETMODE              = 00000004H;
  44.   VR_VIOGETBUF               = 00000008H;
  45.   VR_VIOGETPHYSBUF           = 00000010H;
  46.   VR_VIOSETCURPOS            = 00000020H;
  47.   VR_VIOSETCURTYPE           = 00000040H;
  48.   VR_VIOSETMODE              = 00000080H;
  49.   VR_VIOSHOWBUF              = 00000100H;
  50.   VR_VIOREADCHARSTR          = 00000200H;
  51.   VR_VIOREADCELLSTR          = 00000400H;
  52.   VR_VIOWRTNCHAR             = 00000800H;
  53.   VR_VIOWRTNATTR             = 00001000H;
  54.   VR_VIOWRTNCELL             = 00002000H;
  55.   VR_VIOWRTTTY               = 00004000H;
  56.   VR_VIOWRTCHARSTR           = 00008000H;
  57.   VR_VIOWRTCHARSTRATT        = 00010000H;
  58.   VR_VIOWRTCELLSTR           = 00020000H;
  59.   VR_VIOSCROLLUP             = 00040000H;
  60.   VR_VIOSCROLLDN             = 00080000H;
  61.   VR_VIOSCROLLLF             = 00100000H;
  62.   VR_VIOSCROLLRT             = 00200000H;
  63.   VR_VIOSETANSI              = 00400000H;
  64.   VR_VIOGETANSI              = 00800000H;
  65.   VR_VIOPRTSC                = 01000000H;
  66.   VR_VIOSCRLOCK              = 02000000H;
  67.   VR_VIOSCRUNLOCK            = 04000000H;
  68.   VR_VIOSAVREDRAWWAIT        = 08000000H;
  69.   VR_VIOSAVREDRAWUNDO        = 10000000H;
  70.   VR_VIOPOPUP                = 20000000H;
  71.   VR_VIOENDPOPUP             = 40000000H;
  72.   VR_VIOPRTSCTOGGLE          = 80000000H;
  73.  
  74. CONST (* second parameter registration constants  *)
  75.   VR_VIOMODEWAIT             = 00000001H;
  76.   VR_VIOMODEUNDO             = 00000002H;
  77.   VR_VIOGETFONT              = 00000004H;
  78.   VR_VIOGETCONFIG            = 00000008H;
  79.   VR_VIOSETCP                = 00000010H;
  80.   VR_VIOGETCP                = 00000020H;
  81.   VR_VIOSETFONT              = 00000040H;
  82.   VR_VIOGETSTATE             = 00000080H;
  83.   VR_VIOSETSTATE             = 00000100H;
  84.  
  85. PROCEDURE VioDeRegister
  86. ( )                : APIRET16;
  87.  
  88. PROCEDURE VioGetBuf
  89. (
  90.   VAR LVB          : ARRAY OF SYSTEM.BYTE;
  91.   VAR LVBSize      : CARDINAL;
  92.   Handle           : HVIO
  93. )                  : APIRET16;
  94.  
  95. PROCEDURE VioGetCurPos
  96. (
  97.   VAR Row          : CARDINAL;
  98.   VAR Column       : CARDINAL;
  99.   Handle           : HVIO
  100. )                  : APIRET16;
  101.  
  102. PROCEDURE VioSetCurPos
  103. (
  104.   Row              : CARDINAL;
  105.   Column           : CARDINAL;
  106.   Handle           : HVIO
  107. )                  : APIRET16;
  108.  
  109. TYPE (* structure for VioSetCurType() or GetCurType() *)
  110.   VIOCURSORINFO   = RECORD  (* vioci *)
  111.     CASE            : TYPEPREFIX OF
  112.     | FALSE         :
  113.       Start         : CARDINAL;
  114.       End           : CARDINAL;
  115.       Width         : CARDINAL;
  116.       Attr          : CARDINAL;
  117.     | TRUE          :
  118.       yStart        : CARDINAL;
  119.       cEnd          : CARDINAL;
  120.       cx            : CARDINAL;
  121.       attr          : CARDINAL;
  122.     END;            END;
  123.   PVIOCURSORINFO  = POINTER TO VIOCURSORINFO;
  124.  
  125. PROCEDURE VioGetCurType
  126. (
  127.   VAR CursorInfo    : VIOCURSORINFO;
  128.   Handle            : HVIO
  129. )                   : APIRET16;
  130.  
  131. PROCEDURE VioSetCurType
  132. (
  133.   VAR CursorInfo    : VIOCURSORINFO;
  134.   Handle            : HVIO
  135. )                   : APIRET16;
  136.  
  137. CONST (* VIOMODEINFO.color constants *)
  138.   COLORS_2        = 0001H;
  139.   COLORS_4        = 0002H;
  140.   COLORS_16       = 0004H;
  141.  
  142. (*$A1  from now on byte alignment for record fields *)
  143.  
  144. TYPE (* structure for VioSetMode() or VioGetMode() *)
  145.   VIOMODEINFO     = RECORD (* viomi *)
  146.     CASE            : TYPEPREFIX OF
  147.     | FALSE         :
  148.       Size          : CARDINAL;
  149.       Type          : SHORTCARD;
  150.       Color         : SHORTCARD;
  151.       Col           : CARDINAL;
  152.       Row           : CARDINAL;
  153.       HRes          : CARDINAL;
  154.       VRes          : CARDINAL;
  155.       Fmt_ID        : SHORTCARD;
  156.       Attrib        : SHORTCARD;
  157.       Buf_Addr      : LONGCARD;  (* 16:16 *)
  158.       Buf_Length    : LONGCARD;
  159.       Full_Length   : LONGCARD;
  160.       Partial_Length: LONGCARD;
  161.       Ext_Data_Addr : POINTER TO ARRAY [0..0] OF CHAR; (* 16:16 *)
  162.     | TRUE          :
  163.       cb            : CARDINAL;
  164.       fbType        : SHORTCARD;
  165.       color         : SHORTCARD;
  166.       col           : CARDINAL;
  167.       row           : CARDINAL;
  168.       hres          : CARDINAL;
  169.       vres          : CARDINAL;
  170.       fmt_ID        : SHORTCARD;
  171.       attrib        : SHORTCARD;
  172.       buf_addr      : LONGCARD;
  173.       buf_length    : LONGCARD;
  174.       full_length   : LONGCARD;
  175.       partial_length: LONGCARD;
  176.       ext_data_addr : POINTER TO ARRAY [0..0] OF CHAR; (* 16:16! *)
  177.     END;            END;
  178.   PVIOMODEINFO    = POINTER TO VIOMODEINFO;
  179.  
  180. CONST
  181.   VGMT_OTHER                 = 01H;
  182.   VGMT_GRAPHICS              = 02H;
  183.   VGMT_DISABLEBURST          = 04H;
  184.  
  185. PROCEDURE VioGetMode
  186. (
  187.   VAR ModeInfo      : VIOMODEINFO;
  188.   Handle            : HVIO
  189. )                   : APIRET16;
  190.  
  191. PROCEDURE VioSetMode
  192. (
  193.   VAR ModeInfo      : VIOMODEINFO;
  194.   Handle            : HVIO
  195. )                   : APIRET16;
  196.  
  197. TYPE (* structure for VioGetPhysBuf() *)
  198.   VIOPHYSBUF        = RECORD (* viopb *)
  199.     CASE            : TYPEPREFIX OF
  200.     | FALSE         :
  201.       Buffer        : POINTER TO ARRAY [0..0] OF SYSTEM.BYTE; (* 0:32 *)
  202.       Size          : LONGCARD;
  203.       Selector      : ARRAY [0..0] OF SEL;
  204.     | TRUE          :
  205.       pBuf          : POINTER TO ARRAY [0..0] OF SYSTEM.BYTE; (* 0:32 *)
  206.       cb            : LONGCARD;
  207.       asel          : ARRAY [0..0] OF SEL;
  208.     END;            END;
  209.   PVIOPHYSBUF     = POINTER TO VIOPHYSBUF;
  210.  
  211. PROCEDURE VioGetPhysBuf
  212. (
  213.   VAR PhysBuf       : VIOPHYSBUF;
  214.   Reserved          : CARDINAL
  215. )                   : APIRET16;
  216.  
  217. PROCEDURE VioReadCellStr
  218. (
  219.   VAR CellStr       : ARRAY OF SYSTEM.BYTE;
  220.   VAR Size          : CARDINAL;
  221.   Row               : CARDINAL;
  222.   Column            : CARDINAL;
  223.   Handle            : HVIO
  224. )                   : APIRET16;
  225.  
  226. PROCEDURE VioReadCharStr
  227. (
  228.   VAR CharStr       : ARRAY OF CHAR;
  229.   VAR Size          : CARDINAL;
  230.   Row               : CARDINAL;
  231.   Column            : CARDINAL;
  232.   Handle            : HVIO
  233. )                   : APIRET16;
  234.  
  235. PROCEDURE VioWrtCellStr
  236. (
  237.   VAR CellStr       : ARRAY OF SYSTEM.BYTE;
  238.   Size              : CARDINAL;
  239.   Row               : CARDINAL;
  240.   Column            : CARDINAL;
  241.   Handle            : HVIO
  242. )                   : APIRET16;
  243.  
  244. PROCEDURE VioWrtCharStr
  245. (
  246.   CharStr           : ARRAY OF CHAR;
  247.   Size              : CARDINAL;
  248.   Row               : CARDINAL;
  249.   Column            : CARDINAL;
  250.   Handle            : HVIO
  251. )                   : APIRET16;
  252.  
  253. PROCEDURE VioScrollDn
  254. (
  255.   TopRow            : CARDINAL;
  256.   LeftCol           : CARDINAL;
  257.   BotRow            : CARDINAL;
  258.   RightCol          : CARDINAL;
  259.   Lines             : CARDINAL;
  260.   VAR Cell          : ARRAY OF SYSTEM.BYTE;
  261.   Handle            : HVIO
  262. )                   : APIRET16;
  263.  
  264. PROCEDURE VioScrollUp
  265. (
  266.   TopRow            : CARDINAL;
  267.   LeftCol           : CARDINAL;
  268.   BotRow            : CARDINAL;
  269.   RightCol          : CARDINAL;
  270.   Lines             : CARDINAL;
  271.   VAR Cell          : ARRAY OF SYSTEM.BYTE;
  272.   Handle            : HVIO
  273. )                   : APIRET16;
  274.  
  275. PROCEDURE VioScrollLf
  276. (
  277.   TopRow            : CARDINAL;
  278.   LeftCol           : CARDINAL;
  279.   BotRow            : CARDINAL;
  280.   RightCol          : CARDINAL;
  281.   Columns           : CARDINAL;
  282.   VAR Cell          : ARRAY OF SYSTEM.BYTE;
  283.   Handle            : HVIO
  284. )                   : APIRET16;
  285.  
  286. PROCEDURE VioScrollRt
  287. (
  288.   TopRow            : CARDINAL;
  289.   LeftCol           : CARDINAL;
  290.   BotRow            : CARDINAL;
  291.   RightCol          : CARDINAL;
  292.   Columns           : CARDINAL;
  293.   VAR Cell          : ARRAY OF SYSTEM.BYTE;
  294.   Handle            : HVIO
  295. )                   : APIRET16;
  296.  
  297. PROCEDURE VioWrtNAttr
  298. (
  299.   VAR Attr          : ARRAY OF SYSTEM.BYTE;
  300.   RepeatCount       : CARDINAL;
  301.   Row               : CARDINAL;
  302.   Column            : CARDINAL;
  303.   Handle            : HVIO
  304. )                   : APIRET16;
  305.  
  306. PROCEDURE VioWrtNCell
  307. (
  308.   VAR Cell          : ARRAY OF SYSTEM.BYTE;
  309.   RepeatCount       : CARDINAL;
  310.   Row               : CARDINAL;
  311.   Column            : CARDINAL;
  312.   Handle            : HVIO
  313. )                   : APIRET16;
  314.  
  315. PROCEDURE VioWrtNChar
  316. (
  317.   VAR Character     : CHAR;
  318.   RepeatCount       : CARDINAL;
  319.   Row               : CARDINAL;
  320.   Column            : CARDINAL;
  321.   Handle            : HVIO
  322. )                   : APIRET16;
  323.  
  324. PROCEDURE VioWrtTTY
  325. (
  326.   CharStr           : ARRAY OF CHAR;
  327.   Count             : CARDINAL;
  328.   Handle            : HVIO
  329. )                   : APIRET16;
  330.  
  331. PROCEDURE VioWrtCharStrAtt
  332. (
  333.   CharStr           : ARRAY OF CHAR;
  334.   Count             : CARDINAL;
  335.   Row               : CARDINAL;
  336.   Column            : CARDINAL;
  337.   VAR Attr          : ARRAY OF SYSTEM.BYTE;
  338.   Handle            : HVIO
  339. )                   : APIRET16;
  340.  
  341. CONST
  342.   VCC_SBCSCHAR      = 0;
  343.   VCC_DBCSFULLCHAR  = 1;
  344.   VCC_DBCS1STHALF   = 2;
  345.   VCC_DBCS2NDHALF   = 3;
  346.  
  347. PROCEDURE VioCheckCharType
  348. (
  349.   VAR Type          : CARDINAL;
  350.   Row               : CARDINAL;
  351.   Column            : CARDINAL;
  352.   Handle            : HVIO
  353. )                   : APIRET16;
  354.  
  355. PROCEDURE VioShowBuf
  356. (
  357.   LVBOffset         : CARDINAL;
  358.   Size              : CARDINAL;
  359.   Handle            : HVIO
  360. )                   : APIRET16;
  361.  
  362. CONST
  363.   ANSI_ON           = 1;
  364.   ANSI_OFF          = 0;
  365.  
  366. PROCEDURE VioSetAnsi
  367. (
  368.   Ansi              : CARDINAL;
  369.   Handle            : HVIO
  370. )                   : APIRET16;
  371.  
  372. PROCEDURE VioGetAnsi
  373. (
  374.   VAR Ansi          : CARDINAL;
  375.   Handle            : HVIO
  376. )                   : APIRET16;
  377.  
  378. PROCEDURE VioPrtSc
  379. (
  380.   Handle            : HVIO
  381. )                   : APIRET16;
  382.  
  383. PROCEDURE VioPrtScToggle
  384. (
  385.   Handle            : HVIO
  386. )                   : APIRET16;
  387.  
  388. CONST
  389.   VSRWI_SAVEANDREDRAW  = 0;
  390.   VSRWI_REDRAW         = 1;
  391.   VSRWN_SAVE           = 0;
  392.   VSRWN_REDRAW         = 1;
  393.   UNDOI_GETOWNER       = 0;
  394.   UNDOI_RELEASEOWNER   = 1;
  395.   UNDOK_ERRORCODE      = 0;
  396.   UNDOK_TERMINATE      = 1;
  397.  
  398.  
  399. (**** nowhere found in OS/2 DLLs ..
  400. PROCEDURE VioRedrawSize
  401. (
  402.   VAR Redraw        : LONGCARD
  403. )                   : APIRET16;
  404. ****)
  405.  
  406. PROCEDURE VioSavRedrawWait
  407. (
  408.   RedrawInd         : CARDINAL;
  409.   VAR NotifyType    : CARDINAL;
  410.   Reserved          : CARDINAL
  411. )                   : APIRET16;
  412.  
  413. PROCEDURE VioSavRedrawUndo
  414. (
  415.   OwnerInd          : CARDINAL;
  416.   KillInd           : CARDINAL;
  417.   Reserved          : CARDINAL
  418. )                   : APIRET16;
  419.  
  420. CONST
  421.   VMWR_POPUP        = 0;
  422.   VMWN_POPUP        = 0;
  423.  
  424. PROCEDURE VioModeWait
  425. (
  426.   ReqType           : CARDINAL;
  427.   VAR NotifyType    : CARDINAL;
  428.   Reserved          : CARDINAL
  429. )                   : APIRET16;
  430.  
  431. PROCEDURE VioModeUndo
  432. (
  433.   OwnerInd          : CARDINAL;
  434.   KillInd           : CARDINAL;
  435.   Reserved          : CARDINAL
  436. )                   : APIRET16;
  437.  
  438. CONST
  439.   LOCKIO_NOWAIT     = 0;
  440.   LOCKIO_WAIT       = 1;
  441.   LOCK_SUCCESS      = 0;
  442.   LOCK_FAIL         = 1;
  443.  
  444. PROCEDURE VioScrLock
  445. (
  446.   Wait              : CARDINAL;
  447.   VAR NotLocked     : CARDINAL;
  448.   Handle            : HVIO
  449. )                   : APIRET16;
  450.  
  451. PROCEDURE VioScrUnLock
  452. (
  453.   Handle            : HVIO
  454. )                   : APIRET16;
  455.  
  456. CONST
  457.   VP_NOWAIT         = 0000H;
  458.   VP_WAIT           = 0001H;
  459.   VP_OPAQUE         = 0000H;
  460.   VP_TRANSPARENT    = 0002H;
  461.  
  462. PROCEDURE VioPopUp
  463. (
  464.   VAR Wait          : CARDINAL;
  465.   Handle            : HVIO
  466. )                   : APIRET16;
  467.  
  468. PROCEDURE VioEndPopUp
  469. (
  470.   Handle            : HVIO
  471. )                   : APIRET16;
  472.  
  473. CONST (* VIOCONFIGINFO.adapter constants *)
  474.   DISPLAY_MONOCHROME      = 0000H;
  475.   DISPLAY_CGA             = 0001H;
  476.   DISPLAY_EGA             = 0002H;
  477.   DISPLAY_VGA             = 0003H;
  478.   DISPLAY_8514A           = 0007H;
  479.   DISPLAY_IMAGEADAPTER    = 0008H;
  480.   DISPLAY_XGA             = 0009H;
  481.  
  482. CONST (* VIOCONFIGINFO.display constants *)
  483.   MONITOR_MONOCHROME      = 0000H;
  484.   MONITOR_COLOR           = 0001H;
  485.   MONITOR_ENHANCED        = 0002H;
  486.   MONITOR_8503            = 0003H;
  487.   MONITOR_851X_COLOR      = 0004H;
  488.   MONITOR_8514            = 0009H;
  489.   MONITOR_FLATPANEL       = 000AH;
  490.   MONITOR_8507_8604       = 000BH;
  491.   MONITOR_8515            = 000CH;
  492.   MONITOR_9515            = 000FH;
  493.   MONITOR_9517            = 0011H;
  494.   MONITOR_9518            = 0012H;
  495.  
  496. (*$A2  from now on WORD alignment for record fields >= 2 bytes *)
  497.  
  498. TYPE (* structure for VioGetConfig() *)
  499.   VIOCONFIGINFO        = RECORD (* vioin *)
  500.     CASE                 : TYPEPREFIX OF
  501.     | FALSE              :
  502.       Size               : CARDINAL;
  503.       Adapter            : CARDINAL;
  504.       Sisplay            : CARDINAL;
  505.       MemorySize         : LONGCARD;
  506.     | TRUE               :
  507.       cb                 : CARDINAL;
  508.       adapter            : CARDINAL;
  509.       display            : CARDINAL;
  510.       cbMemory           : LONGCARD;
  511.       Configuration      : CARDINAL;
  512.       VDHVersion         : CARDINAL;
  513.       Flags              : CARDINAL;
  514.       HWBufferSize       : LONGCARD;
  515.       FullSaveSize       : LONGCARD;
  516.       PartSaveSize       : LONGCARD;
  517.       EMAdaptersOFF      : CARDINAL;
  518.       EMDisplaysOFF      : CARDINAL;
  519.     END;                 END;
  520.   PVIOCONFIGINFO       = POINTER TO VIOCONFIGINFO;
  521.  
  522. CONST
  523.   VIO_CONFIG_CURRENT   = 0;
  524.   VIO_CONFIG_PRIMARY   = 1;
  525.   VIO_CONFIG_SECONDARY = 2;
  526.  
  527. PROCEDURE VioGetConfig
  528. (
  529.   ConfigId          : CARDINAL;
  530.   VAR ConfigInfo    : VIOCONFIGINFO;
  531.   Handle            : HVIO
  532. )                   : APIRET16;
  533.  
  534. TYPE (* structure for VioGetFont() or VioSetFont() *)
  535.   VIOFONTINFO       = RECORD (* viofi *)
  536.     CASE              : TYPEPREFIX OF
  537.     | FALSE           :
  538.       Size            : CARDINAL;
  539.       Type            : CARDINAL;
  540.       CellWidth       : CARDINAL;
  541.       CellHight       : CARDINAL;
  542.       Data            : SYSTEM.ADDRESS; (* 16:16 *)
  543.       DataSize        : CARDINAL;
  544.     | TRUE            :
  545.       cb              : CARDINAL;
  546.       type            : CARDINAL;
  547.       cxCell          : CARDINAL;
  548.       cyCell          : CARDINAL;
  549.       pbData          : SYSTEM.ADDRESS; (* 16:16 *)
  550.       cbData          : CARDINAL;
  551.     END;              END;
  552.   PVIOFONTINFO      = POINTER TO VIOFONTINFO;
  553.  
  554. CONST
  555.   VGFI_GETCURFONT   = 0;
  556.   VGFI_GETROMFONT   = 1;
  557.  
  558. PROCEDURE VioGetFont
  559. (
  560.   VAR FontInfo      : VIOFONTINFO;
  561.   Handle            : HVIO
  562. )                   : APIRET16;
  563.  
  564. PROCEDURE VioSetFont
  565. (
  566.   VAR FontInfo      : VIOFONTINFO;
  567.   Handle            : HVIO
  568. )                   : APIRET16;
  569.  
  570. PROCEDURE VioGetCp
  571. (
  572.   Reserved          : CARDINAL;
  573.   VAR CodePage      : CARDINAL;
  574.   Handle            : HVIO
  575. )                   : APIRET16;
  576.  
  577. PROCEDURE VioSetCp
  578. (
  579.   Reserved          : CARDINAL;
  580.   CodePage          : CARDINAL;
  581.   Handle            : HVIO
  582. )                   : APIRET16;
  583.  
  584. TYPE
  585.   VIOPALSTATE       = RECORD (* viopal *)
  586.     CASE              : TYPEPREFIX OF
  587.     | FALSE           :
  588.       Size            : CARDINAL;
  589.       Type            : CARDINAL;
  590.       First           : CARDINAL;
  591.       Color           : ARRAY [0..0] OF CARDINAL;
  592.     | TRUE            :
  593.       cb              : CARDINAL;
  594.       type            : CARDINAL;
  595.       iFirst          : CARDINAL;
  596.       acolor          : ARRAY [0..0] OF CARDINAL;
  597.     END;              END;
  598.   PVIOPALSTATE      = POINTER TO VIOPALSTATE;
  599.  
  600. TYPE
  601.   VIOOVERSCAN       = RECORD (* vioos *)
  602.     CASE              : TYPEPREFIX OF
  603.     | FALSE           :
  604.       Size            : CARDINAL;
  605.       Type            : CARDINAL;
  606.       Color           : CARDINAL;
  607.     | TRUE            :
  608.       cb              : CARDINAL;
  609.       type            : CARDINAL;
  610.       color           : CARDINAL;
  611.     END;              END;
  612.   PVIOOVERSCAN      = POINTER TO VIOOVERSCAN;
  613.  
  614. TYPE
  615.   VIOINTENSITY      = RECORD (* vioint *)
  616.     CASE              : TYPEPREFIX OF
  617.     | FALSE           :
  618.       Size            : CARDINAL;
  619.       Type            : CARDINAL;
  620.       Switch          : CARDINAL;
  621.     | TRUE            :
  622.       cb              : CARDINAL;
  623.       type            : CARDINAL;
  624.       fs              : CARDINAL;
  625.     END;              END;
  626.   PVIOINTENSITY     = POINTER TO VIOINTENSITY;
  627.  
  628. TYPE
  629.   VIOCOLORREG       = RECORD (* viocreg *)
  630.     CASE              : TYPEPREFIX OF
  631.     | FALSE           :
  632.       Size            : CARDINAL;
  633.       Type            : CARDINAL;
  634.       FirstColorReg   : CARDINAL;
  635.       NumColorRegs    : CARDINAL;
  636.       ColorRegAddr    : POINTER TO ARRAY [0..0] OF SHORTCARD; (* 16:16 *)
  637.     | TRUE            :
  638.       cb              : CARDINAL;
  639.       type            : CARDINAL;
  640.       firstcolorreg   : CARDINAL;
  641.       numcolorregs    : CARDINAL;
  642.       colorregaddr    : POINTER TO ARRAY [0..0] OF SHORTCARD; (* 16:16 *)
  643.     END;              END;
  644.   PVIOCOLORREG      = POINTER TO VIOCOLORREG;
  645.  
  646. TYPE
  647.   VIOSETULINELOC    = RECORD (* viouline *)
  648.     CASE              : TYPEPREFIX OF
  649.     | FALSE           :
  650.       Size            : CARDINAL;
  651.       Type            : CARDINAL;
  652.       ScanLine        : CARDINAL;
  653.     | TRUE            :
  654.       cb              : CARDINAL;
  655.       type            : CARDINAL;
  656.       scanline        : CARDINAL;
  657.     END;              END;
  658.   PVIOSETULINELOC   = POINTER TO VIOSETULINELOC;
  659.  
  660. TYPE
  661.   VIOSETTARGET       = RECORD (* viosett *)
  662.     CASE               : TYPEPREFIX OF
  663.     | FALSE            :
  664.       Size             : CARDINAL;
  665.       Type             : CARDINAL;
  666.       DefaultAlgorithm : CARDINAL;
  667.     | TRUE             :
  668.       cb               : CARDINAL;
  669.       type             : CARDINAL;
  670.       defaultalgorithm : CARDINAL;
  671.     END;               END;
  672.   PVIOSETTARGET      = POINTER TO VIOSETTARGET;
  673.  
  674. PROCEDURE VioGetState
  675. (
  676.   VAR State         : ARRAY OF SYSTEM.BYTE;
  677.   Handle            : HVIO
  678. )                   : APIRET16;
  679.  
  680. PROCEDURE VioSetState
  681. (
  682.   VAR State         : ARRAY OF SYSTEM.BYTE;
  683.   Handle            : HVIO
  684. )                   : APIRET16;
  685.  
  686.  
  687. END VIO.
  688.