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

⟦b21fd5307⟧ TextFile

    Length: 5248 (0x1480)
    Types: TextFile
    Names: »LNK.BAK«

Derivation

└─⟦94d85ef43⟧ Bits:30009789/_.ft.Ibm2.50006584.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »LNK.BAK« 

TextFile

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

PROGRAM Link;

(*$I B:lnkDC0.pas   Declarations of global constants, types, and commons      *)

   VAR   (*LINK*)

      (* Misc. Variables *)

      Status: StatusType;
      TargetFile: FileType;
      LogFile: LogFileType;
      SCTSubInx: SectionTableSubIndexType;

(*#B#(*$I A:PrTstExt.pas External Decl. of standard test procedures           *)
(*#B#(*$I B:LnkDF1.pas   Global test output primitives                        *)
(*$I B:LnkDF2.pas   Global access primitives                                  *)
(*$I B:LnkDF7.pas   Log File access primitives                                *)
(*$I B:LnkDF8.pas   Object File access primitives                             *)
(*$I B:lnkp0.pas    Procedure setup                                           *)
(*$I B:lnkp1.pas    Procedure pass1                                           *)
(*$I B:lnkp2.pas    Procedure pass2                                           *)


  BEGIN  (*LINK*)
(*#B#
   TestInit(Input,Output);
#E#*)
   Status := (..);
   Optiontable.LogFileKind := None;
   OptionTable.TargetFileKind := Implicit;
   CurFileNo := 0;
   CurModuleNo := 0;
   FOR SCTSubInx := 1 TO MaxNooSections DO
      SectionTable(.SCTSubInx.).SegmentNo := 0;
   SCTOffset := 0;
   CurSegmentCount := 0;
   CurExternalImportSymbolNo := 0;

   SetUp(Status, TargetFile, LogFile, Output);
(*#B#
   IF test((.0,16,17.)) THEN
     BEGIN
      write(TestOut, 'Link-MAIN-1   '); TSTstat(Status); TSTindt; TSTmem; TSTln
     END;
#E#*)
   IF Status = (..) THEN
      Pass1(Status, TargetFile, LogFile);
(*#B#
   IF test((.0,16,17.)) THEN
     BEGIN
      write(TestOut, 'Link-MAIN-2   '); TSTstat(Status); TSTln
     END;
#E#*)
   IF Status = (..) THEN
      Pass2(Status, TargetFile, LogFile);
(*#B#
   IF test((.0,16,17.)) THEN
     BEGIN
      write(TestOut, 'Link-MAIN-3   '); TSTstat(Status); TSTln
     END;
#E#*)
   IF Status = (..) THEN
     BEGIN
      writeln(output, 'LINK -- Normal termination')
     END
   ELSE
     BEGIN
      writeln(output, 'LINK -- Abnormal termination.');

      IF BadOption IN Status THEN
         writeln(output, 'Bad option');
      IF BadLogFileName IN Status THEN
         writeln(output, 'Bad log file name');
      IF BadTargetFileName IN Status THEN
         writeln(output, 'Bad target file name');
      IF BadFileName IN Status THEN
         writeln(output, 'Bad file name');
      IF NoSuchFile IN Status THEN
         writeln(output, 'No such file');
      IF NoInputFiles IN Status THEN
         writeln(output, 'No input files');
      IF ExtraText IN Status THEN
         writeln(output, 'Extra text');
      IF BadFileFormat IN Status THEN
         writeln(output, 'Bad file format');
      IF BadModuleFormat IN Status THEN
         writeln(output, 'Bad module format');
      IF UnexpectedEof IN Status THEN
         writeln(output, 'Unexpected EOF');
      IF RangeError IN Status THEN
         writeln(output, 'Range error');
      IF BadSymbolName IN Status THEN
         writeln(output, 'Bad symbol name');
      IF DuplicateModuleName IN Status THEN
         writeln(output, 'Duplicate module name');
      IF DuplicateExportSymbol IN Status THEN
         writeln(output, 'Duplicate export symbol');
      IF NoInput IN Status THEN
         writeln(output, 'No input');
      IF Baddibit IN Status THEN
         writeln(output, 'Bad dibit');
      IF BadRelocationCode IN Status THEN
         writeln(output, 'Bad relocation code');
      IF BadImportCode IN Status THEN
         writeln(output, 'Bad import code');
      IF NameTableOverFlow IN Status THEN
         writeln(output, 'Name table overflow');
      IF ModuleTableOverFlow IN Status THEN
         writeln(output, 'Module table overflow');
      IF SectionTableOverFlow IN Status THEN
         writeln(output, 'Section table overflow');
      IF FileNameTableOverFlow IN Status THEN
         writeln(output, 'File name table overflow');
      IF SymbolTableOverFlow IN Status THEN
         writeln(output, 'Symbol table overflow');
      IF ExternalImportTableOverFlow IN Status THEN
         writeln(output, 'External import table overflow');

      IF not (NoTarget IN Status) THEN
         erase(TargetFile.F);
     END
  END.   (*LINK*)

(*                                                                            *)
(*                                                                            *)
(******************************************************************************)

«eof»