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

⟦2d3a3913b⟧ TextFile

    Length: 4480 (0x1180)
    Types: TextFile
    Names: »LNKDF2.BAK«

Derivation

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

TextFile

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

   (* File LnkDF2X holds the access primitives used by the
      linker to access input and output files. *)

      (* On resetting (FILRST) the File sector number 0 (zero) is brought
      into F^ and sector number (S) is initialized to 0 (zero). The file
      pointer (P) is initialized to 0 too and it always points to the next
      byte to be read. If a read operation causes the file pointer to
      exceed maxsectorindex and no end of file condition exists a new
      sector will be fetched (renew) and P will be updated accordingly.
      If an end of file condition exists it will persist throughout
      (thus identifiable) and P will be set to 0 (zero). *)

(*$I B:LNKDF8.PAS  Object file access primitives *)
(*$I B:LNKDF7.PAS  Log file access primitives *)

     FUNCTION OPTLFK: LogFileKindType;

       BEGIN (*OPTLFK*)
        optlfk := OptionTable.LogFileKind;
       END;  (*OPTLFK*)

     PROCEDURE FNTP(VAR Status: StatusType
                    ;    FileName: FileNameType
                    );

        BEGIN (*FNTP*)
         IF CurFileNo < MaxNooInputFiles THEN
           BEGIN
            CurFileNo := CurFileNo + 1;
            FileNameTable(.CurFileNo.) := FileName;
           END
         ELSE
            Status := Status + (.FileNameTableOverFlow.);
         IF test((.0,6.)) THEN
           BEGIN
            write(TestOut, 'FNTP     '); TSTstat(Status); TSTindt;
            TSTfnt(CurFileNo); TSTln
           END
        END;  (*FNTP*)

   PROCEDURE EITP(VAR Status: StatusType
                 ;    SymbolTableEntryNo: SymbolTableIndexType
                 );

     BEGIN (*EITP*)
      IF CurExternalImportSymbolNo < MaxNooExternalImportSymbols - 1 THEN
        BEGIN
         CurExternalImportSymbolNo := CurExternalImportSymbolNo + 1;
         ExternalImportTable(.CurExternalImportSymbolNo
                            .).SymbolNo := SymbolTableEntryNo
        END
      ELSE
         Status := Status + (.ExternalImportTableOverFlow.);
      IF test((.0,7.)) THEN
        BEGIN
         write(TestOut, 'EITP     '); TSTstat(Status); TSTln;
         TSTeit(CurExternalImportSymbolNo)
        END
     END;  (*EITP*)

(* ModuleTable *)

   PROCEDURE MDTA(VAR Status: StatusType
                 ;VAR ModuleNo: ModuleTableIndexType
                 ;    ModuleCount: ModuleTableIndexType
                 );

     BEGIN (*MDTA*)
      ModuleNo := CurModuleNo;
      IF CurModuleNo > MaxNooModules - ModuleCount THEN
         Status := Status + (.ModuleTableOverFlow.)
      ELSE
        BEGIN
         ModuleNo := CurModuleNo + 1;
         CurModuleNo := CurModuleNo + ModuleCount;
        END;
      IF test((.0,6.)) THEN
        BEGIN
         write(TestOut, 'MDTA     '); TSTstat(Status); TSTindt;
         writeln(TestOut, 'ModuleNo, Count, CurModuleNo= ',
                           ModuleNo:1, ' ',
                           ModuleCount:1, ' ', CurModuleNo:1
               );
        END;
     END;  (*MDTA*)

 (* SectionTable *)

   PROCEDURE SCTA(VAR Status: StatusType
                 ;VAR SectionNo: SectionTableIndexType
                 ;    SectionCount: SectionTableIndexType
                 );

     BEGIN (*SCTA*)
      SectionNo := SCTOffset;
      IF SCTOffset > MaxNooSections - SectionCount THEN
         Status := Status + (.SectionTableOverFlow.)
      ELSE
        BEGIN
         SCTOffset := SCTOffset + SectionCount;
        END
      IF test((.0,6.)) THEN
        BEGIN
         write(TestOut, 'SCTA     '); TSTstat(Status); TSTindt;
         writeln(TestOut, 'SectionNo, Count, SCTOffset= ',
                           SectionNo:11, ' ', SectionCount:1, ' ',
                           SCTOffset:1
                );
        END;
     END;  (*SCTA*)

«eof»