DataMuseum.dk

Presents historical artifacts from the history of:

Bogika Butler

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Bogika Butler

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦b4628ea50⟧ TextFile

    Length: 10240 (0x2800)
    Types: TextFile
    Names: »LNKDC0.PAS«

Derivation

└─⟦3d1e6965e⟧ Bits:30009789/_.ft.Ibm2.50007347.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »LNKDC0.PAS« 

TextFile

(******************************************************************************)
(*                                                                            *)
(*   Copyright (1985) by Metanic Aps., Denmark                                *)
(*                                                                            *)
(*   Author: Lars Gregers Jakobsen.                                           *)
(*                                                                            *)
(******************************************************************************)

(*$I B:LNKDC0-0.pas  Configuration Constants *)
(*$I A:PrTstCon.pas Declarations of constants for PrTst package *)


   TYPE  (*LINK*)

      (* General Types *)

      i8  = 0..255;
      byte = i8;
      i16 = 0..65535;
      i32 = integer;
      i32IndexType = (bs0, bs1, bs2, bs3);
      i32ArrayType = ARRAY (.i32IndexType.) OF i8;
      CharSetType = SET OF char;

      (* Basic Types *)

      StatusBaseType =
         (success
         ,badfileformat
         ,badmoduleformat
         ,unexpectedeof
         ,NotFound
         ,DuplicateModuleName
         ,NameTableOverFlow
         ,ModuleTableOverFlow
         ,SectionTableOverFlow
         ,FileNameTableOverFlow
         ,SymbolTableOverFlow
         ,ExternalImportTableOverFlow
         ,InternalImportTableOverFlow
         ,ValueTableOverFlow
         ,NoSuchFile
         ,NotFinished
         ,BadLogFileName
         ,BadTargetFileName
         ,BadSymbolName
         ,NoInputFiles
         ,BadOption
         ,BadFileName
         ,DuplicateExportSymbol
         ,HeapEmpty
         ,NoInput
         ,Baddibit
         ,BadRelocationCode
         ,BadImportCode
         ,error
         );

      StatusType = SET OF StatusBaseType;

      OF_FormatType = i32;
      OM_FormatType = i32;
      FileKindBaseType = (explicit, implicit, none);
      LogFileKindType = explicit..none;
      TargetFileKindType = explicit..implicit;

      SegmentNoType = 0..MaxNooSegments;
      RelocationIndicatorType = SegmentNoType;
      FileAddressType = 0..MaxInt;
      SizeType = FileAddressType;
      ModuleSectionReferenceType = - MaxNooModules..MaxNooSections;

      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;
      InternalImportTableIndexType = 0..MaxNooInternalImportSymbols;
      ModuleTableIndexType = 0..MaxNooModules;
      NameTableIndexType = 0..MaxNameTableIndex;
      SectionTableIndexType = 0..MaxNooSections;
      SymbolTableIndexType = 0..MaxNooSymbols;
      HeapIndexType = 0..MaxHeapIndex;

      (* Table Sub Index Types *)

      ExternalImportTableSubIndexType = 1..MaxNooExternalImportSymbols;
      InternalImportTableSubIndexType = 1..MaxNooInternalImportSymbols;
      ModuleTableSubIndexType = 1..MaxNooModules;
      NameTableSubIndexType = 1..MaxNameTableIndex;
      SectionTableSubIndexType = 1..MaxNooSections;
      SymbolTableSubIndexType = 1..MaxNooSymbols;



      (* Table Record Types *)

      ExternalImportTableRecordType = RECORD
         SymbolNo: SymbolTableIndexType
        END;

      FileNameTableRecordType = FileNameType;

      InternalImportTableRecordType = RECORD
         ModificationAddress: FileAddressType;
         SymbolIndex: ExternalImportTableIndexType
        END;

      ModuleTableRecordType = RECORD
         ModuleNameReference: SymbolTableIndexType; (* Reference to symbol
                                                       table entry holding
                                                       module name*)
         FileNameReference: FileNameTableIndexType; (* *)
         CurrentFileAddress: FileAddressType;       (* Offset relative to
                                                       start of file *)
         Referenced: Boolean; (* True if module referenced *)
         NooSegments: SegmentNoType; (* Noo Segments in module *)
         SCTBase: SectionTableIndexType;
