*COMDECK  EXITBR
 BRWERR4  TITLE  BRWERR4 - INTERACTIVE AND MENU HEADER ERRORS 
**        BRWERR4  -  INTERACTIVE AND MENU HEADER ERRORS
* 
*         1ST SAVE X3.  THEN THE LINE WHICH IS IN ERROR MUST BE 
*         SENT TO THE DAYFILE.  THE CHARACTER OR STARTING 
*         POSITION OF THE STRING WHICH CAUSED THE ERROR IS
*         MARKED BY AN EXCLAMATION POINT ON THE NEXT DAYFILE
*         LINE.  AND FINALLY, THE CCL ERROR MESSAGE IS SENT 
*         TO THE DAYFILE.  THERE ARE 2 ENTRY POINTS, BRWERR4
*         AND BRWERR5.  BRWERR4 POSITIONS THE CURRENT CHARACTER 
*         BEFORE THE SEPARATOR.  BRWERR5 LEAVES THE POSITION AT 
*         THE SEPARATOR.
* 
* 
*         ENTRY  - X3 HAS ADDRESS OF ERROR MESSAGE
* 
*         EXIT   - NONE 
* 
* 
 BRWERR4  BSS    0
          SA1    PBCOND            CHECK FOR .IF ERROR
          SA4    SCATBF1
          NZ     X1,BRW025         USE EXPANDED IMAGE 
  
          SA4    SCATBF2
  
 BRW025   BSS    0
          EX5    X4,SBCUR 
          SX0    X5-1 
          OX7    X4,X0,SBCUR
          SA7    A4 
  
 BRWERR5  BSS    0
          BX7    X3                SAVE ERR MSG ADDRESS 
          SA7    BGERR
          SX6    MOSJDT            MSG TO JOB DAYFILE AND TERMINAL
          SA2    SCATX
          SA1    MSG310            MESSAGE PREFIX 
          SB2    7
          MX2    0
          SA6    MSGOPT            STORE MESSAGE OPTION 
          RJ     =XSTRUPS          PREFIX TO SCATX
  
          SA1    PBCOND            CHECK FOR DIRECTIVE ERROR
          SA2    SCATBF1
          NZ     X1,BRW030         USE EXPANDED LINE
  
          SA2    SCATBF2
  
 BRW030   BSS    0
          EX4    X2,SBTOT 
          SB4    B0 
          EX0    X2,SBCUR 
          SX7    X0-70
          NG     X7,BRW050         ERROR WILL FIT ON SCREEN 
  
          SA2    A2+40
          SX4    X4-40
  
 BRW050   BSS    0
          SA1    PROCWSA           PACK LINE IN ERROR TO PROCWSA
          SX1    B0 
          BX0    X4 
          OX2    X1,X0,SBTOT
          RJ     =XSTRPKS          PACK THE LINE OR PORTION OF LINE 
          SA1    PROCWSA
          SA2    SCATX
          SB2    X4 
  
*         ADD LINE IN ERROR TO MESSAGE PREFIX 
  
          RJ     =XSTRUPS 
  
          RJ     STRMGU            ISSUE ABORT MESSAGE FROM SCATX 
  
*         DETERMINE THE NUMBER OF DISPLAYABLE CHARACTERS IN STRING. 
  
          SA2    SCATX
          MX2    0
          SA1    MSG310            MESSAGE PREFIX 
          SB2    7
          RJ     =XSTRUPS          PREFIX TO SCATX
  
          SA1    PBCOND            CHECK FOR .IF ERROR
          SA4    SCATBF1
          NZ     X1,BRW060         USE EXPANDED IMAGE 
  
          SA4    SCATBF2
  
 BRW060   BSS    0
          EX3    X4,SBCUR 
          SX0    X3-70
          NG     X0,BRW075         POINTER WILL FIT ON SCREEN 
  
          SX3    X3-40
  
 BRW075   BSS    0
          SB7    X3                CURRENT POSITION 
          SX7    1R 
  
 BRW100   BSS    0                 PAD POINTER LINE WITH BLANKS 
          SA7    SCATX+B3 
          SB3    B3+B1
          SB7    B7-B1
          GT     B7,B0,BRW100      NEXT BLANK 
  
          SX7    1R!               EXCLAMATION POINT
          SA7    SCATX+B3          INDICATE POSITION OF ERROR 
          SX6    B3 
          LX6    S.SBTOT-N.SBTOT+1
          SA6    A2                UPDATE SCATX HEADER
          RJ     STRMGU            ISSUE ABORT MESSAGE FROM SCATX 
  
          SA3    BGERR             GET ADDRESS OF ERROR MESSAGE 
          JP     BRWERR            DAYFILE MESSAGE
  
  
 EXITBR   TITLE  EXITBR - BEGIN/REVERT/WHILE/ENDW  EXIT 
**        EXITBR  -  BEGIN/REVERT/WHILE/ENDW EXIT 
* 
*         EXIT - ENDRUN 
* 
*         EXIT1 - ISSUE MESSAGE AND ABORT 
* 
*         EXIT2 - ABORT JOB 
* 
  
 EXIT     BSS 
          RJ     PFILCK      TEST IF PROCEDURE AUTO ATTACH
  
 OSSC2    IFNE   HOST,SC2 
  
