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

⟦fbdaa6491⟧ TextFile

    Length: 4480 (0x1180)
    Types: TextFile
    Names: »SCAN.SA«

Derivation

└─⟦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« 

TextFile

 
æ*****************************************************************
                        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»