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

⟦fb095074c⟧ TextFile

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

Derivation

└─⟦91467e717⟧ Bits:30009789/_.ft.Ibm2.50007348.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »LNKDC0.PIS« 

TextFile

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

   CONST (*LINK*)
      FileNameLength = 14;
      MaxSymbolNameIndex = 2; (*?*)
      MaxNooInputFiles = 2; (*?*)
      MaxNooModules = 2;    (*?*)
      MaxNooSections = 2;   (*?*)
      MaxNooSegments = 3;   (*?*)
      MaxNooSymbols = 5;    (*?*)
      MaxNooExternalImportSymbols = 2; (*?*)
      MaxNooInternalImportSymbols = 2; (*?*)
      MaxObjectRecordIndex = 31; (*?*)
      MaxSectorIndex = 1023;
      MaxNameTableIndex = 9; (*?*)
      OM_Format1 = 1;
      OF_Format1 = 1;
      LogFilePageSize = 65; (*First line is #1. Last line is #65*)

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

      StatusType = (success
                   ,error
                   ,badfileformat
                   ,badmoduleformat
                   ,unexpectedeof
                   ,NotFound
                   ,DuplicateModuleName
                   ,NameTableOverFlow
                   ,ModuleTableOverFlow
                   ,SectionTableOverFlow
                   ,FileNameTableOverFlow
                   ,SymbolTableOverFlow
                   ,ExternalImportTableOverFlow
                   ,InternalImportTableOverFlow
                   ,ValueTableOverFlow
                   ,NoSuchFile
                   ,NotFinished
                   ,BadLogFileName
                   ,BadTargetFileName
                   ,BadSymbolName
                   ,NoInputFiles
                   ,BadOption
                   ,BadFileName
                   ,AmbiguousName
                   ,DuplicateExportSymbol
                   ,HeapEmpty
                   ,NotUsed
                   );

      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;



      SymbolNameIndexType = 0..MaxSymbolNameIndex;
      SymbolNameSubIndexType = 1..MaxSymbolNameIndex;
      SymbolNameType = RECORD
         Length: SymbolNameIndexType;
         Name: ARRAY (.SymbolNameSubIndexType.) OF i8;
        END;
      ModuleNameType = SymbolNameType;
      FileNameType = STRING(.FileNameLength.);

(*
      SectorIndexType = 0..MaxSectorIndex;
      SectorType = ARRAY (.SectorIndexType.) OF byte;
      FileType = RECORD
         F: File OF SectorType; (* File system file * )
         S: i32;                (* Current sector number * )
         P: SectorIndexType     (* Current index into current sector * )
        END;
*)
      FileType = RECORD
         F: FILE OF i8;       (* 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;

      (* 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 *)
         NooExternalImportSymbols: ExternalImportTableIndexType;
         EITOffset: ExternalImportTableIndexType;
         SBTLinkHead: SymbolTableIndexType
        END;

      SectionTableRecordType = RECORD
         ModuleNo: ModuleTableIndexType;
         SegmentNo: SegmentNoType;
         ImageSize,
         RldSize: FileAddressType;
         NooInternalImportSymbols: InternalImportTableIndexType;
         RelocationConstant: SizeType;
        END;

      SymbolTableRecordType = RECORD
         Section: SectionTableIndexType;
         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;




      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;

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


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

      ExternalImportTable: ExternalImportTableType;
      CurExternalImportSymbolNo: ExternalImportTableIndexType;

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