annotate docs/ccguide/asm.appendix @ 573:d9ab3688bb71

All function prototypes are added.
author roug
date Fri, 01 Nov 2002 10:02:34 +0000
parents e1be1b610076
children 14e792902588
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
466
bea58398bb15 Skeletons for the C Compiler User's Guide, 1983
roug
parents:
diff changeset
1 <appendix>
bea58398bb15 Skeletons for the C Compiler User's Guide, 1983
roug
parents:
diff changeset
2 <title>Relocating Macro Assembler Reference</title>
bea58398bb15 Skeletons for the C Compiler User's Guide, 1983
roug
parents:
diff changeset
3 <para>
468
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
4 This appendix gives a summary of the operation of the "Relocating
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
5 Macro Assembler" (named c.asm as distributed with the C Compiler).
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
6 This appendix and the example assembly source files supplied with
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
7 the C compiler should provide the basic information on how to use the
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
8 "Relocating Macro Assembler" to create relocatable-object format
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
9 files (ROF). It is further assumed that you are familiar with the
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
10 6809 instruction set and mnemonics. See the Microware Relocating
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
11 Assembler Manual for a more detailed description. The main function
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
12 of this appendix is to enable the reader to understand the output
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
13 produced by c.asm. The Relocating Macro Assembler allows programs
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
14 to be compiled separately and then linked together, and it also
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
15 allows macros to be defined within programs.
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
16 </para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
17 <para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
18 Differences between the Relocating Macro Assembler (RMA) and the
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
19 Microware Interactive Assembler (MIA):
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
20 </para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
21 <blockquote>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
22 <para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
23 RMA does not have an interactive mode. Only a disk file is
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
24 allowed as input.
466
bea58398bb15 Skeletons for the C Compiler User's Guide, 1983
roug
parents:
diff changeset
25 </para>
468
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
26 <para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
27 RMA output is an ROF file. The ROF file must be processed by
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
28 the linker to produce an executable OS9 memory module. The
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
29 layout of the ROF file is described later.
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
30 </para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
31 <para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
32 RMA has a number of new directives to control the placement of
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
33 code and data in the executable module. Since RMA does not
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
34 produce memory modules, the MIA directives "mod" and "emod" are
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
35 not present. Instead, new directives PSECT and VSECT control
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
36 the allocation of code and data areas by the linker.
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
37 </para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
38 <para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
39 RMA has no equivalent to the MIA "setdp" directive. Data (and
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
40 DP) allocation is handled by the linker.
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
41 </para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
42 </blockquote>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
43 <section>
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
44 <title>Symbolic Names</title>
468
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
45 <para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
46 A symbolic name is valid if it consists of from one to nine
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
47 uppercase or lowercase characters, decimal digits or the characters
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
48 "$", "_", "." or "@". RMA does not fold lowercase letters to
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
49 uppercase. The names "Hi.you" and "HI.YOU" are distinct names.
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
50 </para>
60b821f18853 A little here and there.
roug
parents: 466
diff changeset
51 </section>
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
52
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
53 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
54 <title>Label field</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
55 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
56 If a symbolic name in the label field of a source statement is
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
57 followed by a <quote>:</quote> (colon), the name will be known
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
58 <emphasis>globally</emphasis> (by all modules linked together).
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
59 If no colon appears, the name will be known only in the PSECT
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
60 in which it was defined. PSECT will be described later.
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
61 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
62 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
63
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
64 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
65 <title>Undefined names</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
66 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
67 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
68 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
69
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
70 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
71 <title>Listing format</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
72 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
73 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
74 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
75
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
76 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
77 <title>Section Location Counters</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
78 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
79 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
80 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
81
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
82 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
83 <title>Section Directives</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
84 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
85 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
86
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
87 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
88 <title>PSECT Directive</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
89 <para>
563
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
90 The main difference between PSECT and MOD is that MOD sets up
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
91 information for OS-9 and PSECT sets up information for the
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
92 linker (c.link in the C compiler).
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
93 </para>
563
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
94 <informalexample>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
95 <para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
96 PSECT {name,typelang,attrrev,edition,stacksize,entrypoint}
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
97 </para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
98 <informaltable frame="none">
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
99 <tgroup cols="2">
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
100 <colspec colwidth="1in">
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
101 <tbody>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
102 <row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
103 <entry>name</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
104 <entry>Up to 20 bytes (any printable character except space
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
105 or comma) for a name to be used by the linker to
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
106 identify this PSECT. This name need not be distinct
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
107 from all other PSECTs linked together, but it helps
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
108 to identify PSECTs the linker has a problem with if
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
109 the names are different.</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
110 </row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
111 <row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
112 <entry>typelang</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
113 <entry></entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
114 </row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
115 <row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
116 <entry>attrrev</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
117 <entry></entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
118 </row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
119 <row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
120 <entry>edition</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
121 <entry></entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
122 </row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
123 <row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
124 <entry>stacksize</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
125 <entry></entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
126 </row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
127 <row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
128 <entry>entrypoint</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
129 <entry>word expression entrypoint offset for this PSECT.
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
130 If the PSECT is not a mainline odule, this should
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
131 be set to zero.</entry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
132 </row>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
133 </tbody>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
134 </tgroup>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
135 </informaltable>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
136 </informalexample>
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
137 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
138
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
139 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
140 <title>VSECT Directive</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
141 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
142 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
143 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
144
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
145 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
146 <title>CSECT Directive</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
147 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
148 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
149 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
150
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
151 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
152 <title>RZB statement</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
153 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
154 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
155 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
156 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
157
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
158 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
159 <title>Comparison Between Assembly Programs for the Microware Interactive Assember
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
160 and the Relocating Macro Assembler</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
161 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
162 The following two program examples simply fork a BASIC09. The
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
163 purpose of the examples are to show some of the differences in the
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
164 new relocating assembler. The differences are apparent.
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
165 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
166 <programlisting>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
167 * this program forks a basic09
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
168 ifp1
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
169 use ..../defs/os9defs.a
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
170 endc
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
171
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
172
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
173 </programlisting>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
174 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
175 <title>Macro Interactive Assembler Source</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
176 <programlisting>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
177 ifp1
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
178 use defsfile
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
179
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
180 prmsize equ *-prm
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
181
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
182 siz equ
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
183 </programlisting>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
184 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
185 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
186
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
187 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
188 <title>Introduction to Macros</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
189 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
190 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
191 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
192
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
193 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
194 <title>Operations</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
195
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
196 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
197 <title>Macro Definition</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
198 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
199 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
200 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
201
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
202 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
203 <title>Nested Macro Calls</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
204 <para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
205 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
206 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
207
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
208 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
209 <title>Labels</title>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
210 <para>
552
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
211 Sometimes it is necessary to use labels within a macro. Labels are
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
212 specified by <quote>\@</quote>. Each time the macro is called, a unique label
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
213 will be generated to avoid multiple definition errors. Within the
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
214 expanded code <quote>\@</quote> will take on the form <quote>@xxx</quote>, where xxx
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
215 will be a decimal number between 000 to 999.
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
216 </para>
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
217 <para>
fcb97f0ba24b All diagnostics added.
roug
parents: 530
diff changeset
218 More...
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
219 </para>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
220 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
221
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
222 <section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
223 <title>Additional Pseudo-Instructions</title>
563
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
224 <variablelist>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
225 <varlistentry><term>\n</term>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
226 <listitem>
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
227 <para>
563
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
228 will return the number of arguments passed to the macro.
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
229 </para>
563
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
230 </listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
231 </varlistentry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
232
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
233 <varlistentry><term>\L&lt;num&gt;</term>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
234 <listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
235 <para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
236 will return the length of the ith argument
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
237 that is specified by &lt;num&gt;.
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
238 </para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
239 </listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
240 </varlistentry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
241
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
242 <varlistentry><term>FAIL</term>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
243 <listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
244 <para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
245 Causes an error to be generated.
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
246 </para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
247 </listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
248 </varlistentry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
249
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
250 <varlistentry><term>REPT &lt;num&gt;</term>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
251 <listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
252 <para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
253 will repeat an instruction or group of instructions &lt;num&gt; times.
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
254 ENDR terminates REPT.
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
255 </para>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
256 </listitem>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
257 </varlistentry>
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
258
e1be1b610076 Several functions ready.
roug
parents: 552
diff changeset
259 </variablelist>
530
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
260 </section>
c43b678c0055 Mainly section structures added.
roug
parents: 468
diff changeset
261 </section>
466
bea58398bb15 Skeletons for the C Compiler User's Guide, 1983
roug
parents:
diff changeset
262 </appendix>