|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4480 (0x1180)
Types: TextFile
Names: »LNKDF2.BAK«
└─⟦d36b687c5⟧ Bits:30009789/_.ft.Ibm2.50007363.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »LNKDF2.BAK«
(******************************************************************************)
(* *)
(* 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»