*COMDECK  CCLRPV
          TITLE  CCLRPV  -  REPRIEVE ON EXTERNAL ABORTS 
**        CCLRPV  -  REPRIEVE ON EXTERNAL ABORTS
* 
*         USE CONVENTION OF HOST SYSTEM REPRIEVE CAPABILITY TO REGAIN 
*         CONTROL WHEN AN EXTERNAL ABORT OCCURS DURING WHILE/ENDW 
*         PROCESSING SEARCH FOR SKIP TERMINATOR, OR DURING BEGIN PROCESS
* 
*         ENTRY  X3 = 0  CLEAR REPRIEVE 
*                     NZ   MASK FOR REPRIEVE
* 
*         USES  A7, X7
* 
  
 CCLRPV   SUBR   =
  
          ZR     X3,RPV01    CLEAR REPRIEVE CONDITION 
  
          SA2    CSFPOS      CURRENT POSITION INFORMATION 
          BX7    X2 
          SA7    ENDWRPV     POSITION USED IF ENDW REPRIEVES
  
 RPV01    BSS 
 OSSC2    IFEQ   HOST,SC2 
  
          BX7    X3 
          SA7    RPVBLK      SET OR CLEAR REPRIEVE MASK 
          REPRIEVE RPVBLK 
  
  
 OSSC2    ELSE
  
          REPRIEVE RPVBLK,SETUP,X3
  
  
 OSSC2    ENDIF 
  
          JP     CCLRPV      EXIT 
  
  
 OSSC2    IFEQ   HOST,SC2 
  
 RPVBLK   BSSZ   21B         AREA FOR XP + SYSTEM INFORMATION 
  
 OSSC2    ELSE
  
 RPVBLK   BSS    0           REPRIEVE PARAMETER BLOCK 
          VFD    36/0,12/31B,2/0,9/1,1/0
          VFD    30/0,30/RPVCDE 
          BSSZ   27B
 OSSC2    ENDIF 
  
 RPVCDE   BSS                BEGIN REPRIEVE CODE
  
          SA1    FILEIO      SET COMMAND FILE FET COMPLETE
          SX7    B1 
          BX7    X1+X7
          SA7    A1+
          SA1    RPVBLK+3 
          MX0    48 
          BX1    -X0*X1 
          SX1    X1-7 
          NG     X1,RPV02    IF ERROR LESS THAN OPERATOR KILL 
          SX1    X1-2 
          NG     X1,RPV03A   IF KILL OR RERUN 
  
  
 RPV02    BSS    0
          SA1    IACIDP      INTERACTIVE DIALOGUE IN PROGRESS 
          ZR     X1,RPV04    IF NO DIALOGUE IN PROGRESS 
  
 OSNOS    IFEQ   HOST,NOS 
          MESSAGE  ,1,R      CLEAR MESSAGE BUFFER 
 OSNOS    ENDIF 
  
 RPV03    BSS    0
          RJ     PFILCK      CLEAN UP SYSTEM/LIBRARY FILES, ETC.
  
 RPV03A   BSS    0
          REPRIEVE  RPVBLK,RESET,0  RESET ERROR AND EXIT
  
  
 RPV04    BSS    0
          SA1    BGIN 
          NZ     X1,RPV05    IF REPRIEVE WHILE PROCESSING *BEGIN* 
  
*         REENTER C.S.F. AT ENDW - ISSUE ABORT TO FORCE SEARCH FOR EXIT 
  
          SA1    ENDWRPV     POSITION AS SAVED
          BX7    X1 
          SA7    CSFPOS 
          SX2    FILEIO 
          RJ     IOCSE       ENTER C.S.F. 
  
          SX0    MSG177      =0LENDW
          JP     RPV07       ISSUE ERROR MESSAGE AND EXIT 
  
 RPV05    BSS 
  
 OSNOS    IFEQ   HOST,NOS 
          SA1    RPVBLK+W.RPVEC 
          EX2    X1,RPVEC    CHECK FOR USER BREAK 2 
          SX6    X2-40B 
          NZ     X6,RPV06    IF NOT USER BREAK 2
  
          SA1    RPVUBR 
          ZR     X1,RPV06    IF NO IRESUME NECESSARY
  
          SX7    1
          SA7    RPVRR       INDICTATE REPRIEVE WAS RESUMED 
          SX3    237B        SET REPRIEVE MASK
          REPRIEVE  RPVBLK,IRESUME,X3 
 OSNOS    ENDIF 
  
*         ENTERED HERE AFTER *IRESUME* PROCESSING IS COMPLETED FOR
*         A USER BREAK 2 AT A CRITICAL POINT IN *BEGIN* PROCESSING. 
  
 RPV06    BSS    0
          SX0    MSG178      =0LBEGIN 
 RPV07    BSS    0
          LX0    18 
          SX3    MSG263      *EXTERNAL ABORT DURING BEGIN/ENDW* 
          BX3    X0+X3
  
 OSNOS    IFEQ   HOST,NOS 
          RJ     STRMGA      ISSUE CCL263 ERROR MESSAGE 
  
          JP     RPV03       CLEAN UP FILES AND EXIT VIA RESET
  
 OSNOS    ELSE
  
*         ON NOS/BE AND SCOPE 2 ABORT WITH DUMP WHEN REPRIEVED. 
  
          JP     EXIT1       ABORT WITH MSG - NBE/SC2 
  
 OSNOS    ENDIF 
  
  
