SPL,L,O,M     
!     NAME:   AB..
!     SOURCE: 92067-18215 
!     RELOC:  92067-16185 
!     PGMR:   A.M.G, G.A.A
! 
!  ***************************************************************
!  * (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 AB..(8) "92067-16185 REV.2026 800305" 
! 
!   780221  TO CLOSE O.BUF BEFORE CALLING .PARS (O.BUF IS USED BY 
!           .PARS AS TEMPORARY STORAGE).                            
! 
!   780420  TO WORK WITH SIX WORDS PER ENTRY IN TRANSFER STACK        
! 
!   800305  TO SET BIT 14 ON OPEN. OPTION REQUEST TO INDICATE 
!           ABORT (SST #4770) 
! 
! 
       LET REA.C,       \READS A COMMAND
           .PARS,       \PARSE ROUTINE
           TR..,        \LE GRAND TR ROUTINE
           IER.,        \ERROR CHECK ROUTINE
           OPEN.,       \OPEN FOR LIST FILE OPEN
           CLOS.,       \CLOSE FOR LIST FILE CLOSE
           WRITF        \FILE WRITE ROUTINE 
             BE SUBROUTINE,EXTERNAL 
! 
       LET .DFER        \THREE WORD TRANSFER
             BE SUBROUTINE,DIRECT,EXTERNAL
! 
       LET L.SEG BE LABEL,EXTERNAL
! 
       LET ABX.. BE LABEL,GLOBAL
! 
       LET ACTV.,       \ACTIVE JOB SWITCH
           CUSE.,       \CURRENT SEGMENT LAST CHAR. 
           O.BUF,       \OUTPUT DCB 
           NOCM.,       \NUMBER OF PRAMETERS IN COMMAND 
           J.REC,       \JOBFIL RECORD OF SPOOLED JOB 
           CAD.,        \TABLE OFFSET FOR FUNCTION CALL 
           TMP.,        \LIST FILE LOCATION 
           P.TR,        \COMMAND UNIT STACK POINTER 
           J.NAM,       \CURRENT JOB NAME 
           C.BUF,       \COMMAND INPUT BUFFER 
           TTY.,        \INTERACTIVE DEVICE FLAG
           .E.R.,       \LOCATION OF SEVERITY CODE -1.
           ECH.,        \# OF CHARACTERS IN COMMAND 
           NO.RD        \NO-READ FLAG 
             BE INTEGER,EXTERNAL
! 
       LET ABJOB(3),JBNAM(7),ABRT(8),COM BE INTEGER 
! 
       INITIALIZE ABJOB,JBNAM TO "  JOB XXXXXX ABORTED" 
       INITIALIZE ABRT TO " ABEND OPERATOR "
! 
! 
AB..:  SUBROUTINE(N,PLIST,ERR) GLOBAL 
       LET N,PLIST,ERR BE INTEGER 
       IFNOT ACTV. THEN [ERR_10;RETURN]     !INPUT ERROR IF NOT IN JOB
       .DFER(JBNAM,J.NAM)                   !PUT JOB NAME IN MESSAGE
       COM _ @ABRT;  LN _ 8                 !SET UP STANDARD MESSAGE. 
       IF N= -1 THEN [                      \IF INTERNAL CALL, SET
          COM _ @ABJOB;  LN _ 10]           !UP JOB ABORT MESSAGE.
       IF N= -2 THEN COM_@PLIST             !IF MESSAGE PASSED SET UP 
       CALL OPEN.(O.BUF,TMP.,$(@TMP.+3),40000K)  !OPEN LIST FILE  
       CALL WRITF(O.BUF,.E.R.,$COM,LN)      !SEND THE OPERATOR ABORT
       CALL CLOS.(O.BUF)                    !CLOSE THE LIST FILE *780221
       IF ACTV. = 1 THEN GO TO EOJ          !IF EXPECTING JO CARD GO TO EO
       IF P.TR # ACTV. THEN [P.TR_ACTV.+6;  \SET P.TR FOR TR *780420
          N.OPL_0;                          \DON'T CONFUSE THE ISSUE
          CALL TR..(1,0.0,ER)]              !SET BACK TO THE JOB FILE 
       IF TTY. THEN [                       \IF TTY THEN
EOJ:   NOCM.,CAD._1;CUSE._"66";GO TO L.SEG] !GO LOAD EOJ
       IF J.REC > 0 THEN GO TO EOJ          !IF JOB IS NOT
       $(@.E.R.+1)_1                      !SET SV CODE TO KILL ECHO 
RDCOM: CALL REA.C                           !SPOOLED AND INPUT
       IFNOT ECH. THEN[                    \IF EOF THEN GO TO EOJ 
ABX..:    NOCM._ -2;GO TO EOJ]
       CALL .PARS                           !IS NOT FROM A
COMCK: IF [COM _ $1] = "EO" THEN GO TO ABRET!EOF,THEN READ
       IF COM = "JO" THEN GOTO ABRET        !COMMANDS UNTIL A 
       GOTO RDCOM                           !JOB CARD IS FOUND. 
! 
ABRET: NO.RD_ -1;RETURN 
       END
! 
!      INTERNAL ABORT ROUTINE 
! 
ABT..: SUBROUTINE  GLOBAL 
       IF ACTV. THEN CALL AB..(-1)          !IF A JOB ACTIVE GO DO ABORT
       RETURN 
       END
       END
       END$ 
                                                                                                  