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