bdfp1m0uProgramming Concepts and Reference

Member File Definitions DSECT

A DSECT macro must be defined for each file that will be accessed by the application program. This is required for assembler application programs and C application programs.

Figure 9 shows the DSECT used to define the Gold Club member file.

Figure 9. IR00DF-Member File Definitions DSECT

         MACRO
&LABEL   IR00DF &REG=,&SUFFIX=,&ORG=,&ACPDB=
         GBLB  &IR00DF1      1ST TIME CALLED SWITCH
         COPY  DBGBL         COPY TPFDF GLOBAL DEFINITIONS
         COPY  DBLCL         COPY TPFDF LOCAL DEFINITIONS
&NAM     SETC  '             '    DOC NAME
&DATE    SETC  '06AUG90'     UPDATE DATE
&VERS    SETC  '00'          VERSION NUMBER
.***************************************************************
.*      DEFINITIONS FOR TPFDF                                  *
.***************************************************************
&SW00WID SETC  'S0'          FILE ID
&SW00WRS SETC  'L2'          BLOCK SIZE
&SW00RBV SETC  '#TPFDBFF'    ALGORITHM
&SW02FIL SETC  'IR00DF'      FILE DSECT NAME
&SW00OP1 SETC  '00000000'    OPT BYTE1
&SW00OP2 SETC  '00000110'    OPT BYTE2
&SW00OP3 SETC  '00000000'    OPT BYTE3
&SW00TQK SETC  '15'          HIGHEST TLREC
.***************************************************************
         COPY  DBCOD         COPY DSECT DEFINITION FUNCTIONS
         AIF   ('&IR00DF1' EQ '1').NOT1ST
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                                     *
*  DESCRIPTION OF IR00DF                                              *
*                                                                     *
*  1. DATA AREA NAME                                                  *
*                                                                     *
*     GOLD CLUB MEMBER INFORMATION FILE                               *
*                                                                     *
*  2. MEMBER NAME                                                     *
*                                                                     *
*     IR00DF                                                          *
*                                                                     *
*  3. INVOCATION                                                      *
*                                                                     *
*     IR00DF REG=R4,                                                  *
*           (SUFFIX=X)                                                *
*                                                                     *
*  4. GENERAL CONTENTS AND USAGE                                      *
*                                                                     *
*  4.1. ROLE IN SYSTEM                                                *
*                                                                     *
*       DETAIL SUBFILE CONTAINING INFORMATION ON MEMBERS OF THE       *
*       GOLD CLUB SCHEME.  MEMBERS PAY FOR A ONE YEAR MEMBERSHIP      *
*       AND RECEIVE AN EXTRA MONTH'S MEMBERSHIP FOR EACH 1000 MILES   *
*       FLOWN WITH THE AIRLINE.                                       *
*                                                                     *
*  4.2. DATA LAYOUT                                                   *
*                                                                     *
*       STANDARD TPFDF FILE HEADER                                    *
*                                                                     *
*       PRIMARY KEY     USAGE                                         *
*          80           MEMBER'S NAME                                 *
*          90           MEMBER'S ADDRESS                              *
*          A0           MEAL, SEAT & PAYMENT PREFERENCES              *
*          B0           MILEAGE CREDIT & EXPIRY DATE OF MEMBERSHIP    *
*          C0           PREVIOUSLY DELETED MEMBERSHIP NUMBER          *
*          D0           NEXT MEMBERSHIP NUMBER TO GIVE OUT            *
*                                                                     *
*  4.3. PROGRAMMING ASPECTS                                           *
*                                                                     *
*  4.3.1. PROGRAMMING RESTRICTIONS                                    *
*                                                                     *
*         NONE.                                                       *
*                                                                     *
*  4.3.2. PROGRAMMING TECHNIQUES AND USAGE                            *
*                                                                     *
*         STANDARD TPFDF LREC LOCATION TECHNIQUE USING:               *
*         - PRIMARY KEY                                               *
*                                                                     *
*  5. STORAGE FACTORS                                                 *
*                                                                     *
*  5.1. BLOCK SIZE                                                    *
*                                                                     *
*       1055 BYTES.                                                   *
*                                                                     *
*  5.2. FILE REQUIREMENTS                                             *
*                                                                     *
*       FIXED FILE INDEX (#TPFDB09) REFERENCING 1055-BYTE POOL FOR    *
*       DETAIL SUBFILE                                                *
*                                                                     *
*  5.3. ACCESSING SCHEME                                              *
*                                                                     *
*       INDEXING THROUGH FILE IR01DF ACCESSED VIA ALG= STRING OF      *
*       THE MEMBERSHIP NUMBER.                                        *
*                                                                     *
*  6. DATA CONTROL                                                    *
*                                                                     *
*  6.1. CHAINING AND OVERFLOW                                         *
*                                                                     *
*       STANDARD TPFDF CHAINING.                                      *
*                                                                     *
*  6.2. DATA FIELD ADDRESSING                                         *
*                                                                     *
*       OFFSET WITHIN STANDARD TPFDF LREC.                            *
*                                                                     *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
         EJECT
         AIF   ('&SW00WRS' EQ '').CHECKID
#IR00DFS EQU   &SW00WRS      BLOCK SIZE
.CHECKID AIF   ('&SW00WID' EQ '').NOT1ST
#IR00DFI EQU   C'&SW00WID'   FILE ID
.NOT1ST  ANOP
***********************************************************************
*        STANDARD TPFDF HEADER                                        *
***********************************************************************
IR00HDR&CG1 DS  CL16         STANDARD FILE HEADER
            DS  CL10         STANDARD TPFDF HEADER
IR00VAR&CG1 EQU *            START OF VARIABLE USER-AREA
IR00HDL&CG1 EQU IR00VAR&CG1-IR00HDR&CG1  HEADER-LENGTH UP TO IR00VAR
            ORG IR00HDR&CG1
IR00REC&CG1 DS  0CL1         1ST RECORD START (1=VARIABLE,ELSE SIZE)
IR00SIZ&CG1 DS  H            SIZE OF LOGICAL RECORD
IR00KEY&CG1 DS  X            LOGICAL RECORD IDENTIFIER
         AIF   ('&IR00DF1' EQ '1').KEYEQ  GO IF NOT FIRST ISSUE
***********************************************************************
*        EQUATE OF LOGICAL RECORD KEYS (KEY AND LENGTH)               *
***********************************************************************
.*                    USE KEY #IR00K80 IF ONLY ONE KEY
.*                    #IR00K00-#IR00K0F ARE RESERVED FOR TPFDF
.*                    #IR00KF0-#IR00KFF ARE RESERVED FOR TPFDF
#IR00K80 EQU   X'80'         PRIMARY KEY X'80'
#IR00K90 EQU   X'90'         PRIMARY KEY X'90'
#IR00KA0 EQU   X'A0'         PRIMARY KEY X'A0'
#IR00KB0 EQU   X'B0'         PRIMARY KEY X'B0'
#IR00KC0 EQU   X'C0'         PRIMARY KEY X'C0'
#IR00KD0 EQU   X'D0'         PRIMARY KEY X'D0'
.*
#IR00L80 EQU   IR00E80&CG1-IR00REC&CG1  LENGTH OF LOGICAL RECORD X'80'
#IR00L90 EQU   IR00E90&CG1-IR00REC&CG1  LENGTH OF LOGICAL RECORD X'90'
#IR00LA0 EQU   IR00EA0&CG1-IR00REC&CG1  LENGTH OF LOGICAL RECORD X'A0'
#IR00LB0 EQU   IR00EB0&CG1-IR00REC&CG1  LENGTH OF LOGICAL RECORD X'B0'
#IR00LC0 EQU   IR00EC0&CG1-IR00REC&CG1  LENGTH OF LOGICAL RECORD X'C0'
#IR00LD0 EQU   IR00ED0&CG1-IR00REC&CG1  LENGTH OF LOGICAL RECORD X'D0'
.*
&IR00SR1 SETB  (1)           INDICATE 1ST TIME THROUGH
.KEYEQ   ANOP
IR00ORG&CG1 EQU *            START OF LOGICAL RECORD DESCRIPTION
.*
***********************************************************************
*  MEMBER INITIALS AND SURNAME                                        *
***********************************************************************
.*
IR00NAM&CG1 DS  CL20         MEMBER'S SURNAME
IR00INT&CG1 DS  CL6          MEMBER'S INITIALS
IR00E80&CG1 EQU *            END OF LOGICAL RECORD WITH KEY X'80'
         ORG IR00ORG&CG1
.*
***********************************************************************
*  MEMBER ADDRESS                                                     *
***********************************************************************
.*
IR00ADR&CG1 DS  CL43         MEMBER'S ADDRESS
IR00E90&CG1 EQU *            END OF LOGICAL RECORD WITH KEY X'90'
         ORG IR00ORG&CG1
.*
***********************************************************************
*  MEAL, SEAT AND PAYMENT METHOD                                      *
***********************************************************************
.*
IR00SP0&CG1 DS  CL1          SPARE BYTE TO ALIGN ON HALFWORD BOUNDARY
IR00MPR&CG1 DS  H            MEAL PREFERENCE
IR00SPR&CG1 DS  H            SEAT REQUIREMENTS
IR00PAY&CG1 DS  H            PAYMENT METHOD
IR00EA0&CG1 EQU *            END OF LOGICAL RECORD WITH KEY X'A0'
         ORG IR00ORG&CG1
.*
***********************************************************************
*  MILEAGE CREDIT AND CURRENT EXPIRATION DATE                         *
***********************************************************************
.*
IR00SP1&CG1 DS  CL1          SPARE BYTE TO ALIGN ON HALFWORD BOUNDARY
IR00MLS&CG1 DS  F            CURRENT MILEAGE CREDIT
IR00EXY&CG1 DS  H            EXPIRATION YEAR
IR00EXM&CG1 DS  H            EXPIRATION MONTH
IR00EB0&CG1 EQU *            END OF LOGICAL RECORD WITH KEY X'B0'
         ORG IR00ORG&CG1
.*
***********************************************************************
*  REUSABLE MEMBER NUMBER                                             *
***********************************************************************
.*
IR00NUM&CG1 DS  CL10         REUSABLE MEMBER NUMBER
IR00EC0&CG1 EQU *            END OF LOGICAL RECORD WITH KEY X'C0'
         ORG IR00ORG&CG1
.*
***********************************************************************
*  CONSECUTIVE NUMBER                                                 *
***********************************************************************
.*
IR00NUC&CG1 DS  CL10         CONSECUTIVE MEMBER NUMBER CONTROL
IR00ED0&CG1 EQU *            END OF LOGICAL RECORD WITH KEY X'D0'
         ORG IR00ORG&CG1
.*
***********************************************************************
*  ALGORITHM DESCRIPTION                                              *
***********************************************************************
.*
         ORG   IR00REC&CG1
IR00@0BEG&CG1 EQU *                    PATH 0 DESCRIPTION
IR00@0NBR&CG1 DS  CL10                 MEMBERSHIP NUMBER
IR00@0END&CG1 EQU *
.*
***********************************************************************
         AIF   (&BG1).MACEXIT          GO IF INTERNAL USAGE
&SYSECT  CSECT
         AIF   ('&REG' EQ '').MACEXIT  GO IF REG= NOT SPECIFIED
.GEUSING ANOP                          GENERATE USING
         USING &DSN,&REG
.MACEXIT ANOP
         SPACE 1
         MEND