The function Generate Assembler Copy Code generates a record buffer for use in Assembler programs based on a Predict file object.
In addition, an Adabas format buffer can also be generated if required for files of the following types:
Adabas file (file type A) with parameter Adabas SQL usage = N
Adabas userview (file type U)

This document covers the following topics:
The Generate Assembler Copy Code screen is
                            displayed with function code G and object code BA in a Predict main menu or
                            with the command GENERATE BAL or
                            GENERATE ASSEMBLER.
               
09:43:39             *****  P R E D I C T  *****             2007-05-31
Plan   0              - Generate ASSEMBLER Copy Code -
File ID ...................*
Save as member .............                Save in library .... BALLIB
Overwrite option ........... Y  (Y,N)       Op. system member ..
Punch / output ............* N
List generated code ........ Y  (Y,N)       List offsets ......* N
Generate format buffer ....* N              Adabas version ....* I7
As DSECT ................... N  (Y,N)       Field name prefix ..
With DC or DS .............* DC             Field name suffix ..
Nr. of abstract lines ...... 4  (0-16)      Validate ........... *
Generate initial value ..... N  (Y,N)       Truncation ........* R
Align .....................* N              With EQUs .......... Y (Y,N)
DSECT name .................                Counter length ..... 1 (1,2)
Format buffer name .........
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
      Help  Next  Stop  Last  LnkEl Flip  Print Impl  AdmFi SelFi Prof  Main
 | 
                  
Values for fields which have been locked by your data dictionary administrator cannot be overwritten. These fields are skipped when positioning the cursor with the TAB key. See Generation Defaults.
| Presettings | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| The parameter below can be changed in the Modify BAL Defaults screen. See Generation Defaults. | ||||||||||||||||||
| Library system | Library system for which the generated code is punched. Determines which additional cards need to be punched. An operating system member must be entered for the additional cards to be generated. See Parameters Specifying the Form of Output for more information. | |||||||||||||||||
| Parameters | ||||||||||||||||||
| The parameters Save as member, Save in library, Overwrite option, Op. system member, Punch/output, Workfile name and List generated code are described in the section Parameters Specifying the Form of Output. | ||||||||||||||||||
| File ID | ID of the Predict file object from which the definitions are to be generated. Enter an asterisk to display a selection screen. Alternatively, use an asterisk as a wildcard. For example, enter A* to display IDs beginning with A only. | |||||||||||||||||
| List offsets | 
                           
  |  
                                      
                     |||||||||||||||||
| Generate format buffer | 
                           
  |  
                                      
                     |||||||||||||||||
| Adabas version | The version of Adabas for which the copy code is to be generated. Enter an asterisk for valid values or see table in the section Adabas Version. | |||||||||||||||||
| As DSECT | The effect of this parameter depends on the parameter DSECT name. See table below: | |||||||||||||||||
                           
  |  
                                      
                     ||||||||||||||||||
| Field name prefix | The prefix to be used for each field name generated. | |||||||||||||||||
| With DC or DS | 
                           
  |  
                                      
                     |||||||||||||||||
| Field name suffix | The suffix to be used for each field name generated. | |||||||||||||||||
| Nr. of abstract lines | The number of Predict abstract lines per field to be included in the generated code. | |||||||||||||||||
| Validate | 
                           
  |  
                                      
                     |||||||||||||||||
| Generate initial value | 
                           
  |  
                                      
                     |||||||||||||||||
| Truncation | 
                           
  |  
                                      
                     |||||||||||||||||
| Align | 
                           
  |  
                                      
                     |||||||||||||||||
| With EQUs | 
                           
  |  
                                      
                     |||||||||||||||||
| DSECT name | Specifies the name of the record buffer in the generated structure. The effect of this parameter depends on parameter AS DSECT. See above in this table. | |||||||||||||||||
| Counter length | Length of additional counter fields. Valid values: 1, 2 | |||||||||||||||||
| Format buffer name | Specifies the name of the format buffer in the generated structure. If omitted, the file ID prefixed by F is used. | |||||||||||||||||
Command: GENERATE ASSEMBLER
Enter parameters on next line in positional or keyword form. File ID is obligatory, all other parameters are optional.
| Field | Keyword | Position | 
|---|---|---|
| File ID | FILE-ID | 1 | 
| Save as member | MEM | 2 | 
| Save in library | LIB | 3 | 
| Overwrite option | REPLACE | 4 | 
| Op. system member | OS-MEMBER | 5 | 
| AS DSECT | DSECT | 6 | 
| Field name prefix | PREFIX | 7 | 
| With DC or DS | DC-DS | 8 | 
| Field name suffix | SUFFIX | 9 | 
| Nr. of abstract lines | NR | 10 | 
| Generate initial value | INIT | 11 | 
| Validate | VALIDATION | 12 | 
| Generate format buffer | FORMAT-BUFFER | 13 | 
| Truncation | TRUNCATION | 14 | 
| List offsets | OFFSET | 15 | 
| List generated code | LIST | 16 | 
| Punch / output | PUNCH | 17 | 
| DSECT name | RECORD-BUFFER-NAME | 18 | 
| Format buffer name | FORMAT-BUFFER-NAME | 19 | 
| Align | SYNC | 20 | 
| With EQUs | EQU | 21 | 
| Adabas version | ADA-VER | 22 | 
| Counter length | COUNTER-LENGTH | 23 | 
| Workfile name (see note below) | 24 | |
| If you are working with Entire System Server | ||
| - DB-ID | NP-DBID | 25 | 
| - Data set | NP-DSNAME | 26 | 
| - Volume | NP-VOLSER | 27 | 
| - Library | NP-LIB | 28 | 
| - Sublibrary | NP-SUBLIB | 29 | 
| - Member type | NP-MEMTYPE | 30 | 
| - VSAM catalog | NP-VSAMCAT | 31 | 
If a parameter is not specified, the default value is taken.
Note:
You cannot specify a value other than blank (' ') for
                               WORKFILE-NAME on mainframes.
                  
