This general macro instruction, in conjunction with the DDATA macro
instruction (DDATA), is used in application development to declare a data
structure used in processing terminal displays. DPANL and DDATA macro
instructions (called map statements) written by an application programmer must
be placed on a map source statement library with a utility program. Map
statements are then included in ECB-controlled source code through the
assembly language COPY instruction. The copied map statements have the
effect of declaring symbolic names used in a display data structure, because
the DPANL and DDATA instructions expand into a DSECT included in the source
code. The DSECT is adjusted and a register is assigned as the result of
parameters included in the map statement coding.
The effect of using map statements is analogous to the use of a data macro
instruction. However, map statements do not appear in the source code
of ECB-controlled programs. This means that source code does not
contain the register assignment of the DSECT generated as the result of copied
map statements.
A map statement on the map source statement library is used in two
different ways:
- mapname
- A unique 1-to-4-character name (alpha, numeric, special character) must be
assigned by the user to this format definition. This field must begin
in column 1 of the card image. The first character must be
alpha. It is recommended that this same name be used to install the
complete set of map statements on the Map Source Library. When the
mapname is omitted, the name 'AAAA' is assumed by default.
- DPANL
- The macro statement name must follow the symbolic map name. There
must be at least one blank column between it and the map name. The
designation must appear as DPANL.
- DSECT=START
- This parameter establishes the start of the map source statements that
define this specific format; it must be coded as shown in the
example.
- MODE=IN|OUT|BOTH
- This optional keyword allows the user to specify whether the symbolic
reference module (DSECT) and the physical map record (MSP) are to be formatted
by the Mapping Support Package for input data streams (MODE=IN) or output data
streams (MODE=OUT). When the user defines a single map that is to be
used for input and output data streams, MODE=BOTH is coded. This will
cause the generation of 2 DSECTs, one formatted as input and the other as
output, in the user program. Similarly, 2 Terminal Map Records will be
formatted for this specific map.
When this keyword is omitted, the mode is assumed to be IN.
When a single map is defined by the user for both input and output, (that
is, MODE=BOTH), two COPY 'mapname' statements must be inserted in the
source program. The two statements are identical. The purpose of
this is to provide for the subsequent generation of the input and the output
related symbolic DSECTs.
- SEQNO=number|(number,number)
- This keyword allows the user to specify a unique map sequence number for
this format. When MODE=IN or MODE=OUT, only 1 number is
specified. When MODE=BOTH, the user must code 2 different
numbers. The numbers assigned to a particular map must not be
duplicated or have been assigned to other maps.
This parameter is optional; the range of valid numbers is
1-9999. When SEQNO is omitted, SEQNO=1 is assumed.
- Note:
- When 2 numbers are coded, they must be enclosed in parentheses.
- DEV=device
- Check devices specified in DEV explanation
This optional keyword allows the user to specify the terminal types
associated with this particular map format. When MODE=IN or MODE=BOTH
is coded, the only valid terminal types that may be specified are 3277-1,
3277-2, 3278-1,2,3,4 default size, and 3278-1,2 alternate size. When
MODE=OUT, any combination of terminal types, as shown in the example, may be
coded for the DEV= keyword. When this keyword is omitted from the map
definition, DEV=3277-2 is the assumed device type.
For input maps, the following devices are supported:
DEVICE TYPE DEVICE CODE TO BE USED
3277 MOD 1 3277-1
3277 MOD 2 3277-2
3278 MOD 1 Def 3278-1
3278 MOD 2 Def 3278-2
3278 MOD 3 Def 3278-3
3278 MOD 4 Def 3278-4
3278 MOD 1 Alt 3278-1A
3278 MOD 2 Alt 3278-2A
For output map generation, the following devices are supported:
DEVICE TYPE DEVICE CODE TO BE USED
3277 MOD 1 3277-1
3277 MOD 2 3277-2
3284 MOD 1 3284-1
3284 MOD 2 3284-2
3286 MOD 1 3286-1
3286 MOD 2 3286-2
1977 1977
1977 with tab 1977-T
1980 MOD 21 1980-1
1980 MOD 24 1980-4
3278 MOD 1 Def 3278-1
3278 MOD 2 Def 3278-2
3278 MOD 3 Def 3278-3
3278 MOD 4 Def 3278-4
3278 MOD 1 Alt 3278-1A
3278 MOD 2 Alt 3278-2A
3287 MOD 1 Def 3287-1
3287 MOD 2 Def 3287-2
3287 MOD 3 Def 3287-3
3287 MOD 4 Def 3287-4
3287 MOD 1 Alt 3287-1A
3287 MOD 2 Alt 3287-2A
3287 MOD 1 SLU 3287-1S
3287 MOD 2 SLU 3287-2S
Although the previous device parameters are used to create the map records,
they will be checked during the assembly process of the associated symbolic
reference module to ensure correct coding. Users with 3289 printers
should code the 3287 equivalent types. Users with 3288 printers should
code the 3286 equivalent types.
- MAXFLDS=number
- This optional keyword is valid only when MODE=IN or MODE=BOTH has been
specified. This parameter provides a count of the maximum number of
fields that may be present in an input data stream. This specification
will provide for the allocation of an area in the user's prime DSECT
block, which enables the user program to interpret the presence or lack of a
data field. There will be 1 bit assigned for each input field.
The relative position of each bit indicator in the IMF field of the user block
corresponds to a single associated input data field in the DSECT. When
the bit=ON, the field has been entered; when the bit=OFF, the field has
not been entered. For fields defined as REPEAT (see DDATA description),
the count must include the number of input fields created for that single
DDATA statement.
When this keyword is absent from the DPANL statement, the assumed count is
set to zero, no area will be allocated in the user DSECT, and no bit strings
will be generated by the Mapping Package in the user block.
- OMSGBLK=128|381|1055
- This optional keyword, is valid on maps defined as MODE=OUT, MODE=IN, or
MODE=BOTH. This parameter defines the maximum size of the user output
block and the size of the user input block, and therefore sets the maximum
displacement of the last field that can be contained in the DSECT. When
this keyword is omitted from the DPANL statement, OMSGBLK=1055 is
assumed.
- Note:
- When the defined block size is exceeded, an ORG is generated to reset the
displacement of the next field back to the beginning of the DSECT.
- LINECT=number
- This optional keyword is valid only for the 1980/24 and the 1977 hardcopy
terminal types. When this parameter is provided on the DPANL statement,
it specifies the number of lines on a particular form. The default is
LINECT=0.
The following 4 keywords are only for output maps and are related to the
IBM 3270 Information Display System terminal types (including 3278 and 3287
terminals). For additional information concerning CMD, WCC, and COPY,
see the IBM 3270 Information Display System Component Description
Manual. These keywords are valid when MODE=OUT or MODE=BOTH is
specified.
- CMD=W|EW|C|EAU|EWA
- This optional keyword lets the user indicate specific 3270
operations. Utilized with the WCC and COPY keywords, the user may
initiate the writing and erasing of data in a selected 3270 device
buffer. When CMD=W, a Write operation character is generated;
CMD=EW, an erase buffer and write operation character, is generated;
CMD=C, a copy control command character is generated; and CMD=EAU, a
command to erase all unprotected characters is generated. This last
command clears all unprotected buffer character locations to nulls, resets to
0 the MDT bit for each unprotected field, unlocks the keyboard, resets the AID
byte, and repositions the cursor to the first character location in the first
unprotected field of the buffer. The CMD=EWA (erase/write alternate)
parameter is valid only for 3278-1 and 3278-2 terminals. The EWA
command sets the buffer of the terminal to its alternate size. If this
Keyword is omitted, CMD=EW is assumed.
- WCC=PRINT,L40|L64|L80|NL,ALARM,RESTORKB|LOCKKB,MDTON
- This optional keyword is used with the 3270 command (CMD) operand.
For printer operations, the user can specify the printout format and the
initiation of the printout operation at the completion of the Write
operation.
For CRT display operations, the user may specify that the alarm is sounded
and the keyboard be restored or both. For either printer or CRT
operations, the user may also indicate that all MDT bits in the existing
buffer data of the referenced devices be reset before the Write
operation.
When WCC=PRINT, the user must indicate an associated line length
specification; the assumed default for this parameter is the 80-character
print line (L80). When WCC= is not present on the DPANL statement, the
keyboard restore parameter (RESTORKB) is assumed (the default WCC for a
printer will be PRINT,L80). The parameters, when coded, must be in the
order that appears at the beginning of this section.
- COPY
- This optional keyword is valid only when CMD=C has been specified.
This parameter denotes the type of data to be transferred from the buffer of 1
device to another attached to the same 3271 control device.
- A
- Only attribute characters are transferred.
- AU
- Attribute characters and unprotected alphameric fields are copied.
- AP
- All attribute characters and protected alphanumeric fields are
copied.
- ALL
- The entire buffer contents are copied.
When the COPY= keyword is not coded, but CMD=C has been, the 'A'
parameter is assumed.
- SCREEN=FULL|SPLIT
- This optional keyword can be used to indicate screen splitting.
When the user wants to obtain split screen capabilities, that is, the separate
paging and scrolling of two distinct portions of a single display,
SCREEN=SPLIT is specified. When no split screen capability is sought,
the user either specifies SCREEN=FULL or omits the operand entirely. If
this keyword is omitted, SCREEN=FULL is assumed.
The following 3 commands are related only to the IBM 3278/3787 information
display system terminal types. The commands are only valid for the 3287
printers. When any of these commands are coded, and the device is a
3287, the implication is that the data stream to be formatted is LU type 1
with SCS (SNA character string) codes. When these commands are not
coded and the device is a 3287, the data stream is formatted as LU type
3; that is, as a 3270 printer data stream whose buffer addresses depend
on whether the default or alternate size is used.
- HFORM=length,tab2,tab...
- This optional keyword can be used to define the horizontal format
including left and right margins and horizontal tab stops. The first
parameter must define the line length. The default values for the HFORM
operand are: line length=132, first tab=1, last tab=132 (for example,
HFORM=(121,1,10,15,100), means the line length is 121, tab settings are at
positions 1, 10, 15, 100).
- VFORM=depth,tab,tab...
- This optional keyword can be used to define the vertical format including
the maximum presentation line, top and bottom margins, and vertical tab
stops. The first parameter must define the form depth. The
default values for the VFORM operand are: form depth=56 lines, first
tab=1, last tab=56 (for example, VFORM=(56,1,56)).
- CASE=YES|NO
- This optional keyword can be used to convert all input data to upper
case. It is not valid for output map definitions. CASE=NO is the
default. CASE=YES will cause conversion.
- SLD=6|8
- This optional keyword can be used to specify the distance to be moved for
a single line vertical spacing. This Set Line Density (SLD) keyword is
valid only for the printers supporting the LU type 1 data stream. Valid
parameters are 6 (6 lines/inch) or 8 (8 lines/inch). The default is
8.
The concluding DPANL statement appears as follows:
DPANL DSECT=END,REG=Rx
- DPANL
- The macro statement name must be the first data on the card; no data
must appear to the left of these 5 characters.
- DSECT=END
- This required parameter establishes the conclusion of a series of map
source statements that defines a specific format (map); it must be coded
in the following manner: DSECT=END.
- REG=Rx
- This optional keyword can be used to establish the base register for this
specific map. The user specifies the general register to be associated
with the defined map. However, this keyword does not load the register
specified with an address; it merely establishes the symbolic
addressability of each field contained in the assembled DSECT. When
this keyword is omitted, no base register is established for the map.
All DPANL statements along with their associated DDATA statements will be
installed on a source library. For reference, the user must issue a
COPY statement in the source program text.
Return conditions are not applicable. DPANL provides a DSECT
only.
- Input module called menu:
* STATEMENTS FOR INPUT MAP
MENU DPANL DSECT=START,MODE=IN,SEQNO=|,MAXFLDS=3
DDATA
DPANL DSECT=END,REG=R2C
- Output module called menu:
MENU DPANL DSECT=START,MODE=OUT,WCC=(ALARM,RESTORKB),
SEQNO=2
DDATA
DPANL DSECT=END,REG=2
- Input and output module called menu:
MENU DPANL DSECT=START,MODE=BOTH,SEQNO=(3,4),MAXFLDS=17
* STATEMENTS FOR INPUT MAP
MENU DPANL DSECT=START,MODE=BOTH,SEQNO=(3,4),MAXFLDS=17
DDATA
DPANL DSECT=END,REG=R4
* STATEMENTS FOR OUTPUT MAP
MENU DPANL DSECT=START,MODE=BOTH,SEQNO=(3,4),MAXFLDS=17
DDATA
DPANL DSECT=END,REG=R4
DDATA
DPANL DSECT=END,REG=R4