annotate doc/manual/manual.html @ 421:3c2e1f24cc7d 3.0-beta2

Added generated files for release
author lost@l-w.ca
date Sun, 19 Sep 2010 01:33:24 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
421
3c2e1f24cc7d Added generated files for release
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">
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2 <HTML
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
3 ><HEAD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
4 ><TITLE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
5 >LW Tool Chain</TITLE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
6 ><META
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
7 NAME="GENERATOR"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
9 ><BODY
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
10 CLASS="BOOK"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
11 BGCOLOR="#FFFFFF"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
12 TEXT="#000000"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
13 LINK="#0000FF"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
14 VLINK="#840084"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
15 ALINK="#0000FF"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
16 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
17 CLASS="BOOK"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
18 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
19 NAME="AEN1"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
20 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
21 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
22 CLASS="TITLEPAGE"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
23 ><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
24 CLASS="TITLE"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
25 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
26 NAME="AEN2"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
27 >LW Tool Chain</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
28 ></H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
29 ><H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
30 CLASS="AUTHOR"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
31 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
32 NAME="AEN4"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
33 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
34 >William Astle</H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
35 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
36 CLASS="COPYRIGHT"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
37 >Copyright &copy; 2009, 2010 William Astle</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
38 ><HR></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
39 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
40 CLASS="TOC"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
41 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
42 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
43 ><B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
44 >Table of Contents</B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
45 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
46 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
47 >1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
48 HREF="#AEN10"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
49 >Introduction</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
50 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
51 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
52 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
53 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
54 >1.1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
55 HREF="#AEN13"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
56 >History</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
57 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
58 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
59 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
60 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
61 >2. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
62 HREF="#AEN18"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
63 >Output Formats</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
64 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
65 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
66 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
67 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
68 >2.1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
69 HREF="#AEN21"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
70 >Raw Binaries</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
71 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
72 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
73 >2.2. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
74 HREF="#AEN24"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
75 >DECB Binaries</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
76 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
77 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
78 >2.3. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
79 HREF="#AEN29"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
80 >OS9 Modules</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
81 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
82 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
83 >2.4. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
84 HREF="#AEN35"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
85 >Object Files</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
86 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
87 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
88 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
89 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
90 >3. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
91 HREF="#AEN43"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
92 >LWASM</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
93 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
94 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
95 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
96 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
97 >3.1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
98 HREF="#AEN46"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
99 >Command Line Options</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
100 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
101 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
102 >3.2. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
103 HREF="#AEN161"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
104 >Dialects</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
105 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
106 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
107 >3.3. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
108 HREF="#AEN168"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
109 >Source Format</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
110 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
111 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
112 >3.4. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
113 HREF="#AEN177"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
114 >Symbols</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
115 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
116 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
117 >3.5. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
118 HREF="#AEN182"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
119 >Numbers and Expressions</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
120 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
121 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
122 >3.6. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
123 HREF="#AEN190"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
124 >Assembler Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
125 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
126 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
127 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
128 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
129 >3.6.1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
130 HREF="#AEN193"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
131 >Data Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
132 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
133 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
134 >3.6.2. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
135 HREF="#AEN296"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
136 >Address Definition</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
137 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
138 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
139 >3.6.3. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
140 HREF="#AEN343"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
141 >Conditional Assembly</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
142 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
143 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
144 >3.6.4. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
145 HREF="#AEN408"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
146 >OS9 Target Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
147 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
148 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
149 >3.6.5. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
150 HREF="#AEN433"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
151 >Miscelaneous Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
152 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
153 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
154 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
155 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
156 >3.7. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
157 HREF="#AEN473"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
158 >Macros</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
159 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
160 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
161 >3.8. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
162 HREF="#AEN495"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
163 >Structures</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
164 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
165 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
166 >3.9. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
167 HREF="#AEN516"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
168 >Object Files and Sections</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
169 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
170 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
171 >3.10. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
172 HREF="#AEN579"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
173 >Assembler Modes and Pragmas</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
174 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
175 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
176 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
177 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
178 >4. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
179 HREF="#AEN624"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
180 >LWLINK</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
181 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
182 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
183 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
184 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
185 >4.1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
186 HREF="#AEN627"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
187 >Command Line Options</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
188 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
189 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
190 >4.2. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
191 HREF="#AEN724"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
192 >Linker Operation</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
193 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
194 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
195 >4.3. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
196 HREF="#AEN738"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
197 >Linking Scripts</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
198 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
199 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
200 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
201 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
202 >5. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
203 HREF="#AEN772"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
204 >Libraries and LWAR</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
205 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
206 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
207 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
208 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
209 >5.1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
210 HREF="#AEN776"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
211 >Command Line Options</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
212 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
213 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
214 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
215 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
216 >6. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
217 HREF="#OBJCHAP"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
218 >Object Files</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
219 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
220 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
221 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
222 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
223 CLASS="LOT"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
224 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
225 CLASS="LOT"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
226 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
227 ><B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
228 >List of Tables</B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
229 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
230 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
231 >6-1. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
232 HREF="#AEN859"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
233 >Object File Term Types</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
234 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
235 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
236 >6-2. <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
237 HREF="#AEN889"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
238 >Object File Operator Numbers</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
239 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
240 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
241 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
242 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
243 CLASS="CHAPTER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
244 ><HR><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
245 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
246 NAME="AEN10"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
247 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
248 >Chapter 1. Introduction</H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
249 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
250 >The LW tool chain provides utilities for building binaries for MC6809 and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
251 HD6309 CPUs. The tool chain includes a cross-assembler and a cross-linker
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
252 which support several styles of output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
253 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
254 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
255 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
256 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
257 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
258 NAME="AEN13"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
259 >1.1. History</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
260 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
261 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
262 >For a long time, I have had an interest in creating an operating system for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
263 the Coco3. I finally started working on that project around the beginning of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
264 2006. I had a number of assemblers I could choose from. Eventually, I settled
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
265 on one and started tinkering. After a while, I realized that assembler was not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
266 going to be sufficient due to lack of macros and issues with forward references.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
267 Then I tried another which handled forward references correctly but still did
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
268 not support macros. I looked around at other assemblers and they all lacked
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
269 one feature or another that I really wanted for creating my operating system.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
270 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
271 >The solution seemed clear at that point. I am a fair programmer so I figured
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
272 I could write an assembler that would do everything I wanted an assembler to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
273 do. Thus the LWASM probject was born. After more than two years of on and off
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
274 work, version 1.0 of LWASM was released in October of 2008.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
275 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
276 >As the aforementioned operating system project progressed further, it became
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
277 clear that while assembling the whole project through a single file was doable,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
278 it was not practical. When I found myself playing some fancy games with macros
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
279 in a bid to simulate sections, I realized I needed a means of assembling
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
280 source files separately and linking them later. This spawned a major development
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
281 effort to add an object file support to LWASM. It also spawned the LWLINK
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
282 project to provide a means to actually link the files.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
283 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
284 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
285 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
286 CLASS="CHAPTER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
287 ><HR><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
288 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
289 NAME="AEN18"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
290 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
291 >Chapter 2. Output Formats</H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
292 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
293 >The LW tool chain supports multiple output formats. Each format has its
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
294 advantages and disadvantages. Each format is described below.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
295 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
296 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
297 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
298 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
299 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
300 NAME="AEN21"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
301 >2.1. Raw Binaries</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
302 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
303 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
304 >A raw binary is simply a string of bytes. There are no headers or other
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
305 niceties. Both LWLINK and LWASM support generating raw binaries. ORG directives
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
306 in the source code only serve to set the addresses that will be used for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
307 symbols but otherwise have no direct impact on the resulting binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
308 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
309 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
310 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
311 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
312 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
313 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
314 NAME="AEN24"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
315 >2.2. DECB Binaries</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
316 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
317 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
318 >A DECB binary is compatible with the LOADM command in Disk Extended
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
319 Color Basic on the CoCo. They are also compatible with CLOADM from Extended
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
320 Color Basic. These binaries include the load address of the binary as well
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
321 as encoding an execution address. These binaries may contain multiple loadable
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
322 sections, each of which has its own load address.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
323 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
324 >Each binary starts with a preamble. Each preamble is five bytes long. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
325 first byte is zero. The next two bytes specify the number of bytes to load
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
326 and the last two bytes specify the address to load the bytes at. Then, a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
327 string of bytes follows. After this string of bytes, there may be another
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
328 preamble or a postamble. A postamble is also five bytes in length. The first
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
329 byte of the postamble is $FF, the next two are zero, and the last two are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
330 the execution address for the binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
331 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
332 >Both LWASM and LWLINK can output this format.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
333 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
334 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
335 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
336 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
337 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
338 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
339 NAME="AEN29"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
340 >2.3. OS9 Modules</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
341 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
342 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
343 >&#13;Since version 2.5, LWASM is able to generate OS9 modules. The syntax is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
344 basically the same as for other assemblers. A module starts with the MOD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
345 directive and ends with the EMOD directive. The OS9 directive is provided
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
346 as a shortcut for writing system calls.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
347 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
348 >&#13;LWASM does NOT provide an OS9Defs file. You must provide your own. Also note
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
349 that the common practice of using "ifp1" around the inclusion of the OS9Defs
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
350 file is discouraged as it is pointless and can lead to unintentional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
351 problems and phasing errors. Because LWASM reads each file exactly once,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
352 there is no benefit to restricting the inclusion to the first assembly pass.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
353 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
354 >&#13;It is also critical to understand that unlike many OS9 assemblers, LWASM
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
355 does NOT maintain a separate data address counter. Thus, you must define
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
356 all your data offsets and so on outside of the mod/emod segment. It is,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
357 therefore, likely that source code targeted at other assemblers will require
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
358 edits to build correctly.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
359 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
360 >&#13;LWLINK does not, yet, have the ability to create OS9 modules from object
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
361 files.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
362 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
363 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
364 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
365 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
366 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
367 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
368 NAME="AEN35"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
369 >2.4. Object Files</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
370 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
371 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
372 >LWASM supports generating a proprietary object file format which is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
373 described in <A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
374 HREF="#OBJCHAP"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
375 >Chapter 6</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
376 >. LWLINK is then used to link these
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
377 object files into a final binary in any of LWLINK's supported binary
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
378 formats.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
379 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
380 >Object files also support the concept of sections which are not valid
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
381 for other output types. This allows related code from each object file
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
382 linked to be collapsed together in the final binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
383 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
384 >Object files are very flexible in that they allow references that are not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
385 known at assembly time to be resolved at link time. However, because the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
386 addresses of such references are not known at assembly time, there is no way
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
387 for the assembler to deduce that an eight bit addressing mode is possible.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
388 That means the assember will default to using sixteen bit addressing
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
389 whenever an external or cross-section reference is used.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
390 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
391 >As of LWASM 2.4, it is possible to force direct page addressing for an
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
392 external reference. Care must be taken to ensure the resulting addresses
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
393 are really in the direct page since the linker does not know what the direct
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
394 page is supposed to be and does not emit errors for byte overflows.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
395 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
396 >It is also possible to use external references in an eight bit immediate
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
397 mode instruction. In this case, only the low order eight bits will be used.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
398 Again, no byte overflows will be flagged.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
399 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
400 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
401 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
402 CLASS="CHAPTER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
403 ><HR><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
404 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
405 NAME="AEN43"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
406 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
407 >Chapter 3. LWASM</H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
408 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
409 >The LWTOOLS assembler is called LWASM. This chapter documents the various
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
410 features of the assembler. It is not, however, a tutorial on 6x09 assembly
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
411 language programming.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
412 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
413 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
414 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
415 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
416 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
417 NAME="AEN46"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
418 >3.1. Command Line Options</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
419 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
420 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
421 >The binary for LWASM is called "lwasm". Note that the binary is in lower
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
422 case. lwasm takes the following command line arguments.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
423 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
424 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
425 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
426 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
427 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
428 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
429 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
430 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
431 >--6309</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
432 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
433 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
434 >-3</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
435 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
436 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
437 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
438 >This will cause the assembler to accept the additional instructions available
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
439 on the 6309 processor. This is the default mode; this option is provided for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
440 completeness and to override preset command arguments.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
441 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
442 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
443 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
444 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
445 >--6809</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
446 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
447 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
448 >-9</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
449 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
450 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
451 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
452 >This will cause the assembler to reject instructions that are only available
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
453 on the 6309 processor.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
454 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
455 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
456 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
457 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
458 >--decb</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
459 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
460 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
461 >-b</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
462 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
463 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
464 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
465 >Select the DECB output format target. Equivalent to <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
466 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
467 >--format=decb</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
468 >.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
469 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
470 >While this is the default output format currently, it is not safe to rely
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
471 on that fact. Future versions may have different defaults. It is also trivial
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
472 to modify the source code to change the default. Thus, it is recommended to specify
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
473 this option if you need DECB output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
474 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
475 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
476 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
477 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
478 >--format=type</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
479 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
480 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
481 >-f type</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
482 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
483 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
484 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
485 >Select the output format. Valid values are <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
486 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
487 >obj</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
488 > for the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
489 object file target, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
490 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
491 >decb</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
492 > for the DECB LOADM format,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
493 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
494 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
495 >os9</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
496 > for creating OS9 modules, and <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
497 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
498 >raw</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
499 > for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
500 a raw binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
501 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
502 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
503 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
504 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
505 >--list[=file]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
506 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
507 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
508 >-l[file]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
509 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
510 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
511 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
512 >Cause LWASM to generate a listing. If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
513 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
514 >file</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
515 > is specified,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
516 the listing will go to that file. Otherwise it will go to the standard output
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
517 stream. By default, no listing is generated. Unless <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
518 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
519 >--symbols</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
520 >
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
521 is specified, the list will not include the symbol table.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
522 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
523 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
524 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
525 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
526 >--symbols</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
527 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
528 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
529 >-s</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
530 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
531 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
532 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
533 >Causes LWASM to generate a list of symbols when generating a listing.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
534 It has no effect unless a listing is being generated.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
535 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
536 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
537 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
538 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
539 >--obj</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
540 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
541 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
542 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
543 >Select the proprietary object file format as the output target.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
544 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
545 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
546 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
547 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
548 >--output=FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
549 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
550 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
551 >-o FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
552 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
553 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
554 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
555 >This option specifies the name of the output file. If not specified, the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
556 default is <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
557 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
558 >a.out</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
559 >.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
560 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
561 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
562 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
563 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
564 >--pragma=pragma</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
565 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
566 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
567 >-p pragma</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
568 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
569 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
570 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
571 >Specify assembler pragmas. Multiple pragmas are separated by commas. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
572 pragmas accepted are the same as for the PRAGMA assembler directive described
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
573 below.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
574 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
575 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
576 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
577 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
578 >--raw</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
579 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
580 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
581 >-r</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
582 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
583 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
584 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
585 >Select raw binary as the output target.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
586 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
587 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
588 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
589 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
590 >--includedir=path</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
591 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
592 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
593 >-I path</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
594 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
595 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
596 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
597 >Add <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
598 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
599 >path</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
600 > to the end of the include path.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
601 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
602 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
603 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
604 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
605 >--help</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
606 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
607 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
608 >-?</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
609 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
610 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
611 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
612 >Present a help screen describing the command line options.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
613 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
614 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
615 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
616 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
617 >--usage</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
618 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
619 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
620 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
621 >Provide a summary of the command line options.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
622 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
623 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
624 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
625 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
626 >--version</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
627 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
628 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
629 >-V</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
630 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
631 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
632 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
633 >Display the software version.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
634 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
635 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
636 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
637 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
638 >--debug</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
639 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
640 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
641 >-d</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
642 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
643 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
644 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
645 >Increase the debugging level. Only really useful to people hacking on the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
646 LWASM source code itself.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
647 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
648 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
649 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
650 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
651 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
652 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
653 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
654 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
655 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
656 NAME="AEN161"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
657 >3.2. Dialects</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
658 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
659 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
660 >LWASM supports all documented MC6809 instructions as defined by Motorola.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
661 It also supports all known HD6309 instructions. While there is general
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
662 agreement on the pneumonics for most of the 6309 instructions, there is some
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
663 variance with the block transfer instructions. TFM for all four variations
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
664 seems to have gained the most traction and, thus, this is the form that is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
665 recommended for LWASM. However, it also supports COPY, COPY-, IMP, EXP,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
666 TFRP, TFRM, TFRS, and TFRR. It further adds COPY+ as a synomym for COPY,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
667 IMPLODE for IMP, and EXPAND for EXP.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
668 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
669 >By default, LWASM accepts 6309 instructions. However, using the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
670 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
671 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
672 >--6809</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
673 > parameter, you can cause it to throw errors on
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
674 6309 instructions instead.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
675 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
676 >The standard addressing mode specifiers are supported. These are the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
677 hash sign ("#") for immediate mode, the less than sign ("&lt;") for forced
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
678 eight bit modes, and the greater than sign ("&gt;") for forced sixteen bit modes.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
679 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
680 >Additionally, LWASM supports using the asterisk ("*") to indicate
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
681 base page addressing. This should not be used in hand-written source code,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
682 however, because it is non-standard and may or may not be present in future
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
683 versions of LWASM.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
684 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
685 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
686 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
687 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
688 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
689 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
690 NAME="AEN168"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
691 >3.3. Source Format</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
692 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
693 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
694 >LWASM accepts plain text files in a relatively free form. It can handle
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
695 lines terminated with CR, LF, CRLF, or LFCR which means it should be able
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
696 to assemble files on any platform on which it compiles.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
697 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
698 >Each line may start with a symbol. If a symbol is present, there must not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
699 be any whitespace preceding it. It is legal for a line to contain nothing
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
700 but a symbol.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
701 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
702 >The op code is separated from the symbol by whitespace. If there is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
703 no symbol, there must be at least one white space character preceding it.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
704 If applicable, the operand follows separated by whitespace. Following the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
705 opcode and operand is an optional comment.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
706 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
707 >A comment can also be introduced with a * or a ;. The comment character is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
708 optional for end of statement comments. However, if a symbol is the only
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
709 thing present on the line other than the comment, the comment character is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
710 mandatory to prevent the assembler from interpreting the comment as an opcode.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
711 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
712 >For compatibility with the output generated by some C preprocessors, LWASM
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
713 will also ignore lines that begin with a #. This should not be used as a general
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
714 comment character, however.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
715 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
716 >The opcode is not treated case sensitively. Neither are register names in
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
717 the operand fields. Symbols, however, are case sensitive.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
718 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
719 > As of version 2.6, LWASM supports files with line numbers. If line
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
720 numbers are present, the line must start with a digit. The line number
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
721 itself must consist only of digits. The line number must then be followed
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
722 by either the end of the line or exactly one white space character. After
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
723 that white space character, the lines are interpreted exactly as above. </P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
724 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
725 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
726 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
727 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
728 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
729 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
730 NAME="AEN177"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
731 >3.4. Symbols</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
732 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
733 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
734 >Symbols have no length restriction. They may contain letters, numbers, dots,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
735 dollar signs, and underscores. They must start with a letter, dot, or
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
736 underscore.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
737 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
738 >LWASM also supports the concept of a local symbol. A local symbol is one
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
739 which contains either a "?" or a "@", which can appear anywhere in the symbol.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
740 The scope of a local symbol is determined by a number of factors. First,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
741 each included file gets its own local symbol scope. A blank line will also
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
742 be considered a local scope barrier. Macros each have their own local symbol
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
743 scope as well (which has a side effect that you cannot use a local symbol
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
744 as an argument to a macro). There are other factors as well. In general,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
745 a local symbol is restricted to the block of code it is defined within.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
746 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
747 >By default, unless assembling to the os9 target, a "$" in the symbol will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
748 also make it local. This can be controlled by the "dollarlocal" and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
749 "nodollarlocal" pragmas. In the absence of a pragma to the contrary, for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
750 the os9 target, a "$" in the symbol will not make it considered local while
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
751 for all other targets it will.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
752 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
753 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
754 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
755 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
756 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
757 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
758 NAME="AEN182"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
759 >3.5. Numbers and Expressions</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
760 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
761 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
762 >&#13;Numbers can be expressed in binary, octal, decimal, or hexadecimal. Binary
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
763 numbers may be prefixed with a "%" symbol or suffixed with a "b" or "B".
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
764 Octal numbers may be prefixed with "@" or suffixed with "Q", "q", "O", or
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
765 "o". Hexadecimal numbers may be prefixed with "$", "0x" or "0X", or suffixed
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
766 with "H". No prefix or suffix is required for decimal numbers but they can
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
767 be prefixed with "&amp;" if desired. Any constant which begins with a letter
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
768 must be expressed with the correct prefix base identifier or be prefixed
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
769 with a 0. Thus hexadecimal FF would have to be written either 0FFH or $FF.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
770 Numbers are not case sensitive.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
771 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
772 > A symbol may appear at any point where a number is acceptable. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
773 special symbol "*" can be used to represent the starting address of the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
774 current source line within expressions. </P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
775 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
776 >The ASCII value of a character can be included by prefixing it with a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
777 single quote ('). The ASCII values of two characters can be included by
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
778 prefixing the characters with a quote (").</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
779 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
780 >&#13;LWASM supports the following basic binary operators: +, -, *, /, and %.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
781 These represent addition, subtraction, multiplication, division, and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
782 modulus. It also supports unary negation and unary 1's complement (- and ^
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
783 respectively). It is also possible to use ~ for the unary 1's complement
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
784 operator. For completeness, a unary positive (+) is supported though it is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
785 a no-op. LWASM also supports using |, &#38;, and ^ for bitwise or, bitwise and,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
786 and bitwise exclusive or respectively.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
787 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
788 >&#13;Operator precedence follows the usual rules. Multiplication, division, and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
789 modulus take precedence over addition and subtraction. Unary operators take
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
790 precedence over binary operators. Bitwise operators are lower precdence
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
791 than addition and subtraction. To force a specific order of evaluation,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
792 parentheses can be used in the usual manner.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
793 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
794 >&#13;As of LWASM 2.5, the operators &#38;&#38; and || are recognized for boolean and and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
795 boolean or respectively. They will return either 0 or 1 (false or true).
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
796 They have the lowest precedence of all the binary operators.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
797 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
798 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
799 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
800 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
801 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
802 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
803 NAME="AEN190"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
804 >3.6. Assembler Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
805 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
806 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
807 >Various directives can be used to control the behaviour of the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
808 assembler or to include non-code/data in the resulting output. Those directives
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
809 that are not described in detail in other sections of this document are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
810 described below.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
811 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
812 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
813 ><HR><H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
814 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
815 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
816 NAME="AEN193"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
817 >3.6.1. Data Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
818 ></H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
819 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
820 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
821 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
822 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
823 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
824 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
825 >FCB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
826 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
827 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
828 >, .DB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
829 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
830 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
831 >, .BYTE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
832 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
833 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
834 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
835 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
836 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
837 >Include one or more constant bytes (separated by commas) in the output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
838 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
839 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
840 >FDB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
841 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
842 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
843 >, .DW <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
844 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
845 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
846 >, .WORD <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
847 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
848 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
849 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
850 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
851 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
852 >Include one or more words (separated by commas) in the output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
853 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
854 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
855 >FQB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
856 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
857 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
858 >, .QUAD <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
859 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
860 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
861 >, .4BYTE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
862 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
863 >expr[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
864 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
865 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
866 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
867 >Include one or more double words (separated by commas) in the output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
868 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
869 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
870 >FCC <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
871 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
872 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
873 >, .ASCII <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
874 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
875 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
876 >, .STR <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
877 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
878 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
879 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
880 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
881 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
882 >Include a string of text in the output. The first character of the operand
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
883 is the delimiter which must appear as the last character and cannot appear
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
884 within the string. The string is included with no modifications&#62;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
885 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
886 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
887 >FCN <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
888 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
889 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
890 >, .ASCIZ <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
891 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
892 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
893 >, .STRZ <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
894 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
895 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
896 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
897 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
898 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
899 >Include a NUL terminated string of text in the output. The first character of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
900 the operand is the delimiter which must appear as the last character and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
901 cannot appear within the string. A NUL byte is automatically appended to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
902 the string.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
903 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
904 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
905 >FCS <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
906 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
907 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
908 >, .ASCIS <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
909 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
910 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
911 >, .STRS <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
912 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
913 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
914 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
915 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
916 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
917 >Include a string of text in the output with bit 7 of the final byte set. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
918 first character of the operand is the delimiter which must appear as the last
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
919 character and cannot appear within the string.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
920 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
921 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
922 >ZMB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
923 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
924 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
925 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
926 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
927 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
928 >Include a number of NUL bytes in the output. The number must be fully resolvable
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
929 during pass 1 of assembly so no forward or external references are permitted.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
930 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
931 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
932 >ZMD <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
933 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
934 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
935 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
936 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
937 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
938 >Include a number of zero words in the output. The number must be fully
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
939 resolvable during pass 1 of assembly so no forward or external references are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
940 permitted.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
941 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
942 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
943 >ZMQ <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
944 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
945 >expr<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
946 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
947 ></CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
948 ></CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
949 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
950 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
951 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
952 >Include a number of zero double-words in the output. The number must be fully
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
953 resolvable during pass 1 of assembly so no forward or external references are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
954 permitted.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
955 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
956 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
957 >RMB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
958 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
959 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
960 >, .BLKB <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
961 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
962 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
963 >, .DS <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
964 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
965 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
966 >, .RS <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
967 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
968 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
969 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
970 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
971 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
972 >Reserve a number of bytes in the output. The number must be fully resolvable
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
973 during pass 1 of assembly so no forward or external references are permitted.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
974 The value of the bytes is undefined.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
975 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
976 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
977 >RMD <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
978 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
979 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
980 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
981 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
982 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
983 >Reserve a number of words in the output. The number must be fully
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
984 resolvable during pass 1 of assembly so no forward or external references are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
985 permitted. The value of the words is undefined.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
986 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
987 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
988 >RMQ <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
989 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
990 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
991 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
992 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
993 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
994 >Reserve a number of double-words in the output. The number must be fully
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
995 resolvable during pass 1 of assembly so no forward or external references are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
996 permitted. The value of the double-words is undefined.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
997 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
998 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
999 >INCLUDEBIN <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1000 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1001 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1002 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1003 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1004 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1005 >Treat the contents of <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1006 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1007 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1008 > as a string of bytes to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1009 be included literally at the current assembly point. This has the same effect
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1010 as converting the file contents to a series of FCB statements and including
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1011 those at the current assembly point.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1012 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1013 > If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1014 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1015 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1016 > beings with a /, the file name
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1017 will be taken as absolute. Otherwise, the current directory will be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1018 searched followed by the search path in the order specified.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1019 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1020 > Please note that absolute path detection including drive letters will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1021 not function correctly on Windows platforms. Non-absolute inclusion will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1022 work, however.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1023 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1024 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1025 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1026 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1027 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1028 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1029 ><HR><H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1030 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1031 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1032 NAME="AEN296"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1033 >3.6.2. Address Definition</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1034 ></H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1035 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1036 >The directives in this section all control the addresses of symbols
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1037 or the assembly process itself.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1038 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1039 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1040 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1041 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1042 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1043 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1044 >ORG <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1045 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1046 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1047 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1048 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1049 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1050 >Set the assembly address. The address must be fully resolvable on the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1051 first pass so no external or forward references are permitted. ORG is not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1052 permitted within sections when outputting to object files. For the DECB
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1053 target, each ORG directive after which output is generated will cause
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1054 a new preamble to be output. ORG is only used to determine the addresses
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1055 of symbols when the raw target is used.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1056 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1057 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1058 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1059 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1060 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1061 > EQU <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1062 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1063 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1064 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1065 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1066 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1067 > = <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1068 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1069 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1070 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1071 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1072 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1073 >Define the value of <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1074 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1075 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1076 > to be <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1077 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1078 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1079 >.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1080 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1081 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1082 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1083 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1084 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1085 > SET <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1086 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1087 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1088 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1089 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1090 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1091 >Define the value of <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1092 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1093 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1094 > to be <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1095 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1096 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1097 >.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1098 Unlike EQU, SET permits symbols to be defined multiple times as long as SET
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1099 is used for all instances. Use of the symbol before the first SET statement
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1100 that sets its value is undefined.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1101 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1102 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1103 >SETDP <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1104 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1105 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1106 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1107 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1108 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1109 >Inform the assembler that it can assume the DP register contains
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1110 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1111 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1112 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1113 >. This directive is only advice to the assembler
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1114 to determine whether an address is in the direct page and has no effect
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1115 on the contents of the DP register. The value must be fully resolved during
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1116 the first assembly pass because it affects the sizes of subsequent instructions.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1117 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1118 >This directive has no effect in the object file target.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1119 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1120 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1121 >ALIGN <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1122 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1123 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1124 >[,<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1125 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1126 >value</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1127 >]</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1128 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1129 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1130 >Force the current assembly address to be a multiple of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1131 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1132 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1133 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1134 >. If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1135 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1136 >value</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1137 > is not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1138 specified, a series of NUL bytes is output to force the alignment, if
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1139 required. Otherwise, the low order 8 bits of <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1140 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1141 >value</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1142 >
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1143 will be used as the fill. The alignment value must be fully resolved on the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1144 first pass because it affects the addresses of subsquent instructions.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1145 However, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1146 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1147 >value</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1148 > may include forward references; as
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1149 long as it resolves to a constant for the second pass, the value will be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1150 accepted.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1151 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1152 >Unless <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1153 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1154 >value</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1155 > is specified as something like $12,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1156 this directive is not suitable for inclusion in the middle of actual code.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1157 The default padding value is $00 which is intended to be used within data
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1158 blocks. </P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1159 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1160 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1161 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1162 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1163 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1164 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1165 ><HR><H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1166 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1167 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1168 NAME="AEN343"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1169 >3.6.3. Conditional Assembly</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1170 ></H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1171 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1172 >Portions of the source code can be excluded or included based on conditions
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1173 known at assembly time. Conditionals can be nested arbitrarily deeply. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1174 directives associated with conditional assembly are described in this section.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1175 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1176 >All conditionals must be fully bracketed. That is, every conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1177 statement must eventually be followed by an ENDC at the same level of nesting.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1178 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1179 >Conditional expressions are only evaluated on the first assembly pass.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1180 It is not possible to game the assembly process by having a conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1181 change its value between assembly passes. Due to the underlying architecture
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1182 of LWASM, there is no possible utility to IFP1 and IFP2, nor can they, as of LWASM 3.0, actually
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1183 be implemented meaningfully. Thus there is not and never will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1184 be any equivalent of IFP1 or IFP2 as provided by other assemblers. Use of those opcodes
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1185 will throw a warning and be ignored.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1186 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1187 >It is important to note that if a conditional does not resolve to a constant
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1188 during the first parsing pass, an error will be thrown. This is unavoidable because the assembler
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1189 must make a decision about which source to include and which source to exclude at this stage.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1190 Thus, expressions that work normally elsewhere will not work for conditions.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1191 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1192 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1193 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1194 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1195 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1196 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1197 >IFEQ <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1198 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1199 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1200 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1201 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1202 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1203 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1204 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1205 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1206 > evaluates to zero, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1207 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1208 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1209 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1210 >IFNE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1211 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1212 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1213 >, IF <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1214 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1215 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1216 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1217 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1218 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1219 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1220 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1221 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1222 > evaluates to a non-zero value, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1223 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1224 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1225 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1226 >IFGT <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1227 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1228 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1229 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1230 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1231 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1232 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1233 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1234 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1235 > evaluates to a value greater than zero, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1236 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1237 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1238 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1239 >IFGE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1240 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1241 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1242 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1243 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1244 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1245 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1246 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1247 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1248 > evaluates to a value greater than or equal to zero, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1249 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1250 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1251 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1252 >IFLT <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1253 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1254 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1255 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1256 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1257 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1258 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1259 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1260 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1261 > evaluates to a value less than zero, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1262 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1263 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1264 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1265 >IFLE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1266 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1267 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1268 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1269 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1270 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1271 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1272 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1273 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1274 > evaluates to a value less than or equal to zero , the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1275 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1276 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1277 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1278 >IFDEF <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1279 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1280 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1281 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1282 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1283 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1284 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1285 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1286 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1287 > is defined at this point in the assembly
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1288 process, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1289 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1290 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1291 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1292 >IFNDEF <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1293 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1294 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1295 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1296 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1297 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1298 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1299 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1300 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1301 > is not defined at this point in the assembly
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1302 process, the conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1303 will be considered true.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1304 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1305 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1306 >ELSE</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1307 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1308 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1309 >If the preceding conditional at the same level of nesting was false, the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1310 statements following will be assembled. If the preceding conditional at
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1311 the same level was true, the statements following will not be assembled.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1312 Note that the preceding conditional might have been another ELSE statement
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1313 although this behaviour is not guaranteed to be supported in future versions
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1314 of LWASM.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1315 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1316 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1317 >ENDC</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1318 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1319 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1320 >This directive marks the end of a conditional construct. Every conditional
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1321 construct must end with an ENDC directive.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1322 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1323 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1324 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1325 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1326 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1327 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1328 ><HR><H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1329 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1330 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1331 NAME="AEN408"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1332 >3.6.4. OS9 Target Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1333 ></H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1334 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1335 >This section includes directives that apply solely to the OS9
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1336 target.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1337 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1338 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1339 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1340 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1341 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1342 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1343 >OS9 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1344 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1345 >syscall</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1346 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1347 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1348 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1349 >&#13;This directive generates a call to the specified system call. <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1350 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1351 >syscall</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1352 > may be an arbitrary expression.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1353 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1354 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1355 >MOD <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1356 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1357 >size</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1358 >,<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1359 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1360 >name</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1361 >,<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1362 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1363 >type</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1364 >,<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1365 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1366 >flags</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1367 >,<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1368 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1369 >execoff</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1370 >,<CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1371 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1372 >datasize</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1373 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1374 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1375 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1376 >&#13;This tells LWASM that the beginning of the actual module is here. It will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1377 generate a module header based on the parameters specified. It will also
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1378 begin calcuating the module CRC.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1379 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1380 >&#13;The precise meaning of the various parameters is beyond the scope of this
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1381 document since it is not a tutorial on OS9 module programming.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1382 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1383 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1384 >EMOD</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1385 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1386 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1387 >&#13;This marks the end of a module and causes LWASM to emit the calculated CRC
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1388 for the module.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1389 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1390 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1391 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1392 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1393 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1394 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1395 ><HR><H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1396 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1397 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1398 NAME="AEN433"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1399 >3.6.5. Miscelaneous Directives</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1400 ></H3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1401 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1402 >This section includes directives that do not fit into the other
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1403 categories.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1404 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1405 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1406 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1407 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1408 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1409 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1410 >INCLUDE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1411 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1412 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1413 >, USE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1414 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1415 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1416 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1417 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1418 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1419 > Include the contents of <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1420 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1421 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1422 > at
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1423 this point in the assembly as though it were a part of the file currently
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1424 being processed. Note that if whitespace appears in the name of the file,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1425 you must enclose <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1426 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1427 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1428 > in quotes.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1429 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1430 >Note that the USE variation is provided only for compatibility with other
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1431 assemblers. It is recommended to use the INCLUDE variation.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1432 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1433 >If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1434 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1435 >filename</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1436 > begins with a &quot;/&quot;, it is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1437 interpreted as an absolute path. If it does not, the search path will be used
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1438 to find the file. First, the directory containing the file that contains this
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1439 directive. (Includes within an included file are relative to the included file,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1440 not the file that included it.) If the file is not found there, the include path
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1441 is searched. If it is still not found, an error will be thrown. Note that the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1442 current directory as understood by your shell or operating system is not searched.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1443 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1444 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1445 >END <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1446 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1447 >[expr]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1448 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1449 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1450 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1451 >This directive causes the assembler to stop assembling immediately as though
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1452 it ran out of input. For the DECB target only, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1453 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1454 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1455 >
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1456 can be used to set the execution address of the resulting binary. For all
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1457 other targets, specifying <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1458 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1459 >expr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1460 > will cause an error.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1461 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1462 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1463 >ERROR <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1464 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1465 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1466 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1467 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1468 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1469 >Causes a custom error message to be printed at this line. This will cause
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1470 assembly to fail. This directive is most useful inside conditional constructs
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1471 to cause assembly to fail if some condition that is known bad happens. Everything
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1472 from the directive to the end of the line is considered the error message.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1473 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1474 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1475 >WARNING <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1476 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1477 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1478 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1479 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1480 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1481 >Causes a custom warning message to be printed at this line. This will not cause
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1482 assembly to fail. This directive is most useful inside conditional constructs
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1483 or include files to alert the programmer to a deprecated feature being used
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1484 or some other condition that may cause trouble later, but which may, in fact,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1485 not cause any trouble.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1486 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1487 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1488 >.MODULE <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1489 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1490 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1491 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1492 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1493 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1494 >This directive is ignored for most output targets. If the output target
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1495 supports encoding a module name into it, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1496 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1497 >string</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1498 >
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1499 will be used as the module name.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1500 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1501 >As of version 3.0, no supported output targets support this directive.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1502 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1503 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1504 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1505 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1506 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1507 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1508 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1509 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1510 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1511 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1512 NAME="AEN473"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1513 >3.7. Macros</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1514 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1515 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1516 >LWASM is a macro assembler. A macro is simply a name that stands in for a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1517 series of instructions. Once a macro is defined, it is used like any other
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1518 assembler directive. Defining a macro can be considered equivalent to adding
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1519 additional assembler directives.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1520 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1521 >Macros may accept parameters. These parameters are referenced within
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1522 a macro by the a backslash ("\") followed by a digit 1 through 9 for the first
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1523 through ninth parameters. They may also be referenced by enclosing the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1524 decimal parameter number in braces ("{num}"). These parameter references
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1525 are replaced with the verbatim text of the parameter passed to the macro. A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1526 reference to a non-existent parameter will be replaced by an empty string.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1527 Macro parameters are expanded everywhere on each source line. That means
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1528 the parameter to a macro could be used as a symbol or it could even appear
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1529 in a comment or could cause an entire source line to be commented out
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1530 when the macro is expanded.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1531 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1532 >Parameters passed to a macro are separated by commas and the parameter list
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1533 is terminated by any whitespace. This means that neither a comma nor whitespace
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1534 may be included in a macro parameter.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1535 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1536 >Macro expansion is done recursively. That is, within a macro, macros are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1537 expanded. This can lead to infinite loops in macro expansion. If the assembler
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1538 hangs for a long time while assembling a file that uses macros, this may be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1539 the reason.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1540 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1541 >Each macro expansion receives its own local symbol context which is not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1542 inherited by any macros called by it nor is it inherited from the context
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1543 the macro was instantiated in. That means it is possible to use local symbols
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1544 within macros without having them collide with symbols in other macros or
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1545 outside the macro itself. However, this also means that using a local symbol
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1546 as a parameter to a macro, while legal, will not do what it would seem to do
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1547 as it will result in looking up the local symbol in the macro's symbol context
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1548 rather than the enclosing context where it came from, likely yielding either
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1549 an undefined symbol error or bizarre assembly results.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1550 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1551 >Note that there is no way to define a macro as local to a symbol context. All
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1552 macros are part of the global macro namespace. However, macros have a separate
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1553 namespace from symbols so it is possible to have a symbol with the same name
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1554 as a macro.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1555 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1556 >Macros are defined only during the first pass. Macro expansion also
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1557 only occurs during the first pass. On the second pass, the macro
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1558 definition is simply ignored. Macros must be defined before they are used.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1559 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1560 >The following directives are used when defining macros.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1561 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1562 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1563 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1564 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1565 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1566 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1567 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1568 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1569 >macroname</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1570 > MACRO</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1571 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1572 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1573 >This directive is used to being the definition of a macro called
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1574 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1575 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1576 >macroname</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1577 >. If <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1578 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1579 >macroname</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1580 > already
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1581 exists, it is considered an error. Attempting to define a macro within a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1582 macro is undefined. It may work and it may not so the behaviour should not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1583 be relied upon.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1584 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1585 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1586 >ENDM</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1587 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1588 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1589 >This directive indicates the end of the macro currently being defined. It
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1590 causes the assembler to resume interpreting source lines as normal.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1591 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1592 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1593 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1594 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1595 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1596 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1597 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1598 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1599 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1600 NAME="AEN495"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1601 >3.8. Structures</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1602 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1603 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1604 >&#13;Structures are used to group related data in a fixed structure. A structure
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1605 consists a number of fields, defined in sequential order and which take up
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1606 specified size. The assembler does not enforce any means of access within a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1607 structure; it assumes that whatever you are doing, you intended to do.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1608 There are two pseudo ops that are used for defining structures.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1609 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1610 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1611 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1612 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1613 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1614 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1615 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1616 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1617 >structname</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1618 > STRUCT</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1619 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1620 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1621 >&#13;This directive is used to begin the definition of a structure with name
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1622 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1623 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1624 >structname</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1625 >. Subsequent statements all form part of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1626 the structure definition until the end of the structure is declared.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1627 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1628 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1629 >ENDSTRUCT, ENDS</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1630 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1631 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1632 >This directive ends the definition of the structure. ENDSTRUCT is the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1633 preferred form. Prior to version 3.0 of LWASM, ENDS was used to end a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1634 section instead of a structure.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1635 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1636 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1637 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1638 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1639 >&#13;Within a structure definition, only reservation pseudo ops are permitted.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1640 Anything else will cause an assembly error.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1641 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1642 > Once a structure is defined, you can reserve an area of memory in the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1643 same structure by using the structure name as the opcode. Structures can
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1644 also contain fields that are themselves structures. See the example
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1645 below.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1646 ><PRE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1647 CLASS="PROGRAMLISTING"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1648 >tstruct2 STRUCT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1649 f1 rmb 1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1650 f2 rmb 1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1651 ENDSTRUCT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1652
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1653 tstruct STRUCT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1654 field1 rmb 2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1655 field2 rmb 3
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1656 field3 tstruct2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1657 ENDSTRUCT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1658
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1659 ORG $2000
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1660 var1 tstruct
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1661 var2 tstruct2</PRE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1662 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1663 >Fields are referenced using a dot (.) as a separator. To refer to the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1664 generic offset within a structure, use the structure name to the left of the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1665 dot. If referring to a field within an actual variable, use the variable's
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1666 symbol name to the left of the dot.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1667 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1668 >You can also refer to the actual size of a structure (or a variable
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1669 declared as a structure) using the special symbol sizeof{structname} where
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1670 structname will be the name of the structure or the name of the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1671 variable.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1672 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1673 >Essentially, structures are a shortcut for defining a vast number of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1674 symbols. When a structure is defined, the assembler creates symbols for the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1675 various fields in the form structname.fieldname as well as the appropriate
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1676 sizeof{structname} symbol. When a variable is declared as a structure, the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1677 assembler does the same thing using the name of the variable. You will see
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1678 these symbols in the symbol table when the assembler is instructed to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1679 provide a listing. For instance, the above listing will create the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1680 following symbols (symbol values in parentheses): tstruct2.f1 (0),
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1681 tstruct2.f2 (1), sizeof{tstruct2} (2), tstruct.field1 (0), tstruct.field2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1682 (2), tstruct.field3 (5), tstruct.field3.f1 (5), tstruct.field3.f2 (6),
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1683 sizeof{tstruct.field3} (2), sizeof{tstruct} (7), var1 {$2000}, var1.field1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1684 {$2000}, var1.field2 {$2002}, var1.field3 {$2005}, var1.field3.f1 {$2005},
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1685 var1.field3.f2 {$2006}, sizeof(var1.field3} (2), sizeof{var1} (7), var2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1686 ($2007), var2.f1 ($2007), var2.f2 ($2008), sizeof{var2} (2). </P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1687 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1688 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1689 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1690 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1691 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1692 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1693 NAME="AEN516"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1694 >3.9. Object Files and Sections</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1695 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1696 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1697 >The object file target is very useful for large project because it allows
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1698 multiple files to be assembled independently and then linked into the final
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1699 binary at a later time. It allows only the small portion of the project
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1700 that was modified to be re-assembled rather than requiring the entire set
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1701 of source code to be available to the assembler in a single assembly process.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1702 This can be particularly important if there are a large number of macros,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1703 symbol definitions, or other metadata that uses resources at assembly time.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1704 By far the largest benefit, however, is keeping the source files small enough
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1705 for a mere mortal to find things in them.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1706 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1707 >With multi-file projects, there needs to be a means of resolving references to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1708 symbols in other source files. These are known as external references. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1709 addresses of these symbols cannot be known until the linker joins all the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1710 object files into a single binary. This means that the assembler must be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1711 able to output the object code without knowing the value of the symbol. This
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1712 places some restrictions on the code generated by the assembler. For
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1713 example, the assembler cannot generate direct page addressing for instructions
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1714 that reference external symbols because the address of the symbol may not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1715 be in the direct page. Similarly, relative branches and PC relative addressing
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1716 cannot be used in their eight bit forms. Everything that must be resolved
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1717 by the linker must be assembled to use the largest address size possible to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1718 allow the linker to fill in the correct value at link time. Note that the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1719 same problem applies to absolute address references as well, even those in
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1720 the same source file, because the address is not known until link time.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1721 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1722 >It is often desired in multi-file projects to have code of various types grouped
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1723 together in the final binary generated by the linker as well. The same applies
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1724 to data. In order for the linker to do that, the bits that are to be grouped
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1725 must be tagged in some manner. This is where the concept of sections comes in.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1726 Each chunk of code or data is part of a section in the object file. Then,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1727 when the linker reads all the object files, it coalesces all sections of the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1728 same name into a single section and then considers it as a unit.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1729 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1730 >The existence of sections, however, raises a problem for symbols even
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1731 within the same source file. Thus, the assembler must treat symbols from
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1732 different sections within the same source file in the same manner as external
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1733 symbols. That is, it must leave them for the linker to resolve at link time,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1734 with all the limitations that entails.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1735 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1736 >In the object file target mode, LWASM requires all source lines that
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1737 cause bytes to be output to be inside a section. Any directives that do
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1738 not cause any bytes to be output can appear outside of a section. This includes
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1739 such things as EQU or RMB. Even ORG can appear outside a section. ORG, however,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1740 makes no sense within a section because it is the linker that determines
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1741 the starting address of the section's code, not the assembler.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1742 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1743 >All symbols defined globally in the assembly process are local to the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1744 source file and cannot be exported. All symbols defined within a section are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1745 considered local to the source file unless otherwise explicitly exported.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1746 Symbols referenced from external source files must be declared external,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1747 either explicitly or by asking the assembler to assume that all undefined
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1748 symbols are external.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1749 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1750 >It is often handy to define a number of memory addresses that will be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1751 used for data at run-time but which need not be included in the binary file.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1752 These memory addresses are not initialized until run-time, either by the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1753 program itself or by the program loader, depending on the operating environment.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1754 Such sections are often known as BSS sections. LWASM supports generating
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1755 sections with a BSS attribute set which causes the section definition including
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1756 symbols exported from that section and those symbols required to resolve
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1757 references from the local file, but with no actual code in the object file.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1758 It is illegal for any source lines within a BSS flagged section to cause any
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1759 bytes to be output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1760 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1761 >The following directives apply to section handling.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1762 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1763 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1764 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1765 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1766 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1767 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1768 >SECTION <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1769 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1770 >name[,flags]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1771 >, SECT <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1772 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1773 >name[,flags]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1774 >, .AREA <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1775 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1776 >name[,flags]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1777 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1778 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1779 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1780 >Instructs the assembler that the code following this directive is to be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1781 considered part of the section <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1782 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1783 >name</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1784 >. A section name
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1785 may appear multiple times in which case it is as though all the code from
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1786 all the instances of that section appeared adjacent within the source file.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1787 However, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1788 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1789 >flags</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1790 > may only be specified on the first
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1791 instance of the section.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1792 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1793 >There is a single flag supported in <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1794 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1795 >flags</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1796 >. The
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1797 flag <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1798 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1799 >bss</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1800 > will cause the section to be treated as a BSS
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1801 section and, thus, no code will be included in the object file nor will any
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1802 bytes be permitted to be output.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1803 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1804 >If the section name is "bss" or ".bss" in any combination of upper and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1805 lower case, the section is assumed to be a BSS section. In that case,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1806 the flag <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1807 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1808 >!bss</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1809 > can be used to override this assumption.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1810 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1811 >If assembly is already happening within a section, the section is implicitly
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1812 ended and the new section started. This is not considered an error although
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1813 it is recommended that all sections be explicitly closed.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1814 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1815 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1816 >ENDSECTION, ENDSECT</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1817 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1818 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1819 >This directive ends the current section. This puts assembly outside of any
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1820 sections until the next SECTION directive. ENDSECTION is the preferred form.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1821 Prior to version 3.0 of LWASM, ENDS could also be used to end a section but
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1822 as of version 3.0, it is now an alias for ENDSTRUCT instead.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1823 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1824 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1825 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1826 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1827 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1828 > EXTERN, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1829 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1830 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1831 > EXTERNAL, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1832 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1833 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1834 > IMPORT</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1835 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1836 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1837 >This directive defines <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1838 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1839 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1840 > as an external symbol.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1841 This directive may occur at any point in the source code. EXTERN definitions
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1842 are resolved on the first pass so an EXTERN definition anywhere in the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1843 source file is valid for the entire file. The use of this directive is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1844 optional when the assembler is instructed to assume that all undefined
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1845 symbols are external. In fact, in that mode, if the symbol is referenced
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1846 before the EXTERN directive, an error will occur.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1847 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1848 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1849 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1850 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1851 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1852 > EXPORT, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1853 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1854 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1855 > .GLOBL, EXPORT <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1856 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1857 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1858 >, .GLOBL <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1859 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1860 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1861 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1862 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1863 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1864 >This directive defines <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1865 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1866 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1867 > as an exported symbol.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1868 This directive may occur at any point in the source code, even before the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1869 definition of the exported symbol.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1870 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1871 >Note that <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1872 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1873 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1874 > may appear as the operand or as the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1875 statement's symbol. If there is a symbol on the statement, that will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1876 take precedence over any operand that is present.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1877 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1878 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1879 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1880 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1881 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1882 > EXTDEP</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1883 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1884 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1885 >This directive forces an external dependency on
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1886 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1887 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1888 >sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1889 >, even if it is never referenced anywhere else in
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1890 this file.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1891 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1892 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1893 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1894 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1895 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1896 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1897 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1898 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1899 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1900 NAME="AEN579"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1901 >3.10. Assembler Modes and Pragmas</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1902 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1903 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1904 >There are a number of options that affect the way assembly is performed.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1905 Some of these options can only be specified on the command line because
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1906 they determine something absolute about the assembly process. These include
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1907 such things as the output target. Other things may be switchable during
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1908 the assembly process. These are known as pragmas and are, by definition,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1909 not portable between assemblers.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1910 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1911 >LWASM supports a number of pragmas that affect code generation or
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1912 otherwise affect the behaviour of the assembler. These may be specified by
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1913 way of a command line option or by assembler directives. The directives
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1914 are as follows.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1915 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1916 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1917 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1918 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1919 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1920 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1921 >PRAGMA <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1922 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1923 >pragma[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1924 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1925 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1926 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1927 >Specifies that the assembler should bring into force all <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1928 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1929 >pragma</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1930 >s
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1931 specified. Any unrecognized pragma will cause an assembly error. The new
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1932 pragmas will take effect immediately. This directive should be used when
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1933 the program will assemble incorrectly if the pragma is ignored or not supported.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1934 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1935 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1936 >*PRAGMA <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1937 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1938 >pragma[,...]</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1939 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1940 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1941 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1942 >This is identical to the PRAGMA directive except no error will occur with
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1943 unrecognized or unsupported pragmas. This directive, by virtue of starting
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1944 with a comment character, will also be ignored by assemblers that do not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1945 support this directive. Use this variation if the pragma is not required
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1946 for correct functioning of the code.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1947 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1948 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1949 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1950 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1951 >Each pragma supported has a positive version and a negative version.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1952 The positive version enables the pragma while the negative version disables
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1953 it. The negatitve version is simply the positive version with "no" prefixed
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1954 to it. For instance, "pragma" vs. "nopragma". Only the positive version is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1955 listed below.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1956 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1957 >Pragmas are not case sensitive.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1958 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1959 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1960 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1961 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1962 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1963 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1964 >index0tonone</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1965 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1966 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1967 >When in force, this pragma enables an optimization affecting indexed addressing
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1968 modes. When the offset expression in an indexed mode evaluates to zero but is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1969 not explicity written as 0, this will replace the operand with the equivalent
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1970 no offset mode, thus creating slightly faster code. Because of the advantages
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1971 of this optimization, it is enabled by default.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1972 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1973 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1974 >cescapes</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1975 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1976 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1977 >This pragma will cause strings in the FCC, FCS, and FCN pseudo operations to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1978 have C-style escape sequences interpreted. The one departure from the official
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1979 spec is that unrecognized escape sequences will return either the character
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1980 immediately following the backslash or some undefined value. Do not rely
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1981 on the behaviour of undefined escape sequences.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1982 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1983 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1984 >importundefexport</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1985 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1986 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1987 >This pragma is only valid for targets that support external references. When
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1988 in force, it will cause the EXPORT directive to act as IMPORT if the symbol
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1989 to be exported is not defined. This is provided for compatibility with the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1990 output of gcc6809 and should not be used in hand written code. Because of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1991 the confusion this pragma can cause, it is disabled by default.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1992 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1993 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1994 >undefextern</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1995 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1996 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1997 >This pragma is only valid for targets that support external references. When in
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1998 force, if the assembler sees an undefined symbol on the second pass, it will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
1999 automatically define it as an external symbol. This automatic definition will
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2000 apply for the remainder of the assembly process, even if the pragma is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2001 subsequently turned off. Because this behaviour would be potentially surprising,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2002 this pragma defaults to off.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2003 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2004 >The primary use for this pragma is for projects that share a large number of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2005 symbols between source files. In such cases, it is impractical to enumerate
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2006 all the external references in every source file. This allows the assembler
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2007 and linker to do the heavy lifting while not preventing a particular source
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2008 module from defining a local symbol of the same name as an external symbol
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2009 if it does not need the external symbol. (This pragma will not cause an
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2010 automatic external definition if there is already a locally defined symbol.)</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2011 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2012 >This pragma will often be specified on the command line for large projects.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2013 However, depending on the specific dynamics of the project, it may be sufficient
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2014 for one or two files to use this pragma internally.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2015 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2016 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2017 >dollarlocal</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2018 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2019 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2020 >When set, a "$" in a symbol makes it local. When not set, "$" does not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2021 cause a symbol to be local. It is set by default except when using the OS9
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2022 target.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2023 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2024 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2025 >dollarnotlocal</DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2026 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2027 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2028 > This is the same as the "dollarlocal" pragma except its sense is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2029 reversed. That is, "dollarlocal" and "nodollarnotlocal" are equivalent and
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2030 "nodollarlocal" and "dollarnotlocal" are equivalent. </P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2031 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2032 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2033 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2034 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2035 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2036 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2037 CLASS="CHAPTER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2038 ><HR><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2039 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2040 NAME="AEN624"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2041 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2042 >Chapter 4. LWLINK</H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2043 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2044 >The LWTOOLS linker is called LWLINK. This chapter documents the various features
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2045 of the linker.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2046 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2047 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2048 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2049 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2050 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2051 NAME="AEN627"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2052 >4.1. Command Line Options</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2053 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2054 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2055 >The binary for LWLINK is called "lwlink". Note that the binary is in lower
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2056 case. lwlink takes the following command line arguments.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2057 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2058 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2059 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2060 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2061 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2062 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2063 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2064 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2065 >--decb</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2066 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2067 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2068 >-b</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2069 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2070 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2071 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2072 >Selects the DECB output format target. This is equivalent to <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2073 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2074 >--format=decb</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2075 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2076 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2077 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2078 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2079 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2080 >--output=FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2081 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2082 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2083 >-o FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2084 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2085 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2086 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2087 >This option specifies the name of the output file. If not specified, the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2088 default is <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2089 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2090 >a.out</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2091 >.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2092 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2093 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2094 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2095 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2096 >--format=TYPE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2097 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2098 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2099 >-f TYPE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2100 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2101 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2102 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2103 >This option specifies the output format. Valid values are <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2104 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2105 >decb</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2106 >
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2107 and <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2108 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2109 >raw</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2110 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2111 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2112 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2113 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2114 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2115 >--raw</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2116 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2117 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2118 >-r</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2119 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2120 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2121 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2122 >This option specifies the raw output format.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2123 It is equivalent to <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2124 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2125 >--format=raw</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2126 >
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2127 and <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2128 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2129 >-f raw</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2130 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2131 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2132 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2133 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2134 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2135 >--script=FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2136 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2137 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2138 >-s</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2139 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2140 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2141 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2142 >This option allows specifying a linking script to override the linker's
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2143 built in defaults.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2144 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2145 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2146 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2147 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2148 >--section-base=SECT=BASE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2149 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2150 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2151 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2152 >Cause section SECT to load at base address BASE. This will be prepended
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2153 to the built-in link script. It is ignored if a link script is provided.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2154 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2155 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2156 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2157 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2158 >--map=FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2159 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2160 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2161 >-m FILE</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2162 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2163 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2164 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2165 >This will output a description of the link result to FILE.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2166 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2167 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2168 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2169 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2170 >--library=LIBSPEC</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2171 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2172 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2173 >-l LIBSPEC</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2174 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2175 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2176 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2177 >Load a library using the library search path. LIBSPEC will have "lib" prepended
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2178 and ".a" appended.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2179 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2180 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2181 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2182 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2183 >--library-path=DIR</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2184 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2185 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2186 >-L DIR</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2187 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2188 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2189 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2190 >Add DIR to the library search path.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2191 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2192 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2193 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2194 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2195 >--debug</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2196 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2197 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2198 >-d</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2199 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2200 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2201 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2202 >This option increases the debugging level. It is only useful for LWTOOLS
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2203 developers.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2204 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2205 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2206 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2207 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2208 >--help</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2209 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2210 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2211 >-?</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2212 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2213 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2214 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2215 >This provides a listing of command line options and a brief description
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2216 of each.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2217 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2218 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2219 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2220 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2221 >--usage</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2222 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2223 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2224 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2225 >This will display a usage summary
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2226 of each command line option.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2227 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2228 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2229 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2230 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2231 >--version</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2232 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2233 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2234 >-V</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2235 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2236 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2237 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2238 >This will display the version of LWLINK.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2239 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2240 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2241 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2242 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2243 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2244 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2245 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2246 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2247 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2248 NAME="AEN724"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2249 >4.2. Linker Operation</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2250 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2251 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2252 >&#13;LWLINK takes one or more files in supported input formats and links them
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2253 into a single binary. Currently supported formats are the LWTOOLS object
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2254 file format and the archive format used by LWAR. While the precise method is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2255 slightly different, linking can be conceptualized as the following steps.&#13;</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2256 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2257 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2258 ><OL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2259 TYPE="1"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2260 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2261 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2262 >First, the linker loads a linking script. If no script is specified, it
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2263 loads a built-in default script based on the output format selected. This
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2264 script tells the linker how to lay out the various sections in the final
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2265 binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2266 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2267 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2268 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2269 >Next, the linker reads all the input files into memory. At this time, it
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2270 flags any format errors in those files. It constructs a table of symbols
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2271 for each object at this time.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2272 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2273 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2274 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2275 >The linker then proceeds with organizing the sections loaded from each file
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2276 according to the linking script. As it does so, it is able to assign addresses
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2277 to each symbol defined in each object file. At this time, the linker may
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2278 also collapse different instances of the same section name into a single
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2279 section by appending the data from each subsequent instance of the section
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2280 to the first instance of the section.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2281 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2282 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2283 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2284 >Next, the linker looks through every object file for every incomplete reference.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2285 It then attempts to fully resolve that reference. If it cannot do so, it
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2286 throws an error. Once a reference is resolved, the value is placed into
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2287 the binary code at the specified section. It should be noted that an
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2288 incomplete reference can reference either a symbol internal to the object
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2289 file or an external symbol which is in the export list of another object
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2290 file.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2291 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2292 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2293 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2294 >If all of the above steps are successful, the linker opens the output file
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2295 and actually constructs the binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2296 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2297 ></OL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2298 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2299 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2300 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2301 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2302 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2303 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2304 NAME="AEN738"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2305 >4.3. Linking Scripts</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2306 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2307 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2308 >A linker script is used to instruct the linker about how to assemble the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2309 various sections into a completed binary. It consists of a series of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2310 directives which are considered in the order they are encountered.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2311 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2312 >The sections will appear in the resulting binary in the order they are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2313 specified in the script file. If a referenced section is not found, the linker will behave as though the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2314 section did exist but had a zero size, no relocations, and no exports.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2315 A section should only be referenced once. Any subsequent references will have
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2316 an undefined effect.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2317 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2318 >All numbers are in linking scripts are specified in hexadecimal. All directives
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2319 are case sensitive although the hexadecimal numbers are not.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2320 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2321 >A section name can be specified as a "*", then any section not
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2322 already matched by the script will be matched. The "*" can be followed
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2323 by a comma and a flag to narrow the section down slightly, also.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2324 If the flag is "!bss", then any section that is not flagged as a bss section
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2325 will be matched. If the flag is "bss", then any section that is flagged as
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2326 bss will be matched.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2327 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2328 >The following directives are understood in a linker script.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2329 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2330 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2331 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2332 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2333 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2334 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2335 >section <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2336 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2337 >name</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2338 > load <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2339 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2340 >addr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2341 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2342 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2343 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2344 >&#13;This causes the section <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2345 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2346 >name</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2347 > to load at
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2348 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2349 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2350 >addr</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2351 >. For the raw target, only one "load at" entry is
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2352 allowed for non-bss sections and it must be the first one. For raw targets,
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2353 it affects the addresses the linker assigns to symbols but has no other
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2354 affect on the output. bss sections may all have separate load addresses but
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2355 since they will not appear in the binary anyway, this is okay.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2356 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2357 >For the decb target, each "load" entry will cause a new "block" to be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2358 output to the binary which will contain the load address. It is legal for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2359 sections to overlap in this manner - the linker assumes the loader will sort
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2360 everything out.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2361 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2362 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2363 >section <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2364 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2365 >name</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2366 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2367 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2368 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2369 >&#13;This will cause the section <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2370 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2371 >name</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2372 > to load after the previously listed
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2373 section.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2374 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2375 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2376 >exec <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2377 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2378 >addr or sym</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2379 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2380 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2381 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2382 >This will cause the execution address (entry point) to be the address
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2383 specified (in hex) or the specified symbol name. The symbol name must
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2384 match a symbol that is exported by one of the object files being linked.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2385 This has no effect for targets that do not encode the entry point into the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2386 resulting file. If not specified, the entry point is assumed to be address 0
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2387 which is probably not what you want. The default link scripts for targets
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2388 that support this directive automatically starts at the beginning of the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2389 first section (usually "init" or "code") that is emitted in the binary.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2390 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2391 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2392 >pad <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2393 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2394 >size</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2395 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2396 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2397 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2398 >This will cause the output file to be padded with NUL bytes to be exactly
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2399 <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2400 CLASS="PARAMETER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2401 >size</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2402 > bytes in length. This only makes sense for a raw target.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2403 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2404 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2405 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2406 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2407 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2408 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2409 CLASS="CHAPTER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2410 ><HR><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2411 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2412 NAME="AEN772"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2413 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2414 >Chapter 5. Libraries and LWAR</H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2415 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2416 >LWTOOLS also includes a tool for managing libraries. These are analogous to
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2417 the static libraries created with the "ar" tool on POSIX systems. Each library
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2418 file contains one or more object files. The linker will treat the object
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2419 files within a library as though they had been specified individually on
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2420 the command line except when resolving external references. External references
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2421 are looked up first within the object files within the library and then, if
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2422 not found, the usual lookup based on the order the files are specified on
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2423 the command line occurs.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2424 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2425 >The tool for creating these libary files is called LWAR.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2426 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2427 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2428 ><HR><H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2429 CLASS="SECTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2430 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2431 NAME="AEN776"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2432 >5.1. Command Line Options</A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2433 ></H2
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2434 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2435 >The binary for LWAR is called "lwar". Note that the binary is in lower
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2436 case. The options lwar understands are listed below. For archive manipulation
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2437 options, the first non-option argument is the name of the archive. All other
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2438 non-option arguments are the names of files to operate on.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2439 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2440 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2441 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2442 CLASS="VARIABLELIST"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2443 ><DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2444 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2445 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2446 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2447 >--add</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2448 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2449 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2450 >-a</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2451 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2452 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2453 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2454 >This option specifies that an archive is going to have files added to it.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2455 If the archive does not already exist, it is created. New files are added
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2456 to the end of the archive.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2457 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2458 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2459 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2460 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2461 >--create</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2462 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2463 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2464 >-c</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2465 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2466 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2467 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2468 >This option specifies that an archive is going to be created and have files
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2469 added to it. If the archive already exists, it is truncated.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2470 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2471 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2472 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2473 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2474 >--merge</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2475 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2476 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2477 >-m</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2478 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2479 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2480 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2481 >If specified, any files specified to be added to an archive will be checked
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2482 to see if they are archives themselves. If so, their constituent members are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2483 added to the archive. This is useful for avoiding archives containing archives.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2484 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2485 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2486 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2487 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2488 >--list</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2489 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2490 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2491 >-l</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2492 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2493 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2494 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2495 >This will display a list of the files contained in the archive.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2496 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2497 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2498 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2499 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2500 >--debug</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2501 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2502 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2503 >-d</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2504 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2505 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2506 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2507 >This option increases the debugging level. It is only useful for LWTOOLS
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2508 developers.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2509 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2510 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2511 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2512 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2513 >--help</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2514 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2515 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2516 >-?</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2517 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2518 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2519 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2520 >This provides a listing of command line options and a brief description
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2521 of each.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2522 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2523 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2524 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2525 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2526 >--usage</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2527 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2528 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2529 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2530 >This will display a usage summary
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2531 of each command line option.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2532 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2533 ><DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2534 ><CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2535 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2536 >--version</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2537 >, <CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2538 CLASS="OPTION"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2539 >-V</CODE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2540 ></DT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2541 ><DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2542 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2543 >This will display the version of LWLINK.
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2544 of each.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2545 ></DD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2546 ></DL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2547 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2548 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2549 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2550 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2551 CLASS="CHAPTER"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2552 ><HR><H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2553 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2554 NAME="OBJCHAP"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2555 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2556 >Chapter 6. Object Files</H1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2557 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2558 >LWTOOLS uses a proprietary object file format. It is proprietary in the sense
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2559 that it is specific to LWTOOLS, not that it is a hidden format. It would be
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2560 hard to keep it hidden in an open source tool chain anyway. This chapter
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2561 documents the object file format.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2562 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2563 >An object file consists of a series of sections each of which contains a
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2564 list of exported symbols, a list of incomplete references, and a list of
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2565 "local" symbols which may be used in calculating incomplete references. Each
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2566 section will obviously also contain the object code.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2567 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2568 >Exported symbols must be completely resolved to an address within the
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2569 section it is exported from. That is, an exported symbol must be a constant
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2570 rather than defined in terms of other symbols.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2571 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2572 >Each object file starts with a magic number and version number. The magic
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2573 number is the string "LWOBJ16" for this 16 bit object file format. The only
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2574 defined version number is currently 0. Thus, the first 8 bytes of the object
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2575 file are <FONT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2576 COLOR="RED"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2577 >4C574F424A313600</FONT
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2578 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2579 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2580 >Each section has the following items in order:</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2581 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2582 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2583 ><UL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2584 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2585 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2586 >section name</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2587 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2588 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2589 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2590 >flags</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2591 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2592 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2593 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2594 >list of local symbols (and addresses within the section)</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2595 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2596 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2597 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2598 >list of exported symbols (and addresses within the section)</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2599 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2600 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2601 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2602 >list of incomplete references along with the expressions to calculate them</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2603 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2604 ><LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2605 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2606 >the actual object code (for non-BSS sections)</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2607 ></LI
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2608 ></UL
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2609 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2610 >The section starts with the name of the section with a NUL termination
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2611 followed by a series of flag bytes terminated by NUL. There are only two
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2612 flag bytes defined. A NUL (0) indicates no more flags and a value of 1
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2613 indicates the section is a BSS section. For a BSS section, no actual
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2614 code is included in the object file.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2615 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2616 >Either a NULL section name or end of file indicate the presence of no more
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2617 sections.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2618 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2619 >Each entry in the exported and local symbols table consists of the symbol
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2620 (NUL terminated) followed by two bytes which contain the value in big endian
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2621 order. The end of a symbol table is indicated by a NULL symbol name.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2622 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2623 >Each entry in the incomplete references table consists of an expression
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2624 followed by a 16 bit offset where the reference goes. Expressions are
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2625 defined as a series of terms up to an "end of expression" term. Each term
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2626 consists of a single byte which identifies the type of term (see below)
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2627 followed by any data required by the term. Then end of the list is flagged
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2628 by a NULL expression (only an end of expression term).</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2629 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2630 CLASS="TABLE"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2631 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2632 NAME="AEN859"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2633 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2634 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2635 ><B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2636 >Table 6-1. Object File Term Types</B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2637 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2638 ><TABLE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2639 BORDER="1"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2640 FRAME="border"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2641 CLASS="CALSTABLE"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2642 ><COL><COL><THEAD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2643 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2644 ><TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2645 >TERMTYPE</TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2646 ><TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2647 >Meaning</TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2648 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2649 ></THEAD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2650 ><TBODY
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2651 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2652 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2653 >00</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2654 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2655 >end of expression</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2656 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2657 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2658 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2659 >01</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2660 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2661 >integer (16 bit in big endian order follows)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2662 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2663 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2664 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2665 >02</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2666 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2667 > external symbol reference (NUL terminated symbol name follows)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2668 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2669 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2670 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2671 >03</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2672 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2673 >local symbol reference (NUL terminated symbol name follows)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2674 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2675 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2676 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2677 >04</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2678 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2679 >operator (1 byte operator number)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2680 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2681 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2682 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2683 >05</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2684 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2685 >section base address reference</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2686 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2687 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2688 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2689 >FF</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2690 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2691 >This term will set flags for the expression. Each one of these terms will set a single flag. All of them should be specified first in an expression. If they are not, the behaviour is undefined. The byte following is the flag. Flag 01 indicates an 8 bit relocation. Flag 02 indicates a zero-width relocation (see the EXTDEP pseudo op in LWASM).</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2692 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2693 ></TBODY
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2694 ></TABLE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2695 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2696 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2697 >External references are resolved using other object files while local
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2698 references are resolved using the local symbol table(s) from this file. This
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2699 allows local symbols that are not exported to have the same names as
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2700 exported symbols or external references.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2701 ><DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2702 CLASS="TABLE"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2703 ><A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2704 NAME="AEN889"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2705 ></A
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2706 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2707 ><B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2708 >Table 6-2. Object File Operator Numbers</B
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2709 ></P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2710 ><TABLE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2711 BORDER="1"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2712 FRAME="border"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2713 CLASS="CALSTABLE"
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2714 ><COL><COL><THEAD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2715 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2716 ><TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2717 >Number</TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2718 ><TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2719 >Operator</TH
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2720 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2721 ></THEAD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2722 ><TBODY
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2723 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2724 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2725 >01</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2726 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2727 >addition (+)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2728 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2729 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2730 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2731 >02</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2732 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2733 >subtraction (-)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2734 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2735 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2736 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2737 >03</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2738 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2739 >multiplication (*)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2740 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2741 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2742 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2743 >04</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2744 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2745 >division (/)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2746 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2747 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2748 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2749 >05</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2750 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2751 >modulus (%)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2752 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2753 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2754 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2755 >06</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2756 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2757 >integer division (\) (same as division)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2758 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2759 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2760 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2761 >07</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2762 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2763 >bitwise and</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2764 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2765 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2766 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2767 >08</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2768 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2769 >bitwise or</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2770 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2771 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2772 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2773 >09</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2774 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2775 >bitwise xor</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2776 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2777 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2778 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2779 >0A</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2780 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2781 >boolean and</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2782 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2783 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2784 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2785 >0B</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2786 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2787 >boolean or</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2788 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2789 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2790 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2791 >0C</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2792 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2793 >unary negation, 2's complement (-)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2794 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2795 ><TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2796 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2797 >0D</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2798 ><TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2799 >unary 1's complement (^)</TD
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2800 ></TR
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2801 ></TBODY
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2802 ></TABLE
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2803 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2804 ><P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2805 >An expression is represented in a postfix manner with both operands for
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2806 binary operators preceding the operator and the single operand for unary
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2807 operators preceding the operator.</P
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2808 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2809 ></DIV
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2810 ></BODY
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2811 ></HTML
3c2e1f24cc7d Added generated files for release
lost@l-w.ca
parents:
diff changeset
2812 >