SC26 3759 0_Assembler_H_Programmers_Guide_Jun70 0 Assembler H Programmers Guide Jun70

SC26-3759-0_Assembler_H_Programmers_Guide_Jun70 SC26-3759-0_Assembler_H_Programmers_Guide_Jun70

User Manual: SC26-3759-0_Assembler_H_Programmers_Guide_Jun70

Open the PDF directly: View PDF PDF.
Page Count: 84

DownloadSC26-3759-0_Assembler_H_Programmers_Guide_Jun70 SC26-3759-0 Assembler H Programmers Guide Jun70
Open PDF In BrowserView PDF
C)

Program Product

IBM System/360
Operating System
AssemblerH
Programmer's Guide
Program Number 5734-AS1

TIlis book tells how to use Assembler H. It descnoes
assembler options, cataloged Job Control Language procedures, assembler listing and output, sample programs,
and programming techniques and considerations.
Assembler H is an assembler language processor for the
IBM Systern/360 Operating System. It performs highspeed assemblies on an IBM Systern/360 Model 40 or
higher and on an IBM Systern/370 Model 145, 155, or
165 with at least 256K bytes of main storage.
This book is intended for all Assembler H programmmers.
It should be used in conjunction with the Operating

System Assembler Language manual, Order No. GC286514; the Assembler H Language Specifications,
Order No. GC26-3771; and the Assembler H Messages,
Order No. SC26-3770.

o

Page of SC26-3759-0
Revised February 15, i971
By TNL SN33-8095

First Edition (June, 1970}
This edition with Technical Newsletter SN33-8095 applies to
version 2 of the IBM System/360 Operating System Assembler H
Program Product 5734-ASI and to all subsequent versions until
otherwise indicated in new editions or Technical Newsletter.
Changes to the text, and.small changes to illustrations, are
indicated by a vertical linte to the left of the change; changed
or added illustrations are denoted by the symbol • to the left
of the caption.
Changes are continually made to the information herein; before
using this publication in connection with the operation of IBM
systems, consult the latest IBM System/360 SRL Newsletter,
Order No. GN20-0360 for the editions that are applicable and
current.
Requests for copies of IBM publications should be made to
your IBM representative or to the IBM branch office serving
your locality.
A form for readers comments is provided at the back of
this publication. If the form has been removed, comments may
be addressed to IBM Nordic Laboratory, Publications Development,
Box 962, 5-18109 Lidingo 9, Sweden.

1©

Copyri9htInternationa1 Business Machines Corporation 1970

Technical Newsletter

o

Re: 0 rder N o.

SC26-3759-0

This Newsletter No.
Date

SN33-8095

February 15, 1971

Previous Newsletter Nos.

None

IBM SYSTEM/360 OPERATING SYSTEM ASSEMBLER H
PROGRAMMER'S GUIDE
cmM corp. 1970

This Technical Newsletter, a part of version 2 of IBM System/360
Operating System, Assembler H Program Product provides replacement pages for IBM System/360 Operating System Assembler H, Programmer's Guide, Order Number SC26-3759-0. These replacement
pages remain in effect for subsequent versions and modifications
unless specifically altered. Pages to be inserted and/or removed
are listed below:
Cover, ii
iii, iv
3_/ 4
7,8
31,32
37,38

o

A change to the text or a small change to an illustration is
indicated by a vertical line to the left of the change; a changed
or added illustration is denoted by the symbol • to the left of
the caption.

Summary of Amendments
Minor errors are corrected throughout the manual, information
changed on MHELP Control on &SYSNDX, and IBM System/370
information added.

Note: File this cover letter at the back of the manual to provide
a record of changes.

o

IBM Nordic Laboratory, Technical Communications, Box 962, 5-18109 Lidingo .9, Sweden
©lBM Corp. 1971

PRINTED IN U.S.A.

c

c

Page of SC26-3759-0
Revised February 15, 1971
By TNL SN33-8095

o

Preface

