*DECK FFSUPFU 
          IDENT  FFSUPFU
*CALL COPYRITE
  
          ENTRY  APPEND 
          ENTRY  ATTACH 
          ENTRY  CHANGE 
          ENTRY  DEFINE 
          ENTRY  GETPF
          ENTRY  PURGE
          ENTRY  REPLACE
          ENTRY  SAVE 
          SYSCOM B1 
          TITLE  FFSUPFU - INVOKE PFM FUNCTIONS.
          COMMENT  FFSUPFU - INVOKE PFM FUNCTIONS.
          COMMENT - COPYRIGHT CONTROL DATA SYSTEMS INC. 1994. 
          SPACE  4,10 
***       FFSUPFU - INVOKE PFM FUNCTIONS. 
* 
 FFSUPFU    SPACE  4,20 
***       FFSUPFU - INVOKE PFM FUNCTIONS. 
* 
*         *FFSUPFU* CONTAINS THE PROCEDURES TO INVOKE PFM COMMANDS AND
*         THEIR STATUS. 
* 
*         SYMPL CALL -
* 
*         COMMAND(FET, STATUS, ERRTEXT, XXXX);
*         WHERE COMMAND IS ONE OF APPEND, ATTACH, CHANGE, DEFINE, GET,
*         PURGE, REPLACE, AND SAVE. 
* 
*         ENTRY  FET  = FILE ENVIRONMENT TABLE FOR THIS REQUEST.
*                       (20B WORDS MUST BE ALLOCATED.)
*                XXXX = NEW PERMANENT FILE NAME FOR CHANGE COMMAND. 
*                XXXX = SENDFLAG FOR ATTACH COMMAND.
* 
*         EXIT   STATUS = CONTENTS OF AT FIELD IN FET.
*                ERRTEXT = ERROR MESSAGE (3 WORDS). 
* 
*         CALLS  PFPRE, PFPOST. 
* 
*         MACROS APPEND, ATTACH, CHANGE, DEFINE, GET, PURGE, REPLACE, 
*                SAVE.
  
  
 OPL      XTEXT  COMSPFM     PERMANENT FILE DECLARATIONS
  
 APPEND   SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          APPEND X2 
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     APPENDX     RETURN 
  
  
 ATTACH   SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          ZR     X5,ATTACHW  IF SENDFLAG IS FALSE 
          ATTACH X2,,,,R,,,,NF
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     ATTACHX     RETURN 
  
 ATTACHW  BSS    0
          ATTACH X2,,,,W,,,,NF
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     ATTACHX     RETURN 
  
 CHANGE   SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          CHANGE X2,,NPFN,,,CATEGOR,MODE,,,,SPECIAL 
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     CHANGEX     RETURN 
  
 DEFINE   SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          DEFINE X2,,,,,CATEGOR,MODE
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     DEFINEX     RETURN 
  
*         GET IS HERE CALLED GETPF IN ORDER TO AVOID CONFLICT WITH
*         CRM GET.
  
 GETPF    SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          GET    X2 
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     GETPFX      RETURN 
  
 PURGE    SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          PURGE  X2 
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     PURGEX      RETURN 
  
 REPLACE  SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          REPLACE  X2 
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     REPLACEX    RETURN 
  
 SAVE     SUBR               ENTRY/EXIT 
          RJ     PFPRE       PROCESS ACTUAL PARAMETER LIST
          SAVE   X2,,,,CATEGOR,MODE 
          RJ     PFPOST      PROCESS STATUS RETURN
          EQ     SAVEX       RETURN 
  
 PFPRE    SPACE  4,15 
**        PFPRE - PREPROCESS PF REQUEST.
* 
*         *PFPRE* PROCESSES THE ACTUAL PARAMETER LIST AND SETS THE
*         FET FIELDS. 
* 
*         ENTRY  (A1) = ACTUAL PARAMETER LIST.
* 
*         EXIT   (X2) = FET.
*                EP FIELD IN FET SET. 
*                ERAD FIELD IN FET = ERRTEXT ADDRESS. 
*                ADDRSTA = ADDRESS OF STATUS VARIABLE.
*                (X5) = ADDRESS OF NEW PERMANENT FILE NAME FOR CHANGE.
*                     = ADDRESS OF PFM MODE FOR ATTACH. 
* 
*         USES   X - ALL. 
*                A - 1, 3, 4, 5, 6, 7.
  
  
 PFPRE    SUBR               ENTRY/EXIT 
          SB1    1
          SX2    X1          ADDR OF FET
          SA3    A1+B1       ADDR OF *STATUS* 
          SA4    A3+B1       ADDR OF *ERRTEXT*
          MX0    42          PUT ADDR OF *ERRTEXT* IN *ERAD* FET FIELD
          SA5    X1+12B      FET+12B
          BX6    X5*X0       CLEAR *ERAD* FIELD 
          BX6    X6+X4       INSERT *ERRTEXT* ADDR
          SA6    A5          STORE IN FET 
          SA5    A4+B1       ADDR OF NPFN/PFM MODE
          SA5    X5 
          BX6    X5 
          SA6    NPFN        SAVE NPFN
          SX7    X3          SAVE STATUS ADDR 
          SA7    ADDRSTA
          SA1    X2+10B 
          MX0    54 
          BX6    -X0*X1      SAVE MODE
          SA6    MODE 
          LX0    6
          BX7    -X0*X1      SAVE CATEGORY
          LX7    -6 
          SA7    CATEGOR
          LX0    6
          BX7    -X0*X1      SAVE SPECIAL REQUEST 
          LX7    -12
          SA7    SPECIAL
          SA1    X2+17B      GET SUBSYSTEM
          LX0    42 
          BX6    -X0*X1 
          LX6    -48
          SA6    SUBSYSM     SAVE SUBSYSTEM 
          EQ     PFPREX      RETURN 
 PFPOST   SPACE  4,15 
**        PFPOST - POSTPROCESS PF REQUEST.
* 
*         *PFPRE* PROCESSES THE STATUS RETURN FROM THE PFM REQUEST. 
* 
*         ENTRY  (X2) = FET.
* 
*         EXIT   STATUS = *AT* FIELD FROM FET.
* 
*         USES   X - 0, 1, 6. 
*                A - 1, 6.
  
  
 PFPOST   SUBR               ENTRY/EXIT 
          MX0    8           EXTRACT *AT* FIELD FROM FET
          SA1    X2          FET+0
          LX0    18D
          BX6    X0*X1
          LX6    60D-10D
          SA1    ADDRSTA     PUT *AT* FIELD CONTENTS IN STATUS
          SA6    X1 
          EQ     PFPOSTX     RETURN 
  
 ADDRSTA  BSS    1           ADDRESS OF STATUS RETURN VARIABLE
 MODE     BSS    1           MODE FOR DEFINE, SAVE AND CHANGE 
 CATEGOR  BSS    1           CATEGORY FOR DEFINE, SAVE AND CHANGE 
 SPECIAL  BSS    1           SPECIAL REQUEST FOR CHANGE 
 SUBSYSM  BSS    1           SUBSYSTEM FOR SAVE AND CHANGE
 NPFN     BSS    1           NEW PERMANENT FILE NAME FOR CHANGE 
  
          END 
