|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2688 (0xa80)
Types: TextFile
Names: »LNKP1.PAS«
└─⟦d36b687c5⟧ Bits:30009789/_.ft.Ibm2.50007363.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »LNKP1.PAS«
(******************************************************************************)
(* *)
(* Copyright (1985) by Metanic Aps., Denmark *)
(* *)
(* Author: Lars Gregers Jakobsen. *)
(* *)
(******************************************************************************)
(*
This file holds the declarations for the pass1
procedure of the Metanic linker.
*)
PROCEDURE Pass1(VAR Status: StatusType
;VAR TargetFile: FileType
;VAR LogFile: LogFileType
);
(* Pass1 of the linker performs the gathering of export and
import information from the input files as well as calculation
of final memory map and all operations on the symbol table
including reporting to the log file.
The following statusvalues may be returned:
Success: ok. All other parameters meaningful.
*)
VAR
SymbolTable: SymbolTableType;
LatestInsert: SymbolTableIndexType;
CurrentSymbolCount: SymbolTableIndexType;
CurrentUrsCount: integer; (* Count of unresolved symbols*)
NameTable: NameTableType;
CurrentNameTableIndex: NameTableIndexType; (*Max Index used -
NOT count of strings*)
(* MISC. VARIABLES *)
SBTSubInx: SymbolTableSubIndexType;
SCTSubInx: SectionTableSubIndexType;
(*$I B:LnkDF3.pas Definitions of pass1 local test output primitives *)
(*$I B:LnkDF4.pas Definitions of pass1 local access primitives *)
(*$I B:lnkp1-1.pas getinputfiles *)
(*$I B:lnkp1-2.pas putmodule *)
BEGIN (*PASS1*)
(* Initialize local data structures *)
FOR SBTSubInx := 1 TO MaxNooSymbols DO
SymbolTable(.SBTSubInx.).NameReference := 0;
FOR SCTSubInx := 1 TO MaxNooSections DO
SectionTable(.SCTSubInx.).SegmentNo := 0;
LatestInsert := 0;
CurrentSymbolCount := 0;
CurrentUrsCount := 0;
CurrentNameTableIndex := 1;
GetInputFiles(Status, LogFile);
IF Status = (..) THEN
BEGIN
PutTargetFile(Status, TargetFile, LogFile);
END;
END; (*PASS1*)
«eof»