ASMB,R,L
* 
*      NAME:     MT1OK  
*      SOURCE:   92067-18357  
*      RELOC:    92067-16104  
*      PGMR:     R.D.   
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
      NAM MT1OK,7 92067-16104 REV.1903 790203   
* 
      EXT EXEC
      ENT MT1OK 
* 
* 
* 
*  THE LU UP ROUTINE CHECKS TO SEE IF THE MAG TAPE TO BE
*  ACCESSED IS ON LINE, BUSY, OR NEEDS A WRITE RING.
* 
* 
*     CALLING SEQUENCE:       JSB MT1OK 
*                             DEF RETRN 
*                             DEF LUARY 
*                             DEF FLAG
* 
* 
*      WHERE LUARY IS AN ARRAY   LUARY(1)  = LU # 
*                                LUARY(2)  = 'RE'  (READ) OR
*                                            'WR'  (WRITE)
* 
* 
*        FLAG IS RETURNED AS FOLLOWS.  THE ITEMS ARE LISTED IN
*        THE ORDER THAT THEY ARE CHECKED. 
* 
* 
* 
*                                FLAG      = 0    ALLS WELL 
*                                          = 1    MT OFF LINE 
*                                                    (OR BUSY)
*                                          = 2    NO WRITE RING 
*                                                 (CHECKED ONLY IF
*                                                    A WRITE REQUEST) 
*                                          = 3    PARITY ERROR
*                                          = 4    END OF TAPE 
*                                          = 5    I/O REJECT
* 
* 
* 
* 
* 
MT1OK  NOP           ENTRY
      LDA MT1OK,I    GET RETURN 
      STA RETRN     & SAVE
* 
      ISZ MT1OK 
      DLD MT1OK,I    GET THE PARAMETER ADDRESSES
      DST PRAMS 
* 
* 
* 
*     WE ASSUME THAT MT IS OK IE
*     LU # OK , EQ & LU UP, LU NOT LOCKED.
*     HOWEVER THIS REQUEST IS NEVER LEFT I/O SUSPENDED
* 
      LDA PRAMS,I   YES, SO DO DYNAMIC STATUS REQUEST 
      ADA B600      CONFIGURE THE CONTROL WORD(LU# + 600B)
      STA CNWRD 
* 
      JSB EXEC      SEND REQUEST
      DEF *+3 
      DEF D3
      DEF CNWRD 
* 
      SLA,RAR       DEVICE BUSY OR OF LINE ?
      JMP EXIT1     YES, SO SEND ERROR
* 
      LDB PRAMS     NOW SEE IF THIS IS A WRITE REQUEST
      INB 
      LDB B,I       GET THE 'RE' OR 'WR'
      CPB WR        THIS A WRITE REQUEST ?
      RSS           YES 
      JMP OK2GO     NO, READ REQUEST. 
      RAR,SLA,RAL   YES, IS WRITE RING SET
      JMP EXIT2     WRITE RING MISSING
* 
* 
OK2GO SLA,ALF       PARITY ERROR ?
      JMP EXIT3     YES 
* 
      ALF,ALF 
      SLA,RAL       END OF TAPE ? 
      JMP EXIT4     YES 
* 
      RAL,SLA       I/O REJECT ?
      JMP EXIT5 
* 
* 
      CLA           ALLS WELL !!!!
      JMP BYE 
* 
* 
EXIT1 CLA,INA,RSS   SET FLAG = 1
EXIT2 LDA D2
BYE   STA PRAMS+1,I   GIVE FLAG TO USER 
      JMP RETRN,I   & RETURN
EXIT3 LDA D3
      JMP BYE 
EXIT4 LDA D4
      JMP BYE 
EXIT5 LDA D5
      JMP BYE 
A     EQU 0 
B     EQU 1 
D2    DEC 2 
D3    DEC 3 
D4    DEC 4 
D5    DEC 5 
B600  OCT 600 
WR    ASC 2,WR
RETRN NOP 
PRAMS NOP 
      NOP 
CNWRD NOP 
      END 
                                                                                                                              