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.
The following code shows the DSECT used to define the Gold Club member file.
MACRO
&LABEL IR00DF ®=,&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 ('®' EQ '').MACEXIT GO IF REG= NOT SPECIFIED
.GEUSING ANOP GENERATE USING
USING &DSN,®
.MACEXIT ANOP
SPACE 1
MEND