(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * VIO.DEF - Modula-2 OS/2 VIO API interface * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# call(o_a_size => off, o_a_copy=>off, result_optional=>on, reg_saved => (di,si,ds,st1,st2), reg_param => (), seg_name => none, same_ds => off, near_call => off, ds_eq_ss => off) *) (*# module(implementation=>off, init_code => off) *) (*# name(prefix => os2_lib) *) (*# data(near_ptr => off) *) DEFINITION MODULE Vio; FROM OS2DEF IMPORT LHANDLE; (**) (**--- OS/2 Kernel Vio calls -----------------------------------------------*) (**) (**) (*--- Conditional sections, set to TRUE if required ------------------------*) (**) CONST i_AVIO = TRUE; (* PM Advanced Vio *) TYPE HVIO = CARDINAL; VIOFUNC = (GETCURPOS,GETCURTYPE,GETMODE,GETBUF,GETPHYSBUF, SETCURPOS,SETCURTYPE,SETMODE,SHOWBUF,READCHARSTR, READCELLSTR,WRTNCHAR,WRTNATTR,WRTNCELL,WRTTTY, WRTCHARSTR,WRTCHARSTRATT,WRTCELLSTR,SCROLLUP,SCROLLDN, SCROLLLF,SCROLLRT,SETANSI,GETANSI,PRTSC, SCRLOCK,SCRUNLOCK,SAVREDRAWWAIT,SAVREDRAWUNDO, POPUP,ENDPOPUP,PRTSCTOGGLE,MODEWAIT,MODEUNDO,GETFONT, GETCONFIG,SETCP,GETCP,SETFONT,GETSTATE,SETSTATE, _41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51, _52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63); VIOFUNCSET = SET OF VIOFUNC; CURSORINFO = RECORD start : CARDINAL; end : CARDINAL; x : CARDINAL; attr : INTEGER; END; MODEINFO = RECORD b : CARDINAL; type : SHORTCARD; color : SHORTCARD; col : CARDINAL; row : CARDINAL; hres : CARDINAL; vres : CARDINAL; fmt_ID : SHORTCARD; (* attribute format *) attrib : SHORTCARD; (* number of attributes *) buf_addr : LONGCARD; buf_length : LONGCARD; full_length : LONGCARD; partial_length : LONGCARD; ext_data_addr : FarADDRESS; END; PHYSBUF = RECORD bufaddr : LONGCARD; buflen : LONGCARD; sel : ARRAY [0..0] OF CARDINAL; END; CONFIGINFO = RECORD b : CARDINAL; adapter : CARDINAL; display : CARDINAL; memory : LONGCARD; Configuration: CARDINAL; VDHVersion : CARDINAL; Flags : CARDINAL; HWBufferSize : LONGCARD; FullSaveSize : LONGCARD; PartSaveSize : LONGCARD; EMAdaptersOFF: CARDINAL; EMDisplaysOFF: CARDINAL; END; FONTINFO = RECORD b : CARDINAL; type : CARDINAL; xCell : CARDINAL; yCell : CARDINAL; pData : FarADDRESS; cData : CARDINAL; END; PALSTATE = RECORD b : CARDINAL; type : CARDINAL; iFirst : CARDINAL; acolor : ARRAY [0..0] OF CARDINAL; END; OVERSCAN = RECORD b : CARDINAL; type : CARDINAL; color : CARDINAL; END; INTENSITY = RECORD b : CARDINAL; type : CARDINAL; fs : CARDINAL; END; CHARCELL = RECORD char : CHAR; attr : SHORTCARD; END; COLORREG = RECORD cb : CARDINAL; type : CARDINAL; firstcolorreg : CARDINAL; numcolorregs : CARDINAL; colorregaddr : FarADDRESS END; SETULINELOC = RECORD cb : CARDINAL; type : CARDINAL; scanline : CARDINAL; END; SETTARGET = RECORD cb : CARDINAL; type : CARDINAL; defaultalgorithm : CARDINAL; END; CONST VGMT_OTHER = 1; VGMT_GRAPHICS = 2; VGMT_DISABLEBURST = 4; ANSI_ON = 1; ANSI_OFF = 0; VSRWI_SAVEANDREDRAW = 0; VSRWI_REDRAW = 1; VSRWN_SAVE = 0; VSRWN_REDRAW = 1; UNDOI_GETOWNER = 0; UNDOI_RELEASEOWNER = 1; UNDOK_ERRORCODE = 0; UNDOK_TERMINATE = 1; VMWR_POPUP = 0; VMWN_POPUP = 0; LOCKIO_NOWAIT = 0; LOCKIO_WAIT = 1; LOCK_SUCCESS = 0; LOCK_FAIL = 1; VP_NOWAIT = 0; VP_WAIT = 1; VP_OPAQUE = 0; VP_TRANSPARENT = 2; VGFI_GETCURFONT = 0; VGFI_GETROMFONT = 1; PROCEDURE Register(module,entry:ARRAY OF CHAR; mask:VIOFUNCSET) : CARDINAL; PROCEDURE DeRegister() : CARDINAL; PROCEDURE GlobalReg(module,entry:ARRAY OF CHAR; mask:VIOFUNCSET; rsvd: LONGINT) : CARDINAL; PROCEDURE GetBuf(VAR lbuff:LONGCARD; VAR bufflng:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE GetCurPos(VAR row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE SetCurPos(row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE GetCurType(VAR cursor:CURSORINFO; handle:HVIO) : CARDINAL; PROCEDURE SetCurType(VAR cursor:CURSORINFO; handle:HVIO) : CARDINAL; PROCEDURE GetMode(VAR mode:MODEINFO; handle:HVIO) : CARDINAL; PROCEDURE SetMode(VAR mode:MODEINFO; handle:HVIO) : CARDINAL; PROCEDURE GetPhysBuf(VAR dstruc:PHYSBUF; rsrvd:CARDINAL) : CARDINAL; PROCEDURE ReadCellStr(VAR buffer:ARRAY OF WORD; VAR bufflng:CARDINAL; row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE ReadCharStr(VAR buffer:ARRAY OF CHAR; VAR bufflng:CARDINAL; row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE WrtCellStr(buffer:ARRAY OF WORD; length,row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE WrtCharStr(buffer:ARRAY OF CHAR; length,row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE ScrollDn(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL; PROCEDURE ScrollUp(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL; PROCEDURE ScrollLf(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL; PROCEDURE ScrollRt(top,left,bottom,right,lines:CARDINAL; VAR cell:CHARCELL; handle:HVIO) : CARDINAL; PROCEDURE WrtNAttr(VAR attrib:SHORTCARD; times,row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE WrtNCell(VAR cell:WORD; times,row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE WrtNChar(VAR char:CHAR; times,row,column:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE WrtTTY(string:ARRAY OF CHAR; length:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE WrtCharStrAtt(buffer:ARRAY OF CHAR; length,row,column:CARDINAL; VAR attr:SHORTCARD; handle:HVIO) : CARDINAL; PROCEDURE ShowBuf(offst,length:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE SetAnsi(indic:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE GetAnsi(VAR indic:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE PrtSc(handle:HVIO) : CARDINAL; PROCEDURE PrtScToggle(handle:HVIO) : CARDINAL; PROCEDURE SavRedrawWait(indic:CARDINAL; VAR type:CARDINAL; rsrvd:CARDINAL) : CARDINAL; PROCEDURE SavRedrawUndo(owner,kill:CARDINAL; rsrvd:CARDINAL) : CARDINAL; PROCEDURE ModeWait(type:CARDINAL; VAR notify:CARDINAL; rsrvd:CARDINAL) : CARDINAL; PROCEDURE ModeUndo(owner,kill:CARDINAL; rsrvd:CARDINAL) : CARDINAL; PROCEDURE ScrLock(wait:CARDINAL; VAR status:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE ScrUnLock(handle:HVIO) : CARDINAL; PROCEDURE PopUp(VAR flags:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE EndPopUp(handle:HVIO) : CARDINAL; PROCEDURE GetConfig(rsrvd:CARDINAL; VAR cfgdata:CONFIGINFO; handle:HVIO) : CARDINAL; PROCEDURE GetFont(VAR rblock:FONTINFO; handle:HVIO) : CARDINAL; PROCEDURE SetFont(VAR rblock:FONTINFO; handle:HVIO) : CARDINAL; PROCEDURE GetCp(rsrvd:CARDINAL; VAR cpid:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE SetCp(rsrvd:CARDINAL; cpid:CARDINAL; handle:HVIO) : CARDINAL; PROCEDURE GetState(rblock:FarADDRESS; handle:HVIO) : CARDINAL; PROCEDURE SetState(rblock:FarADDRESS; handle:HVIO) : CARDINAL; (**) (**--- PM Advanced Vio -----------------------------------------------------*) (**) (*%T i_AVIO*) TYPE HDC = LHANDLE; HVPS = CARDINAL; STR8 = ARRAY[0..7] OF CHAR; PROCEDURE Associate(h:HDC; ps:HVPS) : CARDINAL; PROCEDURE CreateLogFont(fattrs:FarADDRESS; lid:LONGINT; VAR n:STR8; ps:HVPS) : CARDINAL; PROCEDURE CreatePS(VAR ps:HVPS; d,w:INTEGER; f,a:CARDINAL; r:HVPS) : CARDINAL; PROCEDURE DestroyPS(ps:HVPS) : CARDINAL; PROCEDURE DeleteSetId(lid:LONGINT; ps:HVPS) : CARDINAL; PROCEDURE GetDeviceCellSize(VAR h,w:INTEGER; hv:HVPS) : CARDINAL; PROCEDURE GetOrg(VAR r,c:INTEGER; ps:HVPS) : CARDINAL; PROCEDURE QueryFonts(VAR n:LONGINT; fontmetrics:FarADDRESS; ml:LONGINT; VAR fn:LONGINT; name:ARRAY OF CHAR; o:LONGCARD; ps:HVPS) : CARDINAL; PROCEDURE QuerySetIds(VAR lid:LONGINT; VAR n:STR8; VAR t:ARRAY OF LONGINT; c:LONGINT; ps:HVPS) : CARDINAL; PROCEDURE SetDeviceCellSize(h,w:INTEGER; hv:HVPS) : CARDINAL; PROCEDURE SetOrg(r,c:INTEGER; h:HVPS) : CARDINAL; PROCEDURE ShowPS(d,w,o:INTEGER; h:HVPS) : CARDINAL; (*%E*) END Vio.