*DECK FFSISRP 
          IDENT  FFSISRP
*CALL COPYRITE
          ENTRY  FFSISRP
  
          SST 
          SYSCOM B1 
  
 OPL      XTEXT  COMSRPV
  
          B1=1
          TITLE  FFSISRP - SETUP REPRIEVE PROCESSING. 
          COMMENT  FFSISRP - SETUP REPRIEVE PROCESSING. 
          SPACE  4,10 
***       FFSISRP - SETUP REPRIEVE PROCESSING.
* 
          SPACE  4,10 
***       FFSISRP IS CALLED AT INITIALIZATION OF FTPS TO DAYFILE A
*         MESSAGE CONTAINING THE BUILD DATE AND TIME, AND TO
*         ESTABLISH REPRIEVE ERROR CONDITIONS AND A REPRIEVE TRANSFER 
*         ADDRESS. THE *REPRIEVE* MACRO INTERFACE IS USED TO SETUP
*         THIS INTERFACE AND TO PROCESS ABNORMAL TERMINATION. 
* 
          SPACE  4,10 
* 
*         ENTRY  INITIALIZATION CALL (ENTRY POINT IS FFSISRP):  
*                  NONE.
*                REPRIEVE TRANSFER (ENTRY POINT IS FFSRPV): 
*                  NONE.
* 
*         EXIT   INITIALIZATION CALL (ENTRY POINT IS FFSISRP):  
*                  THE MESSAGE MACRO HAS BEEN CALLED TO ISSUE A DAYFILE 
*                  MESSAGE CONTAINING THE BUILD DATE AND TIME.
*                  REPRIEVE (SETUP TYPE) HAS BEEN CALLED TO REPRIEVE
*                  ALL CONDITIONS EXCEPT NORMAL TERMINATION.
* 
*                ABNORMAL TERMINATION TRANSFER (ENTRY POINT IS FFSRPV): 
*                  FILE ZZZZDMB HAS BEEN CREATED CONTAINING THE 
*                  BINARY DUMP. 
*                  IF FTPS SUCCESSFULLY NETTED ON, THEN THE STATISTICS
*                  FILE, ZZZZZSN, HAS BEEN FLUSHED. 
*                  IF THERE IS AN AIP TRACE FILE, ZZZZZDN, THEN THE 
*                  FILE HAS BEEN FLUSHED. 
*                  ALL CURRENT I/O ON ACTIVE FILES HAS BEEN COMPLETED.
*                  IF FTPS IS NETTED ON:  
*                    THE AIP / NIP INTERFACE IS RESET.
*                    IF THE APPLICATION HAS NOT YET SPAWNED A COPY OF 
*                    ITSELF AND A NEW COPY IS REQUIRED, ONE IS SPAWNED. 
*                    A NETOFF IS ISSUED TO NAM. 
*                  REPRIEVE (RESET TYPE) HAS BEEN CALLED TO RESET THE 
*                  ERROR CONDITION AND RETURN CONTROL TO THE
*                  OPERATING SYSTEM.
* 
*         MACROS NETSTC, RPVBLK, REPRIEVE, WRITER, MESSAGE. 
          SPACE  4,10 
  
 ECNT     EQU    100B                  NORMAL TERMINATION ERROR CLASS 
 ECOA     EQU    010B                  OPERATOR ACTION ERROR CLASS
  
          USE    /POINTBL/             GLOBAL POINTER TABLE FOR DEBUG 
 RPVPT    VFD    42/7HREPRIEV,18/RPVPRM 
 DNPT     VFD    42/7HZZZZZDN,18/0     ADDRESS OF TRACE FILE FET
          BSSZ   8D 
          USE    *
  
          USE    /FSBUILD/             BUILD DATE AND TIME
 BLDMSG   DIS    ,* FTPS-BUILT"DATE""TIME"* 
          USE    *
  
          USE    /EPTCOM/ 
 EPTFLG   BSS    1                     ENTRY POINT FLAG 
          USE    *
  
          USE    /SPAWN/
 NYSPAWN  BSS    1                     NOT YET SPAWN FLAG 
          USE    *
  
          USE    /NETINIT/             FTPS CONNECTED TO NETWORK FLAG 
 NET$INIT VFD    60/0 
          USE    *
  
          USE    /CURRENT/
 DEBUG    BSS    1                     DEBUG MODE 
          USE    *
  
 RPVPRM   VFD    48/25,12/0            REPRIEVE PARAMETER BLOCK 
          VFD    60/FFSRPV             REPRIEVE TRANSFER ADDRESS
          BSSZ   23D
  
 SYS$EQ   BSS    1                     CONTENTS OF SYS EQUALS 
  
 BLDFTPI  VFD    6/55B,24/0LFTPI,30/0  FTPI FOR BUILD MESSAGE 
 STATOFF  DATA   1                     TURN OFF STATISTICS ACCUMULATION 
 STATFLG  BSS    1                     NETSTC RETURN PARAMETER - IGNORED
 ORIGIN   BSSZ   1                     JOB ORIGIN CODE
 SSM=     BSSZ   1                     SECURE MEMORY FLAG 
  
          EJECT 
 FFSISRP  EQ     *+1S17D               ENTRY/EXIT FOR INITIALIZATION
 FFSISRPX EQU    *
          SB1    1
          SA1    EPTFLG                CLIENT / SERVER FLAG 
          ZR     X1,FFSIMSG            IF SERVER
          SA2    BLDMSG                BUILD DATE/TIME MSG
          MX0    5*6                   MASK TO REMOVE * FTPS* 
          SA3    BLDFTPI               * FTPI* IN DISPLAY CODE
          BX6    -X0*X2                REMOVE * FTPS* FROM MESSAGE
          BX7    X6+X3                 ADD * FTPI* TO MESSAGE 
          SA7    A2                    STORE * FTPI* IN MESSAGE 
  
 FFSIMSG  MESSAGE   BLDMSG,0,R         DAYFILE BUILD DATE AND TIME
          GETJO  ORIGIN                GET JOB ORIGIN 
          SA1    DEBUG
          NZ     X1,FFS1               IF DEBUG 
          SA1    ORIGIN 
          ZR     X1,FFS1               IF SYOT
          SX6    B1 
          SA6    SSM=                  INDICATE SECURE MEMORY 
          SETSSM SSM=                  SET SECURE MEMORY
  
 FFS1     BSS    0
          PROTECT ,OFF                 DISABLE USER FILE PRIVACY
          REPRIEVE  RPVPRM,SETUP,277B  INITIALIZE REPRIEVE PROCESSING 
          EQ     FFSISRPX 
  
 FFSRPV   BSS    0                     REPRIEVE TRANSFER ADDRESS
          SB1    1
          SA1    =XSYS= 
          BX6    X1                    SAVE LAST CALL TO SYS EQUALS 
          SA6    SYS$EQ 
  
 FFSRPVX  SA1    SSM= 
          NZ     X1,FFSRPV2            IF SECURE MEMORY 
          SYSTEM DMB,R,0,037B          NEED TO MERGE IN NIN 
  
 FFSRPV2  BSS    0
          SA2    NET$INIT 
          ZR     X2,FFSRPV4            IF FTPS NOT NETTED ON
          RJ     =XNETRR               RESET AIP/NIP INTERFACE
          SB1    1                     RESTORE (B1) TO ONE
          SA1    NYSPAWN               GET NOT YET SPAWNED FLAG 
          ZR     X1,FFSRPV3            APPLICATION ALREADY SPAWNED
          SA1    RPVPRM+3              GET ERROR CLASS
          MX0    -12                   MASK FOR ERROR CLASS 
          LX1    60-12                 ERROR CLASS TO LOWER 12 BITS 
          BX2    -X0*X1                EXTRACT ERROR CLASS
          SX3    X2-ECNT               CHECK FOR NORMAL TERMINATION 
          ZR     X3,FFSRPV3            IF NORMAL TERMINATION
          SX3    X2-ECOA               CHECK FOR OPERATOR ACTION
          ZR     X3,FFSRPV3            IF OPERATOR DROP/KILL/RERUN
  
          RJ     =XFFSSSNA             SPAWN A NEW COPY OF APPLICATION
          SB1    1                     RESTORE (B1) TO ONE
  
 FFSRPV3  BSS    0
          RJ     =XFFSUWIO             WAIT I/O COMPLETE ON FILE XFER 
          RJ     =XNETOFF              NETOFF 
  
 FFSRPV4  SB1    1                     RESTORE (B1) TO ONE
          SX6    B0+
          SA6    NET$INIT              CLEAR APPLICATION NETTED ON FLAG 
  
          REPRIEVE  RPVPRM,RESET,277B  RESET ERROR WITH NO RETURN 
  
          END 
