annotate docs/manual/x568.html @ 577:e49d24f4a9a5

Correct bug in the object file output code leading to stack corruption It turns out leaving a pointer to a stack allocated temporary in a persistent data structure is not conducive to correct program operation. Undo the export check setup in the object file output sequence so a pointer to stack allocated memory is not left hanging when the function returns. This seems to correct at least one mysterious crash bug, and possibly others. Thanks to Boisy Pitre for reporting the crash bug that led to this discovery, as well as a previous crash bug that likely has the same root cause. Additional thanks to Ciaran Anscomb whose debugger wielding wizardry revealed the exact location of this particular bit of unbrilliance.
author William Astle <lost@l-w.ca>
date Sat, 03 Aug 2024 14:30:06 -0600
parents fc072f6cde09
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
565
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
2 <HTML
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
3 ><HEAD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
4 ><TITLE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
5 >Macros</TITLE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
6 ><META
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
7 NAME="GENERATOR"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
9 REL="HOME"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
10 TITLE="LW Tool Chain"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
11 HREF="index.html"><LINK
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
12 REL="UP"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
13 TITLE="LWASM"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
14 HREF="c62.html"><LINK
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
15 REL="PREVIOUS"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
16 TITLE="Assembler Directives"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
17 HREF="x261.html"><LINK
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
18 REL="NEXT"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
19 TITLE="Structures"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
20 HREF="x591.html"></HEAD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
21 ><BODY
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
22 CLASS="SECTION"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
23 BGCOLOR="#FFFFFF"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
24 TEXT="#000000"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
25 LINK="#0000FF"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
26 VLINK="#840084"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
27 ALINK="#0000FF"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
28 ><DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
29 CLASS="NAVHEADER"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
30 ><TABLE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
31 SUMMARY="Header navigation table"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
32 WIDTH="100%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
33 BORDER="0"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
34 CELLPADDING="0"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
35 CELLSPACING="0"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
36 ><TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
37 ><TH
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
38 COLSPAN="3"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
39 ALIGN="center"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
40 >LW Tool Chain</TH
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
41 ></TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
42 ><TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
43 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
44 WIDTH="10%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
45 ALIGN="left"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
46 VALIGN="bottom"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
47 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
48 HREF="x261.html"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
49 ACCESSKEY="P"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
50 >Prev</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
51 ></TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
52 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
53 WIDTH="80%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
54 ALIGN="center"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
55 VALIGN="bottom"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
56 >Chapter 3. LWASM</TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
57 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
58 WIDTH="10%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
59 ALIGN="right"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
60 VALIGN="bottom"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
61 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
62 HREF="x591.html"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
63 ACCESSKEY="N"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
64 >Next</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
65 ></TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
66 ></TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
67 ></TABLE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
68 ><HR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
69 ALIGN="LEFT"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
70 WIDTH="100%"></DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
71 ><DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
72 CLASS="SECTION"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
73 ><H1
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
74 CLASS="SECTION"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
75 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
76 NAME="AEN568"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
77 >3.7. Macros</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
78 ></H1
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
79 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
80 >LWASM is a macro assembler. A macro is simply a name that stands in for a
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
81 series of instructions. Once a macro is defined, it is used like any other
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
82 assembler directive. Defining a macro can be considered equivalent to adding
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
83 additional assembler directives.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
84 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
85 >Macros may accept parameters. These parameters are referenced within a
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
86 macro by the a backslash ("\") followed by a digit 1 through 9 for the first
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
87 through ninth parameters. They may also be referenced by enclosing the
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
88 decimal parameter number in braces ("{num}"). The special expansion "\*"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
89 translates to the exact parameter string, including all parameters, passed
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
90 to the macro. These parameter references are replaced with the verbatim text
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
91 of the parameter passed to the macro. A reference to a non-existent
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
92 parameter will be replaced by an empty string. Macro parameters are expanded
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
93 everywhere on each source line. That means the parameter to a macro could be
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
94 used as a symbol or it could even appear in a comment or could cause an
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
95 entire source line to be commented out when the macro is expanded. </P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
96 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
97 >Parameters passed to a macro are separated by commas and the parameter list
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
98 is terminated by any whitespace. This means that neither a comma nor whitespace
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
99 may be included in a macro parameter.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
100 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
101 >Macro expansion is done recursively. That is, within a macro, macros are
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
102 expanded. This can lead to infinite loops in macro expansion. If the assembler
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
103 hangs for a long time while assembling a file that uses macros, this may be
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
104 the reason.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
105 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
106 >Each macro expansion receives its own local symbol context which is not
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
107 inherited by any macros called by it nor is it inherited from the context
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
108 the macro was instantiated in. That means it is possible to use local symbols
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
109 within macros without having them collide with symbols in other macros or
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
110 outside the macro itself. However, this also means that using a local symbol
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
111 as a parameter to a macro, while legal, will not do what it would seem to do
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
112 as it will result in looking up the local symbol in the macro's symbol context
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
113 rather than the enclosing context where it came from, likely yielding either
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
114 an undefined symbol error or bizarre assembly results.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
115 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
116 >Note that there is no way to define a macro as local to a symbol context. All
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
117 macros are part of the global macro namespace. However, macros have a separate
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
118 namespace from symbols so it is possible to have a symbol with the same name
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
119 as a macro.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
120 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
121 >Macros are defined only during the first pass. Macro expansion also
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
122 only occurs during the first pass. On the second pass, the macro
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
123 definition is simply ignored. Macros must be defined before they are used.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
124 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
125 >The following directives are used when defining macros.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
126 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
127 ></P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
128 ><DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
129 CLASS="VARIABLELIST"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
130 ><DL
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
131 ><DT
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
132 ><CODE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
133 CLASS="PARAMETER"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
134 >macroname</CODE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
135 > MACRO [NOEXPAND]</DT
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
136 ><DD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
137 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
138 >This directive is used to being the definition of a macro called
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
139 <CODE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
140 CLASS="PARAMETER"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
141 >macroname</CODE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
142 >. If <CODE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
143 CLASS="PARAMETER"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
144 >macroname</CODE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
145 > already
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
146 exists, it is considered an error. Attempting to define a macro within a
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
147 macro is undefined. It may work and it may not so the behaviour should not
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
148 be relied upon.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
149 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
150 >If NOEXPAND is specified, the macro will not be expanded in a program
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
151 listing. Instead, all bytes emitted by all instructions within the macro
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
152 will appear to be emitted on the line where the macro is invoked, starting
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
153 at the address of the line of the invokation. If the macro uses ORG or other
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
154 directives that define symbols or change the assembly address, these things
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
155 will also be hidden (except in the symbol table) and the output bytes will
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
156 appear with incorrect address attribution. Thus, NOEXPAND should only be
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
157 used for macros that do not mess with the assembly address or otherwise
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
158 define symbols that should be visible.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
159 ></DD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
160 ><DT
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
161 >ENDM</DT
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
162 ><DD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
163 ><P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
164 >This directive indicates the end of the macro currently being defined. It
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
165 causes the assembler to resume interpreting source lines as normal.</P
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
166 ></DD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
167 ></DL
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
168 ></DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
169 ></DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
170 ><DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
171 CLASS="NAVFOOTER"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
172 ><HR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
173 ALIGN="LEFT"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
174 WIDTH="100%"><TABLE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
175 SUMMARY="Footer navigation table"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
176 WIDTH="100%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
177 BORDER="0"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
178 CELLPADDING="0"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
179 CELLSPACING="0"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
180 ><TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
181 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
182 WIDTH="33%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
183 ALIGN="left"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
184 VALIGN="top"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
185 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
186 HREF="x261.html"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
187 ACCESSKEY="P"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
188 >Prev</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
189 ></TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
190 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
191 WIDTH="34%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
192 ALIGN="center"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
193 VALIGN="top"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
194 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
195 HREF="index.html"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
196 ACCESSKEY="H"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
197 >Home</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
198 ></TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
199 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
200 WIDTH="33%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
201 ALIGN="right"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
202 VALIGN="top"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
203 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
204 HREF="x591.html"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
205 ACCESSKEY="N"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
206 >Next</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
207 ></TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
208 ></TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
209 ><TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
210 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
211 WIDTH="33%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
212 ALIGN="left"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
213 VALIGN="top"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
214 >Assembler Directives</TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
215 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
216 WIDTH="34%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
217 ALIGN="center"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
218 VALIGN="top"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
219 ><A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
220 HREF="c62.html"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
221 ACCESSKEY="U"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
222 >Up</A
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
223 ></TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
224 ><TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
225 WIDTH="33%"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
226 ALIGN="right"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
227 VALIGN="top"
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
228 >Structures</TD
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
229 ></TR
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
230 ></TABLE
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
231 ></DIV
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
232 ></BODY
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
233 ></HTML
fc072f6cde09 Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff changeset
234 >