Text preview for : Zap.mesa_Oct77.pdf part of xerox Zap.mesa Oct77 xerox mesa 3.0_1977 listing Zap.mesa_Oct77.pdf
Back to : Zap.mesa_Oct77.pdf | Home
Zap.mesa 25-0CT-77 15:25:35 Page 1
-- Zap.mesa
-- Edited by Sandman on September 12, 1977 9:06 AM
DIRECTORY
AltoDefs: FROM "altodefs",
BcdDefs: FROM "bcddefs",
ImageDefs: FROM "imagedefs",
InlineDefs: FROM "inlinedefs",
IODefs: FROM "iodefs",
SegmentDefs: FROM "segmentdefs",
StringDefs: FROM "stringdefs",
SymDefs: FROM "symdefs",
SystemDefs: FROM "systemdefs",
TimeDefs: FROM "timedefs";
DEFINITIONS FROM 10Defs, SegmentDefs;
Zap: PROGRAM
IMPORTS IODefs. SegmentDefs, StringDefs, SystemDefs, TimeDefs
BEGIN
name: STRING ~ [40];
filename: STRING ~ [40];
file: FileHandle:
c: STRING ~ [10];
BcdBase: TYPE = POINTER TO BcdDefs.BCD;
Confirm: PROCEDURE RETURNS [BOOLEAN]
BEGIN OPEN 10Defs;
WriteString[" [confirm]"]:
DO
SELECT ReadChar[] FROM
CR =) RETURN[TRUE]:
DEL =)
BEGIN
WriteString[" XXX"]:
RETURN[FALSE]:
END:
ENDCASE =) WriteChar['?]:
ENDLOOP:
END:
DisplayVersionStamp: PROCEDURE [stamp: BcdDefs.VersionStamp]
BEGIN OPEN IODefs:
date: STRING ~ [40]:
TimeDefs.AppendDayTime[date, TimeDefs.UnpackDT[stamp.time]]:
WriteString[date]:
WriteStringC", "]:
WriteOetal[stamp.net]:
WriteCharC '#]:
WriteOctal[stamp.host]:
Wr iteChar [' #]:
IF stamp.zapped THEN WriteString[" zappedll"]:
END;
FileZapper: PROCEDURE [bed: BcdBase]
BEGIN OPEN BedDefs,StringDefs:
fti: FTIndex;
ftb: CARDINAL = LOOPIIOLECbed+bed. f tQffset];
filename: STRING ~ C40];
55: SubStringDescriptor;
DO
WriteStringC"filename: "];
10Defs.ReadTD[filename];
Ir filename. length = 0 THEN RETURN:
ss +-[base: filename, offset: O. length: filename. length];
rOR fti +- rrRST[fTIndex], fli+SIZE[FTRecord]
UNTIl fti = bcd.ftLimit DO
OPfN f: ftb + fti:
If SameNallle[bcd,f.nallle,@ss] TIlEN
FlfGIN
WriteStringC" "];
OisplayVersionStaIllPCf.version]:
Zap.mesa 25-0CT-77 15:25:36 Page 2
IF Confirm[] THEN
BEGIN f.version.zapped ~ TRUE;
WriteString[" . . . is being zapped."]; END;
EXIT;
END;
REPEAT
FINISHED -> WriteString[" . . . can't find fi1e/"];
ENOLOOP;
Wr iteChar[CR];
ENOLOOP;
END;
FindBcd: PROCEDURE [file: Fi1eHand1e] RETURNS [seg:Fi1eSegmentHand1e]