|
|
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: »SCAN.SA«
└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »SCAN.SA«
└─⟦e12db5ad4⟧ Bits:30009789/_.ft.Ibm2.50007357.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »SCAN.SA«
æ*****************************************************************
Copyright 1984 by
NCR Corporation
Dayton, Ohio U.S.A.
All Rights Reserved
******************************************************************
EOS Software produced by:
NCR Systems Engineering - Copenhagen
Copenhagen
DENMARK
*****************************************************************å
OBJECT PROGRAM Scan;
æ$H=0 no heap spaceå
CONST
ProcId = 'Scan vers 1.00 83-12-06 ';
æ
E O S - S C A N
Changes:
vers. 1.00 83-12-06, EAR initial version
This EOS program scans an Object directory
Program Call:
scan Æ<SysName>Å
å
CONST
ResultId = 'SCAN: sNo OrgSy Au Ar OrgNo Fa Ma';
OrgSys = 7015;
æ$Eå
æ$L-å
æ$F=FAMILY.UNIV.IDå
æ$F=FAMILY.KNEL.IDå
æ$F=FAMILY.ALLOC.IDå
æ$F=FAMILY.SCHED.IDå
æ$F=FAMILY.OBJDIR.IDå
æ$F=FAMILY.IOSYS.IDå
æ$F=FAMILY.APPLI.IDå
æ$F=PASINCLU.CHKPROCS.SAå
æ$F=PASINCLU.TERMTOOL.SAå
æ$L+å
æ***** Local pointers *****å
TYPE
apLocals = RECORD
code : ^^;
pobjDir : ^^ObjDir;
stdIn : faoRefType;
stdOut : faoRefType;
stdError : faoRefType;
END; æapLocalså
æ$Eå
PROGRAM iScan OBJECT Application WITH apLocals;
ENTRY Run æfileEnv, jobSys ; progId Æ, options...Åå
WITH RECORD
t : ^^;
sys : iosysRefType;
scanObj : ref;
END;
æ$Eå
CONST
privFam = -1;
nameTooLong = 1;
VAR
i, used : integer;
line : array Æ1..90Å of char;
sysid, infLine : array Æ1..50Å of char;
param : fullId;
res : resultType;
PROCEDURE printLine (line : shortId;
txt : shortId);
BEGIN
clearText (line);
putText (line, txt);
putNl (line);
xCheck ( termIo (stdOut, WriteSeq, line));
END; æprintLineå
æ$Eå
BEGIN
æ*b* PS ('Start of SCAN '); *e*å
IN
res := OkResult;
xCheck ( Copy (fileEnv^^Æ1Å, stdIn));
xCheck ( Copy (fileEnv^^Æ2Å, stdOut));
xCheck ( Copy (fileEnv^^Æ3Å, stdError));
æ take possible sysName parameter å
sysId := '/objdir';
IF nextValArg (param) THEN
BEGIN
used := elements(param);
IF used > 50 THEN
exception (makeRes (nameTooLong, privFam, 0, 0));
IF used <> 0 THEN
BEGIN
FOR i := 1 TO used DO sysIdÆiÅ := paramÆiÅ;
FOR i := used+1 TO 50 DO sysIdÆiÅ := chr(0);
END;
æ*b* printVar ('sysId = ', sysIdÆ1..usedÅ); *e*å
END;
xCheck ( pObjDir.GetRef (OUT sys ; IN sysId, OUT used, OUT i));
æ*b* printVar ('getRef, used = ', used); *e*å
xCheck ( sys.InitItemScan ( OUT scanObj ));
clearText (line);
putText (line, procId);
putText (line, sysIdÆ1..usedÅ);
putNl (line);
xCheck ( termIo (stdOut, WriteSeq, line));
REPEAT
res := scanObj.GetInf ( ; OUT infLineÆ1..20Å, OUT i,
OUT infLineÆ21..50Å);
æ*b* printVar ('getInf, res = ', res); *e*å
IF res.main = ok THEN
printLine (line, infLine);
UNTIL res.main <> ok;
DO
BEGIN
res := GetException;
æ*b* ps ('scan error '); pr (res); *e*å
IF res.family = privFam THEN
BEGIN
clearText (line);
putText (line, '***');
CASE res.main OF
nameTooLong:
BEGIN
putText (line, param);
putText (line, ': sysId too long');
END;
otherwise
BEGIN
putText (line, 'unknown error');
putInt (line, res.main, 4);
END;
END; æcaseå
putNl (line);
res.main := ok;
END æfamily = privFam, own error codeså
ELSE
putError (line, res, '', 0);
res := call( termIo (stdError, writeSeq, line));
æ*b* printVar ('error msg line = ', line); *e*å
ObjReturn (res);
END;
END; æentry Runå
OTHERWISE unknown
with record t : ^^; end;
BEGIN
exception (makeRes (-EntryIllegal, Universal, 0, 0));
END;
END; æprogram Scanå
INITIALIZE
iScan 'scan' :
pObjDir 'objdir'
END. æ scan å
«eof»