*         CHECK WHETHER A .EX DIRECTIVE IS PENDING FROM EXPANSION 
*         OF THE PROCEDURE BODY.  IF IT IS ISSUE THE COMMAND VIA
*         EXCST, OTHERWISE ENDRUN 
  
          SA1    IACEX
          ZR     X1,EXIT01   IF NO .EX PENDING
  
          SA1    SNVPNL      CHECK PROCEDURE NESTING LEVEL
          SX1    X1-2 
          PL     X1,EXIT0    IF NOT AT JOB COMMAND FILE LEVEL 
  
          SA5    FILEPS      SET TO RETURN UNUSED COMMAND FILE
          RJ     IORTN
  
 EXIT0    BSS 
          EXCST  EXBUF       EXECUTE COMMAND FROM .EX DIRECTIVE 
  
 EXIT01   BSS 
 OSSC2    ENDIF 
          ENDRUN
  
 BRWERR   BSS 
 EXIT1    BSS 
          RJ     STRMGA      ASSEMBLE AND ISSUE ABORT MESSAGE 
  
 BRWERR1  BSS 
 EXIT2    BSS 
          RJ     PFILCK      TEST IF PROCEDURE AUTO ATTACH
  
          ABORT  ,ND         ABORT JOB - SUPPRESS XP DUMP 
  
 OSNOSBE  IFNE   HOST,SC2 
  
 EXIT4    BSS    0           REISSUE STATEMENT FROM REVERT,EXEC.
  
  
          RJ     PFILCK      RETURN FILES 
  
          RJ     REVEX       BUILD COMMAND TO BE EXECUTED ON REVERT,EX
  
          EXCST  PROCWSA     ISSUE COMMAND
 OSNOSBE  ENDIF 
  
*         REVEX - BUILD COMMAND TO BE EXECUTED ON REVERT,EX.
  
 REVEX    SUBR               ENTRY/EXIT 
          ERRNZ  S.SBCUR-N.SBCUR+1
          SA1    PROCWSA     PACK NEW STATEMENT 
          SA2    SCATBF1     CREATE NEW BUFFER HEADER 
          SB3    X2          CURRENT CHARACTER
          EX3    X2,SBTOT 
          SB7    X3          TOTAL CHARACTERS IN BUFFER 
          SB2    B7-B3       LENGTH OF NEW STATEMENT
          SX7    B2 
          LX7    S.SBTOT-N.SBTOT+1
          SA7    A2+B3       NEW HEADER NEW LOCATION
          SA2    A7 
          RJ     =XSTRPKS 
  
          JP     REVEXX 
  
  
 PFILCK   BSSZ   1
  
 OSNOS    IFEQ   HOST,NOS 
  
*         RETURN SYSTEM FILE
  
          SA3    PREFIX      INDICATES $ ON CALL
          SA4    BGLIBSR     NAME CALL
          SA2    FILEPC+8    SYSTEM FILE RENAMED
          ZR     X3,PFILCKA  RETURN FILE AT PROCNAM 
          ZR     X4,PFILCKA  RETURN FILE AT PROCNAM 
          ZR     X2,PFILCKA  RETURN FILE AT PROCNAM 
  
          SA5    =0L"M.FNASN" 
          RJ     IORTN       RETURN FILE USED FOR ASSIGN FUNCTION 
          JP     PFILCK1     RETURN HELP FILE 
  
*         RETURN LIBRARY IF CALL-BY-NAME
  
 PFILCKA  BSS    0
          SA3    FILENAM
          SA4    LIBFIL 
          IX4    X3-X4       MATCH IF CALL-BY-NAME
          NZ     X4,PFILCKB  NOT CALL-BY-NAME 
  
          SA1    PROCDAT     CHECK IF PNAME .EQ. .DATA,LFN
          NZ     X1,PFILCKB  DO NOT RETURN .DATA,LFN
  
          SA5    PROCNAM
          RJ     IORTN       RETURN FILE AT PROCNAM 
  
 PFILCKB  BSS    0
  
 OSNOS    ENDIF 
  
 OSSC2BE   IFNE     HOST,NOS
          SA5    PFATT       LFN IF AUTO ATTACH USED
          ZR     X5,PFILCK1  CHECK FOR HELP TEXT FILE 
  
          RJ     IORTN       RETURN PROCEDURE FILE
 OSSC2BE   ENDIF
  
  
 PFILCK1  BSS    0
          SA1    IACIPF      CHECK FOR INTERACTIVE PROCESSING 
          ZR     X1,PFILCK   RETURN IF NON-INTERACTIVE
  
  
          SA5    =0L"M.FNHLP" 
  
          RJ     IORTN       RETURN HELP FILE 
  
 OSNOS    IFEQ   HOST,NOS 
          SA1    IACIDP      INTERACTIVE DIALOGUE IN PROGRESS 
          ZR     X1,PFILCK   NO FILES CONNECTED 
  
          CSET   RESTORE     RESTORE ASCII MODE AT TERMINAL 
 OSNOS    ENDIF 
  
          JP     PFILCK      RETURN 
  
  
          USE    // 
 RFL=     BSS    0
          USE    0
