bdfp1m0u | Programming Concepts and Reference |
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 ®=,&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