gtps1m2jSystem Macros

FACZC-Compute File Address

Use this system macro to provide the interface to file address compute program (FACE) address generation routines. The service is similar to calling the FACS segments or the FAC8C macro service routine, but additionally this service allows access to records that are unique to a subsystem user (SSU), processor, or I-stream (within a given subsystem).

If defaults are taken, an entry control block (ECB) must be available because the subsystem, DBI, and I-stream of the current ECB are used. Control program (CP) routines with no associated ECB can take defaults for only the processor and I-stream, and must provide subsystem and SSU information.

Required Authorizations
Key0 Restricted System Common Storage

X

Format




label
A symbolic name may be assigned to the macro statement.

PARMS=Rx
Rx specifies a register (R0 through R7 for E-type segments, any register except R0, R11 through R13 for CP segments) containing the starting address of a parameter block, as described by the IDSFCZ macro. Fields in the input area of this block that are to be provided by the caller must be initialized before invocation of the macro. Output area fields will be filled in by the macro service routine. In particular, the return code field should be inspected to determine the results of the call.
Note:
The IFCZREC field must contain an 8-byte character string record type name, padded on the right with blanks.

DEFSS
Specify one of the following:

YES
Sets a parameter block value so that the current DBI is used to find the FACE table. The caller must ensure an ECB address is contained in R9.

NO
Indicates that the correct subsystem index will be provided in the parameter block by the caller.

DEFSSU
Specify one of the following:

YES
Sets the parameter block value for SSU to the current SSU from the ECB. This value is then used to locate the proper record for fixed record types for which any SSU/processor/I-stream uniqueness exists. The caller must ensure an ECB address is contained in R9.

NO
Indicates that the correct subsystem user index will be provided in the parameter block by the caller.

DEFPROC
Specify one of the following:

YES
Sets the parameter block value for processor to the current processor ordinal from the TPF system. This (zero-relative) value is then used to locate the proper record for fixed record types for which any SSU/processor/I-stream uniqueness exists.

NO
Indicates that the processor ordinal will be provided in the parameter block by the caller.

DEFISN
Specify one of the following:

YES
Sets the parameter block value for I-stream to the current I-stream number from the ECB, if an E-type call otherwise the current I-stream number is used. This (one-relative) value is then used to locate the proper record for fixed record types for which any SSU/processor/I-stream uniqueness exists. The caller must ensure an ECB address is contained in R9.

NO
Indicates that the I-stream number will be provided in the parameter block by the caller.

TYPE
Specify one of the following:

FACE
Sets a parameter block value to indicate a FACE-type call. The record type number must be placed in the IDSFCZ parameter block input area prior to macro invocation.

FACS
Sets a parameter block value to indicate a FACS-type call. The symbolic record type name must be placed in the IDSFCZ parameter block input area prior to macro invocation. The default value is TYPE=FACS.

USER
The appropriate entry type information must be set prior to calling FACZC. The entry type flag must be set. The record type field must be initialized to either a 8-character symbolic record type name (FACS interface) or a 2-byte record type number (FACE interface).

FACE8
Sets a parameter block value to indicate an 8-byte file address type of call. An 8-byte ordinal number and record type number must be supplied on input, and an 8-byte file address and an 8-byte maximum ordinal number are provided on output in the IDSFCZ parameter block. This call only supports the record-type number interface (similar to the FACE interface).

FACS8
Sets a parameter block value to indicate an 8-byte file address type of call. An 8-byte ordinal number and the symbolic type name must be supplied on input, and an 8-byte file address and an 8-byte maximum ordinal number are provided on output in the IDSFCZ parameter block. This call only supports the symbolic record-type interface (similar to the FACS interface).

DSECT=NO|YES
Optional parameter used to request the generation of a DSECT describing the parameter list generated for the FACZC call rather than the generation of service routine linkage. The use of this parameter should be limited to the FACZC service routine. If DSECT=YES is coded, no FACZC expansion will be generated. The default is DSECT=NO.

Entry Requirements

Return Conditions

Programming Considerations

Examples

The following is an example of a FACZC macro call.

         XC    IFCZORD,IFCZORD     ORDINAL ZERO            
         MVC   IFCZREC(8),=CL8'#PDREU'  FACE TYPE          
         XC    IFCZPRO,IFCZPRO     CLEAR OUT               
         MVC   IFCZPRO+1(1),PI1IPT SET UP PROCESSOR ORDINAL
         FACZC PARMS=R5,           GET FILE ADDRESS        
               DEFSS=YES,          USING DEFAULT SS        
               DEFSSU=YES,                       SSU       
               DEFISN=YES,                       I-STREAM  
               DEFPROC=NO,                                 
               TYPE=FACS,          USING FACS INTERFACE    
               DSECT=NO                                    
         CLI   IFCZRET,IFCZNRM     OK RETURN?              
         BNE   CBR1ERR1            NO, ERROR               
         L     R2,IFCZMNX          SAVE MAXIMUM RECORD     
         MVC   CE1FM2(4),IFCZADR   MOVE ADDRESS TO LEVEL 2 
         XC    CE1FA2(4),CE1FA2    CLEAR ID, RCC           
         FIWHC D2,CBR1ERR2