Text preview for : ListBcd.mesa_Sep78.pdf part of xerox ListBcd.mesa_Sep78 xerox mesa 4.0_1978 listing Mesa_4_Lister ListBcd.mesa_Sep78.pdf



Back to : ListBcd.mesa_Sep78.pdf | Home

ListBed.mesa 2-Sep-78 18:18:51 Page 1


-- ListBed.Mesa Edited by Sandman on April 13, 1978 3:38 PM
DIRECTORY
AltoDefs: FROM "altodefs",
BedDefs: FROM "beddefs",
CommanderDefs: FROM "eommanderdefs",
ControlDefs: FROM "eontroldefs",
10Ders: FROM "iodefs",
ListerDefs: FROM "listerdefs",
OutputDefs: FROM "outputdefs",
SegmentDefs: FROM "segmentdefs",
StringDers: FROM "stringdefs",
SymDefs: FROM "symdefs":
DEFINITIONS FROM OutputDefs, BedDefs:
ListBed: PROGRAM
IMPORTS CommanderDefs, IODefs, ListerDefs, OutputDefs, SegmentDefs, StringDefs
EXPORTS ListerDefs =
BEGIN
bed: POINTER TO BCD:
tb: CARDINAL:
ssb: BedDefs.NameString:
etb: CARDINAL:
mtb: CARDINAL:
itb: CARDINAL:
etb: CARDINAL:
sgb: CARDINAL:
ftb: CARDINAL;
ntb: CARDINAL;
InstallBcd: PROCEDURE [seg: SegmentDefs.FileSegmentHandle] =
BEGIN OPEN SegmentDefs;
size: CARDINAL;
IF -seg.swappedin THEN SwapIn[seg];
bed ~ FileSegmentAddress[seg];
IF (size~bed.nPages) # seg.pages THEN
BEGIN
Unloek[seg];
MoveFileSegment[seg,seg.base,size];
SwapIn[seg):
bed ~ FileSegmentAddress[seg):
END;
tb ~ LOOPHOLE[bed);
ssb ~ LOOPHOLE[bed+bed.ssOffset]:
ctb ~ tb+bcd.etOffset:
mtb ~ tb+bed.mtOffset:
itb ~ tb+bed.impOffset:
etb ~ tb+bed.expOffset:
sgb ~ tb+bed.sgOffset:
ftb ~ tb+bcd.ftOffset:
ntb ~ tb+bed.ntOffset:
RETURN
END;
UnstallBcd: PROCEDURE [seg: SegmentDefs.FileSegmentHandle] =
BEGIN OPEN SegmentDefs;
IF seg.swappedin THEN Unloek[seg];
SwapOut[seg);
RETURN
END;
WriteBcdID: PROCEDURE [name: STRING, bcd: POINTER TO BCD] =
BEGIN
PuLString[name];
PutString[" configured "];
PutTime[bcd.version.time);
IF bcd.source # NullName THEN
BEGIN
PutString[" from "];
PutName[bed.souree];
END;
PutString[" by"];
ListerDefs.PrintMachine[bcd.version];
IF bcd.versionident # VersionID THEN
ListBcd.mesa 2-Sep-78 18:18:51 Page 2


BEGIN PutString[" Obsolete VersionID