SPL,L,O,M 
!     NAME:   RU.XQ 
!     SOURCE: 92071-18031 
!     RELOC:  92071-16031 
!     PGMR:   M.L.K.
!     MOD:    E.D.B.
! 
!  ***************************************************************
!  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980.  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.       *
!  ***************************************************************
! 
      NAME RU.XQ(7) "92071-1X031 REV.2041 800530" 
! 
!     RUN/EXECUTE PROGRAM 
! 
!     ENTERED BY
! 
!     RU,NAMR,PARMS COMMAND 
! 
!      OR 
! 
!     XQ,NAMR,PARMS COMMAND 
! 
!  EXTERNAL SUBROUTINES 
      LET .DFER     BE SUBROUTINE,EXTERNAL,DIRECT 
      LET EXEC      BE SUBROUTINE,EXTERNAL
      LET FM.ER     BE SUBROUTINE,EXTERNAL
      LET XQPRG     BE SUBROUTINE,EXTERNAL
!  EXTERNAL FUNCTIONS 
      LET LOGLU     BE FUNCTION,EXTERNAL
!  EXTERNAL INTEGERS
      LET C.BUF     BE INTEGER,EXTERNAL 
      LET ECH       BE INTEGER,EXTERNAL 
      LET G0..(48)  BE INTEGER,EXTERNAL 
      LET I.BUF     BE INTEGER,EXTERNAL 
      LET N.OPL     BE INTEGER,EXTERNAL 
      LET NO.RD     BE INTEGER,EXTERNAL 
!  INTERNAL SUBROUTINES 
      LET RU..      BE SUBROUTINE 
      LET XQ..      BE SUBROUTINE 
!  INTERNAL VARIBLES
      LET TMP(5)    BE INTEGER
      LET ABEND(4)  BE INTEGER
      LET ABX(7)    BE INTEGER
      LET PBUSY(6)  BE INTEGER
! 
      INITIALIZE ABEND,ABX TO " ABEND  XXXXX ABORTED "
      INITIALIZE PBUSY TO "PROGRAM BUSY"
! 
! 
XQ..: SUBROUTINE(XQNO,XQLIS,XQER) GLOBAL
      XQER_ -1                                   !SET XQ FLAG 
      RU..(XQNO,XQLIS,XQER)                      !CALL RU SUBROUTINE
      RETURN
      END 
! 
! 
RU..: SUBROUTINE(NO,LIS,ER) GLOBAL
      LET LIS(64)  BE INTEGER                    !PARSED PARAMETERS 
! 
      IF ER = -1  THEN [CODE_ 10; ER_0],         \USE CORRECT CODE
                   ELSE CODE _ 23 
      IF LIS(1) # 3  THEN [ ER_ 56; RETURN]      !CHECK FOR ASCII NAME
! 
      TMP(1) _ LIS(6) 
      TMP(2) _ LIS(10)
      TMP(3) _ LIS(14)
      TMP(4) _ LIS(18)
      TMP(5) _ LIS(22)
! 
      IFNOT LIS(5)  THEN[                        \IF 1ST LIS DEFAULT
         TMP(1) _ [IF G0..(1)=1 THEN G0..(2),    \USE 0G IF NOERIC
                   ELSE LOGLU(D)]]               !ELSE USE CRT LU 
! 
!     RUN THE PROGRAM 
! 
      T _ $(@N.OPL+1) 
      XQPRG(I.BUF,CODE,LIS(2),TMP,C.BUF,ECH,TMP,ERCOD,N.OPL,T)
! 
      IF ERCOD # 0 THEN [                        \
          ER_ TMP(1);                            \
          IF ERCOD = 7 THEN [                    \IF PROG BUSY
              FM.ER(2,PBUSY,6)];                 \PRINT MESSAGE 
          IF ERCOD = 8 THEN [                    \IF PROG ABORTED 
              .DFER(ABX,LIS(2));                 \SET THE NAME IN MESSAGE 
              FM.ER(2,ABEND,11);                 \PRINT MESSAGE 
              GOTO OK];                          \AND CONTINUE
          RETURN]                                !OTHERWISE RETURN
! 
OK:   ER_ 0 
      FOR ECH_1 TO 5 DO G0..(41+ECH) _ TMP(ECH)  !RETRIEVE RETURN PARMS 
      EXEC(14,1,C.BUF,40); ECH_ .B.              !GET RETURN STRING 
      IFNOT ECH  THEN RETURN                     !IF NO STRING, RETURN
! 
      IF (C.BUF AND 177400K) = 35000K  THEN[     \IF BEGINS WITH ":"
         NO.RD_ -1;                              \DON'T READ ANOTHER COMMAND
         C.BUF_ C.BUF - 15000K]                  !REPLACE ":" WITH <BLANK>
      RETURN                                     !ALL DONE
      END 
      END 
! 
      END$
                                                                                                