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

⟦74a88faf4⟧ TextFile

    Length: 7936 (0x1f00)
    Types: TextFile
    Names: »LNKDC0.PAS«

Derivation

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

TextFile

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

   CONST

(*$I B:LNKDC0-0.pas  Configuration Constants *)
(*$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 *)

   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
         ,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;
      SizeType = FileAddressType;

      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
        END;

      FileNameTableRecordType = FileNameType;

      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;
         RelocationConstant: SizeType;
        END;

      SymbolTableRecordType = RECORD
         ModuleNo: ModuleTableIndexType;
         NameReference: NameTableIndexType;
         SortLink: SymbolTableIndexType
        END;

      ValueTableRecordType = RECORD
         SegmentNo: SegmentNoType;
         Value: i32
        END;

      (* Table Types *)


      ExternalImportTableType = ARRAY (.ExternalImportTableSubIndexType.) OF
            ExternalImportTableRecordType;

      FileNameTableType = ARRAY (.FileNameTableIndexType.) OF
            FileNameTableRecordType;

      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;

      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;

(*$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; (*?*)
      NooExpSymbols: i32; (* Number of EXP symbols in target module *)

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

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