         DEF      FPARAM            DEBUG
         SYSTEM   BPM
         SYSTEM   SIG5
*
*
*        REVIEW---DOES LIKE A PCL REVIEW, BUT IT
*                 SPACES CARRIER SO YOU CAN SEE THE
*        FILENAME. ALSO READS 10 CHARACTERS
*        OF DATA TO AVOID READ-AHEAD. THUS
*                 IT WORKS WITH 2741'S AND WILL NOT CAUSE
*                 MULTIPLE DELETIONS IF A SELECTERM KEY
*                 BOUNCES.
*
*
         TITLE    '**** REVIEW ****'
         DEF      START
         REF      M:UC
START    EQU      %
OPEN     EQU      %
         MTW,+1   FILELIST          # FILES LISTED
         M:OPEN   M:SI,NXTF,INOUT,(ERR,ERROR),(ABN,ERROR),;
                  (FPARAM,FPARAM)
OPEN1    EQU      %
         LI,14    0                 CLEAR THE
         STW,14   SYNONSW            SYNON SWITCH
         STW,14   ERRSW             CLEAR ERRSW
OPEN2    EQU      %
*
*        ---      SCAN THE FPARAMS FOR FILE SIZE.
*
         LI,5     0                 INDEX
SCANFP   LW,14    FPARAM,5          GET ENTRY
         LB,0     14                IS ENTRY =
         CI,0     X'0D'              FILESIZE?
         BE       GOTSIZE           YES
         AND,14   L(X'FF')          DROP ALL BUT ENTRY LENGTH
         AW,5     14                BUMP FURTHER
         AI,5     1                 BUMP OVER COUNT WORD
         B        SCANFP            GOTTA HIT IT SOONER OR LATER
GOTSIZE  AI,5     1                 BUMP TO VALUE
         LW,14    FPARAM,5
         STW,14   FSIZE             SAVE SIZE
         AWM,14   GLIST             BUMP GRANS LISTED
         BAL,14   WRITEFNE          WRITE FILENAME
         M:READ   M:UC,(BUF,RESP),(SIZE,33),WAIT,(BTD,0)
         LW,2     M:UC+4            PREPARE TO
         SLS,2    -17                GET ARS
         AI,2     -1                  NOT INCLUDING ACTIVATION CHAR
         LI,5     X'0D'
         STB,5    RESP,2             N/L TO TERMINATE
         LB,1     RESP              GET REPLY
         CI,1     'D'
         BNE      C01               NOT 'D' - CLOSE IT
         CI,2     1                 BETTER BE 'D' & NOTHING ELSE
         BE       CLOSREL           YUP - DELETE IT!
C01      M:CLOSE  M:SI,SAVE
         CI,1     'Q'               QUIT?
         BE       EXIT              YES
         CI,1     'J'               IS IT 'JUMP?'
         BNE      OPEN              NO. GO NEXT FILE
         LI,5     1                 INDEX
         LI,6     2                 IN INDEX
GETNEW   LB,14    RESP,6            GET FNE BYTE
         CI,14    X'0D'
         BE       SETVLP
         STB,14   VLP+1,5           MOVE TO VLP
         AI,5     1                 NEXT
         AI,6     1                 NEXT IN
         B        GETNEW            GO TILL END
SETVLP   EQU      %
         AI,5     -1                BACK UP BY ONE
         MTB,-1   VLP+1,5           WE REALLY WANT THIS ONE, NOT NEXT
         STB,5    VLP+1             SET TEXTC COUNT
         AI,5     3                 ROUND UP
         SLS,5    -2                 TO WORD COUNT
         SLS,5    +8                SHIFT TO POSN
         OR,5     L(X'01010008')    CONSTRUCT VLP WORD
         STW,5    VLP               INTO OPEN FPT
         M:PT     0
,,VLP    M:OPEN   M:SI,INOUT,REL,(FPARAM,FPARAM),(ERR,ERROR),NXTF,;
                  (ABN,ERROR),(FILE,'AAAABBBBCCCCDDDDEEEEFFFFGGGGHHH')
         M:PT     1
         MTW,+1   FILELIST          # FILES LISTED
         B        OPEN1             OK...
CLOSREL  EQU      %
         MTW,+1   FILEDEL           # FILES DELETED
         LW,14    FSIZE             BUMP COUNT OF
         AWM,14   GDEL               GRANS DELETED
         M:CLOSE  M:SI,REL          RELEASE FILE
         M:WRITE  M:UC,(BUF,DEL),(SIZE,DS),WAIT
         M:WRITE  M:UC,(BUF,NL),(SIZE,1),WAIT
         B        OPEN
ERROR    LB,10    10                GET CODE
         CI,10    2                 END OF FILES?
         BNE      ERR2              NOPE