(*         NooExternalImportSymbols: ExternalImportTableIndexType; *)
         EITOffset: ExternalImportTableIndexType;
         SBTLinkHead: SymbolTableIndexType
        END;

      SectionTableRecordType = RECORD
         ModuleNo: ModuleTableIndexType;
         SegmentNo: SegmentNoType;
         ImageSize: SizeType;
         OvrSize: SizeType;
(*       RldSize: FileAddressType; *******************************?*)
(*       NooInternalImportSymbols: InternalImportTableIndexType;  *?*)
         RelocationConstant: SizeType;
        END;

      SymbolTableRecordType = RECORD
         Section: ModuleSectionReferenceType;
         NameReference: NameTableIndexType;
         SortLink: SymbolTableIndexType
        END;

      ValueTableRecordType = RECORD
         Resolved: Boolean;
         Value: i32
        END;

      (* Table Types *)


      ExternalImportTableType = ARRAY (.ExternalImportTableSubIndexType.) OF
            ExternalImportTableRecordType;

      FileNameTableType = ARRAY (.FileNameTableIndexType.) OF
            FileNameTableRecordType;

      InternalImportTableType = ARRAY (.InternalImportTableSubIndexType.) OF
            InternalImportTableRecordType;

      ModuleTableType = ARRAY (.ModuleTableSubIndexType.) OF
            ModuleTableRecordType;

      OptionTableType = RECORD
         LogFileKind: LogFileKindType;
         TargetFileKind: TargetFileKindType
        END;

      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;

(*****************************************************************************

      ObjectRecordKindType = (OFF_Kind,
                              OMF_Kind,
                              OMH_Kind,
                              SGD_Kind,
                              EXP_Kind,
                              EXI_Kind,
                              IMG_Kind,
                              RLD_Kind,
                              INI_Kind,
                              SYM_Kind,
                              IndexableKind
                             );

      ObjectRecordIndexType = 0..MaxObjectRecordIndex;

      ObjectRecordType = RECORD
         CASE ObjectRecordKind: ObjectRecordKindType OF
         OFF_Kind:
            (OF_Format: OF_FormatType);
         OMF_Kind:
            (OM_Format: OM_FormatType);
         OMH_Kind:
            (OMH_Module
            ,OMH_NooSegments
            ,OMH_NooExportSymbols
            ,OMH_NooExtImportSymbols
            : i32
            ;OMH_ModuleName
            : ModuleNameType
            );
         SGD_Kind:
            (SGD_Image
            ,SGD_Rld
            ,SGD_IntImport
            ,SGD_NooIntImportSymbols: i32
            );
         EXP_Kind:
            (EXP_RelocationIndicator: RelocationIndicatorType
            ;EXP_Item: i32
            ;EXP_SymbolName: SymbolNameType
            );
         EXI_Kind:
            (EXI_SymbolName: SymbolNameType
            );
         IMG_Kind:
            (IMG_SectionImageUnit: i8
            );
         RLD_Kind:
            (RLD_RelocationIndicator: RelocationIndicatorType
            );
         INI_Kind:
            (INI_ModificationAddress: FileAddressType
            ;INI_SymbolIndex: ExternalImportTableIndexType
            );
         SYM_Kind:
            (SYM_SymbolName: SymbolNameType
            );
         IndexableKind:
            (N: ARRAY (.ObjectRecordIndexType.) OF i8)
         END; (*RECORD CASE* )

****************************************************************************)

(*$I A:PrTstTyp.pas Declarations of types for PrTst package *)


   COMMON   (*LINK*)

      (* Permanent Tables *)

      OptionTable: OptionTableType;

      FileNameTable: FilenameTableType;
      CurFileNo: FileNameTableIndexType;

      ModuleTable: ModuleTableType;
      CurModuleNo: ModuleTableIndexType;
      TargetModuleNo: ModuleTableIndexType;

      SectionTable: SectionTableType;
      SCTOffset: SectionTableIndexType;
      TargetSectionOffset: SectionTableIndexType;
      CurSegmentCount: SegmentNoType;


      ValueTable: ValueTableType;
      CurValueNo: SymbolTableIndexType; (*?*)
      NooExportSymbols: i32;

      ExternalImportTable: ExternalImportTableType;
      CurExternalImportSymbolNo: ExternalImportTableIndexType;
      NooExternalImportSymbols: i32; (*Number of EXI symbols in target module*)

(*$I A:PrTstCom.pas Declarations of global variables for PrTst package *)
«eof»