annotate docs/manual/x628.html @ 333:507f442dc71e

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