(* ------------------------------------------------------------------------
  :Program.     Lhlib
  :Contents.    Interface to "lh.library"
  :Author.      Thomas Stolze
  :Address.     Goslarsche Str. 32
  :Address.     D-W-3000 Hannover 21
  :History.     Ported from Oberon 31-JUL-92
  :Remark.      Oberon Version by Christoph Teuber,
  :Remark.                        Rheinstr. 65, 5600 Wuppertal 1, Germany
  :Copyright.   PD
  :Language.    Modula-2
  :Translator.  M2AMIGA V4.0d
  :Remark.      You MUST check LhBase # NIL !!
------------------------------------------------------------------------ *)
(*$ Implementation:=TRUE LargeVars:=FALSE LongAlign:=FALSE Volatile:=FALSE *)
(*$ StackParms:=FALSE NameChk:=FALSE *)

DEFINITION MODULE LhLib;

IMPORT R;

FROM ExecD  IMPORT LibraryPtr;
FROM SYSTEM IMPORT ADDRESS;

CONST LhName    = "lh.library";
      LhVersion = 0;

TYPE LhBufferPtr  = POINTER TO LhBuffer;
     LhBuffer     = RECORD
                      lhSrc      : ADDRESS;
                      lhSrcSize  : LONGINT;
                      lhDst      : ADDRESS;
                      lhDstSize  : LONGINT;
                      lhAux      : ADDRESS;
                      lhAuxSize  : ADDRESS;
                      lhReserved : LONGINT;
                    END;

VAR lhVersion : INTEGER;
    lhBase    : LibraryPtr;

PROCEDURE CreateBuffer (OnlyDecode{R.D0} : BOOLEAN): LhBufferPtr; CODE -30;
PROCEDURE DeleteBuffer (Buffer{R.A0} : LhBufferPtr);              CODE -36;
PROCEDURE LhEncode  (Buffer{R.A0} : LhBufferPtr): LONGINT;        CODE -42;
PROCEDURE LhDecode  (Buffer{R.A0} : LhBufferPtr): LONGINT;        CODE -48;

END LhLib.