EXIT     EQU      %                 PRINT SUMMARY AND EXIT
         M:WRITE  M:UC,(BUF,NL),(SIZE,1),WAIT
         M:WRITE  M:UC,(BUF,HEADER),(SIZE,22)
         LW,9     FILELIST          # FILES LISTED
         BAL,14   CONVERT
         STW,10   COUNTMSG+2
         LW,9     FILEDEL           # FILES DELETED
         BAL,14   CONVERT
         STW,10   COUNTMSG+4
         M:WRITE  M:UC,(BUF,NL),(SIZE,1)
         M:WRITE  M:UC,(BUF,COUNTMSG),(SIZE,20)
         LW,10    L('GRAN')         CHANGE MESSAGE
         STW,10   COUNTMSG           TEXT
         LW,9     GLIST             GET GRANS LISTED
         BAL,14   CONVERT
         STW,10   COUNTMSG+2
         LW,9     GDEL              GET GRANS DELETED
         BAL,14   CONVERT
         STW,10   COUNTMSG+4
         M:WRITE  M:UC,(BUF,NL),(SIZE,1),WAIT
         M:WRITE  M:UC,(BUF,COUNTMSG),(SIZE,20)
         M:EXIT
ERR2     CI,10    8                 IS IT SYNON?
         BNE      ERR3              => NOPE!
         MTW,1    SYNONSW           YES-SET SWITCH
         M:OPEN   M:SI,INOUT,REL,(FPARAM,FPARAM),(ERR,ERR3),(ABN,ERR3)
         B        OPEN2
ERR3     EQU      %
         LI,14    0
         STW,14   SYNONSW           CLEAR SYNON SW ON ERROR
         MTW,1    ERRSW
         BAL,14   WRITEFNE          WRITE FNAME
         B        OPEN
*
WRITEFNE EQU      %                 SUBR TO WRITE FNE
         LB,1     M:SI+23           GET FILENAME SIZE
         M:WRITE  M:UC,(BUF,M:SI+23),(BTD,1),(SIZE,*1),WAIT
         MTW,0    SYNONSW           SYNON?
         BEZ      WRITE2            NOPE
         M:WRITE  M:UC,(BUF,SYNTXT),(SIZE,9),(BTD,0)
         LB,1     FPARAM+1          GET SYNON NAME SIZE
         M:WRITE  M:UC,(BUF,FPARAM+1),(SIZE,*1),(BTD,1)
         M:WRITE  M:UC,(BUF,SYN2),(SIZE,SYNS2),(BTD,0)
         B        *14
WRITE2   MTW,0    ERRSW             ERR ON OPEN?
         BEZ      WRITE3            NOPE
         M:WRITE  M:UC,(BUF,EM),(SIZE,EMS),(BTD,0)
         M:WRITE  M:UC,(BUF,NL),(SIZE,1),(BTD,0),WAIT
         B        *14
WRITE3   M:WRITE  M:UC,(BUF,SPACES),(SIZE,SPS),(BTD,0)
         B        *14
*
*
*
CONVERT  EQU      %                 R14=LINK,R9=DATA,R10=OUTPUT
         LI,10    0
         LI,8     0                 FOR DW
         DW,8     L(100)
         AI,9     '0'
         OR,10    9
         SLS,10   8
         LW,9     8
         LI,8     0
         DW,8     L(10)
         AI,9     '0'
         OR,10    9
         SLS,10   8
         AI,8     '0'
         OR,10    8
         OR,10    L('0   ')         HI ZERO
         B        *14               DONE
*
*
*
DEL      DATA X'0707405C'
         TEXT     ' DELETED'
         DATA     X'405C0707'
DS       EQU      16
EM       TEXT     '   * CANNOT OPEN *'
EMS      EQU      18
HEADER   TEXT     '        LISTED DELETED'
COUNTMSG TEXT     'FILES:  XXXX    XXXX'
NL       DATA     X'15000000'
RESP     RES      10
SYNONSW  DATA     0                 1=SYNON
ERRSW    DATA     0                 1=ERR ON OPEN (NOT OPENED)
GLIST    DATA     0                 GRANS LISTED
GDEL     DATA     0                 GRANS DELETED
FILELIST DATA     0                 # FILES LISTED
FILEDEL  DATA     0                 # FILES DELETED
FSIZE    DATA     0                 FILE SIZE GRANS
SPACES   EQU      %
J        DO       5
         TEXT     '    '
         FIN
SPS      EQU      J*4+1
         DATA     0
SYNTXT   EQU      %
         TEXT     '  (SYNON='
SYN2     TEXT     ')                  '
         DATA     0
SYNS2    EQU      BA(%)-BA(SYN2)
FPARAM   RES      90
         PAGE
M:SI     DSECT    1
M:SI     M:DCB    FILE,SYNON,PASS
         USECT    START
         END      START
