Mercurial > hg > index.cgi
annotate docs/manual/x659.html @ 396:d0c0fede5021
Update to gcc6809lw patch which may help compilation of some sources
Due to persistent random compiler crashes and errors related to "M_REGS",
this patch update (4.6.4-2) essentially removes the varius constraints
allowing the "soft registers" in most operations. It was causing more
problems than it solved and it is not clear that the logic behind those soft
registers even makes sense any more.
This patch also fixes a bogus comparison related to selecting the right size
for a constant. Instead of the excessively clever comparison scheme that was
previously in use, the comparisons have been replaced with straight forward
comparisions for the top and bottom of the relevant 2's complement ranges.
author | William Astle <lost@l-w.ca> |
---|---|
date | Mon, 20 Jul 2015 22:32:41 -0600 |
parents | fc166b3bbae3 |
children | cad5937314cb |
rev | line source |
---|---|
394
fc166b3bbae3
Update manual for recent additions.
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"> |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
2 <HTML |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
3 ><HEAD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
4 ><TITLE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
5 >Assembler Modes and Pragmas</TITLE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
6 ><META |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
7 NAME="GENERATOR" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
9 REL="HOME" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
10 TITLE="LW Tool Chain" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
11 HREF="index.html"><LINK |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
12 REL="UP" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
13 TITLE="LWASM" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
14 HREF="c62.html"><LINK |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
15 REL="PREVIOUS" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
16 TITLE="Object Files and Sections" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
17 HREF="x595.html"><LINK |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
18 REL="NEXT" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
19 TITLE="Convenience Instructions" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
20 HREF="x795.html"></HEAD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
21 ><BODY |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
22 CLASS="SECTION" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
23 BGCOLOR="#FFFFFF" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
24 TEXT="#000000" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
25 LINK="#0000FF" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
26 VLINK="#840084" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
27 ALINK="#0000FF" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
28 ><DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
29 CLASS="NAVHEADER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
30 ><TABLE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
31 SUMMARY="Header navigation table" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
32 WIDTH="100%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
33 BORDER="0" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
34 CELLPADDING="0" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
35 CELLSPACING="0" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
36 ><TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
37 ><TH |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
38 COLSPAN="3" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
39 ALIGN="center" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
40 >LW Tool Chain</TH |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
41 ></TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
42 ><TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
43 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
44 WIDTH="10%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
45 ALIGN="left" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
46 VALIGN="bottom" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
47 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
48 HREF="x595.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
49 ACCESSKEY="P" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
50 >Prev</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
51 ></TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
52 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
53 WIDTH="80%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
54 ALIGN="center" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
55 VALIGN="bottom" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
56 >Chapter 3. LWASM</TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
57 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
58 WIDTH="10%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
59 ALIGN="right" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
60 VALIGN="bottom" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
61 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
62 HREF="x795.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
63 ACCESSKEY="N" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
64 >Next</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
65 ></TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
66 ></TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
67 ></TABLE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
68 ><HR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
69 ALIGN="LEFT" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
70 WIDTH="100%"></DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
71 ><DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
72 CLASS="SECTION" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
73 ><H1 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
74 CLASS="SECTION" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
75 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
76 NAME="AEN659" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
77 >3.10. Assembler Modes and Pragmas</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
78 ></H1 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
79 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
80 >There are a number of options that affect the way assembly is performed. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
81 Some of these options can only be specified on the command line because |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
82 they determine something absolute about the assembly process. These include |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
83 such things as the output target. Other things may be switchable during |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
84 the assembly process. These are known as pragmas and are, by definition, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
85 not portable between assemblers.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
86 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
87 >LWASM supports a number of pragmas that affect code generation or |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
88 otherwise affect the behaviour of the assembler. These may be specified by |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
89 way of a command line option or by assembler directives. The directives |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
90 are as follows.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
91 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
92 ></P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
93 ><DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
94 CLASS="VARIABLELIST" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
95 ><DL |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
96 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
97 >PRAGMA <CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
98 CLASS="PARAMETER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
99 >pragma[,...]</CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
100 ></DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
101 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
102 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
103 >Specifies that the assembler should bring into force all <CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
104 CLASS="PARAMETER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
105 >pragma</CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
106 >s |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
107 specified. Any unrecognized pragma will cause an assembly error. The new |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
108 pragmas will take effect immediately. This directive should be used when |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
109 the program will assemble incorrectly if the pragma is ignored or not supported.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
110 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
111 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
112 >*PRAGMA <CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
113 CLASS="PARAMETER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
114 >pragma[,...]</CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
115 ></DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
116 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
117 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
118 >This is identical to the PRAGMA directive except no error will occur with |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
119 unrecognized or unsupported pragmas. This directive, by virtue of starting |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
120 with a comment character, will also be ignored by assemblers that do not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
121 support this directive. Use this variation if the pragma is not required |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
122 for correct functioning of the code.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
123 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
124 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
125 >*PRAGMAPUSH <CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
126 CLASS="PARAMETER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
127 >pragma[,...]</CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
128 ></DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
129 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
130 ><P |
fc166b3bbae3
Update manual for recent additions.
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 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
132 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
133 >This directive will not throw any errors for any reason.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
134 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
135 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
136 >*PRAGMAPOP <CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
137 CLASS="PARAMETER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
138 >pragma[,...]</CODE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
139 ></DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
140 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
141 ><P |
fc166b3bbae3
Update manual for recent additions.
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 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
143 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
144 >This directive will not throw any errors for any reason.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
145 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
146 ></DL |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
147 ></DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
148 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
149 >Each pragma supported has a positive version and a negative version. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
150 The positive version enables the pragma while the negative version disables |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
151 it. The negatitve version is simply the positive version with "no" prefixed |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
152 to it. For instance, "pragma" vs. "nopragma". When only one version is |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
153 listed below, its opposite can be obtained by prepending "no" if it is not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
154 present or removing "no" from the beginning if it is present.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
155 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
156 >Pragmas are not case sensitive.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
157 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
158 ></P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
159 ><DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
160 CLASS="VARIABLELIST" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
161 ><DL |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
162 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
163 >6800compat</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
164 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
165 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
166 >When in force, this pragma enables recognition of various |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
167 compatibility instructions useful when assembling 6800 code. These |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
168 compatibility instructions are assembled into equivalent 6809 instructions. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
169 This mode also includes several analogous instructions which are not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
170 strictly 6800 instructions but allow the similar style to be applied to 6809 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
171 specific features.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
172 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
173 >Technically, a compliant 6809 assembler must recognize these |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
174 instructions by default since Motorola advertised the 6809 as being source |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
175 compatible with the 6800. However, most source code does not require this |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
176 compatibility and LWASM itself did not support these instructions prior to |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
177 version 4.11 so this mode is disabled by default.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
178 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
179 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
180 >6809</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
181 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
182 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
183 >This pragma allows you to mark a section of code as 6809-only. In ths mode, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
184 the assembler will throw an error if any 6309 instructions are used.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
185 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
186 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
187 >6309</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
188 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
189 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
190 >This pragma enables the use of 6309 instructions and disables any 6809 specific |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
191 instructions. It also changes the cycle count listing output (if selected) |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
192 to display 6309 timings.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
193 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
194 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
195 >6809conv, 6309conv</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
196 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
197 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
198 >These pragmas enable convenience instructions extending the 6809 and 6309 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
199 instruction sets respectively. For more information, see |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
200 <A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
201 HREF="x795.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
202 >Section 3.11</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
203 >.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
204 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
205 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
206 >index0tonone</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
207 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
208 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
209 >When in force, this pragma enables an optimization affecting indexed addressing |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
210 modes. When the offset expression in an indexed mode evaluates to zero but is |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
211 not explicity written as 0, this will replace the operand with the equivalent |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
212 no offset mode, thus creating slightly faster code. Because of the advantages |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
213 of this optimization, it is enabled by default.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
214 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
215 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
216 >cescapes</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
217 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
218 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
219 >This pragma will cause strings in the FCC, FCS, and FCN pseudo operations to |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
220 have C-style escape sequences interpreted. The one departure from the official |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
221 spec is that unrecognized escape sequences will return either the character |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
222 immediately following the backslash or some undefined value. Do not rely |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
223 on the behaviour of undefined escape sequences.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
224 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
225 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
226 >importundefexport</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
227 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
228 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
229 >This pragma is only valid for targets that support external references. When |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
230 in force, it will cause the EXPORT directive to act as IMPORT if the symbol |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
231 to be exported is not defined. This is provided for compatibility with the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
232 output of gcc6809 and should not be used in hand written code. Because of |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
233 the confusion this pragma can cause, it is disabled by default.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
234 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
235 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
236 >undefextern</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
237 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
238 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
239 >This pragma is only valid for targets that support external references. When in |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
240 force, if the assembler sees an undefined symbol on the second pass, it will |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
241 automatically define it as an external symbol. This automatic definition will |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
242 apply for the remainder of the assembly process, even if the pragma is |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
243 subsequently turned off. Because this behaviour would be potentially surprising, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
244 this pragma defaults to off.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
245 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
246 >The primary use for this pragma is for projects that share a large number of |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
247 symbols between source files. In such cases, it is impractical to enumerate |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
248 all the external references in every source file. This allows the assembler |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
249 and linker to do the heavy lifting while not preventing a particular source |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
250 module from defining a local symbol of the same name as an external symbol |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
251 if it does not need the external symbol. (This pragma will not cause an |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
252 automatic external definition if there is already a locally defined symbol.)</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
253 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
254 >This pragma will often be specified on the command line for large projects. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
255 However, depending on the specific dynamics of the project, it may be sufficient |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
256 for one or two files to use this pragma internally.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
257 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
258 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
259 >export</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
260 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
261 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
262 >This pragma causes all symbols to be added to the export list |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
263 automatically. This is useful when a large number of symbols need to be |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
264 exported but you do not wish to include an EXPORT directive for all of them. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
265 This is often useful on the command line but might be useful even inline |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
266 with the PRAGMA directive if a large number of symbols in a row are to be |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
267 exported.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
268 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
269 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
270 >dollarlocal</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
271 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
272 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
273 >When set, a "$" in a symbol makes it local. When not set, "$" does not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
274 cause a symbol to be local. It is set by default except when using the OS9 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
275 target.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
276 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
277 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
278 >dollarnotlocal</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
279 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
280 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
281 > This is the same as the "dollarlocal" pragma except its sense is |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
282 reversed. That is, "dollarlocal" and "nodollarnotlocal" are equivalent and |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
283 "nodollarlocal" and "dollarnotlocal" are equivalent. </P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
284 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
285 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
286 >pcaspcr</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
287 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
288 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
289 > Normally, LWASM makes a distinction between PC and PCR in program |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
290 counter relative addressing. In particular, the use of PC means an absolute |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
291 offset from PC while PCR causes the assembler to calculate the offset to the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
292 specified operand and use that as the offset from PC. By setting this |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
293 pragma, you can have PC treated the same as PCR. </P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
294 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
295 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
296 >shadow</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
297 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
298 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
299 >When this pragma is in effect, it becomes possible to define a macro |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
300 that matches an internal operation code. Thus, it makes it possible to |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
301 redefine either CPU instructions or pseudo operations. Because this feature |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
302 is of dubious utility, it is disabled by default.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
303 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
304 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
305 >nolist</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
306 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
307 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
308 >Lines where this pragma is in effect will not appear in the assembly |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
309 listing. Also, any symbols defined under this pragma will not show up in |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
310 the symbol list. This is most useful in include files to avoid spamming the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
311 assembly listing with dozens, hundreds, or thousands of irrelevant |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
312 symbols.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
313 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
314 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
315 >autobranchlength</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
316 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
317 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
318 >One of the perennial annoyances for 6809 programmers is that the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
319 mneumonics for the short and long branch instructions are different (bxx vs. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
320 lbxx), which is at odds with the rest of the instruction set. This pragma |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
321 is a solution to those annoying byte overflow errors that short branch |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
322 instructions tend to aquire.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
323 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
324 >When this pragma is in effect, which is not the default, whenever any |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
325 relative branch instruction is used, its size will be automatically |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
326 determined based on the actual distance to the destination. In other words, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
327 one can write code with long or short branches everywhere and the assembler |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
328 will choose a size for the branch.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
329 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
330 >Also, while this pragma is in effect, the > and < symbols can be used |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
331 to force the branch size, analogous to their use for other instructions with |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
332 < forcing 8 bit offsets and > forcing 16 bit offets.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
333 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
334 >Because this pragma leads to source that is incompatible with other |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
335 assemblers, it is strongly recommended that it be invoked using the PRAGMA |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
336 directive within the source code rather than on the command line or via the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
337 *PRAGMA directive. This way, an error will be raised if someone tries to |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
338 assemble the code under a different assembler.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
339 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
340 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
341 >nosymbolcase, symbolnocase</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
342 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
343 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
344 >Any symbol defined while this pragma is in force will be treated as |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
345 case insensitive, regardless whether the pragma is in force when the symbol |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
346 is referenced.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
347 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
348 >It is important to note that this pragma will not work as expected in |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
349 all cases when using the object file assembly target. It is intended for |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
350 use only when the assembler will be producing the final binary.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
351 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
352 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
353 >condundefzero</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
354 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
355 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
356 >This pragma will cause the assembler to change the way it handles |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
357 symbols in conditional expressions. Ordinarily, any symbol that is not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
358 defined prior to the conditional will throw an undefined symbol error. With |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
359 this pragma in effect, symbols that are not yet defined at the point the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
360 conditional is encountered will be treated as zero.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
361 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
362 >This is not the default because it encourages poor code design. One |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
363 should use the "IFDEF" or "IFNDEF" conditionals to test for the presence of |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
364 a symbol.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
365 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
366 >It is important to note that if a symbol is defined but it does not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
367 yet evaluate to a constant value at the point where the conditional appears, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
368 the assembler will still complain about a non constant condition.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
369 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
370 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
371 >forwardrefmax</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
372 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
373 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
374 >This pragma will disable forward reference optimization completely. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
375 Ordinarily, LWASM will attempt to select the shortest possible addressing |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
376 mode for forward references. However, in many source files, especially |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
377 those not using the PCR relative addressing modes, this optimization is |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
378 pointless since the assembler will almost certainly settle on a 16 bit |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
379 offset or address. If all variables in the direct page are defined before |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
380 the main body of the code, the benefit of forward reference optimization |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
381 almost certainly vanishes completely. However, the cost of doing that |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
382 optimization remains and can result in a very long assembly time.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
383 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
384 >Enabling this pragma will cause all forward references to use the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
385 maximum offset or address size, much the same has EDTASM and other pure |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
386 two pass assemblers do. The side effect is that all line lengths and |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
387 symbol values are fully resolved after the initial parsing pass and the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
388 amount of work to resolve everything becomes almost nil.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
389 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
390 >While this pragma can be applied selectively to sections of source |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
391 code (use *PRAGMA if doing so and compatibility with other assemblers |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
392 is desired), it is likely more useful when provided as a command line |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
393 pragma.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
394 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
395 >It should be noted that the presence or absence of this pragma |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
396 will not change the correctness of the generated code unless cycle counts |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
397 or byte counts are critical (which they usually are not). It also will |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
398 not override the operand size override prefixes (< and >). It only |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
399 applies when the assembler is left to guess what the operand size is.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
400 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
401 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
402 >qrts</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
403 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
404 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
405 > Enables the use of the ?RTS branch target. ?RTS is implemented to maintain |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
406 compatibility with the MACRO-80c assembler. It works by searching backward |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
407 in the code for an RTS instruction. If none is found, it inverts the branch |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
408 logic and inserts an RTS following the branch instruction. Below you can |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
409 see how a BMI (2B xx) has been assembled as a BPL *+1 (2A 01) to skip over an |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
410 inserted RTS (39).</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
411 ><PRE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
412 CLASS="PROGRAMLISTING" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
413 >1D1E 7D1D1D TST WHICH1 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
414 1D21 2A0139 BMI ?RTS |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
415 1D24 BD1D65 JSR INV</PRE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
416 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
417 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
418 >m80ext</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
419 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
420 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
421 > This pragma (along with pragma qrts) enables some uncommon behaviors to |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
422 accomodate The Micro Works MACRO-80c assembler from 1982. This assembler |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
423 was used by a number of notable TRS-80 Color Computer applications and the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
424 goal of this pragma is to allow them to build identical binaries from |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
425 unmodified, vintage source code.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
426 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
427 > In m80ext mode, the handling of the "END" pseudo-op changes when used inside |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
428 an include file. Instead of terminating all assembly, it merely stops |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
429 processing of the current include file (this behavior matches the original |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
430 Motorola 6809 assembler). In addition, loading an ASCII value with a single |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
431 quote (e.g., LDA #'N) is extended to 16-bit registers (e.g., LDD #'NO). |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
432 LWASM normally supports this via double quote and that is the proper use in |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
433 modern code. Finally, the FCC pseudo-op is extended to handle FCB-like |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
434 behavior after the closing delimiter:</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
435 ><PRE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
436 CLASS="PROGRAMLISTING" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
437 > FCC "Greetings from 1982",13,0</PRE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
438 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
439 ><DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
440 >testmode</DT |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
441 ><DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
442 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
443 > This pragma is intended for internal testing purposes. In testmode, the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
444 assembler searches for a specially-formatted comment starting with a |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
445 semicolon followed by a period. Immediately afterward are a list of hex |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
446 bytes that the assembler is expected to generate. Likewise, if the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
447 assembler is expected to throw an error or warning on a given line, you can |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
448 check by specifying "E:" followed by the error number. In this case the |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
449 error is ignored and the assembler continues ignoring the line in question. </P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
450 ><PRE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
451 CLASS="PROGRAMLISTING" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
452 >1D1E 7D1D1D TST WHICH1 ;.7d1d1d |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
453 1D21 2A0139 BMI ?RTS ;.2a0139 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
454 1D24 1D24 FDB * ;.1d24 |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
455 1D26 xyz INV ;.E:32 (Error 32 is "Bad opcode")</PRE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
456 ></DD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
457 ></DL |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
458 ></DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
459 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
460 >As a convenience, each input file has a pragma state stack. This |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
461 allows, through the use of *PRAGMAPUSH and *PRAGMAPOP, a file to change a |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
462 pragma state and then restore it to the precise state it had previously. |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
463 If, at the end of an input file, all pragma states have not been popped, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
464 they will be removed from the stack. Thus, it is critical to employ |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
465 *PRAGMAPOP correctly. Because each input file has its own pragma stack, |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
466 using *PRAGMAPUSH in one file and *PRAGMAPOP in another file will not |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
467 work.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
468 ><P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
469 >Pragma stacks are more useful in include files, in particular in |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
470 conjunction with the nolist pragma. One can push the state of the nolist |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
471 pragma, engage the nolist pragma, and then pop the state of the nolist |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
472 pragma at the end of the include file. This will cause the entire include |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
473 file to operate under the nolist pragma. However, if the file is included |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
474 while nolist is already engaged, it will not undo that state.</P |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
475 ></DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
476 ><DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
477 CLASS="NAVFOOTER" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
478 ><HR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
479 ALIGN="LEFT" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
480 WIDTH="100%"><TABLE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
481 SUMMARY="Footer navigation table" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
482 WIDTH="100%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
483 BORDER="0" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
484 CELLPADDING="0" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
485 CELLSPACING="0" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
486 ><TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
487 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
488 WIDTH="33%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
489 ALIGN="left" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
490 VALIGN="top" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
491 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
492 HREF="x595.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
493 ACCESSKEY="P" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
494 >Prev</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
495 ></TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
496 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
497 WIDTH="34%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
498 ALIGN="center" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
499 VALIGN="top" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
500 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
501 HREF="index.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
502 ACCESSKEY="H" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
503 >Home</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
504 ></TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
505 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
506 WIDTH="33%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
507 ALIGN="right" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
508 VALIGN="top" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
509 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
510 HREF="x795.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
511 ACCESSKEY="N" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
512 >Next</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
513 ></TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
514 ></TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
515 ><TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
516 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
517 WIDTH="33%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
518 ALIGN="left" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
519 VALIGN="top" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
520 >Object Files and Sections</TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
521 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
522 WIDTH="34%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
523 ALIGN="center" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
524 VALIGN="top" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
525 ><A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
526 HREF="c62.html" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
527 ACCESSKEY="U" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
528 >Up</A |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
529 ></TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
530 ><TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
531 WIDTH="33%" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
532 ALIGN="right" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
533 VALIGN="top" |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
534 >Convenience Instructions</TD |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
535 ></TR |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
536 ></TABLE |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
537 ></DIV |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
538 ></BODY |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
539 ></HTML |
fc166b3bbae3
Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
540 > |