Parameters NP-LIB,
                            NP-SUBLIB and NP-MEMTYPE must be
                            specified if the generated code is written to workfile 1 (Punch/output=Y) and
                            Library system=3.
               
The following rules apply to the generation of names for Assembler copy code.
Alpha characters in Predict object IDs, such as file and field IDs, are converted to upper-case.
Each field name (label) used in Assembler copy code is taken from the corresponding Predict field object: either the field name synonym for Assembler or, if none exists, the Predict field ID.
All field names and any condition names are prefixed, suffixed, validated and - if necessary - truncated to 8 characters according to the parameter settings. For example, with Field name prefix set to JUN, Field name suffix to *86, Validate to § and Truncation to R two fields JUNCDAY§ and JUNDAY§8 are generated for a field of type MC called DAY.
If a resulting field name is not unique within the entire file structure, an error message is given.
Any DSECT name or format buffer name does not receive the field name prefix and suffix. The value supplied may not contain invalid characters.
If the file ID is taken as default DSECT name or, with the prefix F, as default format buffer name, it is validated and if necessary truncated.
Before each field of type MC or PC, a counter field is generated automatically in the copy code, with a name created from the name of the MC or PC field prefixed by C. For example, a Predict field object DAY with no field name synonym for Assembler and with type MC will generate two fields with the names CDAY and DAY.
If no condition name is defined for a logical field (format L), the field name prefixed by N is used for the EQU statement.
For fields of format AV, a group is generated where groupname=fieldname. The group contains a length field and a text field prefixed with L and T respectively. See second table in the section Field Format and Assembler Copy Code.
An additional indicator field prefixed with S is generated in the following cases:
a field is defined with Suppression option set to U (null allowed)
a field of a file of type A, U or B is defined with Suppression option set to R (not null)
Note:
For Adabas Fields, the additional indicator field is only
                                 generated for the following Adabas versions:
                  
I3 or above
U1 or above
V4 or above.
Fields in the Assembler copy code have a clause determined by the following factors:
length and format of the corresponding Predict field object
file type of the file containing the field
| Predict Format | File Type | PRD Length | Alignment Boundary | Assembler Clause | (if aligned) | Note | 
|---|---|---|---|---|---|---|
| B | 1 | XL1 | ||||
| l =3,5,6,7 | XLl | |||||
| I | 1 | XL1 | ||||
| B/I | 2 | 2 | XL2 | H | ||
| 4 | 4 | XL4 | FL4 | |||
| 8 | 4 | XL8 | FL8 | |||
| B | l=>9 | PIC X(l) | ||||
| F | 4 | 4 | CL4 | E | ||
| 8 | 8 | CL8 | D | |||
|  
                                             
                             
                                                  N/U  |  
                                        
                        nn.m | ZLl | l=nn+m | |||
|  
                                             
                             
                                                  N/U  |  
                                        
                        nn.m | CLl | l=nn+m | |||
| P/PS | nn.m | PLl | l=(nn+m+2) /2 | |||
| D | D, E | CL10 | ||||
| other | PL4 | |||||
| T | D, E | CL8 | ||||
| other | PL7 | |||||
| L | XL1 | |||||
| G | n | CLm | m=2*n | |||
| GL | n | CLm | m=2*n | |||
| GV | n | CLm | m=2*n | |||
| LO | D, E | 4 | XL4 | FL4 | 
The clause XLn is normally generated for B formats. There are two exceptions to this rule:
parameter Align is set to Y, or
parameter Align is set to S and the field is defined in Predict as Synchronized.
The clause H or FL4 or FL8 is normally generated for I formats. The exception to this rule is when the parameter Align is set to N and the field does not start at a "synchronized" address.
An indicator or length field is generated like a B2 field. A counter field is also generated like a B2 field if Counter length = 2. If Counter length = 1, the clause XL1 is generated.
A numerical format field with a length > 17 is treated in Assembler copy code as alphanumeric format field. No INIT VALUE can be generated for these fields and a warning is given.
A DB2 large object is generated as locator like an I4 field.
Note:
When generating Assembler copy code for DB2 tables and views,
                               format NS or US is converted to Assembler format PL. Any redefinitions that
                               exist for this field are skipped.
                  
