|
|
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: 10624 (0x2980)
Types: TextFile
Names: »LNKDC0.PAS«
└─⟦44b695f10⟧ Bits:30009789/_.ft.Ibm2.50006607.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »LNKDC0.PAS«
└─⟦6661ddda9⟧ Bits:30009789/_.ft.Ibm2.50007339.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »LNKDC0.PAS«
└─⟦da8d53b95⟧ Bits:30009789/_.ft.Ibm2.50006585.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »LNKDC0.PAS«
(******************************************************************************)
(* *)
(* Copyright (1985) by Metanic Aps., Denmark *)
(* *)
(* Author: Lars Gregers Jakobsen. *)
(* *)
(******************************************************************************)
CONST
(*$I B:LNKDC0-0.pas Configuration Constants *)
(*#B#(*$I A:PrTstCon.pas Declarations of constants for PrTst package *)
(* Other constants *)
UnResolved = -1; (* Value of field segmentno in VLT *)
OvrCode = 0; (* For index in bit map *)
ImageFactor = 4; (* 2 bits in bit map per 8 bits in image *)
OMF_Address = 4; (* Address of OMF in target file *)
OMH_Address = 8; (* Address of OMH in target file *)
LogMargin = 10; (* Size of blank left margin in log file *)
TYPE (*LINK*)
(* General Types *)
i8 = 0..255;
i16 = 0..65535;
i32 = integer;
i32IndexType = (bs0, bs1, bs2, bs3);
i32ArrayType = ARRAY (.i32IndexType.) OF i8;
CharSetType = SET OF char;
(* Basic Types *)
StatusBaseType =
(Success
,BadOption
,BadLogFileName
,BadTargetFileName
,BadFileName
,NoSuchFile
,NoInputFiles
,BadFileFormat
,BadModuleFormat
,UnexpectedEof
,RangeError
,BadSymbolName
,DuplicateModuleName
,DuplicateExportSymbol
,NoInput
,Baddibit
,BadRelocationCode
,BadImportCode
,NameTableOverFlow
,ModuleTableOverFlow
,SectionTableOverFlow
,FileNameTableOverFlow
,SymbolTableOverFlow
,ExternalImportTableOverFlow
,NotFound
,NotFinished
,HeapEmpty
,NoTarget
,Error
);
StatusType = SET OF StatusBaseType;
OF_FormatType = i32;
OM_FormatType = i32;
FileKindBaseType = (explicit, implicit, none);
LogFileKindType = explicit..none;
TargetFileKindType = explicit..implicit;
SegmentNoType = UnResolved..MaxNooSegments;
RelocationIndicatorType = SegmentNoType;
FileAddressType = 0..MaxInt;
CommandLineIndexType = 0..CommandLineLength;
CommandLineType = String(.CommandLineLength.);
SymbolNameIndexType = 0..MaxSymbolNameIndex;
SymbolNameSubIndexType = 1..MaxSymbolNameIndex;
SymbolNameType = RECORD
Length: SymbolNameIndexType;
Name: ARRAY (.SymbolNameSubIndexType.) OF i8;
END;
ModuleNameType = SymbolNameType;
FileNameType = STRING(.FileNameLength.);
ImageUnitType = i8;
QuadImageUnitType = i32;
BasicFileType = file OF ImageUnitType;
FileType = RECORD
F: BasicFileType; (* File systeme file *)
P: FileAddressType (* Current file address.
NOT defined when eof(F) = true *)
END;
PageNoType = i32;
LineNoType = 0..255;
LogFileType = RECORD
F: text; (* File system file *)
P: PageNoType; (* No of page started upon *)
L: LineNoType; (* No of line just printed within current page *)
END;
(* Table Index Types *)
ExternalImportTableIndexType = 0..MaxNooExternalImportSymbols;
FileNameTableIndexType = -1..MaxNooInputFiles;
ModuleTableIndexType = 0..MaxNooModules;
NameTableIndexType = 0..MaxNameTableIndex;
SectionTableIndexType = 0..MaxNooSections;
SymbolTableIndexType = 0..MaxNooSymbols;
HeapIndexType = 0..MaxHeapIndex;
(* Table Sub Index Types *)
ExternalImportTableSubIndexType = 1..MaxNooExternalImportSymbols;
ModuleTableSubIndexType = 1..MaxNooModules;
NameTableSubIndexType = 1..MaxNameTableIndex;
SectionTableSubIndexType = 1..MaxNooSections;
SymbolTableSubIndexType = 1..MaxNooSymbols;
(* Table Record Types *)
ExternalImportTableRecordType = RECORD
SymbolNo: SymbolTableIndexType
(* Points to VLT entry holding value *)
END;
FileNameTableRecordType = FileNameType;
ModuleTableRecordType = RECORD
ModuleNameReference: SymbolTableIndexType;
(* Points to SBT entry holding module name *)
FileNameReference: FileNameTableIndexType;
(* Points to FNT entry holding name of file *)
CurrentFileAddress: FileAddressType;
(* Offset (in octets) relative to start of file. First octet
in file is # 0 *)
Referenced: Boolean;
(* True if module referenced. Not used. *)
NooSegments: SegmentNoType;
(* Noo Segments in module *)
SCTBase: SectionTableIndexType;
(* Points to SCT entry just below the entries of this module.
Used by putEXP during relocation of exported symbols *)
NooExternalImportSymbols: ExternalImportTableIndexType;
(* Noo External import symbols in module *)
EITOffset: ExternalImportTableIndexType;
(* Points to EIT entry just below the entries of this module.
Used during pass 2 *)
SBTLinkHead: SymbolTableIndexType
(* Points to first SBT entry in ordered linked list using
sortlink as link field *)
END;
OptionTableRecordType = RECORD
LogFileKind: LogFileKindType;
TargetFileKind: TargetFileKindType
END;
SectionTableRecordType = RECORD
ModuleNo: ModuleTableIndexType;
(* Points to MDT entry holding module description *)
SegmentNo: SegmentNoType;
(* *)
ImageSize: FileAddressType;
(* Size of image in quadimageunits.
Size of bitmap rid in imageunits *)
OvrSize: FileAddressType;
(* Size of overrun store in octets *)
RelocationConstant: FileAddressType;
(* Amount (in octets) to offset section during relocation *)
END;
SymbolTableRecordType = RECORD
ModuleNo: ModuleTableIndexType;
(* if symbol resolved: Points to MDT entry of exporting module.
if not : Points to MDT entry of importing module *)
NameReference: NameTableIndexType;
(* Points to first octet of name (length field) in NMT *)
SortLink: SymbolTableIndexType
(* Points to SBT entry of next symbol according to
some ordering (e.g. alphabetically) *)
END;
ValueTableRecordType = RECORD
SegmentNo: SegmentNoType;
(* < 0 : Symbol has not been resolved.
= 0 : Symbol is absolute.
0 < s <= MDT(SBT.ModuleNo).NooSegments:Symbol is relocatable
and field indicates number of segment. *)
Value: i32
(* if symbol resolved: Value of symbol.
if not : Points to EIT entry of the symbol in the
reduced EIT written to targetmodule *)
END;
(* Table Types *)
ExternalImportTableType = ARRAY (.ExternalImportTableSubIndexType.) OF
ExternalImportTableRecordType;
FileNameTableType = ARRAY (.FileNameTableIndexType.) OF
FileNameTableRecordType;
ModuleTableType = ARRAY (.ModuleTableSubIndexType.) OF
ModuleTableRecordType;
OptionTableType = OptionTableRecordType;
NameTableType = ARRAY (.NameTableSubIndexType.) OF i8;
SectionTableType = ARRAY (.SectionTableSubIndexType.) OF
SectionTableRecordType;
SymbolTableType = ARRAY (.SymbolTableSubIndexType.) OF
SymbolTableRecordType;
ValueTableType = ARRAY (.SymbolTableSubIndexType.) OF
ValueTableRecordType;
(* Other major data structures *)
HeapType = ARRAY (.ModuleTableIndexType.) OF SymbolTableIndexType;
BitMapBufferTagType = (bit, byt);
BitMapBufferType = RECORD
P: 0..16;
CASE BitMapBufferTagType OF
bit: (I: SET OF 0..15);
byt: (Y0: i8;
Y1: i8
)
END;
BitMappedFileType = RECORD
F: BasicFileType;
B: BitMapBufferType
END;
(*#B#(*$I A:PrTstTyp.pas Declarations of types for PrTst package *)
COMMON (*LINK*)
(* Permanent Tables *)
OptionTable: OptionTableType;
FileNameTable: FilenameTableType;
CurFileNo: FileNameTableIndexType;
(* Points to highest entry used *)
ModuleTable: ModuleTableType;
CurModuleNo: ModuleTableIndexType;
(* Points to highest entry used *)
TargetModuleNo: ModuleTableIndexType;
(* Points to entry of target module *)
SectionTable: SectionTableType;
SCTOffset: SectionTableIndexType;
(* Points to highest entry used *)
TargetSectionOffset: SectionTableIndexType;
(* Points to entry just below target sections *)
CurSegmentCount: SegmentNoType;
(* Number of segments in target module *)
ValueTable: ValueTableType;
NooExpSymbols: i32;
(* Number of EXP symbols in target module *)
ExternalImportTable: ExternalImportTableType;
CurExternalImportSymbolNo: ExternalImportTableIndexType;
(* Points to highest entry used *)
NooExiSymbols: i32;
(* Number of EXI symbols in target module *)
(*#B#(*$I A:PrTstCom.pas Declarations of global variables for PrTst package *)
(* *)
(* *)
(******************************************************************************)
«eof»