-- IntelHex6.mesa
-- Last Modified: Stewart,  January 5, 1982  12:18 PM

IntelHex6: DEFINITIONS =
BEGIN

  EndOfProc: TYPE = PROC RETURNS [BOOLEAN];
  GetByteProc: TYPE = PROC RETURNS [CARDINAL];
  GetPositionProc: TYPE = PROC RETURNS [LONG CARDINAL];
  SetPositionProc: TYPE = PROC [p: LONG CARDINAL];

  IStream: TYPE = RECORD [
    endof: EndOfProc,
    get: GetByteProc,
    GetPosition: GetPositionProc,
    SetPosition: SetPositionProc
    ];
    
  PutEndRecordProc: TYPE = PROC;
  PutStartRecordProc: TYPE = PROC [frame, bytepos: CARDINAL];
  DataByteProc: TYPE = PROC [adr: LONG CARDINAL, d: CARDINAL];

  OStream: TYPE = RECORD [
    PutEndRecord: PutEndRecordProc,
    PutStartRecord: PutStartRecordProc,
    DataByte: DataByteProc
    ];

  PutCharProc: TYPE = PROC [c: CHARACTER];
    
  ProcessFile: PROC [in: IStream, out: OStream, errs: PutCharProc]
      RETURNS [success: BOOLEAN];

END.
 1-Jan-82 19:43:25, L. Stewart, created