| File Type in Predict | Predict Format | Length | Assembler Clause | Note | 
|---|---|---|---|---|
| D, E | A, AL | n | CLn | |
| AV |  Two-level group is
                                             generated: 
                                             
                             
                                                  Fieldname DS CLm   |  
                                        
                         
                                             
                            m = n + 2 Dx is either DS or DC, depending on parameter With DC or DS. yyy is either XL2 or H, like a B2 field.  |  
                                      
                     ||
| A,U,B | A | n | CLn | |
| AV | Two-level group is generated. See above. | |||
File ID .. GENERATION-EXAMPLE
**********************************************************************
*    THIS RECORD-BUFFER LAYOUT WAS GENERATED BY PREDICT
*         FOR FILE: GENERATION-EXAMPLE
*               ON: 2007-05-31 STARTING AT 13:27:40
*    FILE COMMENTS: Example file for the 
*                   PREDICT generation subsystem
*                   ..
**********************************************************************
         DS    0D
GROUP1   DS    0CL99
ELN9V5   DC    ZL14'0'        ELE-N-9V5
GRINGR   DS    0CL30
ELEB4    DC    FL4'0'         ELE-B-4
*                     CONDITION NAMES:
*                     INIT-ELE-B-4=00001000
*                     COND-ELE-B-4-V-1=FFFFFFFF
ELPS52   DC    PL4'0'         ELE-PS-5V2
MUB4     DC    5FL4'0'        MU-B-4
         ORG   MUB4
MURB7    DC    XL7'0'         MU-RED-B-7
MURB13   DC    ZL13'0'        MU-RED-US-13
         ORG   MUB4
MURB8    DC    XL8'0'         MU-RED-B-8
*                     CONDITION NAMES:
*                     MU-RED-B-8-COND1=111111
         DS    CL12
ELEA42   DC    CL42' '        ELE-A-42
*                     CONDITION NAMES:
*                     COND-NAME-START=COND-START
*                     *THRU=COND-ZEND
ELEF8    DC    D'0'           ELE-F-8
ELEB3    DC    XL3'0'         ELE-B-3
CPCOCC7  DC    XL1'0'         CNT OF PC-OCC-7
PCOCC7   DS    0CL76
PCNS7V3  DC    ZL10'0'        PC-ELE-DE-NS-7V3
CPCMCPS  DC    XL1'0'         CNT OF PC-MC-PS-6V1
PCMCPS   DC    11PL4'0'       PC-MC-PS-6V1
PCGR     DS    0CL17
BALI2    DC    H'0'           PC-ELE-I-2
PCPS20V7 DC    PL14'0'        PC-PS-20V7
BALF4    DC    E'0'           PC-ELE-F-4
         DS    6CL76
ELED     DC    PL4'0'         ELE-D
ELET     DC    PL7'0'         ELE-T
ELEL     DC    XL1'0'         ELE-L
NELEL    EQU   X'00'
**********************************************************************
*    THIS FORMAT-BUFFER WAS GENERATED BY PREDICT
*         FOR FILE: GENERATION-EXAMPLE
*               ON: 2007-05-31 STARTING AT 13:27:40
**********************************************************************
FGENERAT DS    0CL295
* >>> DIC1809 WARNING: FIELDNAME(S) TRUNCATED
         DC    CL50'AB,2X,AD,AE,AF1-5,AG,2X,AH,AI,ALC,AM1,AN1C,2,AN1(1'
         DC    CL50'-11),1X,AP1,AQ1,AR1,AM2,AN2C,2,AN2(1-11),1X,AP2,AQ'
         DC    CL50'2,AR2,AM3,AN3C,2,AN3(1-11),1X,AP3,AQ3,AR3,AM4,AN4C'
         DC    CL50',2,AN4(1-11),1X,AP4,AQ4,AR4,AM5,AN5C,2,AN5(1-11),1'
         DC    CL50'X,AP5,AQ5,AR5,AM6,AN6C,2,AN6(1-11),1X,AP6,AQ6,AR6,'
         DC    CL45'AM7,AN7C,2,AN7(1-11),1X,AP7,AQ7,AR7,AS,AT,AU.'
**********************************************************************
DIC1800 SUMMARY:    25 FIELD(S) PROCESSED
DIC1809 WARNING:     1 FIELDNAME(S) TRUNCATED
DIC1819 MESSAGE:    11 SLACK BYTE(S) GENERATED
DIC1847 MESSAGE:     3 FIELD(S) SKIPPED FOR RECORDBUFFER STRUCTURE