VIO.DEF 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * VIO.DEF - Modula-2 OS/2 VIO API interface *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(o_a_size => off,
  11. o_a_copy=>off,
  12. result_optional=>on,
  13. reg_saved => (di,si,ds,st1,st2),
  14. reg_param => (),
  15. seg_name => none,
  16. same_ds => off,
  17. near_call => off,
  18. ds_eq_ss => off) *)
  19. (*# module(implementation=>off, init_code => off) *)
  20. (*# name(prefix => os2_lib) *)
  21. (*# data(near_ptr => off) *)
  22. DEFINITION MODULE Vio;
  23. FROM OS2DEF IMPORT LHANDLE;
  24. (**)
  25. (**--- OS/2 Kernel Vio calls -----------------------------------------------*)
  26. (**)
  27. (**)
  28. (*--- Conditional sections, set to TRUE if required ------------------------*)
  29. (**)
  30. CONST
  31. i_AVIO = TRUE; (* PM Advanced Vio *)
  32. TYPE
  33. HVIO = CARDINAL;
  34. VIOFUNC = (GETCURPOS,GETCURTYPE,GETMODE,GETBUF,GETPHYSBUF,
  35. SETCURPOS,SETCURTYPE,SETMODE,SHOWBUF,READCHARSTR,
  36. READCELLSTR,WRTNCHAR,WRTNATTR,WRTNCELL,WRTTTY,
  37. WRTCHARSTR,WRTCHARSTRATT,WRTCELLSTR,SCROLLUP,SCROLLDN,
  38. SCROLLLF,SCROLLRT,SETANSI,GETANSI,PRTSC,
  39. SCRLOCK,SCRUNLOCK,SAVREDRAWWAIT,SAVREDRAWUNDO,
  40. POPUP,ENDPOPUP,PRTSCTOGGLE,MODEWAIT,MODEUNDO,GETFONT,
  41. GETCONFIG,SETCP,GETCP,SETFONT,GETSTATE,SETSTATE,
  42. _41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,
  43. _52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63);
  44. VIOFUNCSET = SET OF VIOFUNC;
  45. CURSORINFO = RECORD
  46. start : CARDINAL;
  47. end : CARDINAL;
  48. x : CARDINAL;
  49. attr : INTEGER;
  50. END;
  51. MODEINFO = RECORD
  52. b : CARDINAL;
  53. type : SHORTCARD;
  54. color : SHORTCARD;
  55. col : CARDINAL;
  56. row : CARDINAL;
  57. hres : CARDINAL;
  58. vres : CARDINAL;
  59. fmt_ID : SHORTCARD; (* attribute format *)
  60. attrib : SHORTCARD; (* number of attributes *)
  61. buf_addr : LONGCARD;
  62. buf_length : LONGCARD;
  63. full_length : LONGCARD;
  64. partial_length : LONGCARD;
  65. ext_data_addr : FarADDRESS;
  66. END;
  67. PHYSBUF = RECORD
  68. bufaddr : LONGCARD;
  69. buflen : LONGCARD;
  70. sel : ARRAY [0..0] OF CARDINAL;
  71. END;
  72. CONFIGINFO = RECORD
  73. b : CARDINAL;
  74. adapter : CARDINAL;
  75. display : CARDINAL;
  76. memory : LONGCARD;
  77. Configuration: CARDINAL;
  78. VDHVersion : CARDINAL;
  79. Flags : CARDINAL;
  80. HWBufferSize : LONGCARD;
  81. FullSaveSize : LONGCARD;
  82. PartSaveSize : LONGCARD;
  83. EMAdaptersOFF: CARDINAL;
  84. EMDisplaysOFF: CARDINAL;
  85. END;
  86. FONTINFO = RECORD
  87. b : CARDINAL;
  88. type : CARDINAL;
  89. xCell : CARDINAL;
  90. yCell : CARDINAL;
  91. pData : FarADDRESS;
  92. cData : CARDINAL;
  93. END;
  94. PALSTATE = RECORD
  95. b : CARDINAL;
  96. type : CARDINAL;
  97. iFirst : CARDINAL;
  98. acolor : ARRAY [0..0] OF CARDINAL;
  99. END;
  100. OVERSCAN = RECORD
  101. b : CARDINAL;
  102. type : CARDINAL;
  103. color : CARDINAL;
  104. END;
  105. INTENSITY = RECORD
  106. b : CARDINAL;
  107. type : CARDINAL;
  108. fs : CARDINAL;
  109. END;
  110. CHARCELL = RECORD
  111. char : CHAR;
  112. attr : SHORTCARD;
  113. END;
  114. COLORREG = RECORD
  115. cb : CARDINAL;
  116. type : CARDINAL;
  117. firstcolorreg : CARDINAL;
  118. numcolorregs : CARDINAL;
  119. colorregaddr : FarADDRESS
  120. END;
  121. SETULINELOC = RECORD
  122. cb : CARDINAL;
  123. type : CARDINAL;
  124. scanline : CARDINAL;
  125. END;
  126. SETTARGET = RECORD
  127. cb : CARDINAL;
  128. type : CARDINAL;
  129. defaultalgorithm : CARDINAL;
  130. END;
  131. CONST
  132. VGMT_OTHER = 1; VGMT_GRAPHICS = 2; VGMT_DISABLEBURST = 4;
  133. ANSI_ON = 1; ANSI_OFF = 0;
  134. VSRWI_SAVEANDREDRAW = 0; VSRWI_REDRAW = 1;
  135. VSRWN_SAVE = 0; VSRWN_REDRAW = 1;
  136. UNDOI_GETOWNER = 0; UNDOI_RELEASEOWNER = 1;
  137. UNDOK_ERRORCODE = 0; UNDOK_TERMINATE = 1;
  138. VMWR_POPUP = 0; VMWN_POPUP = 0;
  139. LOCKIO_NOWAIT = 0; LOCKIO_WAIT = 1;
  140. LOCK_SUCCESS = 0; LOCK_FAIL = 1;
  141. VP_NOWAIT = 0; VP_WAIT = 1;
  142. VP_OPAQUE = 0; VP_TRANSPARENT = 2;
  143. VGFI_GETCURFONT = 0; VGFI_GETROMFONT = 1;
  144. PROCEDURE Register(module,entry:ARRAY OF CHAR; mask:VIOFUNCSET) : CARDINAL;
  145. PROCEDURE DeRegister() : CARDINAL;
  146. PROCEDURE GlobalReg(module,entry:ARRAY OF CHAR; mask:VIOFUNCSET; rsvd: LONGINT) : CARDINAL;
  147. PROCEDURE GetBuf(VAR lbuff:LONGCARD; VAR bufflng:CARDINAL; handle:HVIO) : CARDINAL;
  148. PROCEDURE GetCurPos(VAR row,column:CARDINAL; handle:HVIO) : CARDINAL;
  149. PROCEDURE SetCurPos(row,column:CARDINAL; handle:HVIO) : CARDINAL;
  150. PROCEDURE GetCurType(VAR cursor:CURSORINFO; handle:HVIO) : CARDINAL;
  151. PROCEDURE SetCurType(VAR cursor:CURSORINFO; handle:HVIO) : CARDINAL;
  152. PROCEDURE GetMode(VAR mode:MODEINFO; handle:HVIO) : CARDINAL;
  153. PROCEDURE SetMode(VAR mode:MODEINFO; handle:HVIO) : CARDINAL;
  154. PROCEDURE GetPhysBuf(VAR dstruc:PHYSBUF; rsrvd:CARDINAL) : CARDINAL;
  155. PROCEDURE ReadCellStr(VAR buffer:ARRAY OF WORD; VAR bufflng:CARDINAL; row,column:CARDINAL; handle:HVIO) : CARDINAL;
  156. PROCEDURE ReadCharStr(VAR buffer:ARRAY OF CHAR; VAR bufflng:CARDINAL; row,column:CARDINAL; handle:HVIO) : CARDINAL;
  157. PROCEDURE WrtCellStr(buffer:ARRAY OF WORD; length,row,column:CARDINAL; handle:HVIO) : CARDINAL;
  158. PROCEDURE WrtCharStr(buffer:ARRAY OF CHAR; length,row,column:CARDINAL; handle:HVIO) : CARDINAL;
  159. PROCEDURE ScrollDn(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL;
  160. PROCEDURE ScrollUp(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL;
  161. PROCEDURE ScrollLf(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL;
  162. PROCEDURE ScrollRt(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL;
  163. PROCEDURE WrtNAttr(VAR attrib:SHORTCARD; times,row,column:CARDINAL; handle:HVIO) : CARDINAL;
  164. PROCEDURE WrtNCell(VAR cell:WORD; times,row,column:CARDINAL; handle:HVIO) : CARDINAL;
  165. PROCEDURE WrtNChar(VAR char:CHAR; times,row,column:CARDINAL; handle:HVIO) : CARDINAL;
  166. PROCEDURE WrtTTY(string:ARRAY OF CHAR; length:CARDINAL; handle:HVIO) : CARDINAL;
  167. PROCEDURE WrtCharStrAtt(buffer:ARRAY OF CHAR; length,row,column:CARDINAL; VAR attr:SHORTCARD; handle:HVIO) : CARDINAL;
  168. PROCEDURE ShowBuf(offst,length:CARDINAL; handle:HVIO) : CARDINAL;
  169. PROCEDURE SetAnsi(indic:CARDINAL; handle:HVIO) : CARDINAL;
  170. PROCEDURE GetAnsi(VAR indic:CARDINAL; handle:HVIO) : CARDINAL;
  171. PROCEDURE PrtSc(handle:HVIO) : CARDINAL;
  172. PROCEDURE PrtScToggle(handle:HVIO) : CARDINAL;
  173. PROCEDURE SavRedrawWait(indic:CARDINAL; VAR type:CARDINAL; rsrvd:CARDINAL) : CARDINAL;
  174. PROCEDURE SavRedrawUndo(owner,kill:CARDINAL; rsrvd:CARDINAL) : CARDINAL;
  175. PROCEDURE ModeWait(type:CARDINAL; VAR notify:CARDINAL; rsrvd:CARDINAL) : CARDINAL;
  176. PROCEDURE ModeUndo(owner,kill:CARDINAL; rsrvd:CARDINAL) : CARDINAL;
  177. PROCEDURE ScrLock(wait:CARDINAL; VAR status:CARDINAL; handle:HVIO) : CARDINAL;
  178. PROCEDURE ScrUnLock(handle:HVIO) : CARDINAL;
  179. PROCEDURE PopUp(VAR flags:CARDINAL; handle:HVIO) : CARDINAL;
  180. PROCEDURE EndPopUp(handle:HVIO) : CARDINAL;
  181. PROCEDURE GetConfig(rsrvd:CARDINAL; VAR cfgdata:CONFIGINFO; handle:HVIO) : CARDINAL;
  182. PROCEDURE GetFont(VAR rblock:FONTINFO; handle:HVIO) : CARDINAL;
  183. PROCEDURE SetFont(VAR rblock:FONTINFO; handle:HVIO) : CARDINAL;
  184. PROCEDURE GetCp(rsrvd:CARDINAL; VAR cpid:CARDINAL; handle:HVIO) : CARDINAL;
  185. PROCEDURE SetCp(rsrvd:CARDINAL; cpid:CARDINAL; handle:HVIO) : CARDINAL;
  186. PROCEDURE GetState(rblock:FarADDRESS; handle:HVIO) : CARDINAL;
  187. PROCEDURE SetState(rblock:FarADDRESS; handle:HVIO) : CARDINAL;
  188. (**)
  189. (**--- PM Advanced Vio -----------------------------------------------------*)
  190. (**)
  191. (*%T i_AVIO*)
  192. TYPE
  193. HDC = LHANDLE;
  194. HVPS = CARDINAL;
  195. STR8 = ARRAY[0..7] OF CHAR;
  196. PROCEDURE Associate(h:HDC; ps:HVPS) : CARDINAL;
  197. PROCEDURE CreateLogFont(fattrs:FarADDRESS; lid:LONGINT; VAR n:STR8; ps:HVPS) : CARDINAL;
  198. PROCEDURE CreatePS(VAR ps:HVPS; d,w:INTEGER; f,a:CARDINAL; r:HVPS) : CARDINAL;
  199. PROCEDURE DestroyPS(ps:HVPS) : CARDINAL;
  200. PROCEDURE DeleteSetId(lid:LONGINT; ps:HVPS) : CARDINAL;
  201. PROCEDURE GetDeviceCellSize(VAR h,w:INTEGER; hv:HVPS) : CARDINAL;
  202. PROCEDURE GetOrg(VAR r,c:INTEGER; ps:HVPS) : CARDINAL;
  203. PROCEDURE QueryFonts(VAR n:LONGINT; fontmetrics:FarADDRESS; ml:LONGINT; VAR fn:LONGINT; name:ARRAY OF CHAR; o:LONGCARD; ps:HVPS) : CARDINAL;
  204. PROCEDURE QuerySetIds(VAR lid:LONGINT; VAR n:STR8; VAR t:ARRAY OF LONGINT; c:LONGINT; ps:HVPS) : CARDINAL;
  205. PROCEDURE SetDeviceCellSize(h,w:INTEGER; hv:HVPS) : CARDINAL;
  206. PROCEDURE SetOrg(r,c:INTEGER; h:HVPS) : CARDINAL;
  207. PROCEDURE ShowPS(d,w,o:INTEGER; h:HVPS) : CARDINAL;
  208. (*%E*)
  209. END Vio.