         SYSTEM   BPM
         SYSTEM   SIG5
         REF      F:1,F:6,BUF,MAXBUF
         DEF      BACK,GETREC
         CSECT    1
GETREC   AW,14    15
         LW,13    *15
         BGZ      %+2
         LW,13    *13               ERR ADDR IN R13
         AI,15    1
         LW,12    *15
         BGZ      %+2
         LW,12    *12
         LI,1     0                 12 CONTAINS ARS
         STW,1    *12
         STW,1    *13               INIT PARAMS TO 0
READ,FWD M:READ   F:1,(BUF,BUF),(SIZE,*MAXBUF),(WAIT),;
                  (ABN,ABN),(ERR,ABN)
READOK   LW,1     F:1+4
         SLS,1    -17
         STW,1    *12
         B        *14               NORMAL EXIT
*
ABN      LI,1     0
         AI,1     1
         CW,10    ERTAB,1
         BE       ERROK
         CW,1     #ERTAB
         BL       ABN+1
AB1,PRNT M:PRINT  (MESS,UNKERR)     'UNKNOWN ERROR'
         LI,2     100
         STW,2    *13
         DEF      V:ABRT
V:ABRT   B        %+2
STP,MRC  M:MERC
*
         B        *14
BACK     AW,14    15
         LW,13    *15
         BGZ      %+2
         LW,13    *13               ERR ADDR IN R13
         AI,15    1
         LW,12    *15
         BGZ      %+2
         LW,12    *12
         LI,1     0                 12 CONTAINS ARS
         STW,1    *12
         STW,1    *13               INIT PARAMS TO 0
BAK,REV  M:READ   F:1,(BUF,BUF),(SIZE,*MAXBUF),(WAIT),(REV),;
                  (ABN,ABN),(ERR,ABN)
         LW,1     F:1+4
         SLS,1    -17
         STW,1    *12
         NOP
         LW,2     MAXBUF
         AI,2     -1
         NOP
* R1 -> LNW BUF
* R2 -> HIGH BUF
         AI,1     -1
         NOP
         LB,3     BUF,2
         STB,3    BUF,1
         AI,2     -1
         BDR,1    %-3
         LB,3     BUF,2
         STB,3    BUF
         B        *14
*
ERROK    LW,2     ERNUM,1
         STW,2    *13
         B        READOK
UNKERR   TEXTC    '---> UNKNOWN ERROR IN GETREC'
ERTAB    DATA     0
         GEN,8,24 4,F:1
         GEN,8,24 5,F:1
         GEN,8,24 6,F:1
         GEN,8,24 7,F:1
         GEN,8,24 X'1C',F:1
         GEN,8,24 X'1D',F:1
         GEN,8,24 X'41',F:1
         DO       5
         DATA     0
         FIN
#ERTAB   DATA     %-ERTAB-1
ERNUM    DATA     0                 PARALLEL ERTAB, GIVES ERRNUM
*
* ERNUM PARALLELS ERTAB..
*   ERR CODES..
*        ABN      ERR
*        ---      ---
*        4        3
*        5        1
*        6        1
*        7        4
*        .1C      2
*        .1D      3
*        .41      5
*
*   ERR CODE MEANINGS.
*        0 - NORMAL
*        1 - EOF/EOD (TAPE MARK)
*        2 - EOT
*        3 - BOT/BOF
*        4 - DATA LOST (MAXBUF)
*        5 - TAPE ERROR
         DATA     3  (.04)
         DATA     1  (.05)
         DATA     1  (.06)
         DATA     4  (.07)
         DATA     2  (.1C)
         DATA     3  (.1D)
         DATA     5  (.41)
*
         RES      5
         END
