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

⟦67c35ce4c⟧ TextFile

    Length: 10624 (0x2980)
    Types: TextFile
    Names: »LNKDC0.BAK«, »LNKDC0.PAS«

Derivation

└─⟦2079929d2⟧ Bits:30009789/_.ft.Ibm2.50006583.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »LNKDC0.PAS« 
└─⟦243948191⟧ Bits:30009789/_.ft.Ibm2.50007349.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »LNKDC0.BAK« 

TextFile

(******************************************************************************)
(*                                                                            *)
(*   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 *)

      VersionNo = 'V0.03';
      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
         ,ExtraText
         ,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»