DEFINITION MODULE GEMVDIbase; (* ------------------------------------------------------------- *) (* *) (* Modula-2 interface to GEM Virtual Device Interface *) (* *) (* ------------------------------------------------------------- *) (* ------------------------------------------------------------- *) (* (c) Copyright Lehrstuhl fr Prozežrechner TU Mnchen 1987 *) (* ------------------------------------------------------------- *) FROM SYSTEM IMPORT ADDRESS; TYPE VDIWorkInType = ARRAY [0..10] OF INTEGER; VDIWorkOutType = ARRAY [0..57] OF INTEGER; PxyArrayType = ARRAY [0..3] OF INTEGER; BigPxyArrayType = ARRAY [0..7] OF INTEGER; MouseArrayType = ARRAY [0..38] OF INTEGER; SmallArrayType = ARRAY [0..1] OF INTEGER; RGBArrayType = ARRAY [0..2] OF INTEGER; TextAttrArrayType = ARRAY [0..9] OF INTEGER; FontNameType = ARRAY [0..31] OF CHAR; DistanceArrayType = ARRAY [0..4] OF INTEGER; FilmNameType = ARRAY [0..124] OF CHAR; FilmIndexType = ARRAY [0..7],[0..1] OF INTEGER; CtrlArrayType = ARRAY [0..127] OF INTEGER; VAR contrl: ARRAY [0..11] OF INTEGER; intin, ptsin, intout, ptsout: CtrlArrayType; i, h: INTEGER; ADRintin, ADRptsin, ADRintout, ADRptsout, ADRParams: ADDRESS; parameterBlock: ARRAY [0..4] OF ADDRESS; PROCEDURE CopyInt (VAR IntArray: ARRAY OF INTEGER; length: INTEGER); (* Copy IntArray[0] ... IntArray[length-1] to intin[0] ... intin[length-1] *) PROCEDURE CopyPxy (VAR PxyArray: ARRAY OF INTEGER; pts: INTEGER); (* Copy PxyArray[0] ... PxyArray[pts*2 - 1] to ptsin[0] ... ptsin[pts*2 - 1] *) PROCEDURE CallVDI; (* Perform trap to GEM VDI *) PROCEDURE CallVDI2 (function, handle: INTEGER); (* Set contrl[0] and contrl[6] and perform trap to GEM VDI *) PROCEDURE CallVDI4 (function, handle, pts, int: INTEGER); (* Like "CallVDI2", additionally sets contrl[1] and contrl[3] *) PROCEDURE CallVDI5 (function, subfunction, handle, pts, int: INTEGER); (* Like "CallVDI4", additionally sets contrl[5] with "subfunction" *) PROCEDURE SetContrl (c0, c1, c3, c5, c6: INTEGER); (* Set passed parameters into the control array, subsequent call of "CallVDI" necessary *) END GEMVDIbase.