Mercurial > hg > index.cgi
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 |
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 > |