DEFINITION MODULE M2Bll;
(* bp/4.1.90 M2Bll und M2Sll zusammengefaßt *)

FROM SYSTEM	IMPORT	ADDRESS;
FROM ExecD	IMPORT	NodeType;
FROM MLinkBase	IMPORT	NameRecPtr;

TYPE
  LoadError=(loadOk, refFindErr, refErr, createFDerr, verrevNotDef,
 	    notEnoughProcs, noDef, createDefErr);
CONST
 (* Name extensions: *)
  Lib = 'Lib'; Dev = 'Dev'; Rsrc = 'Rsrc';
 (* Special Constants: *)
  VerName = 'version';
  RevName = 'revision';
  SizeName = 'baseSize';

  maxProcs=512;

TYPE
  ParaPtr = POINTER TO Para;
  Para = RECORD
    next: ParaPtr;
    id:NameRecPtr;
    register:INTEGER; (* 1..16 *)
  END;
  Procedure=RECORD
    id: NameRecPtr;
    pars:ParaPtr;
    adr:LONGINT;
  END;
VAR
  procs: INTEGER;  (* exported procedures *)
  procArr: ARRAY [0..maxProcs-1] OF Procedure;
  version,
  revision,
  libSize: INTEGER;

PROCEDURE Enter(name: ARRAY OF CHAR): NameRecPtr;

(* lädt RefFile, holt Version und Revision, schreibt def und fd *)
PROCEDURE CheckAll(VAR MName,Naked,LibName:ARRAY OF CHAR; type:NodeType;
		   verbose, makeFD, makeDef, makeIcon:BOOLEAN):LoadError;

END M2Bll.
