DEFINITION AES; (* SJ  9.1.93 *)

(* basic AES call. Only used by AES modules *)

TYPE 
  global  = RECORD
              Version, NumTasks, ApId : INTEGER;
              Private, Rsrcaddr : LONGINT;
            END;
  control = RECORD
              Opcode, SizeIntIn, SizeIntOut,
              SizeAddrIn, SizeAddrOut: INTEGER;
            END;
  intin   = ARRAY 20 OF INTEGER;
  intout  = ARRAY 8 OF INTEGER;
  addrin  = ARRAY 3 OF LONGINT;
  addrout = ARRAY 2 OF LONGINT;
  param   = RECORD
              Control : POINTER TO control;
              Global  : POINTER TO global;
              IntIn   : POINTER TO intin;
              IntOut  : POINTER TO intout;
              AddrIn  : POINTER TO addrin;
              AddrOut : POINTER TO addrout;
            END;

VAR 
  ParamBlk : param;
  Global   : global;
  Control  : control;
  IntIn    : intin;
  IntOut   : intout;
  AddrIn   : addrin;
  AddrOut  : addrout;

PROCEDURE Call(Parameter : LONGINT);

(* the parameter contains the first four values for the control array as 
   bytes, i.e. Opcode,SizeIntIn,SizeIntOut and SizeAddrIn. *)

END AES.