~his publication tells how to use Assembler H.
It describes asserrbler
options, cataloged job control language {:rocedures, a'ssembler listing
and cutput, assembler data sets, error diagnostic facilities, sample
~rcgrarrs, and ~rogramming techniques and considerations.

Asserrbler E is an asserrbler-language processor for the IBM System/360
Operating System.
It performs high-speed asserr.tlies on an IBM
System/360 Model 40 or higher and on an IBM System/370 Model 145,
155, or 165 with at least 256K bytes of main storage.
This manual has the following main sections:

o

•

Using the Asserrbler

•

Assembler Listing Description

•

Assembler Diagnostic Facilities

•

Programming Considerations

"Using the Assembler" describes the EXEC statement PARM field o{:tion,
the data sets used by tbe asserrbler, and the jot control language
cataloged procedures sup~lied by IBM. ~he cataloged procedures can
be used to assemble, link-edit or load, and execute an asserrbler
program.
"Assemtler Listing Descri~ticn" describes each field of the assembly
listing.
"Assembler r::iagnostic Facilities" descri1:es the ~urI::ose and
format of error messages, MNO'IEs, and the MHELF macro trace facility.
"Programming Considerations" discusses various topics, such as standard
entry ahd exit procedures fer problem programs.
Appendix A is a sample program which des crites rrany of the asserrblerlanquaqe features, especially those unique to Assembler H. Appendix
B is a sarople MHELP macro trace and dump.
Appendix C describes the
ob;ect module output formats.
Appendix D tells how to call the
assembler dynarrically frem ~rcblem programs.
'Ihis publication is intended for all Assemt:ler E programmers. To use
this ~ublication, you should be familiar with the assembler language
and with the basic concepts and facilities of the Operating System,
especially job control language, data management services, su~ervisor
services, and the linkage editor and loader.

Assem bIer Pu blications
'Ihe following publication contains a brief description of Asserrbler
H ana how it differs frcrr lewer level Operating System/360 assemblers:
IBM System/360 Operating System General Information Manual, Order Number
GC26-3758

o
iii

The followinq ~utlicaticns describe the assembler language and the
information required to rur. Assembler H programs:
IBM System/360 Operating System Assembler Language, Order Number
GC28-65l4
The Assembler lanquage manual contains the basic assembler and rracro
assemtler specificaticr.s, except those unique to Assembler H.
IBM System/360 Operating System Assembler H Language Specifications,
Order Number GC26-377l
The Assembler H lanquage specifications describes the language features
that are availatle with Asserrbler H. It is su~plemental to the
Assembler language manual listed above.
IBM System/360 Operating System Assembler H Messages, Order Number
SC26-3770
The Messaqes manual provides an explanation of each of the diagnostic
and abnormal termination messages issued by Assembler H and how you
should respond in each case.
The following publications contain information used to install and
maintain Assembler H:
IBM System/360 Operating System Assembler H System Information, Order
Number GC26-3768
The System Inforrr.ation n:anual consists of three self-contained chapters
cn performance estimates, storage estimates, and system generation
of Assembler H.
IBM System/360 Operating System Assembler H Program Logic Manual, Order
Number LY26-3760
The Program logic Manual describes the design logic and functional
characteristics cf Assembler H.

Operating System Publications
The following putlications contain information about the Operating
System:
IBM System/360 Operating System Concepts and Facilities, Order Number
GC28-6535
Concepts and Facilities introduces and interrelates all Operating
System/360 control program facilities. It shows how these facilities
work with the languaqe translators and service programs, so you can
tetter learn bow to use the system.
IBM System/360 Operating System Job Control Language, Order Number
GC28-6539
The Job Control Language book tells how to code the job control language
necessary to initiate and control the processing of any program, and
contains all cataloged procedures.

iv

c

IBM System/360 Operating System Linkage Editor and Loader, Order Number
GC28-6538

o

ThE Linkage Editor and Loader manual provides information on the
o~eration and use of the linkage editor and loader, which are two
prograrrs that prepare the output of language translators for execution.
IBM System/360 Operating System Supervisor and Data Management Macro
Instructions, Order Number GC28-6647, and
and Data Mana ement Services,
'Ihe Supervisor and Cata Management publications describe the program
Execution-tirre services available from the Operating system and the
macro instructions required to use these services.
IBM System/360 Operating System utilities, Order Number GC28-6586
'Ihe Utilities publication describes the utility programs of the
OpErating System. 'Ihe asseItlbler-language programmer can use utilities
to do such things as add macro definitions to a library.
IBM System/360 Operating System Messages and Codes, Order Number GC28GC28-663l
'Ihis publication contains the messages and corrpletion codes issued
ty the Operating Systerr.
(It does not contain the messages issued
by Assemtler H.)
IBM System/360 Operating System Programmer's Guide to Debugging, Order
Number GC28-6670
This publication describes dumps and other inforrraticn issued by the
operating Systerr wten an asserrbler-language program executes
unsuccessfully.

o
v

This page intentionally left blank.

c

vi

Contents
~\-.:
~i

Using the Assembler
Assembler Options .

1
1

Default Options .

4
4
6

Assembler Data Sets
DD Name SYSUT 1
DD Name SYSIN
DD Name SYSLIB
DD Name SYSPRINT
DD Name SYSPUNCH
DD Name SYSLIN

6
6
6
6

7
8
9

Return Codes . . . .
Cataloged Procedures .
Cataloged Procedure for Assembly (ASMHC)
Cataloged Procedure for Assembly and Link-Editing (ASMHCL)
Cataloged Procedure for Assembly, Link-Editing, and Execution (ASMHCLG)
Cataloged Procedure for Assembly and Loader-Execution (ASMHCG)
Overriding Statements in Cataloged Procedures .

Assembler Listing

. . . . . . .

21
22

External Symbol Dictionary (ESD) .
Source and Object Program.
Relocation Dictionary. . . . . .
Cross Reference . . . . . . . .
Diagnostic Cross Reference and Assembler Summary
Assembler Diagnostic Facilities . .
Assembly Error Diagnostic Messages . . .
MNOTEs
............ .
Suppression of Error Messages and MNOTEs
Abnormal Assembly Termination
Macro Trace Facility (MHELP) . . . . .

24

25
25
27
27
30
30
30
30

Programming Considerations . . . . . .
Saving and Restoring General Register Contents.
Program Termination . . . . . .
PARM Field Access. . . . . . . . . . . .
Macro Definition Library Additions . . . . .
Load Module Modification - Entry Point Restatement
Object Module Linkage . . . . . . . .
Special CPU Programming Considerations .
Controlling Instruction Execution Sequence .
Extended-Precision Machine Instructions .
Unaligned (Byte-Oriented) Operands

.
·
0
..

33

33
34
34
34

35
35
38
38
38
39

Appendix A. Sample Program

41

Appendix B. Sample Macro Trace and Dump (MHELP) .

53
53
53

Macro Call Trace (MHELP 1). .
Macro Entry Dump (MHELP 16)
Macro AIF Dump (MHELP 4)
Macro Exit Dump (MHELP 8)

54
54

Appendix C. Object Deck Output

61

ESD Card Format
TEXT (TXT) Card Format
RLD Card Format . . .
END Card Format . . .
TESTRAN (SYM) Card Format

61
61
62
63
63

Appendix D. Dynamic Invocation of the Assembler

67

' ' .....

" 'I

.

9

10
12
13
15
19

vii

Illustrations

Figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8 •
Figure 9.

Assembler H Data Sets....................................... 5
Cataloged Procedure for Assembly (ASMHC) •..•....•........... 10
Cataloged Procedure for Assembling and
Link-Editing (ASMHCL) .................•.•....•....•......... 11
Cataloged Procedure for Assembly, Link-Editing and
Execution (ASMHCLG) ...•.........•.........••................ 13
Cataloged Procedure for Assembly and
Loader-Execution (ASMHCG) •............•............•........ 14
Assembler H Listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . 20
Sample Error Diagnostic Messages ......•...•................. 29
Sample Assembler Linkage Statements for
FORTRAN or COBOL Subprograms .....•..•....•.................. 37
TESTRAN SYM Card Format . . . . . . . . . . . . . . . . . • . . . . . . . . . . • . . . • . . . . 65

Tables
Table 1.
Table 2.
Table 3.

Assembler Data Set Characteristics ....................••.... 7
Number of Channel Program (NCP) Selection . . . . . . . . . . . . . . . . . . . 8
Types of ESD Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

,f-'~'",
,

!

",\~

viii

Using the Assembler

o

This section describes the assembly-time options available to the
assembler-lanquage programmer, the data sets used by the assembler,
and the cataloged procedures of job control language supplied by IBM
to simplify assembling, linkage editing or leading, and execution of
assembly language l=rograrr,s. The job control language is described
in detail in the Job Contrel Language publication, order ~Umber GC286539.

Assembler Options
Assembler H offers a number of optional facilities. For example, you
can suppress printing of the asserobly listing or parts of the listing,
and you can specify whether you want an object deck or an ob ject module.
You select the options by including appropriate keywords in the PARM
field of the EXEC statement that invokes the assembler. There are
two types of options:

o

•

Simple pairs ef keyword s: a posi ti ve form (such as LOAD) that
requests a facility, and' an alternative negative form (such as
NCICAD) that rejects that facility.

•

Keywords that permit you to assign a value to a function (such
as LINECN'I=50) •

Each of these options has a standard or default value which is used
for the assembly if you do not specify an alternative value. The
default values are explained in the following section, "Default
Options. "
If you are using a cataloged procedure, you ~ust include the PARM field
in the EXEC statement that inVOkes the procedure. You must also qualify
the keyword (PJ\RMl with the name of the step within the procedure tha t
inVOkes the compiler. For example:
//

EXEC

ASMHC, FARM. C=' L·CAC, NODECK'

The sectien "Overriding Statements in ca taloged Procedures" contains
mere examples on how to specify options in a cataloged procedu.~e.
PARM is a keyword parameter: code PARM= followed by the list of options,
separating the options by commas and enclosing the entire list within
sinqle quotes or parentheses. If there is only one option that does not
include any special characters, the enclosing quotes or parentheses
can be omitted. The option list m~st not be longer than 100 characters,
including the separating commas. You may specify the options in any
order. If contradictcry cptions are used (for example, LIST and
NOLIST), the rightmost option (in this case, NOIIST) is used.

The assembler options are:
PARM~

(DECK,
or

LOAD,
or

LIST,
or

TEST,
or

XREF,
or

(NODECK.NOLOAD,NOLIST .NOTEST ,NOX RE F ,

'LlNECNT=nn',

ALGN,
or

RENT,
or

ESD,
or

RLD,
or

MULT,
or

SYSPARM=xxx';MSGLEVEL~nnn')

,NOALGN.NORE NT ,NOESD.NOR LD,NOMU L T,

o
Using The Assembler

1

DECK -- The object module is placed on the device specified in the
SYSPUNCH DD statement.
LOAC -- The object module is placed on the device specified in the
SYSLIN DC statement.
Note: The LOAD and DECK options are independent of each other. Both
or neither can be specified. The output on SYSLIN and SYSPUNCH is
identical except that the control program closes SYSLIN with a
disposition of LEAVE and SYSPUNCH with a disposition of REREAD.

c

ESI: -- The assembler produces the External Symbol Dictionary as part
of the listing.
RLD -- The assembler produces the Relocation Dictionary as part of
the listing.
MULT

The assembler will do multiple (batch) assemblies under the
control of a single set of jab control language cards. The
source decks must be placed together with no intervening /*
card; a single /* card must follow the final source deck.

LIST -- An asserr.bler listing is produced. Note that the NOLIST
option overrides the ESD, RLD, and XREF options.
TEST -- The object module contains the special source symbol table
required by the test transla tor (T'ESTRAN) routine.
XREF -- The assembler produces a cross-reference table of syrrbols
and literals as part of the listing.
RENT -- The assembler checks for a possible coding violation of
prOCJram reenterablility.
LINECNT=nn -- The number of lines to be printed between headings
in the listing is nne The permissible range is
1 to 99 lines.

o

NOALGN -- The asserrbler suppresses the diagnostic message "IEVO 33
ALIGNMENT ERROR" if fixed point, floating- point, or logical
data referenced by an instruction operand is not aligned
on the proper boundary.. The message will be produced,
however, for references to instructions that are not aligned
on the proper (halfword) boundary or for data boundary
violations for privileged instructions such as LPSw. See
the "SJ:ecial CPU Prcgramming Considerations" section for
information on alignment requirements.
ALGN -- The assembler does not suppress the alignment error diagnostic
message; all alignrrent errors are diagnosed.

c
2

Assembler H Programmer's Guide

Page of SC26-3759-O
Revised February 15, 1971
By TNL SN33-8095

MSGLEVEL=nnn -- Error diagnostic messages below severity code nnn will
not appear in the listing.
Diagnostic messages can
have severity codes of 0, 4, 8, 12, 16, or 20 (0 is
the least severe). MNOTEs can have a severity code
of 0 through 255.
Fer example, MSGLEVEL=8 will suppress messages for
severity codes 0 through 7.
SYSFARM=xxx -- The character string xxx is the value of the system
variable synbol &SYSPARM. The assembler uses &SYSPARM
as a read-only SE'Ie variable.
If no value is specified
for the SYSFARM option, &,SYSPARM will be a null (empty)
character string. 'Ihe function of &SYSPARM is explained
in the Assenbler H Language Specifications, Order Number
GC26-3771.
A total of 100 characters is allowed in the PARM field
of the EXEC statement. Thus, the maximum length of
the SYSPARM character string is 100 minus the total
number of other characters in the PARM field.
(Commas
separating c~tions and quotes enclosing individual
option values must also be counted.) For exanJ;:le:
FARM='SYSFARM=xxx'
xxx can be up to 92 characters
FARM=(NCCECK,'SYSPARM=xxx')
xxx can be up to 83 characters

o

Commas are not allowed unless parentheses or quotes
surrcund the entire PARM value.
Also, two quotes are
needed to represent a single quote and two ampersands
are needed to represent a single ampersand,
For example:
PARM=' LOAD, SYSPARM=(&&AB,&&XY),
PARM='NODECK,SYSPARM=(' 'AB,"XY)'
The SYSPARM character string is &AB,&XY in the first
example and ('AB, 'XY) in the second example.
If you are calling the asseroble.r from a prcblem program
at execution time (dynamic invocation), SYSPARM can
be up to 256 characters long,

o
Using The Assembler

3

Default Options

If you do not code an option in the PARM field, the assembler assumes
a default option. The following default options are included when
Assembler H is shi~~ed by IBM:
PARM=(DECK,NOLOAD,LlST,NOTEST,XREF,'LlNECNT=55',ALGN,NORENT,ESD,RLD,NOMULT,'SY$PARM=null','MSGLEVEL=O')

However, these may not be the default options in effect in your
installation. the defaults can be respecified when Assembler H is
installed. For example, NcrECK can be made the default in ~lace of
rECK. Also, a default opticn can be specified during installation
so that you cannot override it.
The cataloged procedures described in this book assume the default
entries. The section "overriding Statements in Cataloged Procedures"
tells you how to override them.
First, however, check whether any
default options have been changed or whether there are any you cannot
override at your installation.

Assembler Data Sets
Asserrtler H requires the fcllowing data sets, as shown in Figure 1:
•

SYSUT1 -- utility data set used as intermediate external storage.

•

SYSIN -- an input data set containing the source statements to
be processed.

In addition, the following four data sets may te required:
•

SYSLIB -- a data set containing macro definitions (for rracro
definitions nct defined in the source program) and/or source code
to be called for through COpy assembler instructions.

•

SYSFRINT -- a data s·et containing the asserrtly listing (unless
the NCLIST option is specifie~ ~

•

SYSPUNCH -- a data set containing object module output, usually
for punching (unless the NODECK option is specified).

•

SYSLIN -- a data set containing object module output usually for
the linkage editor (only if the LOAD option is specified) •

The atove data sets are described in the follOwing text. The DD name
that normally must be used in the DD statement describing the data
set appears as the heading for each description. The characteristics
of these data sets, these set by the assembler and those you can
override, are shown in Tables 1 and 2.

4

Assembler H Programmer's Guide

c

0;
. .,,)

SYSIN
SYSUTl

SYSLIB

Assembler H
(overflow)

(MACRO and
COpy Calls)

SYSPRINT

SYSPUNCH

JI

'(Object Modules)
(80 Character Card I mage)

Fiqure 1.

Assembler H Data Sets

o
Using The Assembler

5

DD Name SYSUT 1

The assembler uses this utility data set as an intermediate external
storage device when ~rocessing the source program. The input/output
device assiqned to this data set must be a direct access device. The
assembler does not support a multi-volume utility data set.

c

DD Name SYSIN

This data set contains the input to the assembler -- the source
staterr.ents to te ~rocessed. The input/output device assigned to this
data set may be either the device transmitting the input stream, or
another sequential input device that you have designated. The DD
statement describing this data set appears in the input stream. The
IEM-su~plied ~rocedures de net contain this statement.

DD Name SYSLIB

From this data set, the assembler obtains macro definitions and
assErrtler-languagE stateITents to be called by the COpy assembler
instruction.
It is a partitioned data set; each macro definition or
sequence of asserrtler-language statements is a separate member, with
the member name being the macro instruction mnerronic or COpy code name.
ThE data set rray be defined as SYS1.MACLIB or your private macro
definition or COpy library. SYS1.MACLIB contains macro definitions
for the system macro instructions provided by IBM. Your private library
may te concatenated with SYS1.MACLIB. The two libraries must have
the same logical record length (80 bytes), but the blocking factors
may be different. 'The OD statement for the library with the largest
blocksize must appear first in the job control language for the assembly
(that is, bEfore any other library DD statements). The Job Control
Lanquage publication, Crder Number GC28-6539, explains the concatenation
of data sets.

DD Name SYSPRINT

'This data set is used by the assembler to produce a listing.
Output
may be directed to a printer, magnetic tape, or direct-access storage
device. The assembler uses the machine code carriage-control characters
for this data set.

DD Name SYSPUNCH

The assembler uses this data set to produce the object module. The
input/output unit assigned to this data set may be either a card punch
or an intermediate storage device capable of sequential access.

(
;

6

Assembler H Programmer's Guide

'"
.;\
",.

Page of SC26-3759-0
Revised February 15, 1971
By TNL SN33-8095

o

DD Name SYSLIN

This is a direct-access storage device, magnetic tape, or card punch
data set used ty the assembler. It contains the same output text as
SYSPUNCH. It is used as input for the linkage editor.
eTatle 1.

Assemcler Data Set Characteristics

Data Set

SYSUT1

SYSPUNCH

SYSPRINT

SYSLIN

SYSIN

SYSLIB

Access Method

BSAM

BSAM

BSAM

BSAM

BSAM

BPAM

Logical Record
Length (LRECL)

fixed at
BLKSIZE

fixed at

fixed at
121

fixed at

fixed at

fixed at

80

80

80

80

CD

CD

CD

CD

CD

Block Size
(BLKSIZE)

(0

Record Format
(RECFM)

0

Number of channel
Programs (NCP)

1

00 00 00 00 00
0

0

0

0

Not
Applicable

You can specify a blocksize (BLKSIZE) between 2000 and 5100 bytes in the DO statement or in the
data set label. BLKSIZE should be a multiple of 8; if it is not, it will be rounded to the next lower multiple
of 8. If you do not specify BLKSIZE, the assembler sets a default blocksize based on the device used for
SYSUT1 as follows:
5016 bytes
2301 Drum
4984 bytes
2302 Disk
4888 bytes
2303 Drum
2305 Drum
4280 bytes
model 14688 bytes
2305 Drum
model 2
3624 bytes
2311 Disk
3520 bytes
2314 Disk

o

3330 Disk

4208 bytes

The Storage Estimates chapter of the System Information manual, Order Number SC26-3768, discusses the
reasons for changing the default blocksize.
If specified, BLKSIZE must equal LRECL or a multiple of LRECL. If BLKSIZE is not specified, it is set equal
to LRECL.

CD

o

o
o
o

BLKSIZE be specified in the DO statement or the data set label as a multiple of LRECL.
Set by the assembler to F.
Set by the assembler to FM.
You may specify B, S, or T.
You can specify the number of channel programs (NCP) used by any assembler data set except SYSUT1.
and SYSLIB. The NCP of SYSUT1 is fixed at 1. The assembler, however, can change your NCP specification
under certain conditions. Table 2 shows how NCP is calculated. Note that if the NCP is greater than 2, chained
I/O request scheduling is set by the assembler.

o
Using The Assembler

7

Table 2.

c

Number of Channel Program (NCP) Selection

Unit record device

X

SYSPR INT data set

X

SYSI N data set

X

X

X

X

NCP set by assembler is larger
of 240/BLKSIZE or 2

X

X

X

X

X
X

X

X

X

X

X

X

X

X

X
X

X

X

X

X
X

X

X
X

X

X

X

X

1

NCP set by assembler is larger
of 8OO/BLKSIZE or 2

X

X

2-99

NCP set by assembler is
larger of 1210/BLKSIZE
or 2

X

X

X

NCP not specified by user

X

X

X

=
=

X

X

SYSLIN or SYSPUNCH
data set

NCP specified by user

X

X

X

X

X

X

X

X

X

X

NCP is set to number specified by the user

X

X

X

X

X

X

X

X

X

Note: If the NCP is greater than two. chained I/O scheduling is set by the assembler.

Return Codes
Assembler H issues return codes for use with the COND parameter of
the JOB and EXEC jct cont~cl language statements. The COND parameter
enables you to skip or execute a jot step depending on the results
(indicated by the return code) of a previous job step.
It is explained
in the Job Control Language publication, Order Numter GC28-6539.
~he return code issued by the assembler is the highest severity code
that is associated with any error detected in the assembly or with
any MNCTE message produced ty the source prograrr or macro instructions.
See the Asserrble~ H Messages book, Order Number SC26-3770, for a listing
of the assembler errors and their severity codes.

8

Assembler HProgrammer's Guide

c'

Cataloged Procedures
Often the same set of job centrol statements is used over and over
again (for example, to specify the compilation, link-editing, and
execution cf many different programs). '10 save programming time and
to reduce the possiblity of error, sets of standard series of EXEC
and DD stateff;ents can be prepared once and 'cataloged' in a system
library. Such a set of statements is termed a cataloged procedure
and can be invcked by one of the following statements:
//stepname

EXEC

procname

//stepname

EXEC

PRO c= proc name

The specified ~recedure is read from the procedure library
(SYS1.PROCLIE) and merged with the job control statements that follow
this EXEC statement.
The System Prcgrarr·ner's Guide, Order Number GC28-6550, tells how to
place cataloged procedures in the procedure library.
This section describes four IBM-provided cataloged procedures: a
procedure for assembling (ASMHC), a procedure for assembling and linkediting (ASMHCL), a procedure for assembling, link-editing, and
executing (ASMHCLG), and a procedure for asserrJ:ling and loader-executing
(ASMHCG) •

Cataloged Procedure for Assembly (ASMHC)

o

This procedure consists of one jot step: asserrbly. The name ASMHC
must be used to call this procedure. The result of execution is an
otject module, in ~unched card form, and an assembler listing.
In the following example, input enters via the input stream. An example
of the statements entered in the input stream to use this prccedure
is:

/Ijobname

JOB

Ilstepname

EXEC PROC=ASMHC

IIC.SYSIN

DO
I
I

source program statements
I
I

/* (delimiter statement)

The statements of the ASMHC rrocedure are read from the procedure
litrarv and merged into the input stream.

o

Figure 2 shows the statements that make up the ASMHC procedure.

Using The Assembler

9

EXEC

PGM=I EV90,R EG ION=200K

2 //SYSLIB

DO

DSN=SYS1.MACLI B,DISP=SHR

3 //SYSUT1

DO

UNIT=(SYSDA,SEP=SYSLlB),SPACE=(CYL,(10,5)),DSN=&SYSUT1

4 //SYSPUNCH

DO

SYSOUT=B,DCB=(BLKSIZE=800),SPACE=(CYL,(5,5,O))

5 //SYSPRINT

DO

SYSOUT=A,DCB=(B LKSI ZE=3509) ,UN IT=(,SEP=(SYSUT1 ,SYSPUNCH))

//C

(

................
.. .. .. .. .. .. .. ..
PARM= or COND= parameters may be added to this statement by the EXEC statement that calls the procedure
(see "Overriding Statements in cataloged Procedures"). The system name IEV90 identifies Assembler H.
2 This statement identifies the macro library data set. The data set name SYS1.MACLI B is an I BM designation.
3 This statement specifies the assembler utility data set. The device classname used here, SYSDA, represents a
direct-access unit. The I/O unit assigned to this name is specified by the installation when the operating
system is generated. A unit name such as 2311 may be substituted for SYSDA.
4 This statement describes the data set that will contain the object module produced by the assembler.
5 This statement defInes the standard system output class, SYSOUT=A, as the destination for the assembler listing.

Figure 2.

Cataloged Procedure for Assembly (ASMHC)

Cataloged Procedure for Assembly and Link-Editing (ASMHCL)

This procedure consists of two job steps: assembly and link-editing.
The narre ASMHCI must be used to call this procedure. Execution of
this procedure results in the production of an assembler listing, a
linkage editor listing, and a load module.
The following exaIq:::le illustrates input to the assembler via the input
job stream.
SYSLIN contains the output from the assembly step and
the in~ut to the linkage edit step.
It can be concatenated with
addit icnal input tc the linkage editor a s shown in the e.xample. This
additional input can be linkage editor control statements or other
object rrodules.
An example of the statements entered in the input stream to use this
procedure is:
//jobname
//stepname
//C.SYSIN

JOB
EXEC PROC=ASMHCL
DO
*
I
I
I
sou rce program statements
I
I
I

/*
DO
*
I
I
I
object modu Ie or
linkage editor
control statements

//L.SYSIN

/*

10

Assembler H Programmer's Guide

necessary only if linkage
editor is to combine modules
or read linkage editor control
information from the job stream

c

Figure 3 shows the statements that make up the ASMHCL procedure.
those stateroents not previcusly discussed are explained.

Only

~\

\

11......./.

IIC

EXEC

PGM=IEV90,PARM=LOAD,REGION=200K

IISYSLIB

DO

DSN=SYS1.MACLI B,D ISP=SH R

IISYSUTl

DO

UNIT=(SYSDA,SEP=SYSLlB),SPACE=(CYL,(10,5»,DSN=&SYSUTl

IISYSPUNCH

DO

SYSOUT=B,DCB=(BLKSIZE=800),SPACE=(CYL,(5,5,O»

IISYSPRINT

DO

SYSOUT=A,DCB=(BLKSIZE=3509),UNIT=(,SEP=(SYSUT1,SYSPUNCH»

IISYSLIN

DO

DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5,O»,
DCB=(B LKSI ZE=400), DSN=&&LOADSET

2 IlL

EXEC

PGM=IEWL,PARM=,'MAP,LET,LlST,NCAL',REGION=96K,COND=(8,LT,C)

3 IISYSLIN

DO

DSN=&&LOADSET,DISP=(OLD,DELETE)

4 II

DO

DDNAME=SYSIN

5 IISYSLMOD

DO

DISP=(,?ASS),UNIT=SYSDA,SPACE=(CYL,(2,1,2»,DSN=&GOSET(GO)

6 IISYSUTl

DO

UNIT=SYSDA,SPACE=(CYL,(3,2»,DSN=&SYSUTl

7 IISYSPRINT

DO

SYSOUT=A,DCB=(R ECF M=F B,B LKSI ZE=3509)

II

*

--------

o

In this procedure the SYSLIN DO statement describes a temporary data set - - the object module - - which is to be
passed to the linkage editor.
2 This statement initiates linkage editor execution. The linkage editor options in the PARM=field cause the linkage
editor to produce a cross-reference table, a module map, and a list of all control statements processed by the linkage
editor. The NCAL option suppresses the automatic library call function of the linkage editor.
3 This statement identifies the linkage editor input data set as the same one (SYSLlN) produced as output from the
assembler.
4 This statement is used to concatenate any input to the linkage editor from the input stream (object decks and/or
linkage editor control statements) with the input from the assembler.
5 This statement specifies the linkage-editor output data set (the load module). As specified, the data set will be
deleted at the end of the job. If it is desired to retain the load module, the DSN parameter must be respecified
and a DISP parameter added. See "Overriding Statements in Cataloged Procedures. " If the output of the linkage
editor is to be retained, the DSN parameter must specify a library name and member name where the load
module is to be placed. The DISP parameter must specify either KEEP or CATLG.
6 This statement specifies the utility data set for the linkage editor.
7 This statement identifies the standard output class as the destination for the linkage editor listing.

~~~~------------~

or Assembling and link-Editing

o
Using The Assembler

11

Cataloged Procedure for Assembly, Link-Editing, and Execution (ASMHCLG)

This ~rocedure consists of three job steps:
and execution.

asserrtly, link-editing,

Fiqure 4 shows the staterrents tha t make up the ASMHCIG procedure.
Cnlv those statements not previously discussed are explained in the
f iqure.

c

The naroe ASMHCLG must te used to call this procedure.
An assembler
listing, an object deck, and a linkage editor listing are prcduced.
'Ihe staterr.ents entered in the irl1:ut stream to use this procedure are:

//jobname
IIstepname
IIC.SYSIN

JOB
EXEC PROC=ASMHCLG

DO

*

I
I
I

source program statements
I
I
I

/*
IIL.SYSI N

DO

*

I
I
I

object module or
linkage editor
control statements
I
I
/*
IIG.ddname
DO (parameters)
DO (parameters)
IIG.ddname
DD *
IIG.ddname
I
I
I

necessary only if linkage
editor is to combine modules
or read linkage editor control
information from the job stream

only if necessary

problem program input
I
I

c
12

Assembler H Programmer's Guide

~

IIC

EXEC

PGM=IEV90,PARM=LOAD,REGION=200K

IISYSLIB

DO

DSN=SYS1.MACLlB,DISP=SHR

IISYSUTl

DO

UNIT=(SYSDA,SEP=SYSLlB),SPACE=(CYL,(10,5)),DSN=&SYSUTl

IISYSPUNCH

DO

SYSOUT=B,DCB=(B LKSI ZE=800) ,SPACE=(CY L,(5,5,O))

IISYSPRINT

DO

SYSOUT=A,DCB=(B LKSI ZE=3509) ,UN IT=(,SEP=(SYSUTl ,SYSPUNCH))

IISYSLIN

DO

DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5,O)),

j
1iWY.

II

*

DCB=(B LKSI ZE=400) ,DSN=&&LOADSET

IlL

EXEC

PGM=IEWL,PARM='MAP,LET,LlST,NCAL',REGION=96K,COND=(8,LT,C)

IISYSLIN

DO

DSN=&&LOADSET,DISP=(O LD ,DE LETE)

II

DO

DDNAME=SYSIN

2 IISYSLMOD

DO

DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(2,1 ,2)) ,DSN=&GOSET(GO)

IISYSUTl

DO

UN IT=SYSDA,SPACE=(CYL,(3,2)) ,DSN=&SYSUT1

IISYSPRINT

DO

SYSOUT=A,DCB=(RECFM=FB,BLKSIZE=3509)

EXEC

PGM=*.L.SYSLMOD,COND= ((8,LT,C),(4,LT,L))

3 IIG
........................
... ...

- ...............

The LET linkage-editor option specified in this statement causes the linkage editor to mark the load module as
executable even though errors were encountered during processing.
2 The output of the linkage editor is specified as a member of a temporary data set, residing on a direct-access
device, and is to be passed to a succeeding job step.

o

3 This statement initiates execution of the assembled and linkage edited program. The notation * .L.SYSLMOD
identifies the program to be executed as being in the data set described in job step L by ,the DO statement
named SYSLMOD.

Fiqure 4.

d

or Assembly, Link-Editing and

Execution

Cataloged Procedure for Assembly and Loader-Execution (ASMHCG)

This procedure consists of two job steps, asserrtly and loader-execution.
Loader-execution is a comtination of link-editing and loading the
proqram for executien. Lead modules for program libraries are not
produced.

o
Using The Assembler

13

IIC

EXEC

PGM=IEV90,PARM=LOAD,REGION=200K

IISYSLIB

DD

DSN=SYS1.MACLlB,DISP=SHR

IISYSUTl

DD

UNIT=(SYSDA,SEP=SYSLlB),SPACE=(CYL,(10,5)),DSN=&SYSUTl

IISYSPUNCH

DD

SYSOUT=B,DCB=(B lKSI ZE=800) ,SPACE=(CY L,(5,5,O))

IISYSPRINT

DD

SYSOUT=A,DCB=(B LKSI ZE=3509) ,UN IT=(,SEP=(SYSUTl ,SYSPUNCH))

IISYSLIN

DD

DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5,O)),

II

C

DCB=(B LKSI ZE=400) ,DSN=&& LOADSET

IIG
2 IISYSLIN

II
3 IISYSLOUT

EXEC

PGM=LOADER,PARM='MAP,LET,PRINT,NOCALL'

DD

DSN=&&LOADSET,DISP=(OLD,DELETE)

DD

DDNAME=SYSIN

DD

SYSOUT=A

------.......................

...

This statement initiates loader-execution. The loader options in the PARM= field cause the loader to produce a
map and print the map and diagnostics. The NOCALL option is the same as NCAL for the linkage editor and the
LET option is the same as for the linkage editor.
2 This statement defines the loader input data set as the same one produced as output by the assembler.
3 This statement identifies the standard output class as the destination for the loader listing.

Fiqure 5.

Calalcged Procedure for Assembly and Loader-Execution
(ASMHCG)

Fiqure 5 shows the statements that make up the ASMHCG procedure. Only
those stateIr.ents net ~revieusly discussed are explained in the figure ..
The name A&~HCG must be used to call this procedure.
leader listings are produced.

Assembler and

'The statements entered in the input stream to use this prccedure are:

Iljobname
Iistepname
IIC.SYSIN

JOB
EXEC PROC=ASMHCG
DD
*

I
I
I
source program
I
I

/*
IIG.ddname
IIG.ddname
IIG.ddname

DD
(parameters)
(parameters)
DD
DD
*
I
I
I
problem program input
I
I

/*

14

Assembler H Programmer's Guide

}

only if necessary

c

Overriding Statements in Cataloged Procedures

Any parameter in a catalcged procedure can be overridden except the
PGM= parameter in the EXEC statement. Such overriding of statements
or fields is effective only for the dura tion of the job step in which
the statements appear. The statements, as stored in the procedure
litxary of tte systerr, remain unchanged.
overriding for the purposes of respecification, addition, or
nullification is accomplished by including in the input strearr
statements containing the desired changes and identifying the statements
to be overridden.

EXEC Statements

Any EXEC parameter (except PGM) can be overridden.
For example, the
PARM= and COND= parameters can be added or, if present, respecified
by including in the EXEC statement calling the procedure the notation
PARM. stepname=, or COND. stepname=, followed by the desired pararreters.
"ste}:name" identifies the EXEC statement within the procedure to which
the modification applies.
If the procedure ccnsists cf more than one jot step, a
cr COND.prccstepname= parameter may be entered for
each step. The entries must be in order, (PARM .• procstep1 =,
PARM.procstep2=, etc.).
PARM.~rocste~name=

c

DD Statements

All r::arameters in the operand field of DD staterrents may be cverridden
ty including in the in~ut Etream (following the EXEC card calling the
procedure) a DD statement with the notation //procstepname.ddname in
the name field. "Procstepname" refers to the job step in which the
statement identified by "ddname" appears.
Note:
If rrcre than one DD statement in a procedure is to be overridden,
the overriding statements must be in the same order as the statements
in the procedu·re.

Examples

In the assembly procedure ASMEC (Figure 2) , the producticn of a punched
oeject deck could be suppreEsed and the UNIT= and SPACE= parameters
of data set SYSU71 respecified, by including the following statements
in the input stream:
//stepname

EXEC

II
IIC.SYSUT1

DO

II
IIC.SYSIN

PROC=ASMHC,

X

PARM.C=NODECK
UNIT=2311,

X

SPACE= (200,(300,40))
DO

O
'.··!I

,

••1

Using the Assembler

15

In procedure ASMHCIG (Figure 4), suppressing production of an assembler
listinq and acding the COND= ~arameter to the EXEC statement, which
specifies execution of the linkage editor, may be desired.
In this
case, the EXEC statement in the input stream would appear as follows:

Ilstepname
II
II

EXEC

PROC=ASMHCLG,

X

PARM.C=(NOLlST,LOAD),

X

c

COND.L=(8,LT,stepname.C)

Note: Overriding the LIST parameter effectively deletes the PARM=LOAD.
PARM=LCAD must be repeated in the override statement.
For current executicn cf ~rocedure ASMHCLG, no assembler listing would
be produced, and execution of the linkage editor job step //L would
be su~pressed if the return code issued by the asserrbler (step C) were
greater than 8. 'The fcllowing listing shows how to use the procedure
ASMHCL (Figure 3) to:
.
1.

Read input from a non-lateled 9-track tape on unit 2B2 that has
a stancard blocking factcr cf 10.

2.

Put the output listing on a tape labeled VOIIL=TAPE10, with a
data set name of FRCG1 and a blocking factor of 5.

3.

Block the SYSLIN out~ut of the assembler and use it as input to
the linkage editor with a blocking factor of 10.

4.

Link-edit the module only if there are no errcrs in the assembler
(COND=O) •

5.

Link-edit onto a previously allocated and cataloged data set
USER.LIBRARY with a rrember name of FROG.

Iljobname
Ilstepname
II
IIC.SYSPR I NT
II
IIC.SYSLIN
IIC.SYSIN
II
IIL.SYSIN

JOB

DD

DCB=stepname.C.SYSLI N

IIL.SYSLMOD

DD

DSNAME=USER.LlBRARY(PROG),DISP=OLD

EXEC

PROC=ASMHCL,

X

COND.L=(O,NE,stepname.C)
DD

DSNAME=PROG1,UNIT=TAPE,

X

VOLUME=SER=TAPE10,DCB=(BLKSIZE=605)
DD

DCB=(B LKSIZE=-800)

DD

UN IT=282,LABE L=(,N L),

X

DCB=(RECFM=FBS,BLKSIZE=800)

1*

Note:
The order cf appearance of overriding DD names for job step
C corresponds to the order of DD names in the procedure;" that is,
SYEFRIN'I precedes SYSIIN within step C. The DD name C.SYSIN was placed
last because SYSIN dces net
. ..
C. These points
are covered in the section "Using Cataloged
. n the Job
Control Language rranual, Or er Number

o
16

Assembler H

Prog~ammer's

Guide

The following exarn~le shows assembly of two programs, link-editing
of the two assemblies into one load module, and execution of the load
module. The input stream appears as follows:

Ilstepnamel

EXEC

/IC.SYSLIN

DO

II
II
IIC.SYSIN

PROC=ASMHC,PARM.C='LOAD'
DSNAME=&LOADSET ,UNIT=SYSSQ,

X

SPACE=(BO,(100,50)),

X

DISP=(MOD ,PASS) ,DCB=(B LKSI ZE=800)
DO

*

source program 1 statements
I

/*
Ilstepname2

EXEC

PROC=ASMHCLG

IIC.SYSLIN

DO

DCB=(BLKSIZE=·BOO),DISP=(MOD,PASS)

//C.SYSIN

DO

*

source program 2 statements
I
I

/*

o

IIL.SYSLIN

DO

IIL.SYSIN

DO

DCB=BLKSIZE=800

*

ENTRY

PROG

/*
IIG.ddname

dd cards for G step

The Job Control Language rranual, Order Number::::28-6539, and System
Programmer's Guide, Order Number C28-6550, provide additional
description cf cverriding techniques.

o
Using The Assembler

17

This page intentionally left blank.

c

18

Assembler H Programmer's Guide

Assem bIer Listing

!he assembler H listing consists of up to five sections, ordered as
follows:
•

E~ternal

symbol dictionary

•

Source and object program

•

Relocation dictionary

•

Symbol and literal cross reference

•

Diagnostic cress reference and assembler summary

Figure 6 shows each section of the listing. Each item marked with
a circled number is explained in the following section.

o

o
Assembler Listing

19

\ PRIME

PC

EXSYM
IOlOOP
COMSECT
EXDMY
WRKFlDS

o

PRIME

IiJ

TYPE

ER
lD
eM
XD
SO

AOOR

0001
000050
000018
000090

SAMPLE LISTING DESCRIPTIUN

PAGE

(0

@

@

lOC

OBJECT CODE

MORI AODR?

SHU

(JOOOOO

7
H
9
10

STM
BAlR
USING
ST
lA

13
14

L
R5,=AI EXSYMI
PRINT NOGEN
(JPEN
IINDCB"OUTOCij,IOU1PUTII

23
24 IOlOOP
25+ IOlOOP
26+
27+
28+

PRINT
GET
LA
LA
l
BAlR

PRIME

@

@

POS.ID

REL. ID

FLAGS

OOlll
0001
0001
0001

0001
0001
0002
0004

GEN
INIJCB,INBUF
l,INIJCB
0, INOUf
15,48 10 ,II
14,15

LOAD
LOAD
lOAD
LI t.K

PARAMETER REG 1
PARAMETER REG 0
GET ROUTINE ADDR.
TO GET ROUTINE

..

08
08
OC
2C

PAGE

ASM H V 01 1l.52 05/19/10

AOtlRESS
000019
000010
000208
DUG 140

PAGE

CROSS REFERENCE

@
LEN

@ @

VALUE

DEFN

02-IHBIN
02-IHBIN
01-GET
01-GET

@

PRIME

SYMIIOl

14,120121131
12,(J
",12
13, SAVE+4
10, SAUE

RFLOCATllIN DICTIONARY

@

@

EXrRN EXSYM
ENTRY IOlOOP
EQU
5

OI}OFC
00000
11
UNDEFINI:O SYMBOL
00208
12

00144
00058
00030

2

@

ASM H VOl 11.52 05119110

SOURCE STATEMENT
CS~CT

OOOOC

4110 CBE
4100 C052
58FO 1030
05H

@

@

2
3
4
5 R5

00(J00005

000022
000026
00002A
00002E

c

00020C

@

(J(J(JOOO 90fC DOOC
000004 05CO
00000006
000006 5000 COFb
OOOOOA 0000 ')000
I EV044
** .. ERR[)R
OOOOOE 5850 C202

1

ASM H V 01 11.52 05/19110

lO If)

lENGTH

0001 000000
0002
000022
0003 000000
0004 000003
0005 000210

PAGE

EXTERNAL SYMBOL DICTIONARY

o o

000

CD

SYMBOL

~

ASM H V 01

REFERENCES

U.52 05119110

COMSECT
00001 00000000
0161
EXDMY
00001 00000000
01(>9
0052
EXSYM
00001
0003
0174
EXTNlDUMYSCTN
00004
000140
0052
I NIIUF
00004
000058
0049
0026
0033
INDca
00004
000144
0058
0018
0025
IOLOOP
00004
0001)22
0025
0004
0039
OUTSUF
00004
0000A8
OOSO
0033
0036
OUTBUF
00001 00000000
0172 ****DlJPLICATE**".
OUTDCII
00004
00U1A4
0115
0020
0035
R5
00001 00000005
0005
0012
0032
SAUE
"***UNIlEF INED* .... *
0011
SAVE
00004
0000F8
0051
0010
0041
WRKFlDS
00001 00000210
0170
=AIEXSYM)
00004
000208
0174
0012

oaoooooo

OIAGN(JST IC CROSS REFERENC!' ANfl ASSEMBLER

PRIME

SlI~MARY

PAGE

ASM H V 01 11.52 05/19170
THE FOLLOWING STATEMENTS WERE HAGGE~
00011 00172
2 STATEMENTS FlAGGEO IN THIS ASSEMALY

R WAS HIGHEST

OVERR III I NG PAR A.~ETERSNOD ECK, MUL T, S YSPARM=SAMPLE.PRUGRAt~
OPTIONS FOR THIS'ASSE'IBLY
NUDECK, NOLtJAfl, LIST, XREF, NORE~JT, NOTEST, /1UlT, ALGN, ESO,
NO OVERR Illl NG 110 NAMES
48 CARtJS FRUM SYS 1 N
151 LINES DUTPUT

Fiqure 6.

SEVE~ITY

CODE

RlD, LINECNT= 55,

MSGLEVEl=

0,

SYSPARM=SAMPlE*PROGRAM

1575 CAR')S FROM SYSLIB
o CAlWS OUTPUT

Assembler H Listing

c
20

Assembler H Programmer's Guide

External Symbol Dictionary (ESD)
This section of the listing contains the external symbol dictionary
inforrr.ation ~ass€d to the linkage editor or loader in the object module.
The entries describe the centrol sections, external references, and
entry ~oints in the asserrbled program. There are six types of entries,
shc~n in Table 3 along with their associated fields.
The circled
numters refer to the ccrres~ending headings in the sample listing
(Fiqure 6). The Xs indicate entries accompanying each tYfe designation.
1atle 3.

TYf€S of ESD Entries

Q)

®

®

CD

@

®

SYMBOL
X
X
X
-

TYPE
SO
LO
ER

ID
X

ADDR
X
X

LENGTH
X

LDID
X

X
X
X

X
X
X

PC

X

eM

X

XO

-

X
X
X
X

-

-

-

-

-

The name of every external dummy section, control section, entry
point, and external symbol.
The type designatcr fcr the entry, as shown in the table.
type designators are defined as:

The

se -- Ccntrel section definition.

The symbol appeared in the
name field of a CSECT or START statement.

LD -- Label definition. The symbol appeared as the cperand of
an ENTRY staterrent.
ER -- External reference. The symbol appeared as the oferand of
an EXTRN statement, or was declared as a V-tyfe address
constant.
FC -- Unnamed control section definition (frivate code).
A CSECT
or START statement that commences a control section does
nct have a syrrbcl in the name field, or a .control section
is commenced (by any instruction which affects the location
counter) before a CSECT or START is encountered.
CM -- Cerorron centrol section definition.
the name field of a COM statement.

The symbol appeared in

XD -- External dUff,my section. The symt:ol appeared in the r.arre
field of a DXD statement or a Q-type address constant.
(The external dummy section is called a pseudo register
in the Linkage Editor and Loader manual, Order Number
GC28 -6 538. )

o
Assembler Listing

21

o

The
The
the
ESD

external symbol dictionary identification number (ESDID).
numter is a unique four-digit hexadecimal number identifying
entry.
It is used in combination with the LD entry of the
and in the relocation dictionary for referencing the ESD.

The address of the symbol (in hexadecimal notation) for SD-and
LD-type entries, and blanks forER-type entries. For PC- and
CM-type entries, it indicates the beginning address of the control
section.
For xL-type entries, it indicates the alignment by
printir.g a number one less than the number of bytes in the unit
of alignment.
For example, 7 indicates doutleword alignment.

c

The asserrtled length, in bytes, of the control section (in
hexadecimal nctaticn) •
For an I.D ... type entry, the ESLID of the control secticn in which
the syrntol was defined.

Source and Object Program
This section of the listir.g documents the source statements and the
resulting object program.
The one to eight-character deck identification, if any. It is
obtained from the name field of the first named TITLE statement.
The assembler prints the deck identification and date (item 16)
On every page of the listing.

CD
CD
@

The information taken from the operand field of a TITLE statement.
The listing page number.
The assembled address (in hexadecimal notation)
code.

of the object

•

For ORG statements, the location-counter value before the
CRG is placed in the location column and the location counter
value after the ORG is placed in the otject code field.

•

If the END staterr.ent contains an operand, the operand value
(transfer addres s) aJ;pears in the location field (LOC).

•

In the case of LCCTR, COM, CSECT, and DSECT staterr.ents, the
lccaticn field ccntains the current address of these control
sections.

•

In the case of EXTRN, ENTRY, and DXD instructions, the
location field ar.d object code field are blank.

•

For a USING statement, the location field ccntains the value
of the first oFerand. It is four bytes long.

•

For LTORG staterrents, the location field contains the location
assigned to the literal pool.

•

For an EQU staterrent, the location field contains the value
assigned.
It is four bytes long.

c
22

Assembler H Programmer's Guide

D,
' . . ,"

The otjEct code ~roduced by the source statement.
The entries
are al~ays left-justified.
The notation is hExadecirral. Entries
arE machinE instructicns or assemtled constants. Machine
instructions arE l=rinted in full with a blank inserted after every
four digits (two bytes).
Only the first eight bytes of a constant
will appear in the listing if PRINT NODATA is in effect, unless
the statement has continuation cards.
The entire constant appears
if PRINT r:ATA is in effect.
(See the PRIN'I asserrbler instruction
in the AssErrtlEr Language publication, Order Number GC28-6514.)
Effective addresses (each the result of adding together a base
register value and a displacement value) :
The field headed ADr:R1 contains the effective address for
the first operand cf an SS instruction.
!he field headed ADDR2 contains the effective address of
the last operand of any instruction referencing storage.
Eoth addrEss fields contain six digits; however, if the high-order
digit is a zero, it is not printed.
The statement numter.
A plus sign (+) to the right of the number
indicates ttat the staterrent. was generated as the result of macro
call processing.
An unnumbered statement with a plus sign (+)
is the result cf cpen code substitution.
The source program statement.
section of the listing:

o

The following items

a~ply

to this

•

Source staterrents are listed, including those brought into
the program ty the copy assembler instruction, and including
macro definiticns submitted ~ith the main program for
assembly.
Listing control instructions are not printed,
except for PPIN!, which is always printed.

•

MACFC definitions ottained frOID SYSLIB are not listed unless
the rracrc definition is included in the source program by
rr.Eans of a COPY staten:-ent.

•

The statements generated as the result of a macro call follow
the rracrc call iT. the listing unless PRINT NOGEN is in effect.

•

Asserrtler and machine instructions in the source program
that contain variatle symbols are listed twice:
as they
appEar in the scurce input, and with values substituted for
the variatle symtols.

•

All error diagnostic ·messages appear in line except those
suppressed by the MSGLEVEL option.
The "Assembler Diagnostics
Facili ties" section describes how error rressages and MNOTEs
arE tandled.

•

Literals that have not been assigned locations by LTORG
staterr.ents appear in the listing following the END statement.
Literals are identified by the equals sign (=) preceding
them.

•

Whenever possible, a generated statement is printed in the
same format as the corresponding macro-definition (model)
statement.
The starting columns of the operation, o~erand,

o
Assembler Listing

23

and comments fields are preserved unless they are dis~laced
ty field subsitution, as shown in the following exarr.~le:
&C
SETC
'ABCDEFGHIJK'
&C
LA
1,4
ABCDEFGHIJK LA 1,4

Source Staterrents:
Generated Staten.ent:

It is possible fer a generated statement to occupy ten or more
continuation lines on the listing. In this way generated
statements are unlike source statements, which are restricted
to nine continuation lines.

@
@
@

c

The versicn identifier of Assembler H.
The current date (data run is made).
The identification-sequence field from the source staterrent.
For a macro-generated statement, this field contains information
identifying the origin of the statement,. The first two colwnns
define the level of the macro call.

For a lil:rary IT,acre call, the last five columns contain the first five
characters of the macro nane. For a macro whose definition is in the
source program (including one read by a COpy stateITent), the last five
characters centain the line number of the model statement in the
definition from which the generated statement is derived. This
inforrration can be an irr:~ortant diagnostic aid in analyzing output
dealing with macro calls within macro calls.

Relocation Dictionary
This section of the listing contains the re.location dictionary
inforrr,ation J;assed to the linkage edi tor in the object module. The
entries describe the address constants in the asseIT.bled program that
are affected by relccatien.

o

The external symbol dictionary Ie number assigned to the ESD entry
for the centrel section in which the address constant is used
as an o~erand.
The external symbol dictionary ID number assigned tc the ESD entry
for the ccntrel sectien in which the referenced symbol is defined.
The two-digit hexadecimal number represented by the characters
in this field is interpreted as follows:
•

First Digit. A zero indicates that the entry describes an
A-type or Y-type address constant. A one indicates that
the entry describes a v-type address constant. A two
indicates that the entry describes a Q-type address constant.
A three descrires a CXD entry.

•

Second Digit. The first three bits of this digit indicate
the length of the constant and whether the base should be
added or subtracted:
Bits 0 and 1
00 = 1 byte
01 = 2 bytes

Bit 2
0=+

Bit 3
Always 0

1 = -

o
24

Assembler H Programmer's Guide

10
11

o

3 bytes
4 l:ytes

The assenl:led address of the field where the address constant
is stored.

Cross Reference
This section of the listing information concerns symbols and literals
which are defined and used in the progzam.

@
@

The symbols or literals.
The length (in decimal notation), in bytes, of the field
represented l:y the syrrbcl.
Either the address the symbol or literal represents, or a value
to which the symbol is equated. The value is three bytes long,
except for the following, which are four bytes long: CSECT,
DSECT, START, COM, :CXC, EQU, LOCTR, EXTRN, and a dUI;licate symbol.
The nurr.l:er of the statement in which the syml:ol or literal was
defined.
The statement numbers of statements in which the syrol:ol or litezal
a~pears as an c~erand.
In the case of a duplicate symbol, the
assembler fills this column with the message:

o

****CUPLICATE****
The following notes apply to the cross-reference sEction:
•

Symbols appearing in V-type address constants do not appear in
the cress-reference listing.

•

Cross-reference entries for symbols used in a literal refer to
the asserrtled literal in the literal ~ool. Look up the literals
in the cross reference to find where the symbols are used.

•

A PRINT OFF listing control instruction does not affect the
production of the cross-reference section of the listing.

•

In the case of an undefined symbol, the assembler fills fields
23, 24, and 25 with tte message:
****UNDEFINED****.

Diagnostic Cross Reference and Assembler Summary
The staten,ent number of each sta tement flagged with an error
message or MNOTE appears in this list. ThE number of statenents
flagged and the highest non-zero severity code encountered is
also printed. The highest severity code is equal to the assembler
return code.

o
Assembler Listing

25

If no errors are enccuntered, the following statement is printed:
NO S'IA'IEMENTS FLAGGED IN 'IHIS ASSEMBLY
See the section "E,rror :Ciagnostics" for a ccmplete discussion
of how error nessages and MNOTEs are handled.

c

A list of the options in effect for this assembly is printed.
The options specified b:y the programmer in the PARM field to
override the assembler default options are also printed.
If the assembler has teen called by a protlero program (See Appendix
:C) and any standard (default) DD names have been overriden, both
the default :C:C names and the overriding DD names are listed.
Otherwise, this statement appears:
NO OVERRIDING DD NAMES

'Ihe assembler prints the number of records read froIT SYSIN and
SYSL IB and the nurrber of records ~ri tten on SYSPUNCH. The
assembler also prints the number of lines written on SYSPRIN'I.
This is a count of the actual number of 121-byte records generated
by the assembler; it may be less than the total number of printed
and tlank lines a~~earir.g on the listing if the SPACE n assembler
instruction is used. For a SPACE n that does not cause an eject,
the assemtler inserts n blank lines in the listing by generating
n/3 blank 121-byte records -- rounded to the next lower integer
if a fraction results (for example, for a SPACE 2, no blank records
are generated). The assembler does not generate a blank record
tc force a page eject.

c
26

Assembler H Programmer's Guide

Assembler Diagnostic Facilities

o

1he diaqnostic facilities for Assembler E include diagnostic rres~ges
for asserrtly errors, diagncstic or explanatory messages issued by the
source program or by macro definitions (MNOTEs), a macro trace and
dump facility (MHELP), and messages and dumps issued by the assembler
in case it terminates abnormally.
This section briefly describes these facilities.
The assembly error
diagnostic rressages and atncrrral assembly termination messages are
described in detail in the Assembler H Messages book, Order Number
SC26-3770.

Assembly Error Diagnostic Messages
Assembler H prints most error messages in the listing immediately
followinq the stateroent in errcr. It also prints the total number
of flagqed statements and their line numbers in the Diagncstic Cross
Reference section at the end of the listing.
'The rressaqes do not follow the statement in error when:

o

•

Errors are dEtected during editing of macro definitions read from
a library. A message for such an error appears after the first
call in the source program to that macro definition. You can,
however, l:::ring the rr.aore defini tien into the source program with
a COPY statement. The editing error messages will then be attached
to the staterrents in error.

•

Errors are detected by the lookahead function of the asse~bler •
(Lookahead scans, fcr attribute references, statements after the
one being asserrbled.)
Mes~ges for these errors appear after
the statements in which they occur. The messages rray also appear
at the ~oint where lcokahead ~as called.

•

Errors are detected on conditional assembly statements during
macro generaticn or MHELP testing. Such a message follows the
most recently generated statement or MHEIP output statement.

A typical error diagnostic message is:
IEV057

***ERROR*** UNDEFINED OPERATION CODE -- xxxxx

The term ***ERROR*** is part of the message if the severity code is
8 or qreater. The term **WARNING** is part of the message if the
severity code is 0 or 4.
A copy of a segment of the statement in error, represented above by
xxxxx, is appended to the end of many messages. Normally this segment,
which can be u~ to 16 bytes lcng, begins at the bad character or term.
For some errors, however, the segment may begin after the bad character
or term. 'The segrr,ent nay include part of the remarks field.
If a diaqnostic message follows a statement generated by a rracro
definition, the following iterr,s may be appended to the error message:

o
Assembler Diagnostic Facilities

27

•

The number of the model statement in which the error occurred, or
the first five characters of the macro name.

•

The SET symbol, parameter number, or value string associated with
the error.

Note: references to macro parameters are ty number (such as PARAMO 08)
instead of narrE. Tbe first seven numbers are always assigned for the
standard system parameters as follows:
PARAMO 0 0
PARAMO 0 1
PARAMOO2
PARAMOO3
PARAMOO4
PARAMOO5
PARAM006

=
=
=
=

c

&SYSNDX
&SYSECT
&SYSLCC
&SYS'IIME
&SYSI:ATE
&SYSPARM
Name Field Parameter

Then the keyword parameters are numbered in the order defined in the
macro defini tion, followed by positional parameters. When there are
no keyword parameters in the macro definition, PARAM007 refers to the
first ~ositional parameter.
If a diagnostic message follows a conditional assembly staterrent in
the source prcgrarr, the following items will be appended to the error
message:
•

The word "OPENC"

•

Tbe SET syrrtcl or value string a ssocia ted wi th the error

Several messages may be issued for a single staterrent or even for a
single error within a statement. This happens because each statement
is usually evaluated on more than one level (for exarrple, tern
level,expressicn level, and operand level) or by more than one phase
of the assembler. Each level or phase can diagnose errors; therefore,
most or all of the errors in the statement are flagged. Occasionally,
duplicate error messages may occur. This is a normal result of the
error detection process.
Figure 7 is an exarrple of Assembler H handling' of error messages.

o
28

Assembler H Programmer's Guide

LOC

OBJECT CODE

AOI)R 1 ADDR2

SHIT

SUUKCf

STATE;~FNT

ASM H V 01

11.51 05/20110

******************.******************.****
•••• ******************** •••••*
*
SAMPL E ERROR 01 AGNOST IC MESSAGES
*

4

000000
000000 0000 0000
IEV044
ERROR
I EV029
ERROR
IEV119
ERROR
000004 05CO
00000006
000006 0000 0000
IEV044
EHROR

*"'*
***
***

**'"
*"'*

***
**.

***
***
***

***
***
***

IEV029
ERROR
IEV044
ERROR
IEV177
ERROR
000018 92BO 1000
00001C OA13

19
20
21

***
***

IEV136
ERROR
IEVOS~
!:RROR
00001 E 58AO C02A

000022 0000 0000
IEV029
ERROK

***

***
***
***

000026 5800 can

*******
*** *** ********************************* ** **********************
*
ED I TI NG AND GENE RAT ION ERRORS AND MNOTES fROM A Ll BRARY MACRO
** ** ***** ** ** **** ***** **** ******** ****** *** ***************************

20
21
22

00004
00008

***

Figure 7.

MNOTE

***
***
***
***

LOADR
01-LOAOR

24
25+

26<-

32
~3+

Ol-LOADR

MACKe)
LOADR &'1.E('l= ,®2=,&'OPl ,&OP2
SETA
® 1, ®2
AIF
IT'&'RfGl EQ 'O'I.ERR
&.R I 11, &OPI
L
L
&'R(21,&QP2
MEXI T
MNUTE 36, 'YOU LEFT OUT THE FIRST REGISTER'
MEND

***********************************************************************
SAMPLf: MACRO CALLS WITH GENERATION ERRORS AND MNOTES
*
** ******** **** ******* ************ * **** *** ***** **** **************** ****
LOADR REGl= 1 0, REG2=8, CHEROKEE, CHAMP
L
10,CHFROKEE
L
q,CHAt-'P

28
LOAUR REGl=25,ReG2=B,CHEROKEE,&SWIFT
UNDECLARED VARIABll' SYMBOL. DEFAULT=O, NULL, UR TYPE=U
-OPENC/SWIFT
00000
29+
L
25,CHEROKEE
INCORRECT REGISTER SPECIFICATION
00000
30+
L
B,
IllfGAL SYNTAX IN EXPRESSION

34

Ol-LOADR

**********
****** ** **** ** ****** ******** ********* **** ******* **************
SAMPLt MAC"O I)EFINITION RERUN wITH EDITING ERRORS CORRECTEO
** **** *** **** *** ****** *** ** ** * ****** **** *** ******* ******* *********** **

10
11 f.NAMF
12 &R (1)
13
14
15
16
11 .ERR
IB

QOOOOC 5BAO C004
0000 1 0 5880 COOB

MACRO -

LllAIJR KEG2=10,CHAMP, SWIFT
L
O,CHAMP

29
30+

f1

IEV254

•

26
L')ADR RI:Gl=25,RFG2=B,CHEROKFE,SWIFT
00000
21+
L
25,CHI::RUKEE
INCORRECT REGISTER SPECIFIC'ATION

6
7

***
***
***

AND GENERATED BY MACRO CALLS

23
LOAIJR REGl=10,REG2=8,CHEROKEE,CHAMP
ILLEGAL LOGICAL/RELATIONAL OPERATOR
MACRU - LUADR
ARITHMETIC rXPRESSlllN CUNTAINS ILLEGAL DELIMITER OR ENDS PREMATURELY
00030
24+
L
10,CHI::ROKEE

000~4

I EV003
ERROR
000014 0000 0000
I EV029
ERROR
000018 0000 0000
I EV074
ERROR

(OPEN CODEI

6 A
CSEC T
00000
7
S T>1
14,U2, 121 1 ~I
UNDl:fINE(I ~YMBllL
INCORRECT REGISTER SPECifiCATION
DEL IMITER ERROR, EXPECT RIGHT PARI:NTHES IS
8
BALR
12,0
9
USING *,12
00000
10
ST
13,SAV[+4
UtIIOEF INEO SYMBOL
OPEN
I CRIJI N, I INPUT I ,CRDOUT, I OUTPUT)
11
UNBALANCED PARI:NTHESES IN MACRO CALL Oi>ERANIJ
-OPENClICRDIN,IIN
CNOP
0,4
01-0PEN
12+
00014
13+
BAL
1,*+B
LOAD REGl W/LIST AODR. aI-OPEN
14+
DC
Alai
OPT BYTE AND OCB ADOR. 01-0PEN
00000
15+
ST
CRDIN,(INPUT),CRODUT,IOUTPUT,Oll,OI
XOI-0PEN
STORE INTO LIST
INCORRECT REGISTt:R SPECIFICATION
UNDEFINED SYMBOL
DeLIMITER F.RRUR, EXPECT BLANK OR LEFT PARENTHESIS
00000
16+
MV(
O( 11 ,128
aI-OPEN
MOVE IN OPTION BYTE
17+
SVC
19
01-0PEN
ISSUE OPfN SVC

"'**
***
**'"

I E VOSS
ERROR
OOOOOA 0100
nooooc 4510 COOF
~00010 00000000
000014 0000 0000

l;-.j SOURCE PRUGRAr-

****. ***** **.**** **** **** ** *.**** **•• ****** ***** •• *** *'" *.******** •• **.*

LUAD'1. REG2=B,CHAMP,SWIFT
36,YOU LEFT OUT THE FIRST REGISTER
END

01-00014
01-00015

01-00014
01-00015

01-00017

Sample Error Diagnostic Messages

o
Assembler Diagnostic Facilities

29

MNOTEs
An MNCTE statement is included in a macro definition er in the source
proqram. It causes the assenbler to generate an inline error or
informational message.

c

An MNOTE appears in the listing as follows:
IEV254 ***MNCTE***

severity code, message

Unless it has a severity code of * or the severity code is omitted,
the statement number or the MNO'I'E is listed in the diagnostic cross
reference.

Suppression of Error Messages and MNOTEs
Error messages and MNCTEs telow a specified severity level can be
optionally su~~ressed by declaring in the EXEC statement:
PARM= 'MSGLEVEL=n' (where "n" is the selected severity level). If you
are not concerned with warning and error messages in a specific
assembly, using this option provides a cleaner listing.

Abnormal Assembly Termination
Whenever the assently cannct be completed, Assembler H provides a
rressage and, in some cases, a specially formatted dump for diagnostic
information. This nay indicate an assembler malfunction or it may
indica te a programmer error. The s·tatement causing the error is
identified and, if ~ossibl€, the assembly listing up to the point of
the error is printed. The Assemcler H Messages took, Order Number
SC26-3770, descrites the abnormal termination messages. The messages
give enough information to (1) correct the error and reassemble your
progran., or (2) determine that the error is an assembler malfunction.
The Assembler H Program Lcgic Manual, Order Number LY26-3760, gives
a conplete explanation of the format and contents cf the abncrnal
ternination durr~.

Macro Trace Facility (MHELP)
The ~HELF instruction controls a set of trace and dump facilities.
Options are selected l:::y an absolute ex~ression in the MHELP operand
field. MHELF statements can occur anywhere in open code or in macro
definitions. MHELP options remain in effect continuously until
superseded by another MHELF statement. Appendix B is a sample MHELP
trace and dun};:.

o
30

Assembler H Programmer's Guide

o

Macro Call Trace

(MEELP B' l' or MHELP, 1}"1 'Ihis oJ;:tion provides a one-line trace for
each macro call, gi virig the name of the called ll'acro, its ne sted de pth,
and its &SYSNDX (total nurrber of macro calls) value.
Note: This trace is provided upon entry into the macro. No trace
is provided if error conditions prevent entry into the macro.

Macro Branch Trace

(MEELP B'10', or MHELP 2). This option provides a one-line trace for
each AGO and true AIF conditional-assembly statement within a macro.
It qives the model-statement numbers of the "branched froll''' and
"branched to" statell'ents, and the name of the macro in which the branch
occurs. This trace option is suppressed for library macros.

Macro Entry Dump

(MHELF B' 10000', or MHELF .16), This option dumps parameter values from
the macro dicticnary when 'the macro is called.

o

Macro Exit Dump (MHELP B'1000', or MHELP 8). This option dumps SET
symbol values from the macro dictionary upon encountering a MEND or
ME2IE
120
121 &NAMF
122
123
124
125 .ERR
126
129 MARK
130
131+
132+
133+

OPSYN
MARK
LR
L
BALR

00020000
00040017
00060000
00080000
LOAD NOH: RTN ADDRESS 00) 00000
LINK TO NOTE ROUTINE 00120000
00140000
00160000
001BOOOO

NOTE
COMMENTS lJf' GENERATED STATEMENTS OCCUpy SAME
(61
'COLUMNS' AS THOSE IN MODEL STATEMENTS
1,6
LOAD PARAMETER REG 1
02-IHBIN
15,8410,11
LOAD NOTE RTN ADDRESS 01-00122
14,15
LI NK TO NOTE ROUTINE 01-00123

135 ** ** ***** *** ******* * * ** ** **** ***** *** * *************** *****************
1360EECEES LOCTR
SWITCH TO ALTERNATE LOCATION COUNTER

00009C
00009C 00000000
OOOOAO 060000A000000050

137 B5

CCW

X'Otl',B5,0,80

139 ********* * ***** *** ***** ****** ***** ** * ******** *** **************** ******
140 *
DISPLAY OF &SYSTIME, &SYSDATE:, I;SYSPARM AND I;SYSLDC
*
141 ***** **** * ******* **** ** ** ********* ** * ************* ********************
143
144
0000A8 E3C9D4C5407E40Fl

OOOOOC

ooooac
000090
000000
000000
000700 1867
000090 00000040FFFFFFE8

®

DC
DC

PRINT NODATA
C'TIME = I;SYSTIME, DATE = 6.SYSDATE, PARM = &SYSPARM'
C'TIME = 11.52, DATE = 05/20/70, PARM = SAMPLE*PROGRAM'

146
147
148 &SYSECT
149 &SYSLOC
150

MACRO
LOCATE
CSECT
LOCTR
MEND

152
153+1\
1$4+DFECEES
155 A

LOCATE
CSECT
LOCTR
LOCTR

01 SPLAY OF CURRENT CONTROL SECT ION
AND LOCAT ION COUNTER

DISPLAY OF CURRENT CONTROL SECTION
AND LOCATION COUNTER

01-00148
01-00149

157 ***************** ************* *** ******** ** **********************.*****
156 P02
COM
NAMED COMMON THROWN IN FOR GOOD MEASURE
159
OS
500~
160
LR
6,7
161
END
162
=A(A5,XI

c
50

Assembler H Programmer's Guide

)

8IGNAME

RELOCATIUN DICTIONARY

POS.ID

REL.lD

0001
0001

0001
0001

FLAGS
OC
08

ADDRESS

ASM H V 01 11.52 05/20110

0

CROSS REFERENCE

LEN

VALUE

00001 00000000
A
AS
00002
000040
A7
00016
000048
00002 OOOOOOAO
A8
85
00008
DOODAD
CONSTANT 00004
000098
DEECEES
00001 00000098
00001 00000000
PD2
REALL YLONGSYM80L
00004
000084
SUSQUEHANNA
00002
00007E
TRANSYLVANIA
00004
000080
X
00001 FFFFFFE8
=AIA5,X) 00004
000090

6

000090
OOOOAl

8IGNAME

SYMBOL

PAGE

OEFN

REFERENCES

0002
0034
0036
0038
0137
0027
0026
0158

0028
0038

0153
0162

0155

0109
0038
0025
0136

0109
0109
0154

0137

0109

0014

OOlS

0014
0162
0108

0018

PAGE

1

ASH H V 01 11.52 05/2011'0

0107
0108
0060
0162

I"

BIGNAME

DIAGNUSTIC CROSS REfERENCE AND ASSEMBLER SUMMARY

PAGE

ASM H V 01 11.52 05/20110
NO STATEMENTS FLAGGED IN THIS ASSEMRLY
OVERRIDING PARAMETERSNODECK,MULT,SYSPARM=SAMPLE*PROGRAM
OPTIONS FOR THIS ASSEMBLY
NOOECK, NOLOAD, LI ST, XREF, NORENT, NOTES T, MUL T, ALGN, ESD,
NO OVERRIOING DO NAMES
136 CARDS FROM SYSIN
197 LINES OUTPUT

RLO,

LlNECNT= 55, MSGLEVEL=

0,

SYSPARM=SAMPLE*PROGRAM

432 CARDS FROM SYSLIB
o CARDS UUTPUT

o
Appendix A.

Sample Program

51

This page intentionally left blank.

(

c

o
52

Assembler H Programmer's Guide

Appendix B. Sample Macro Trace and Dump (MHELP)
~i

~I

The Macro Trace and Dump (MHELP) facility is a useful means of debugging
macro definitions. MBELF can be used anywhere in the source program
or in macro definitions,. MHELP is processed during macro generation.
It is completely dynamic; you can branch around the MHELP statements
by using AIF or AGO staterr.ents. 'Therefore, its use can be controlled
by symbolic parameters and SET symbols.
'Ihe following sam~le J:rogram illustrates the five frimary functions
of MEELP. Since most of the information produced is unrelated to
statement numbers, the dumps and traces in the listing are marked with
circled numbers. Most duroI;s refer to sta tement numbers. If you request
MHELP information about a litrary macro definition, the first five
characters of the rracrc narr.e will appear in place of the statement
number. To get the statement numbers, you should use COPY to copy
the library definition intc the source program prior to the macro call.

Macro Call Trace (MHELP 1)

Item l1iV illustrates an outer macro call, @ an inner one. In each
case, t6e amount of information given is brief. This trace is given
after successful entry intc the macro; no dump is given if error
conditions prevent an entry.

o

Macro Entry Dump (MHELP 16)

This provides values of systerr variable symbols and symbolic parameters
at the time the macro is called. The following numbering system is
used:
Number

Item

000
00 1
002
003
004
005
006

&SYSNDX
&SYSEC'I
&SYSI.CC
&SYS'IIME
&SYSCATE
&SYSPARM
NAME FIEL6 CN MACRO INSTRUCTION

If there are NKW keyword parameters, they follow in order of appearance
en the prototype statement.
007
008

1st keyword value
2nd keyword value

006+NKW

NKWth keyword value

o
Appendix B.

Sample Macro Trace.and Dump (MHELP)

53

If there are NPP positicnal pirameters, they follow in order of
a ppearence in the macro instruction.
1st positional parameter values
2nd positional parameter values

007+NKW
008+NKW

006+NKW+NPP

c

NPPth positional parameter values

For example, item @
has one keyword parameter (SOFFSE'I) and one
positional parameter. 'Ihe value of the ke yword parameter appears
o~posite 110006, the positional parameter, opposite 110007.
In both
the prototype (statement 3) and the macro instruction (statement 54),
the positional parameter appears in the first operand field, the keyword
in the second. A length appears between the NOM and VALUE fields.
A length of NUL indicates the corresponding item is empty.
Item ~ ill ustrates an inner call containing zero .keywcrds, and
two pos~t ional parameters.

Macro AIF Dump (MHELP 4)

€9, ...

Items G, @,
are examples of these dumps. Each such
dump in21udes a complete set of unsubscripted SET symbols with values.
This list covers all unsubscripted variable symbols which appear in
the narre field of a SET statement in the macro definition. Values
of elelrents cf dirrensicned SE'r symbols are not displayed.

MACRO ERANCH TRACE (MHELP 2) •
This provides a one-line trace for each AGO and true AIF tranch within
a programrrer macro. In any such branch, the "branched from" statement
number, the "branched to" sta~ment number and the macro name are
included. Note, in example
A, the "branched to" statement number
indicated is not that of the A OP statement tearing the target sequence
symtol tut rather that of the statement following it. The branch trace
facility is suspended when library macros are expanded and MHELP 2
is in effect. To obtain a macro branch trace for such a macro, one
would have to insert a COFY ''macro-name'' statement in the source deck
at scme point prier to the MHELP 2 statement of interest.

Macro Exit Dump (MHELP 8)

This provides a dump of the same group of SE'l' symbols as are included
in the Macro AIF dump (see item C above) when a MEXIT or MEND is
encountered.
Note. that local and/or global variable symbols are not displayed at
any point unless they appear in the current macro explicitly as SET
symtols.

54

Assembler H Programmer's Guide

()

)

SAMPLt MHELP TRACE

LaC

OBJECT COOt

A~D

DUMP

A[)[)K1 ADDR2

PAGE

STMT
2

000000

SOURCE STATE:-lENT

*

4
'5
,,~JAME

q
10
11
12
13
1'+

<.LABEL
"LABEL
• SKIP
&LABEL

15
16

Ul
19

c)

20
21
22
73
24
25
26

ASM H V 01

11.52 05/19/70

INCLUDE :-lACRO UfF INI TII1NS Til BbTRACED IN THE SOURCE PROGRAM

f.NM

"CNT
!:NM
.TEST
!:CMPADR

27
28 f.CNT
29
30 .NOLNTH
31
32
33 .LPAR
34 tCNT
35
36
37 .FINISH
3R "CMPAOR

39
40 .CONlIN
41
42
43
44
45
46
47
48
49
50
51

CSECT
COpy
L'ISRCH
Mtt.CRO
LNSRCH &ARG, "OFF SE T= S TNUMd-ST CHAl III
LCLC
&LABfL
GFNERATE SYMBOL
' A"SYSNf)X'
AI f
IT'"NAME EQ '(1' I. SK I P
I &NAME'
51:: Te
IF- MACRO CALL HAS LABEL, USE
I ~IS Tf,Ail OF GENERATED SYMBOL
ANOP
L4
0, WfF::>ET
LOAU RFG. 0
SCHI
f.ARG,OI11
SFARCH
BC
IF- MAX RfACHED, CONT INUE
1,"LARF.L
MEND

sue

IT

COpy
SCHI
M4CRO
SCril
"CaMP, f.L 1ST
LCLA
"CNT
LCLC
&CMPAOR
SErA
1
STM
1.15,41131
ANOP
I !:CMPAOR' • '!:COMP' 1 KCNT, 11
SI'TC
AIF
I ' &COMP' (&CNT. 11 EQ '('1.LPAR
SETA
&CNT +1
( !:CNT LT K' !:COMP I. TEST
AIF
Ai\lUP
Lil
3, &CUMP
COMPARAND
.CI)NTIN
AGO
AIF
('!:COMP' (&CNT+1, 11 EQ " 'I.FINISH
SETA
&CNT +1
( !:CNT LT K'&CLlMPI.LPAR
A IF
.NOLNTH
AGO
ANUP
I !:CMPADR I . ' &CllMP' (!:CNT +2, K' !:COMP-!:CNTI
SETC
3, !:CMPAOR
LA
COMPAR4NO SANS LENGTH
ANOP
LA
1,!:L1ST
Ll ST HEAOfR
!:CllMP, ('1(0 1
MVC
DUMMY MOVE TO GET CaMP LENGTH
ORG
CHANGE MVC TO MVI
*-6
DC
MVI OPCOOE
X 'l2'
'
PRESERVE LENGTH AS IMMED OPNO
ORG
*+1
DC
X'OOOO'
RESULT IS MVI 01131, L
15,=V( SCHII
L
BALR
14,15
1,15,4(131
LM
MEXlT
MEND

o
Appendix B.

Sample Macro Trace and Dump (MHELP)

55

c
PAGE

SAMPLE MHElP TRACE AND DUMP

laC

OBJECT CODE

AOORI AODR2

ASM H V 01 11.52 05/19110

SOUr.CE STATEMENT

STMT

000000
000000 O'>CO
00000002

53 TEST
54
55

CSECT
BAlR
12,0
USING *,12

57
5B

MHElP B'11111'
REQUEST All MHElP FUNCTIONS
i::NS'RCH 'lISn::tNE, UFFSET=L I STL I NE-ll S TNEXT

@

++IIMHElP. CAll TO MACRO lNSRCH

• DEPTH=OOl, SYSNOX=OOOl, STMT 00058

IIMHElP ENTRY TO lNSRCH
• MODEL STMT 00000, DEPTH=OOI, SYSNDX=OOOl, KWCNT=OOl
III/PARAMETERS (SYSNDX, SYSEC T, SYSlOC, S YSTI ME, S YSOATE, SYSPARM, NAME ,KHS ,PPS) 11/
IINUM LNTH VALUE (64 CHARS/LINE)
110000 004 0001
110001 004 TEST
110002 004 TEST
110003 00'> 11.52
110004 008 05/19/70
1/0005 014 SAMPlE*PROGRAM
110006 NUL
1/0007 017 lISTlINE-lISTNEXT
1/0008 008 lISTLINE
I/MHElP AIF IN
lNSRCH. MODEL STMT 00010, DE:PTH=OOI, SYSNDX=OOOI, KHCNT=OOI
III/SET SYMBOLS (SKIPPED NUMBERS MAY fiE SEQUENCE SYMBOlS).1/
110000 lClC
LABEL
lNTH= 005
II
VAL=AOOOI
++IIMHElP. BRANCH FROM ST~T 00010 TO STMT 00013 IN MACRO lNSRCH
000002 4100 a002

00002

59+AOOOI

O,L1STLINE-LISTNEXT lOAD REG. 0

lA

++IIMHElP. CALL TO MACRO SCHI

01-00013

• DEPTH=002, SYSNDX=0002, STMT 00014

IIMHELP ENTRY TO
SCHI
• MODEL STMT 00000, DEPTH=D02, SYSNDX=0002, KWCNT=OOO
IIIIPARAMETERS (SYSNDX, SYSEC T, SYSlOC, SYSTIHE, SYSDA TE. SYSPARH, NAME ,KWS ,PPS' III
/lNUM lNTH
VALUE (64 CHAR SIll NE'
110000 004 0002
/10001
004
TEST
/10002
004
TE ST
1/0003 005
11.52
110004 008 05/19170
/10005
014
SAMPlE*PROGRAM
110006 NUL
110007 008 llSTllNF
1/0008 004 O( 11
000006 901F 0004

00004

60+

STH

1,15,4113)

02-00024

I

/lHHElP AIF

IN

SCHI

• MODEL STMT 00027, DEPTH=002, SYSNOX=0002, KHCNT=OOO

c
56

Assembler H Programmer's Guide

PAGE

SAMPLE MHElP TRACE AND DUMP

lOC

OBJECT CODE

AOORl AODR2

STMT

4

ASM H V 01 11.52 05/19/70

SOURCE ST AT EMENT

IIIISET SYMBOLS (SKIPPED NUMBERS MAY Bt: SEQUENCE SYMBOlS).1I
110000 lClA
110001 lClC
II
VAl:l

CNT
CMPAOR

IIMHElP AIF IN

SCHI

VAl=
0000000001
lNTH= 001

• MODEL STMT 00029, DEPTH=002, SYSNDX=0002, KWCNT=OOO

IIIISET SYMBOLS (SKIPPED NUMBERS MAY BE SEQUENCE SYMBOlS).1I
110000 lClA
CNT
110001 lClC
CMPAOR
II
VAl=l

VAl=
0000000002
lNTH= 001

++IIMHElP. BRANCH FROM.STroIT 00029 TO STMT 00026 IN MACRO SCHI

IIMHELP AIF 1111
SCHI
• MODEL STMT 00027, DEPTH=002, SYSNDX=0002, KWCNT=OOO
IIIISET SYMI\OlS (SKIPPED NUMBERS MAY BE SEQUENCE ·SYMBOlS).1I
110000 lClA
CNT
VAL:
0000000002
1/0001 lClC
CMPAOR
lNTH= 002
II
VAl=lI

o

IIMHElP AIF IN
SCHI
• MODEL STMT 00029, DEPTH=002, SYSNDX=0002, KWCNT=OOO
IIIISET SYMBOLS (SK I PPED NUMBERS MAY BF. SEQUENCE SYMBOLS 1.11
110000 lClA
CNT
VAl=
0000000003
110001 lClC
CMPADR
lNTH= 002
II
VAl=Ll

@

+"IIMHElP. BRANCH FROM SHn 00029 TO STMT 00026 IN MACRO SCHI

IIMHELP AlF IN
IIIISET SYMBOLS
110000 lClA
110001 lClC
II
VAl=Ll S

SCHI
MODEL STMT 00027, DEPTH=002, SYSNDX=0002, KWCNT=OOO
(SK IPPED NUMBERS MAY BE SEQUENCE SYMBOL SI.II
CNT
VAl=
0000000003
CMPADR
lNTH= 003

IIMHELP AIF IN
SCHI
• MODEL STMT 00029, DEPTH=OOZ, SYSNOX=OOOZ, KWCNT=OOO
III/SET SYMBOLS (SKIPPED NUMBERS MAY BE SEQUENCE SYMBOlSI.1I
110000 LClA
CNT
VAl=
0000000004
110001 lClC
CMPADR
lNTH= 003
II
VAl=LI S

HIIMHELP. BRANCH FROM STMT 00029 TO STMT 00026 IN MACRO SCHI
IIMHHP AIF

IN

SCHI

• MODEL STMT 00027, DEPTH=002, SYSNOX=0002, KWCNT=OOO

IIIISET SYMBOLS (SKIPPED NUMBERS MAY BE SEQUENCE SYMBOlSI.1I
110000 lClA
CNT
1/0001 lClC
CMPADR
II
VAl=LIST

VAl=
0000000004
lNTH= 004

o
Appendix B.

Sample Macro Trace and Dump (MHELP)

57

c
SAMPLE MHELP TRACE AND DUMP

lOC

OBJECT COOE

AOORl ADDR2

STMT

PAGE

ASM H V 01 1l.52 05119110

SOURCE STATEMfNT

I/MHELP AIF IN
IIIISET SYMBOLS
110000 LCLA
1/0001 lCLC
1/
VAL=LIST

SCHl
• MODEL STMT 00029, DEPTH=002, SYSNDX=0002, KWCNT=OOO
(SKIPPED NUMBFRS MAY BE SEQuENCE SYMBOlS'.1I
(NT
VAL=
0000000005
CMPAOR
lNTH= 004

++11 MHElP. BRANCH FROM STMT 00029 TO S TMT 00026 I N MACRO SCHI
IIMHELP AIF IN
SCHl
MOOf:L SHIT 0002f, OEPTH=002, SYSNnX=0002, KWCNT=OOO
I III SET SYM~OLS (SKI PPED "IUMBf-ORS ;~AY BE SEQUENCE SYMBOLS'./ I
1/0000 LCL A
CNT
VAL=
0000000005
110001 LCLC
CMPAUR
LNTH= 005
II
VAL =L1 STL

IIMHELP AIF IN
SCHI
• MOOf.L STMT 00029, OFPTH=002, SVSNDX=0002, KWCNT=OOO
/I/ISET SYMBOLS (SKlPPfO NUMBERS MAY BE SEQUENCE SYMBOLS'.II
110000 LCLA
CNT
VAL=
0000000006
/10001 LCLC
CMPAUR
LNTH= 005
/I
VAL=L1STL
++/lMHELP.

I/MHELP AIF

BRANCH fROM STMT 00029 TO STMT 00026 IN MACRO SCHI

IN

SCHI

• MODEL STMT 00027, DI:PTH=002,

SYSNDX=0002, KWCNT=OOO

II/ISET SYMBOLS (SKIPPED NUMBERS MAY fiE SEQUENCE SYMHOLS'.II
110000 LCLA
CNT
110001 LCLC
CMPAOR
II
VAL=Ll STU

VAL=
0000000006
LNTH= 006

IIMHELP AIF IN
SCHI
• MODEL STMT 00029, DI:PTH=002, SYSNDX=0002, KWCNT=OOO
IIIISET SYMBOLS (SKIPPEO NUMBERS MAY HE' SEQUENCE SYMBOLS' .11
110000 LClA
CNT
VAl=
0000000007
110001 LClC
CMPADR
LNTH= 006
II
VAl=LISTLI

++I/MHELP. BR·ANCH FROM STMT 00029 TO STMT 00026 IN MACRO SCHI

IIMHELP AIF IN
SCHI
• MODEL STMT 00027, OEPTH=002, SYSNDX=0002, KWCNT=OOO
III/SET SYMROLS (SKIPPED NUMBERS MAY BE SEQUENCE SYMBOLS'.II
110000 LCLA
CNT
VAl=
0000000007
110001 LClC
CMPADR
LNTH= 007
II
VAL=LISTLlN
IIMHELP AIF IN
I/I/SET SYMBOLS

SCHI
• MODEL STMT 00029, DEPTH=002, SYSNDX=0002, KWCNT=OOO
(SKIPPED NUMBERS MAY BE SEQUENCE SYMBOLS'./!

c
58

Assembler H Programmer's Guide

~.

J

SAMPLE MHELP TRACE AND DUMP

LOC

OBJECT CODE

AODRI AOOR2

PAGE

STMT

SOURCE STATEMENT

ASM H V 01 1l.52 05/19170

//0000 LCLA
CNT
110001 LCLC
CMPAf)R
II
VAL=LISTLIN
OOOOOA 4130 C024

00026

61+

LA

3,LlSTLlNE

VAL=
0000000008
LNTH= 007

CllMPARANO

++IIMHfLP. BRANCH fROM STMT 00032 TO STMT 00041
OOOOOE
0000 12
000018
000012
000013
000014
000016
OOOOlA
OOOOlC

4111 0000
00000
0202 C02.4 0000 00026 00000
000012

62+
63+
64+
65+
66+
67+
68+
6<1+
70+

92
000014
0000
58FO C02E
05H
9BIF 0004

00030
00004

@

Of

000020 4710 COOO

00002

000024
000026
000030
000030 00000000
000000

LIST HEADER
DUMMY MOVE TO GET COMP LENGTH
CHANGE MVC TO MVI
MVI OPCODE
PPI'SERVE L ENGT H AS I MMEO OPNO
RFSULT [S MVI 0113liL

02-00041
02-00042
02-00043
02-00044
02-00045
02-00046
02-00047
02-00048
02-00049

II MHE lP EX IT FROM SCH I
• MnDEL STMT 00050, OEPTH=002, SYSNDX=0002, KWCNT=OOO
III1SET SYMBOLS ISKIPPED iIIUMBERS MAY BE SEQUENCE SYMBOLSI.II
110000 LCLt.
CNT
VAl=
0000000008
110001 lCLC
CMPADR
lNTH= 007
/1
VAL=LISTLIN
71+

@

LA
1,0111
LI STLINE,O (01
MVC
ORG
*-f>
DC
X' 92'
ORG
*+1
DC
X'OOOO'
15,=V(SCHII
L
BALR
14,15
LM
1,15,41131

02-00031
IN MACRO SCHI

BC

I,AOOOl

IF MAX REACHED,

CONTINUE

01-00015

IIMHtLP EXIT FRUM LNSRCH
• MODEL STMl 00016, O~PTH=OOl, SYSNOX=OOOl, KWCNT=OOI
IIIISET SYMBOLS I SKIPP~O NUMBERS MAY BE SEQUENCE SYMBOLS)./1
110000 lCLC
LABEL
lNTH= 005
/I
VAL=AOOO 1
72 LISTNEXT OS
73 LlSTLlNE OS
74
LTORG
75
76
END

H
FL3'O'
=V(SCHll
TE ST

o
Appendix B.

Sample Macro Trace and Dump (MHELP)

59

This page intentionally left blank.

c

c
60

Assembler H Progranuner's Guide

Appendix C. Object Deck Output

ESD Card Format
The format of the ESD card is as follows:
Contents

Columns
1
2-4
5-10

11-12
13 -14
15-16
17-64

12- 2- 9 punch
ESD

Blank
Variable field count -- number of bytes
of infcrnaticn in variable field (columns 17-64)
Blank
ESDIO of first SO, XD, CM, FC, or ER
in variable field
Variable field. One to three 16-byte
items of the following format:
1 byte -- ESD type code

'Ihe hex value is:
00
01
02
04
05
06

o
65-72
73-80

SD

LD
ER
PC
Q.1

XD(PR)

3 bytes

Address

1 l:yte

Alignment if XO; otherwise blank

3 bytes

Length, LOID, or tlank

Blank
Deck ID and/or sequence number -The dack 10 is the name from the first TITLE
statement that has a non-clank name field.
'Ihe nan,e can be 1 to 8 characters long,. If the
name is less than 8 characters long cr if
there is no name, the remaining columns contain a card sequence number..
(Columns 73-80
of cards produced by PUNCH or REPRO statements
do not contain a deck ID or a sequence number.)

TEXT (TXT) Card Format
~he

format of the
Columns
1
2-4

5

TXT

cards is as follows:
Contents

12- 2- 9 punch

TXT
Blank

o
Appendix C.

Object Deck Output

61

Relative address of first instruction on card
Blank
Byte ccunt -- number of bytes in information
field (columns 17-72)
Blank
ES1:Ir::
56-byte inforrration field
Deck 11: and/or sequence nurocer
'Ihe deck 10 is the name from the first TITLE
statement that has a non-clank name field.
'Ihe narre can be 1 to 8 characters long. If the
name is less than 8 characters long or if
there is no name, the remaining columns contain a card sequence number.
~olumns 73-80
of cards produced by PUNCH or REPRO statements
do not contain a deck 10 or a sequence nurrber.)

6-8
9-10
11- 12
13-14
15-16
17-72
73-80

RLD Card Format
The forma t of the

FLD

card is as follows:

Columns

Contents
12-2-9 punch

1
2-4
5-10
11-12

FL·C

Blank
Data field count -- number of bytes of
inforrraticn in data field (columns 17-72)
Blank
Data field:
Relocation ESDID
Position ESDID
Flag byte
Absolute address to be relocated
Remaining RLD entries
Deck ID and/or sequence nurrber -The deok ID is the name from the first 'II'ILE
staterrent that has a non-blank name field.
The name can ce 1 to 8 characters long. If the
name is less than 8 characters long or if
there is no name, the remaining colu~ns contain a card sequence number.
(Columns 73-80
of cards produced by PUNCH or REPRO statements
do not contain a deck ID or a sequence number.)

13 -16
17-72
17-18

19-20
21
22-24
25-72
73-80

If the rightmost bit of the flag byte is set, the following RID entry
has the sarre relocation ES1:ID and position ESDID, and this information
will not be repeated; if the rightmost bit of the flag byte is not
set, the next FLD entry has a different relocation ESDID and/or position
ESCID, and botb ESOIDs will be recorded.
For example, if the RLD Entries 1,2, and 3 of the program listing
(Appendix C) contain the following information:
Position
ESDID
Entry 1
Entry 2
Entry 3

62

02
02
03

Relocation
Flag
ESDID

--04
04
01

Assembler H Programmer's Guide

OC
OC
OC

Address
000100
000104
000800

c

Entry 3

Entry 2

Entry 1

Column: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37~ 72

)

•

blanks
Flag

Flag
(not
set)

Flag
(not

(set)

set)

END Card Format

The format of the END card is as follows:
Columns
1

2-4
5
6-8

9-14
15-16
17- 39
40-64

o

73-80

contents
12-2-9 punch
END
Blank
Entry address from operand of END card in
source deck (blank if no operand)
Blank
ESCIC of entrY point (tlank if no operand)
Blank
Version of the assembler (such as ASM H VI) ,
time of the assembly (hh,mrn) , and date of
the assembly (mm/dd/yy).
See the "AsseI'Pbler
Listing" section.)
Deck ID and/or sequence nuroter -The deck ID is the name from the first TITLE
statement that has a non-blank name field.
'The name can be 1 to 8 characters long.
If the
name is less than 8 characters long or if
there is no name, the remaining columns contain a card sequence number.
(Columns 73-80
of cards produced by PUNCH or REFRC statements
do not contain a deck ID or a sequence nurrber.)

TESTRAN (SYM) Card Format
If you request it, the assembler punches out syrrtclic infcrmation for
TESTRAN concerning the assembled program. This output appears ahead
cf all loader text. The format of the card images for CIESTRAN output
is as follows:
Columns

Contents

1
2-4

12-2-9 punch

5-10
11-12

Blank
Variable field count -- number of bytes of
text in variable field (columns 17-72)

SYM

o
Appendix C.

Object Deck Output

63

Elank
Variable field (see below)
Ceck IC and/or sequence number
The deck ID is the name from the first TITLE
statement that has a non-blank name field.
'The narre can be 1 to 8 characters long.
If the
name is less than 8 characters long or if
there is no name, the remaining columns contain a card sequence number.
(Columns 73- 80
of cards produced by PUNCH or REPRO statements
do not contain a deck ID or a sequence nurrber.)

13-16
17-72
73-80

c

The variatle field (cclurr:ns 17-72) contains up to 56 bytes of 'IES'IRAN
text. 'The items making the text are packed together; consequently,
only the last card may contain less than 56 bytes of text in the
variatle field. 'Ihe fcrrrats of a text card and an individual text
iterr are shown in Figure 9. The contents of the fi2lds within an
individual entry are as followS:
erg ani zation (1 byte)
Eit 0:
o = non-data type
1 = data type

1.

Bits 1-3 (if non-data type):
000
space·
001 = contrel section
010 = dummy control section
011 = common
100 = instruction
101
CCW
Eit 1 (if data type):
o = no multiplicity
1 = rrulti~licity (indicates presence of M field)
Bit 2 (if data type):
o independent (not a packed or zoned decirral constant)
1
cluster (packed or zoned decimal constant)

=

Bit 3 (if data type):
o = no scaling
1 = scalir.g (indicates presence of S field)
Eit 4:

o
1

= name pre se nt
name not present

Ei ts 5-7:
Length of narre minus 1

2.

Address (3 bytes)

3.

Symbol Name

Note:
4.

-- displacement frOID base of control section

(0-8 bytes)

-- symbolic name of particular iterr

The follcwing fields are present only for data-type items.
Data Type (1 byte) -- contents in hexadecimal
00 = character
04 = hexadecimal
08 = binary

c
64

Assembler H Programmer's Guide

10
14
18
1C
20
24
28
2C
30
34
38

= fixed point, full
= fixed point, half
= floating point, short
= floating point, long
= A-ty~e or Q-Type data
= y-type data
= S-type data
= V-type data
= packed decimal
= zoned deciroa 1
= floating point, extended.

5.

Length (2 bytes for character, hexadecimal decimal, or binary
i terns; 1 byte for other types) -- length of data iterr minus 1

6.

Multiplicity - M field (3 tytes)

7.

Scale - signed integer - S field (2 bytes) -- present only for
F, H, E, D, P and Z type data, and only if scale is non-zero.

,
12
2
9

4 5

2
SYM

blank

3

6

2

~resent

so

72 73

1617

101112.13
No.
of
bytes
of
text

equals 1 if not

blank

TESTRAN text - packed entries

56

Deck & Sequence
10
number

8

Entry
(complete or
head portion)

N complete entries
N ~ 1
Variable size entries

Org.

Address

3

Figure 9.

Symbol name

Data
type

1-2

3

2

TESTRAN SYM Card Format

o
Appendix C.

Object Deck Output

65

This page intentionally left blank.

c

c
66

Assembler H Programmer's Guide

Appendix D. Dynamic Invocation of the Assembler

The assembler can te invoked by a problem program at execution time
through the use of the CALL, LINK, XCTL, or ATTACH macro instruction.
If the XCTL macro instruction is used to invoke the assembler, then
no user o~tions may be stated. ~he assembler will use the standard
default, as set during system generation, for each option.
If the assembler is invoked ty CALL, LINK or A'ITACH, you rr,ay supply:
1)

The assemtler cpticns

2)

The DD names of the data sets to be used during processing

Name
[symbol]

Operation
CALL
{LINK
}
ATTACH

o

Operand
IEV90,(optionlist
[,ddnamelistl ),VL
EP=IEV90,
PARAM=(optionlist
[,ddnamelistl ),VL=1

EP -- specifies the symbclic name of the assembler. The entry point
at which execution is to begin is determined by the control program
(from the litrary directory entry).
PARAM -- specifies, as a sublist, address parameters to be passed from
the problem program to the assembler. The first word in the
adGir.ess ~ararreter list contains the address of the option list.
The second word contains the address of the ddname list.
o~tionlist

-- specifies the address of a variable length list containing
the options. This address must be written even if no option list
is provided.

'The option list must begin on a ha1fword boundary. The first two bytes
ccntain a count of the nurr,ber of bytes in the remainder of the list.
If no options are specified, the count must be zero. The option list
is free form with each field separated from the next by a comma. No
blanks or 2eros should appear in the list.
ddnamelist -- specifies the address of a variable length list containing
alternate DD names for the data sets used during compiler processing.
If standard DD names are used, this operand may be omitted.
The DD name list must begin on a halfword toundary. The first two
contain a count of the number of bytes in the remainder of the
list.
Each name of less than 8 bytes must be left-justified and padded
with blanks.
If an alternate DD name is omitted, the standard name
will be assumed.
If the name is omitted within the list, the 8-byte
entry must ccntain binary zeros.
Names can b.e omitted from the end
byt~s

o
Appendix D.

Dynamic Invocation of the Assembler

67

merely ty shortening the list. The sequence of the a-byte entries
in the DD name list is as follows:
Entry

Alternate Name

1

SYSI.IN
not applicable
not applicatle
SYSLIB
SYSIN
SYSPRIN'I
SYSFUNCH
SYSUT1

2
3
4
5
6
7

a

c

Note: An overriding DD nane specified when Assembler H was added to
the Operating System occupies the same place in the above list as the
IBM-supplied DC name it overrides. The overriding ddname can itself
te overridden during invccatidn. For exam~le, i f SYSWORK1 replaced
SYSUT1, it occupies position a in the above list. SYSWORK1 can be
overridden ty ancther narre during invocation.
VL -- specifies that the sign bit is to be set to 1 in the last word
of the address parameter list.

o

o
68

Assembler H Programmer's Guide

Index

II

& SYSPARM

3,50

II

Adding macro definitions to libraries 34
ALGN (NOALGN) assembler option 2
Alignment, Removal of
restriction 39,2
Assembler cataloqed procedures 9-17
Assembler data sets 4-8
Characteristics 5,7-8
List of 4
Assembler diagnostic facilities 27-32,25
Abnormal assembly termination 30
Cross-reference 25
Error Messages 27
Macro trace facility (MHELP) 30
MNOTEs 30
suppression of MNOTEs and error
messages 30
Assembler listing 19-26
External symbol dictionary 21
Source and object program 22
Relocation dictionary 24
Symbol and literal cross-reference 25
Diagnostic cross-reference and
assembler summary 25
Assembler options 1-4
Option list 1
Default options 4
Overrriding defaults 4,15
Sample of use 46
Assembler statistics 25,20
Assembler summary 25,20
ASMHC, cataloged procedure for
assembly 9
ASMHCG, cataloged procedure for
assembly and loader-execution 13
ASMHCL, cataloged procedure for
assembly and linkage editing 10
ASMHCLG, cataloged procedure for
assembly, linkage editing, and
execution 12

II

o

Calling the assembler from a problem
program 67
Cataloged procedures 9-17
For assembling (ASMHC) 9
For assembling and linkage editing
(ASMHCL) 10

For assemnling, linkage editing, and
execution (ASMHCLG) 12
For assembling and loader-execution
(ASMHCG) 13
overridinq 15
Characteristics of assembler data
sets 7-8
Codes
See Return codes; Severity codes.
Cross-reference
See also Diagnostic cross-reference.
Examples 20,51
Listing format 25
Concatenation of SYSLIB data sets 6
COND parameter 8,15

iii
Data sets, assembler
Characteristics 5,7-8
List of 4
DD statements, overriding in cataloged
procedures 15
DECK assembler option 2
Default options 4
Diagnostic cross-reference and assembler
summary 25,20
Diagnostic facilities
See Assembler diagnostic facilities .•
Dynamic invocation of the assembler 67

II

END card format 63
Entry point restatement 35
Error messages 27-29
Cross-reference 25,20
ESD
See External symbol dictionary.
ESD (NOESD) assembler option 2
EXEC statement
Overriding in cataloged procedures 15
PARM field 1,34
COND parameter 8,15
Extended precision machine instructions 38
External symbol dictionary (ESD)
Entry types 21
Examples 20,46
Listing format 21
output card format 61

Index

69

II
Format
See error messages; macro-generated
statements.

a

Identification-sequence field 24
Invoking the assembler from a problem
program 67
Invoking cataloged procedures 9
Instruction execution sequence, control
of 38

II
Job control language cataloged
procedures
See Cataloged procedures.

..

Linkage, object module 35-37
LINECNT assembler option 2
LIST (NOLIST) assembler option
Listing control instructions,
printing of 23
LOAD (NOLOAD) assembler option
Load module modification 35

2
2

II

Machine instructions, extended
precision 38
Macros, error messages in 27
Macro-generated statements, format of 23-24
Macro definition libraries, additions
to 34
Macro Trace Facility (MHELP)
Description 30-32
Sample 53-59
Messages
See Assembler diagnostic facilities.
MHELP
See Macro Trace Facility.
Model 85, 91, and 195 programming
considerations 38
MNOTEs 30,42
MSGLEVEL assembler option 3
MULT(NOMULT) assembler option 2

70

Assembler H Programmer's Guide

II

Number of Channel Programs (NCP)
selection for assembler data sets

8

c

II
Object deck output format 61-65
Output format
Listing 19-26
Object deck 61-65
Object module linkage 35-37
Options, assembler 1-4
Option list 1
Default options 4
Overriding defaults 4,15
Sample of use 46
Overriding statements in cataloged
procedures 15-17
Overriding default assembler
options 4,15

•

PARM field 1,34
Procedure
See Cataloged procedures.
Program termination 34
Programming considerations 33-39

II
~egisters, saving and restoring
33
Relocation dictionary
Listing format 24
Output text format 62
Examples 20,51
RENT (NORENT) assembler option 2
Restoring general registers 33
Return codes 8
See also MSGLEVEL assembler option.
RLD
See Relocation dictionary.
RLD (NORLD) assembler option 2

o

::> D

sample programs and listings
Assembler language features 41-51
Assembler listing description 20
Diagnostic error messages 29
MHELP 53-59
saving general registers 33
Sequence number 24
Severity codes 8,27
See also MSGLEVEL assembler option.
Source and object program assembler listing
format 22,20
special CPU programming considerations 38
Statistics, assembler 25,20
Suppression of error messages 30
SYSIN data set 6
SYSLIB data set 6
SYSLIN data set 6
SYM card (TESTRAN) format 63
SYSPARM assembler option 3,46
SYSPRINT data set 6
SYSPUNCH data set 6
SYSUT1 data set 6

a

Termination
Abnormal assembly 30
Program 34
TEST (NOTEST) assembler option
TESTRAN (SYM) card format 63
TEXT (TXT) card format 61

2

Unaligned operands 39,2
Using the assembler 1-17
Utility data set 6

•

XREF (NOXREF) assembler option

2

0,
I~ I'.

o
Index

71

SC26-3759-0

YOUR COMMENTS, PLEASE ...

c

This publication is one of a series which serves as a reference source for systems analysts,
programmers, and operators of IBM systems. Your answers to the questions on the back of
this form, together with your comments, will help us produce better publications for your
use. Each reply will be carefully reviewed by the persons responsible for writing and
publishing this material. All comments and suggestions become the property of IBM.
Please note: Requests for copies of publications and for assistance in utilizing your IBM
system should be directed to your IBM representative or to the IBM sales office serving
your locality.

fold

fold

FIRST CLASS
PERMIT NO. 1359
WHITE PLAINS, N.Y.

BUSINESS REPLY MAIL
NO POSTAGE STAMP NECESSARY IF MAILED IN U. S. A.

c

POSTAGE WILL BE PAID BY .

IBM Corporation
Department 813
112 East Post Road
White Plains, New York
10601

~
~.

fold

fold

(1)

c.
5'

~

c

en

):.
C/)
()

•

I\.)

q>
w

"co

(J1

6

International Business Machines Corporation
Data Processing Division
112 East Post Road, White Plains, N.Y. 10601
[USA Only]
IBM World Trade Corporation
821 United Nations Plaza, New York, New York 10017
[International]

o

READER'S COMMENT FORM
IBM SYSTEM/360 OPERATING SYSTEM
ASSEMBLER H PROGRAMMER'S GUIDE

)

SC26-37S9-0

Please comment on the usefulness and readability of this book, suggest additions and deletions,
and list specific errors and omissions (give page numbers). All comments and suggestions become
the property of IBM. If you want a reply, be sure to give your name and address.

Name _ _ _ _ _ _ _ _ _ _ _ _ _ Occupation _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

o

Address ____________________________________________

Thank you for your cooperation. No postage necessary if mailed in the U.S.A.

SC26-3759-0

YOUR COMMENTS, PLEASE ...

(

This publication is one of a series which serves as- a reference source for systems analysts,
programmers, and operators of IBM systems. Your answers to the questions on the back of
this form, together with your comments, will help us produce better publications for your
use. Each reply will be carefully reviewed by the persons responsible for writing and
publishing this material. All comments and suggestions become the property of IBM.
Please note: Requests for copies of publications and for assistance in utilizing your IBM
system should be directed to your IBM representative or to the IBM sales office serving
your locality.

fold

fold

FIRST CLASS
PERMIT NO. 1359
WHITE PLAINS, N.Y.

BUSINESS REPLY MAIL
NO POSTAGE STAMP NECESSARY IF MAILED IN U. S. A.

c

POSTAGE WILL BE PAID BY .

IBM Corporation
Department 813
112 East Post Road
White Plains, New York
10601

~

:;'
....

fold

fold

CI)

0.

:;' ...

c
en

?>
en •

(")

I\,)

0')

w
.....
CJ1

co

6

International Business Machines Corporation
Data Processing Division
112 East Post Road, White Plains, N.Y. 10601
[USA Only)
IBM World Trade Corporation
821 United Nations Plaza, New York, New York 10017
[International]



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2012:06:01 17:20:32-08:00
Modify Date                     : 2012:06:01 23:14:25-07:00
Metadata Date                   : 2012:06:01 23:14:25-07:00
Producer                        : Adobe Acrobat 9.51 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:4dc9a95d-c1e4-4a6f-88b7-29f2ad7d677b
Instance ID                     : uuid:2c2ba83a-d157-4092-9e34-521672e66ae1
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 84
EXIF Metadata provided by EXIF.tools

Navigation menu