HP3000-L Archives

March 2000, Week 4

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
"Johnson, Tracy" <[log in to unmask]>
Reply To:
Johnson, Tracy
Date:
Fri, 24 Mar 2000 16:47:18 +0000
Content-Type:
text/plain
Parts/Attachments:
text/plain (158 lines)
This reminds me that I had modified MPEX's LISTF,ACCESS so that it displays
on one line due to the high availability of 132 column screens.  (It easier
to use the FILTER command that way, no more CONTEXT parameters.)

I called it ACCESSL (L for LONG) code below:

VAR NUMOPENERS: SHORTINT;
VAR OPENERPINS: ARRAY [1024] OF SHORTINT;
VAR OPENERFNUMS: ARRAY [1024] OF SHORTINT;
VAR I: INTEGER;
VAR RFILEUSER: TFILEUSER;
VAR ROPENFILE: TOPENFILE;
VAR LOCKSTATE: INTEGER;
VAR F: STRING[8];
VAR JOBTYPE: STRING[1];
VAR JOBNUM: INTEGER;
VAR MAXOPENPIN: INTEGER;

SUBROUTINE CLEARF;
VAR FF: STRING[8];
BEGIN
FF:=F;
F:='';
SCOPY(FF)
END;

SUBROUTINE GETFMTACCESSMODE; RFILEUSER.FMTACCESSMODE;

SUBROUTINE GETCURRENTRECORD; RFILEUSER.CURRENTRECORD(RFILE);

SUBROUTINE GETFMTJOBNUM;
BEGIN
IF JOBNUM=0 THEN 7*' '
            ELSE STRWRITE('#',JOBTYPE:1,JOBNUM:5:'LEFT')
END;

SUBROUTINE GETFMTLOGON;
BEGIN
TRY
  STRWRITE(VEJOBINFO(JOBTYPE,JOBNUM).FMTLOGON:'DOWNSHIFT') +
   (IF JOBTYPE='S' THEN ' (ldev '+VEJOBINFO(JOBTYPE,JOBNUM).LDEVIN+')'
                   ELSE '')
RECOVER
  SEG (STRWRITE('(original opener inaccesssible)'))
END;

SUBROUTINE DOLOADED;
VAR WROTELOADED: BOOLEAN;
VAR LOADINFO: TLOADINFO;
BEGIN
IFVERSION5 THEN
  IF LOADED THEN
    SEG (BEGIN
    WROTELOADED:=TRUE;
    LOADINFO.TYPE:=255;
    WHILE ISBOOLEAN (CALL LSTD'NEXT (@LOADINFO)) DO
      IF (LOADINFO.UFID)[0]=(ISDOUBLEPTR(UFID))[0] THEN
        IF LOADINFO.ISPROGRAM AND LOADINFO.PROGALLOCATED THEN
          WRITELN (CLEARF:10,
                 IF LOADINFO.PROGAUTOALLOCATED THEN "AUTOALLOCATED"
                                               ELSE "ALLOCATED")
        ELSE IF LOADINFO.ISPROCESS THEN
          BEGIN
          JOBTYPE:=PINJOBTYPE(LOADINFO.PROCESSPIN);
          JOBNUM:=PINJOBNUMBER(LOADINFO.PROCESSPIN);
          WRITELN (CLEARF:10, "LOADED":10, GETFMTJOBNUM,
                   LOADINFO.PROCESSPIN:4:'LEFT',
                   IF JOBNUM=0 OR JOBTYPE='' THEN ''
                                             ELSE GETFMTLOGON);
          END
        ELSE IF LOADINFO.ISSL THEN
          WRITELN (CLEARF:10, "SL LOADED");
    IF F<>'' THEN
      WRITELN (CLEARF:10, "LOADED":10,"SYSTEM");
    END);
END;

MPEXHEADER1:="FILENAME ---TYPE--- JOBNUM PIN ---------PROGRAM----"+
             "----- ACCESS  RECORD -LOCK-"+
             "----- SESSION NAME -----";
MPEXHEADER2:="";
MPEXHEADER3:="";
MAXOPENPIN:=1024;

FOR RFILE IN MPEXFILESETGENERAL (1, TRUE)
  SELECT SEG (OPENED OR STORED OR RESTORED OR LOADED OR READING
                     OR STORESTAT<>0)
  DO
    BEGIN
    F:=SCOPYFILE;
    IFVERSION5 THEN
      DOLOADED;
    IF RESTORED OR RESTORING THEN
      WRITELN (CLEARF:10, "BEING RESTORED")
    ELSE IF STORED OR STORING THEN
      WRITELN (CLEARF:10, "BEING STORED")
    ELSE IF CBU THEN
      WRITELN (CLEARF:10, "OPEN BY CONCURRENT-BACKUP");

    NUMOPENERS:=0;
    IF OPENED THEN
      BEGIN
      IFVERSION5 THEN
        ROPENFILEREAD (RFILE, UFID, ROPENFILE);
      TRY
        CALL FOPENERS (@RFILE, (@RFILEUSER.GUFDPTR-@RFILEUSER)/2,
                       CALLDPARM(0), CALLDPARM(0),
                       @NUMOPENERS, @OPENERPINS, @OPENERFNUMS);
      RECOVER;
      IF NUMOPENERS=0 THEN
        SEG (WRITELN (CLEARF:10, "OPENED":10,
                      "(accessor information unavailable)"));
      (* Kludge:  Would be better as a FOR loop, but then WRITELNs
         within it wouldn't do the outer FOR loop's PAGEHEADs.
         Too bad.  EV 92/12/26. *)
      I:=0;
      WHILE I<MIN(NUMOPENERS,MAXOPENPIN) DO
        BEGIN
        RFILEUSERREAD (OPENERPINS[I], OPENERFNUMS[I], RFILEUSER);
        IF OPENERPINS[I]=0 THEN
          SEG (WRITELN (CLEARF:10,
                        "OPENED":10, "":7, "":4, "GLOBALLY":26,
                        GETFMTACCESSMODE:8, GETCURRENTRECORD:6))
        ELSE
          BEGIN
          IFVERSIONXL THEN
            LOCKSTATE:=-1
          ELSE
            LOCKSTATE:=SIGNEXTEND (CALL RIN'PIN'STATUS (ROPENFILE.RIN,
                                                      OPENERPINS[I]));
          JOBTYPE:=PINJOBTYPE(OPENERPINS[I]);
          JOBNUM:=PINJOBNUMBER(OPENERPINS[I]);
          WRITELN (CLEARF:10, "OPENED":10, GETFMTJOBNUM,
                   OPENERPINS[I]:4:"LEFT",
                   " ",
                   PINPROGNAME(OPENERPINS[I]):26,
                   GETFMTACCESSMODE:8,
                   GETCURRENTRECORD:6, " ",
                   IF LOCKSTATE=-1 THEN "       "
                   ELSE IF LOCKSTATE=0 THEN "LOCKER "
                   ELSE STRWRITE ("WAIT:", LOCKSTATE),
                   GETFMTLOGON);
          END;
        I:=I+1;
        END;
      END
    ELSE IF READING AND VALIDCOLDLOADID THEN
      WRITELN (CLEARF:10, "SYSTEM PROTECTED");
    IF NUMOPENERS > MAXOPENPIN THEN
      SEG( WRITELN ( CLEARF:10,
                     "(Output truncated: Can't recover more than ",
                     MAXOPENPIN," accessors)"));
    END;

Tracy M. Johnson
TRW Automotive Electronics
Sensors & Components

ATOM RSS1 RSS2