Mercurial > hg > index.cgi
annotate docs/manual/x619.html @ 326:d399df78e1ab
Allow trailing ' or " on ascii constants
Allow for 'c' or "cc" instead of just 'c and "cc for ascii constants. This
adds additional compatibility for some unusual source files while not
causing well formed files to fail.
author | Tom LeMense <tlemense@yahoo.com> |
---|---|
date | Fri, 11 Apr 2014 21:50:47 -0600 |
parents | b30091890d62 |
children |
rev | line source |
---|---|
324
b30091890d62
Add documentation of the new hex output formats.
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"> |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
2 <HTML |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
3 ><HEAD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
4 ><TITLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
5 >Assembler Modes and Pragmas</TITLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
6 ><META |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
7 NAME="GENERATOR" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
9 REL="HOME" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
10 TITLE="LW Tool Chain" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
11 HREF="index.html"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
12 REL="UP" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
13 TITLE="LWASM" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
14 HREF="c62.html"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
15 REL="PREVIOUS" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
16 TITLE="Object Files and Sections" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
17 HREF="x555.html"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
18 REL="NEXT" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
19 TITLE="LWLINK" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
20 HREF="c713.html"></HEAD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
21 ><BODY |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
22 CLASS="SECTION" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
23 BGCOLOR="#FFFFFF" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
24 TEXT="#000000" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
25 LINK="#0000FF" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
26 VLINK="#840084" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
27 ALINK="#0000FF" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
28 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
29 CLASS="NAVHEADER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
30 ><TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
31 SUMMARY="Header navigation table" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
32 WIDTH="100%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
33 BORDER="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
34 CELLPADDING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
35 CELLSPACING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
36 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
37 ><TH |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
38 COLSPAN="3" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
39 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
40 >LW Tool Chain</TH |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
41 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
42 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
43 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
44 WIDTH="10%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
45 ALIGN="left" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
46 VALIGN="bottom" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
47 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
48 HREF="x555.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
49 ACCESSKEY="P" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
50 >Prev</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
51 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
52 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
53 WIDTH="80%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
54 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
55 VALIGN="bottom" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
56 >Chapter 3. LWASM</TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
57 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
58 WIDTH="10%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
59 ALIGN="right" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
60 VALIGN="bottom" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
61 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
62 HREF="c713.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
63 ACCESSKEY="N" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
64 >Next</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
65 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
66 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
67 ></TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
68 ><HR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
69 ALIGN="LEFT" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
70 WIDTH="100%"></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
71 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
72 CLASS="SECTION" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
73 ><H1 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
74 CLASS="SECTION" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
75 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
76 NAME="AEN619" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
77 >3.10. Assembler Modes and Pragmas</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
78 ></H1 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
79 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
80 >There are a number of options that affect the way assembly is performed. |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
81 Some of these options can only be specified on the command line because |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
82 they determine something absolute about the assembly process. These include |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
83 such things as the output target. Other things may be switchable during |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
84 the assembly process. These are known as pragmas and are, by definition, |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
85 not portable between assemblers.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
86 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
87 >LWASM supports a number of pragmas that affect code generation or |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
88 otherwise affect the behaviour of the assembler. These may be specified by |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
89 way of a command line option or by assembler directives. The directives |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
90 are as follows.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
91 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
92 ></P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
93 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
94 CLASS="VARIABLELIST" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
95 ><DL |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
96 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
97 >PRAGMA <CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
98 CLASS="PARAMETER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
99 >pragma[,...]</CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
100 ></DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
101 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
102 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
103 >Specifies that the assembler should bring into force all <CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
104 CLASS="PARAMETER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
105 >pragma</CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
106 >s |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
107 specified. Any unrecognized pragma will cause an assembly error. The new |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
108 pragmas will take effect immediately. This directive should be used when |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
109 the program will assemble incorrectly if the pragma is ignored or not supported.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
110 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
111 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
112 >*PRAGMA <CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
113 CLASS="PARAMETER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
114 >pragma[,...]</CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
115 ></DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
116 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
117 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
118 >This is identical to the PRAGMA directive except no error will occur with |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
119 unrecognized or unsupported pragmas. This directive, by virtue of starting |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
120 with a comment character, will also be ignored by assemblers that do not |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
121 support this directive. Use this variation if the pragma is not required |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
122 for correct functioning of the code.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
123 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
124 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
125 >*PRAGMAPUSH <CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
126 CLASS="PARAMETER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
127 >pragma[,...]</CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
128 ></DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
129 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
130 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
131 >This directive saves the current state of the specified pragma(s) for later retrieval. See discussion below for more information.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
132 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
133 >This directive will not throw any errors for any reason.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
134 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
135 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
136 >*PRAGMAPOP <CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
137 CLASS="PARAMETER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
138 >pragma[,...]</CODE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
139 ></DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
140 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
141 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
142 >This directive restores the previously saved state of the specified pragma(s). See discussion below for more information.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
143 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
144 >This directive will not throw any errors for any reason.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
145 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
146 ></DL |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
147 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
148 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
149 >Each pragma supported has a positive version and a negative version. |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
150 The positive version enables the pragma while the negative version disables |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
151 it. The negatitve version is simply the positive version with "no" prefixed |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
152 to it. For instance, "pragma" vs. "nopragma". When only one version is |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
153 listed below, its opposite can be obtained by prepending "no" if it is not |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
154 present or removing "no" from the beginning if it is present.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
155 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
156 >Pragmas are not case sensitive.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
157 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
158 ></P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
159 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
160 CLASS="VARIABLELIST" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
161 ><DL |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
162 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
163 >index0tonone</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
164 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
165 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
166 >When in force, this pragma enables an optimization affecting indexed addressing |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
167 modes. When the offset expression in an indexed mode evaluates to zero but is |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
168 not explicity written as 0, this will replace the operand with the equivalent |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
169 no offset mode, thus creating slightly faster code. Because of the advantages |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
170 of this optimization, it is enabled by default.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
171 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
172 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
173 >cescapes</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
174 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
175 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
176 >This pragma will cause strings in the FCC, FCS, and FCN pseudo operations to |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
177 have C-style escape sequences interpreted. The one departure from the official |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
178 spec is that unrecognized escape sequences will return either the character |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
179 immediately following the backslash or some undefined value. Do not rely |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
180 on the behaviour of undefined escape sequences.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
181 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
182 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
183 >importundefexport</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
184 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
185 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
186 >This pragma is only valid for targets that support external references. When |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
187 in force, it will cause the EXPORT directive to act as IMPORT if the symbol |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
188 to be exported is not defined. This is provided for compatibility with the |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
189 output of gcc6809 and should not be used in hand written code. Because of |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
190 the confusion this pragma can cause, it is disabled by default.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
191 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
192 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
193 >undefextern</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
194 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
195 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
196 >This pragma is only valid for targets that support external references. When in |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
197 force, if the assembler sees an undefined symbol on the second pass, it will |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
198 automatically define it as an external symbol. This automatic definition will |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
199 apply for the remainder of the assembly process, even if the pragma is |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
200 subsequently turned off. Because this behaviour would be potentially surprising, |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
201 this pragma defaults to off.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
202 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
203 >The primary use for this pragma is for projects that share a large number of |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
204 symbols between source files. In such cases, it is impractical to enumerate |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
205 all the external references in every source file. This allows the assembler |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
206 and linker to do the heavy lifting while not preventing a particular source |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
207 module from defining a local symbol of the same name as an external symbol |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
208 if it does not need the external symbol. (This pragma will not cause an |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
209 automatic external definition if there is already a locally defined symbol.)</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
210 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
211 >This pragma will often be specified on the command line for large projects. |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
212 However, depending on the specific dynamics of the project, it may be sufficient |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
213 for one or two files to use this pragma internally.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
214 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
215 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
216 >export</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
217 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
218 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
219 >This pragma causes all symbols to be added to the export list |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
220 automatically. This is useful when a large number of symbols need to be |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
221 exported but you do not wish to include an EXPORT directive for all of them. |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
222 This is often useful on the command line but might be useful even inline |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
223 with the PRAGMA directive if a large number of symbols in a row are to be |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
224 exported.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
225 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
226 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
227 >dollarlocal</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
228 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
229 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
230 >When set, a "$" in a symbol makes it local. When not set, "$" does not |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
231 cause a symbol to be local. It is set by default except when using the OS9 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
232 target.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
233 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
234 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
235 >dollarnotlocal</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
236 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
237 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
238 > This is the same as the "dollarlocal" pragma except its sense is |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
239 reversed. That is, "dollarlocal" and "nodollarnotlocal" are equivalent and |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
240 "nodollarlocal" and "dollarnotlocal" are equivalent. </P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
241 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
242 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
243 >pcaspcr</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
244 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
245 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
246 > Normally, LWASM makes a distinction between PC and PCR in program |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
247 counter relative addressing. In particular, the use of PC means an absolute |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
248 offset from PC while PCR causes the assembler to calculate the offset to the |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
249 specified operand and use that as the offset from PC. By setting this |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
250 pragma, you can have PC treated the same as PCR. </P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
251 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
252 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
253 >shadow</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
254 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
255 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
256 >When this pragma is in effect, it becomes possible to define a macro |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
257 that matches an internal operation code. Thus, it makes it possible to |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
258 redefine either CPU instructions or pseudo operations. Because this feature |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
259 is of dubious utility, it is disabled by default.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
260 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
261 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
262 >nolist</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
263 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
264 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
265 >Lines where this pragma is in effect will not appear in the assembly |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
266 listing. Also, any symbols defined under this pragma will not show up in |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
267 the symbol list. This is most useful in include files to avoid spamming the |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
268 assembly listing with dozens, hundreds, or thousands of irrelevant |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
269 symbols.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
270 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
271 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
272 >autobranchlength</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
273 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
274 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
275 >One of the perennial annoyances for 6809 programmers is that the |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
276 mneumonics for the short and long branch instructions are different (bxx vs. |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
277 lbxx), which is at odds with the rest of the instruction set. This pragma |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
278 is a solution to those annoying byte overflow errors that short branch |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
279 instructions tend to aquire.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
280 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
281 >When this pragma is in effect, which is not the default, whenever any |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
282 relative branch instruction is used, its size will be automatically |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
283 determined based on the actual distance to the destination. In other words, |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
284 one can write code with long or short branches everywhere and the assembler |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
285 will choose a size for the branch.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
286 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
287 >Also, while this pragma is in effect, the > and < symbols can be used |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
288 to force the branch size, analogous to their use for other instructions with |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
289 < forcing 8 bit offsets and > forcing 16 bit offets.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
290 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
291 >Because this pragma leads to source that is incompatible with other |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
292 assemblers, it is strongly recommended that it be invoked using the PRAGMA |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
293 directive within the source code rather than on the command line or via the |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
294 *PRAGMA directive. This way, an error will be raised if someone tries to |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
295 assemble the code under a different assembler.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
296 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
297 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
298 >nosymbolcase, symbolnocase</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
299 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
300 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
301 >Any symbol defined while this pragma is in force will be treated as |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
302 case insensitive, regardless whether the pragma is in force when the symbol |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
303 is referenced.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
304 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
305 >It is important to note that this pragma will not work as expected in |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
306 all cases when using the object file assembly target. It is intended for |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
307 use only when the assembler will be producing the final binary.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
308 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
309 ><DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
310 >condundefzero</DT |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
311 ><DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
312 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
313 >This pragma will cause the assembler to change the way it handles |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
314 symbols in conditional expressions. Ordinarily, any symbol that is not |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
315 defined prior to the conditional will throw an undefined symbol error. With |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
316 this pragma in effect, symbols that are not yet defined at the point the |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
317 conditional is encountered will be treated as zero.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
318 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
319 >This is not the default because it encourages poor code design. One |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
320 should use the "IFDEF" or "IFNDEF" conditionals to test for the presence of |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
321 a symbol.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
322 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
323 >It is important to note that if a symbol is defined but it does not |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
324 yet evaluate to a constant value at the point where the conditional appears, |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
325 the assembler will still complain about a non constant condition.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
326 ></DD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
327 ></DL |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
328 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
329 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
330 >As a convenience, each input file has a pragma state stack. This |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
331 allows, through the use of *PRAGMAPUSH and *PRAGMAPOP, a file to change a |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
332 pragma state and then restore it to the precise state it had previously. |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
333 If, at the end of an input file, all pragma states have not been popped, |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
334 they will be removed from the stack. Thus, it is critical to employ |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
335 *PRAGMAPOP correctly. Because each input file has its own pragma stack, |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
336 using *PRAGMAPUSH in one file and *PRAGMAPOP in another file will not |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
337 work.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
338 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
339 >Pragma stacks are more useful in include files, in particular in |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
340 conjunction with the nolist pragma. One can push the state of the nolist |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
341 pragma, engage the nolist pragma, and then pop the state of the nolist |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
342 pragma at the end of the include file. This will cause the entire include |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
343 file to operate under the nolist pragma. However, if the file is included |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
344 while nolist is already engaged, it will not undo that state.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
345 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
346 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
347 CLASS="NAVFOOTER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
348 ><HR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
349 ALIGN="LEFT" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
350 WIDTH="100%"><TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
351 SUMMARY="Footer navigation table" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
352 WIDTH="100%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
353 BORDER="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
354 CELLPADDING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
355 CELLSPACING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
356 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
357 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
358 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
359 ALIGN="left" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
360 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
361 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
362 HREF="x555.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
363 ACCESSKEY="P" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
364 >Prev</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
365 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
366 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
367 WIDTH="34%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
368 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
369 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
370 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
371 HREF="index.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
372 ACCESSKEY="H" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
373 >Home</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
374 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
375 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
376 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
377 ALIGN="right" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
378 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
379 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
380 HREF="c713.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
381 ACCESSKEY="N" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
382 >Next</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
383 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
384 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
385 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
386 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
387 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
388 ALIGN="left" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
389 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
390 >Object Files and Sections</TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
391 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
392 WIDTH="34%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
393 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
394 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
395 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
396 HREF="c62.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
397 ACCESSKEY="U" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
398 >Up</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
399 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
400 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
401 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
402 ALIGN="right" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
403 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
404 >LWLINK</TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
405 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
406 ></TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
407 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
408 ></BODY |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
409 ></HTML |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
410 > |