Mercurial > hg > index.cgi
comparison docs/manual/manual.html @ 333:507f442dc71e
Add support for 6800 compatibility instructions.
The occasional program uses the 6800 compatibility instructions since they
are actually specified by Motorola in at least some documentation. They
advertised the 6809 as source compatible with the 6800.
This mode is not enabled by default, however. It is my belief that receiving
an error when using a non-6809 instruction is more useful since it is
unlikely that much 6800 source code is being assembled for the 6809 these
days. Nevertheless, the --6809compat option is present for just those
purposes so one does not have to resort to using macros (which would work
equally well in most cases).
author | William Astle <lost@l-w.ca> |
---|---|
date | Tue, 15 Apr 2014 10:57:34 -0600 |
parents | b30091890d62 |
children | e95f07cbce4e |
comparison
equal
deleted
inserted
replaced
332:26bfe8d557e2 | 333:507f442dc71e |
---|---|
119 HREF="#AEN65" | 119 HREF="#AEN65" |
120 >Command Line Options</A | 120 >Command Line Options</A |
121 ></DT | 121 ></DT |
122 ><DT | 122 ><DT |
123 >3.2. <A | 123 >3.2. <A |
124 HREF="#AEN190" | 124 HREF="#AEN197" |
125 >Dialects</A | 125 >Dialects</A |
126 ></DT | 126 ></DT |
127 ><DT | 127 ><DT |
128 >3.3. <A | 128 >3.3. <A |
129 HREF="#AEN197" | 129 HREF="#AEN206" |
130 >Source Format</A | 130 >Source Format</A |
131 ></DT | 131 ></DT |
132 ><DT | 132 ><DT |
133 >3.4. <A | 133 >3.4. <A |
134 HREF="#AEN207" | 134 HREF="#AEN216" |
135 >Symbols</A | 135 >Symbols</A |
136 ></DT | 136 ></DT |
137 ><DT | 137 ><DT |
138 >3.5. <A | 138 >3.5. <A |
139 HREF="#AEN212" | 139 HREF="#AEN221" |
140 >Numbers and Expressions</A | 140 >Numbers and Expressions</A |
141 ></DT | 141 ></DT |
142 ><DT | 142 ><DT |
143 >3.6. <A | 143 >3.6. <A |
144 HREF="#AEN220" | 144 HREF="#AEN229" |
145 >Assembler Directives</A | 145 >Assembler Directives</A |
146 ></DT | 146 ></DT |
147 ><DD | 147 ><DD |
148 ><DL | 148 ><DL |
149 ><DT | 149 ><DT |
150 >3.6.1. <A | 150 >3.6.1. <A |
151 HREF="#AEN223" | 151 HREF="#AEN232" |
152 >Data Directives</A | 152 >Data Directives</A |
153 ></DT | 153 ></DT |
154 ><DT | 154 ><DT |
155 >3.6.2. <A | 155 >3.6.2. <A |
156 HREF="#AEN334" | 156 HREF="#AEN343" |
157 >Address Definition</A | 157 >Address Definition</A |
158 ></DT | 158 ></DT |
159 ><DT | 159 ><DT |
160 >3.6.3. <A | 160 >3.6.3. <A |
161 HREF="#AEN381" | 161 HREF="#AEN390" |
162 >Conditional Assembly</A | 162 >Conditional Assembly</A |
163 ></DT | 163 ></DT |
164 ><DT | 164 ><DT |
165 >3.6.4. <A | 165 >3.6.4. <A |
166 HREF="#AEN446" | 166 HREF="#AEN455" |
167 >OS9 Target Directives</A | 167 >OS9 Target Directives</A |
168 ></DT | 168 ></DT |
169 ><DT | 169 ><DT |
170 >3.6.5. <A | 170 >3.6.5. <A |
171 HREF="#AEN471" | 171 HREF="#AEN480" |
172 >Miscelaneous Directives</A | 172 >Miscelaneous Directives</A |
173 ></DT | 173 ></DT |
174 ></DL | 174 ></DL |
175 ></DD | 175 ></DD |
176 ><DT | 176 ><DT |
177 >3.7. <A | 177 >3.7. <A |
178 HREF="#AEN511" | 178 HREF="#AEN520" |
179 >Macros</A | 179 >Macros</A |
180 ></DT | 180 ></DT |
181 ><DT | 181 ><DT |
182 >3.8. <A | 182 >3.8. <A |
183 HREF="#AEN534" | 183 HREF="#AEN543" |
184 >Structures</A | 184 >Structures</A |
185 ></DT | 185 ></DT |
186 ><DT | 186 ><DT |
187 >3.9. <A | 187 >3.9. <A |
188 HREF="#AEN555" | 188 HREF="#AEN564" |
189 >Object Files and Sections</A | 189 >Object Files and Sections</A |
190 ></DT | 190 ></DT |
191 ><DT | 191 ><DT |
192 >3.10. <A | 192 >3.10. <A |
193 HREF="#AEN619" | 193 HREF="#AEN628" |
194 >Assembler Modes and Pragmas</A | 194 >Assembler Modes and Pragmas</A |
195 ></DT | 195 ></DT |
196 ></DL | 196 ></DL |
197 ></DD | 197 ></DD |
198 ><DT | 198 ><DT |
199 >4. <A | 199 >4. <A |
200 HREF="#AEN713" | 200 HREF="#AEN727" |
201 >LWLINK</A | 201 >LWLINK</A |
202 ></DT | 202 ></DT |
203 ><DD | 203 ><DD |
204 ><DL | 204 ><DL |
205 ><DT | 205 ><DT |
206 >4.1. <A | 206 >4.1. <A |
207 HREF="#AEN716" | 207 HREF="#AEN730" |
208 >Command Line Options</A | 208 >Command Line Options</A |
209 ></DT | 209 ></DT |
210 ><DT | 210 ><DT |
211 >4.2. <A | 211 >4.2. <A |
212 HREF="#AEN813" | 212 HREF="#AEN827" |
213 >Linker Operation</A | 213 >Linker Operation</A |
214 ></DT | 214 ></DT |
215 ><DT | 215 ><DT |
216 >4.3. <A | 216 >4.3. <A |
217 HREF="#AEN827" | 217 HREF="#AEN841" |
218 >Linking Scripts</A | 218 >Linking Scripts</A |
219 ></DT | 219 ></DT |
220 ><DT | 220 ><DT |
221 >4.4. <A | 221 >4.4. <A |
222 HREF="#AEN893" | 222 HREF="#AEN907" |
223 >Format Specific Linking Notes</A | 223 >Format Specific Linking Notes</A |
224 ></DT | 224 ></DT |
225 ><DD | 225 ><DD |
226 ><DL | 226 ><DL |
227 ><DT | 227 ><DT |
228 >4.4.1. <A | 228 >4.4.1. <A |
229 HREF="#AEN896" | 229 HREF="#AEN910" |
230 >OS9 Modules</A | 230 >OS9 Modules</A |
231 ></DT | 231 ></DT |
232 ></DL | 232 ></DL |
233 ></DD | 233 ></DD |
234 ></DL | 234 ></DL |
235 ></DD | 235 ></DD |
236 ><DT | 236 ><DT |
237 >5. <A | 237 >5. <A |
238 HREF="#AEN908" | 238 HREF="#AEN922" |
239 >Libraries and LWAR</A | 239 >Libraries and LWAR</A |
240 ></DT | 240 ></DT |
241 ><DD | 241 ><DD |
242 ><DL | 242 ><DL |
243 ><DT | 243 ><DT |
244 >5.1. <A | 244 >5.1. <A |
245 HREF="#AEN912" | 245 HREF="#AEN926" |
246 >Command Line Options</A | 246 >Command Line Options</A |
247 ></DT | 247 ></DT |
248 ></DL | 248 ></DL |
249 ></DD | 249 ></DD |
250 ><DT | 250 ><DT |
262 ><B | 262 ><B |
263 >List of Tables</B | 263 >List of Tables</B |
264 ></DT | 264 ></DT |
265 ><DT | 265 ><DT |
266 >6-1. <A | 266 >6-1. <A |
267 HREF="#AEN995" | 267 HREF="#AEN1009" |
268 >Object File Term Types</A | 268 >Object File Term Types</A |
269 ></DT | 269 ></DT |
270 ><DT | 270 ><DT |
271 >6-2. <A | 271 >6-2. <A |
272 HREF="#AEN1025" | 272 HREF="#AEN1039" |
273 >Object File Operator Numbers</A | 273 >Object File Operator Numbers</A |
274 ></DT | 274 ></DT |
275 ></DL | 275 ></DL |
276 ></DIV | 276 ></DIV |
277 ><DIV | 277 ><DIV |
557 completeness and to override preset command arguments.</P | 557 completeness and to override preset command arguments.</P |
558 ></DD | 558 ></DD |
559 ><DT | 559 ><DT |
560 ><CODE | 560 ><CODE |
561 CLASS="OPTION" | 561 CLASS="OPTION" |
562 >--6800compat</CODE | |
563 ></DT | |
564 ><DD | |
565 ><P | |
566 >This is equivalent to <CODE | |
567 CLASS="OPTION" | |
568 >--pragma=6800compat</CODE | |
569 >.</P | |
570 ><P | |
571 >This will enable recognition of 6800 compatibility instructions.</P | |
572 ></DD | |
573 ><DT | |
574 ><CODE | |
575 CLASS="OPTION" | |
562 >--6809</CODE | 576 >--6809</CODE |
563 >, <CODE | 577 >, <CODE |
564 CLASS="OPTION" | 578 CLASS="OPTION" |
565 >-9</CODE | 579 >-9</CODE |
566 ></DT | 580 ></DT |
795 ><DIV | 809 ><DIV |
796 CLASS="SECTION" | 810 CLASS="SECTION" |
797 ><HR><H2 | 811 ><HR><H2 |
798 CLASS="SECTION" | 812 CLASS="SECTION" |
799 ><A | 813 ><A |
800 NAME="AEN190" | 814 NAME="AEN197" |
801 >3.2. Dialects</A | 815 >3.2. Dialects</A |
802 ></H2 | 816 ></H2 |
803 ><P | 817 ><P |
804 >LWASM supports all documented MC6809 instructions as defined by Motorola. | 818 > LWASM supports all documented MC6809 instructions as defined by |
805 It also supports all known HD6309 instructions. While there is general | 819 Motorola. By default, this does not include any MC6800 compatibility |
806 agreement on the pneumonics for most of the 6309 instructions, there is some | 820 instructions. As of LWASM 4.11, those compatibility instructions can be |
807 variance with the block transfer instructions. TFM for all four variations | 821 enabled using the <CODE |
808 seems to have gained the most traction and, thus, this is the form that is | 822 CLASS="PARAMETER" |
809 recommended for LWASM. However, it also supports COPY, COPY-, IMP, EXP, | 823 >--6800compat</CODE |
810 TFRP, TFRM, TFRS, and TFRR. It further adds COPY+ as a synomym for COPY, | 824 > option or the |
811 IMPLODE for IMP, and EXPAND for EXP.</P | 825 <CODE |
826 CLASS="PARAMETER" | |
827 >6800compat</CODE | |
828 > pragma. It also supports all known HD6309 | |
829 instructions. While there is general agreement on the pneumonics for most | |
830 of the 6309 instructions, there is some variance with the block transfer | |
831 instructions. TFM for all four variations seems to have gained the most | |
832 traction and, thus, this is the form that is recommended for LWASM. | |
833 However, it also supports COPY, COPY-, IMP, EXP, TFRP, TFRM, TFRS, and TFRR. | |
834 It further adds COPY+ as a synomym for COPY, IMPLODE for IMP, and EXPAND for | |
835 EXP. </P | |
812 ><P | 836 ><P |
813 >By default, LWASM accepts 6309 instructions. However, using the | 837 >By default, LWASM accepts 6309 instructions. However, using the |
814 <CODE | 838 <CODE |
815 CLASS="PARAMETER" | 839 CLASS="PARAMETER" |
816 >--6809</CODE | 840 >--6809</CODE |
829 ><DIV | 853 ><DIV |
830 CLASS="SECTION" | 854 CLASS="SECTION" |
831 ><HR><H2 | 855 ><HR><H2 |
832 CLASS="SECTION" | 856 CLASS="SECTION" |
833 ><A | 857 ><A |
834 NAME="AEN197" | 858 NAME="AEN206" |
835 >3.3. Source Format</A | 859 >3.3. Source Format</A |
836 ></H2 | 860 ></H2 |
837 ><P | 861 ><P |
838 >LWASM accepts plain text files in a relatively free form. It can handle | 862 >LWASM accepts plain text files in a relatively free form. It can handle |
839 lines terminated with CR, LF, CRLF, or LFCR which means it should be able | 863 lines terminated with CR, LF, CRLF, or LFCR which means it should be able |
875 ><DIV | 899 ><DIV |
876 CLASS="SECTION" | 900 CLASS="SECTION" |
877 ><HR><H2 | 901 ><HR><H2 |
878 CLASS="SECTION" | 902 CLASS="SECTION" |
879 ><A | 903 ><A |
880 NAME="AEN207" | 904 NAME="AEN216" |
881 >3.4. Symbols</A | 905 >3.4. Symbols</A |
882 ></H2 | 906 ></H2 |
883 ><P | 907 ><P |
884 >Symbols have no length restriction. They may contain letters, numbers, dots, | 908 >Symbols have no length restriction. They may contain letters, numbers, dots, |
885 dollar signs, and underscores. They must start with a letter, dot, or | 909 dollar signs, and underscores. They must start with a letter, dot, or |
903 ><DIV | 927 ><DIV |
904 CLASS="SECTION" | 928 CLASS="SECTION" |
905 ><HR><H2 | 929 ><HR><H2 |
906 CLASS="SECTION" | 930 CLASS="SECTION" |
907 ><A | 931 ><A |
908 NAME="AEN212" | 932 NAME="AEN221" |
909 >3.5. Numbers and Expressions</A | 933 >3.5. Numbers and Expressions</A |
910 ></H2 | 934 ></H2 |
911 ><P | 935 ><P |
912 > Numbers can be expressed in binary, octal, decimal, or hexadecimal. Binary | 936 > Numbers can be expressed in binary, octal, decimal, or hexadecimal. Binary |
913 numbers may be prefixed with a "%" symbol or suffixed with a "b" or "B". | 937 numbers may be prefixed with a "%" symbol or suffixed with a "b" or "B". |
948 ><DIV | 972 ><DIV |
949 CLASS="SECTION" | 973 CLASS="SECTION" |
950 ><HR><H2 | 974 ><HR><H2 |
951 CLASS="SECTION" | 975 CLASS="SECTION" |
952 ><A | 976 ><A |
953 NAME="AEN220" | 977 NAME="AEN229" |
954 >3.6. Assembler Directives</A | 978 >3.6. Assembler Directives</A |
955 ></H2 | 979 ></H2 |
956 ><P | 980 ><P |
957 >Various directives can be used to control the behaviour of the | 981 >Various directives can be used to control the behaviour of the |
958 assembler or to include non-code/data in the resulting output. Those directives | 982 assembler or to include non-code/data in the resulting output. Those directives |
961 ><DIV | 985 ><DIV |
962 CLASS="SECTION" | 986 CLASS="SECTION" |
963 ><HR><H3 | 987 ><HR><H3 |
964 CLASS="SECTION" | 988 CLASS="SECTION" |
965 ><A | 989 ><A |
966 NAME="AEN223" | 990 NAME="AEN232" |
967 >3.6.1. Data Directives</A | 991 >3.6.1. Data Directives</A |
968 ></H3 | 992 ></H3 |
969 ><P | 993 ><P |
970 ></P | 994 ></P |
971 ><DIV | 995 ><DIV |
1195 ><DIV | 1219 ><DIV |
1196 CLASS="SECTION" | 1220 CLASS="SECTION" |
1197 ><HR><H3 | 1221 ><HR><H3 |
1198 CLASS="SECTION" | 1222 CLASS="SECTION" |
1199 ><A | 1223 ><A |
1200 NAME="AEN334" | 1224 NAME="AEN343" |
1201 >3.6.2. Address Definition</A | 1225 >3.6.2. Address Definition</A |
1202 ></H3 | 1226 ></H3 |
1203 ><P | 1227 ><P |
1204 >The directives in this section all control the addresses of symbols | 1228 >The directives in this section all control the addresses of symbols |
1205 or the assembly process itself.</P | 1229 or the assembly process itself.</P |
1331 ><DIV | 1355 ><DIV |
1332 CLASS="SECTION" | 1356 CLASS="SECTION" |
1333 ><HR><H3 | 1357 ><HR><H3 |
1334 CLASS="SECTION" | 1358 CLASS="SECTION" |
1335 ><A | 1359 ><A |
1336 NAME="AEN381" | 1360 NAME="AEN390" |
1337 >3.6.3. Conditional Assembly</A | 1361 >3.6.3. Conditional Assembly</A |
1338 ></H3 | 1362 ></H3 |
1339 ><P | 1363 ><P |
1340 >Portions of the source code can be excluded or included based on conditions | 1364 >Portions of the source code can be excluded or included based on conditions |
1341 known at assembly time. Conditionals can be nested arbitrarily deeply. The | 1365 known at assembly time. Conditionals can be nested arbitrarily deeply. The |
1494 ><DIV | 1518 ><DIV |
1495 CLASS="SECTION" | 1519 CLASS="SECTION" |
1496 ><HR><H3 | 1520 ><HR><H3 |
1497 CLASS="SECTION" | 1521 CLASS="SECTION" |
1498 ><A | 1522 ><A |
1499 NAME="AEN446" | 1523 NAME="AEN455" |
1500 >3.6.4. OS9 Target Directives</A | 1524 >3.6.4. OS9 Target Directives</A |
1501 ></H3 | 1525 ></H3 |
1502 ><P | 1526 ><P |
1503 >This section includes directives that apply solely to the OS9 | 1527 >This section includes directives that apply solely to the OS9 |
1504 target.</P | 1528 target.</P |
1561 ><DIV | 1585 ><DIV |
1562 CLASS="SECTION" | 1586 CLASS="SECTION" |
1563 ><HR><H3 | 1587 ><HR><H3 |
1564 CLASS="SECTION" | 1588 CLASS="SECTION" |
1565 ><A | 1589 ><A |
1566 NAME="AEN471" | 1590 NAME="AEN480" |
1567 >3.6.5. Miscelaneous Directives</A | 1591 >3.6.5. Miscelaneous Directives</A |
1568 ></H3 | 1592 ></H3 |
1569 ><P | 1593 ><P |
1570 >This section includes directives that do not fit into the other | 1594 >This section includes directives that do not fit into the other |
1571 categories.</P | 1595 categories.</P |
1675 ><DIV | 1699 ><DIV |
1676 CLASS="SECTION" | 1700 CLASS="SECTION" |
1677 ><HR><H2 | 1701 ><HR><H2 |
1678 CLASS="SECTION" | 1702 CLASS="SECTION" |
1679 ><A | 1703 ><A |
1680 NAME="AEN511" | 1704 NAME="AEN520" |
1681 >3.7. Macros</A | 1705 >3.7. Macros</A |
1682 ></H2 | 1706 ></H2 |
1683 ><P | 1707 ><P |
1684 >LWASM is a macro assembler. A macro is simply a name that stands in for a | 1708 >LWASM is a macro assembler. A macro is simply a name that stands in for a |
1685 series of instructions. Once a macro is defined, it is used like any other | 1709 series of instructions. Once a macro is defined, it is used like any other |
1774 ><DIV | 1798 ><DIV |
1775 CLASS="SECTION" | 1799 CLASS="SECTION" |
1776 ><HR><H2 | 1800 ><HR><H2 |
1777 CLASS="SECTION" | 1801 CLASS="SECTION" |
1778 ><A | 1802 ><A |
1779 NAME="AEN534" | 1803 NAME="AEN543" |
1780 >3.8. Structures</A | 1804 >3.8. Structures</A |
1781 ></H2 | 1805 ></H2 |
1782 ><P | 1806 ><P |
1783 > Structures are used to group related data in a fixed structure. A structure | 1807 > Structures are used to group related data in a fixed structure. A structure |
1784 consists a number of fields, defined in sequential order and which take up | 1808 consists a number of fields, defined in sequential order and which take up |
1867 ><DIV | 1891 ><DIV |
1868 CLASS="SECTION" | 1892 CLASS="SECTION" |
1869 ><HR><H2 | 1893 ><HR><H2 |
1870 CLASS="SECTION" | 1894 CLASS="SECTION" |
1871 ><A | 1895 ><A |
1872 NAME="AEN555" | 1896 NAME="AEN564" |
1873 >3.9. Object Files and Sections</A | 1897 >3.9. Object Files and Sections</A |
1874 ></H2 | 1898 ></H2 |
1875 ><P | 1899 ><P |
1876 >The object file target is very useful for large project because it allows | 1900 >The object file target is very useful for large project because it allows |
1877 multiple files to be assembled independently and then linked into the final | 1901 multiple files to be assembled independently and then linked into the final |
2084 ><DIV | 2108 ><DIV |
2085 CLASS="SECTION" | 2109 CLASS="SECTION" |
2086 ><HR><H2 | 2110 ><HR><H2 |
2087 CLASS="SECTION" | 2111 CLASS="SECTION" |
2088 ><A | 2112 ><A |
2089 NAME="AEN619" | 2113 NAME="AEN628" |
2090 >3.10. Assembler Modes and Pragmas</A | 2114 >3.10. Assembler Modes and Pragmas</A |
2091 ></H2 | 2115 ></H2 |
2092 ><P | 2116 ><P |
2093 >There are a number of options that affect the way assembly is performed. | 2117 >There are a number of options that affect the way assembly is performed. |
2094 Some of these options can only be specified on the command line because | 2118 Some of these options can only be specified on the command line because |
2170 ><P | 2194 ><P |
2171 ></P | 2195 ></P |
2172 ><DIV | 2196 ><DIV |
2173 CLASS="VARIABLELIST" | 2197 CLASS="VARIABLELIST" |
2174 ><DL | 2198 ><DL |
2199 ><DT | |
2200 >6800compat</DT | |
2201 ><DD | |
2202 ><P | |
2203 >When in force, this pragma enables recognition of various | |
2204 compatibility instructions useful when assembling 6800 code. These | |
2205 compatibility instructions are assembled into equivalent 6809 instructions. | |
2206 This mode also includes several analogous instructions which are not | |
2207 strictly 6800 instructions but allow the similar style to be applied to 6809 | |
2208 specific features.</P | |
2209 ><P | |
2210 >Technically, a compliant 6809 assembler must recognize these | |
2211 instructions by default since Motorola advertised the 6809 as being source | |
2212 compatible with the 6800. However, most source code does not require this | |
2213 compatibility and LWASM itself did not support these instructions prior to | |
2214 version 4.11 so this mode is disabled by default.</P | |
2215 ></DD | |
2175 ><DT | 2216 ><DT |
2176 >index0tonone</DT | 2217 >index0tonone</DT |
2177 ><DD | 2218 ><DD |
2178 ><P | 2219 ><P |
2179 >When in force, this pragma enables an optimization affecting indexed addressing | 2220 >When in force, this pragma enables an optimization affecting indexed addressing |
2359 ></DIV | 2400 ></DIV |
2360 ><DIV | 2401 ><DIV |
2361 CLASS="CHAPTER" | 2402 CLASS="CHAPTER" |
2362 ><HR><H1 | 2403 ><HR><H1 |
2363 ><A | 2404 ><A |
2364 NAME="AEN713" | 2405 NAME="AEN727" |
2365 ></A | 2406 ></A |
2366 >Chapter 4. LWLINK</H1 | 2407 >Chapter 4. LWLINK</H1 |
2367 ><P | 2408 ><P |
2368 >The LWTOOLS linker is called LWLINK. This chapter documents the various features | 2409 >The LWTOOLS linker is called LWLINK. This chapter documents the various features |
2369 of the linker.</P | 2410 of the linker.</P |
2370 ><DIV | 2411 ><DIV |
2371 CLASS="SECTION" | 2412 CLASS="SECTION" |
2372 ><HR><H2 | 2413 ><HR><H2 |
2373 CLASS="SECTION" | 2414 CLASS="SECTION" |
2374 ><A | 2415 ><A |
2375 NAME="AEN716" | 2416 NAME="AEN730" |
2376 >4.1. Command Line Options</A | 2417 >4.1. Command Line Options</A |
2377 ></H2 | 2418 ></H2 |
2378 ><P | 2419 ><P |
2379 >The binary for LWLINK is called "lwlink". Note that the binary is in lower | 2420 >The binary for LWLINK is called "lwlink". Note that the binary is in lower |
2380 case. lwlink takes the following command line arguments.</P | 2421 case. lwlink takes the following command line arguments.</P |
2567 ><DIV | 2608 ><DIV |
2568 CLASS="SECTION" | 2609 CLASS="SECTION" |
2569 ><HR><H2 | 2610 ><HR><H2 |
2570 CLASS="SECTION" | 2611 CLASS="SECTION" |
2571 ><A | 2612 ><A |
2572 NAME="AEN813" | 2613 NAME="AEN827" |
2573 >4.2. Linker Operation</A | 2614 >4.2. Linker Operation</A |
2574 ></H2 | 2615 ></H2 |
2575 ><P | 2616 ><P |
2576 > LWLINK takes one or more files in supported input formats and links them | 2617 > LWLINK takes one or more files in supported input formats and links them |
2577 into a single binary. Currently supported formats are the LWTOOLS object | 2618 into a single binary. Currently supported formats are the LWTOOLS object |
2623 ><DIV | 2664 ><DIV |
2624 CLASS="SECTION" | 2665 CLASS="SECTION" |
2625 ><HR><H2 | 2666 ><HR><H2 |
2626 CLASS="SECTION" | 2667 CLASS="SECTION" |
2627 ><A | 2668 ><A |
2628 NAME="AEN827" | 2669 NAME="AEN841" |
2629 >4.3. Linking Scripts</A | 2670 >4.3. Linking Scripts</A |
2630 ></H2 | 2671 ></H2 |
2631 ><P | 2672 ><P |
2632 >A linker script is used to instruct the linker about how to assemble the | 2673 >A linker script is used to instruct the linker about how to assemble the |
2633 various sections into a completed binary. It consists of a series of | 2674 various sections into a completed binary. It consists of a series of |
2827 ><DIV | 2868 ><DIV |
2828 CLASS="SECTION" | 2869 CLASS="SECTION" |
2829 ><HR><H2 | 2870 ><HR><H2 |
2830 CLASS="SECTION" | 2871 CLASS="SECTION" |
2831 ><A | 2872 ><A |
2832 NAME="AEN893" | 2873 NAME="AEN907" |
2833 >4.4. Format Specific Linking Notes</A | 2874 >4.4. Format Specific Linking Notes</A |
2834 ></H2 | 2875 ></H2 |
2835 ><P | 2876 ><P |
2836 >Some formats require special information to be able to generate actual | 2877 >Some formats require special information to be able to generate actual |
2837 binaries. If the specific format you are interested in is not listed in | 2878 binaries. If the specific format you are interested in is not listed in |
2840 ><DIV | 2881 ><DIV |
2841 CLASS="SECTION" | 2882 CLASS="SECTION" |
2842 ><HR><H3 | 2883 ><HR><H3 |
2843 CLASS="SECTION" | 2884 CLASS="SECTION" |
2844 ><A | 2885 ><A |
2845 NAME="AEN896" | 2886 NAME="AEN910" |
2846 >4.4.1. OS9 Modules</A | 2887 >4.4.1. OS9 Modules</A |
2847 ></H3 | 2888 ></H3 |
2848 ><P | 2889 ><P |
2849 >OS9 modules need to embed several items into the module header. These | 2890 >OS9 modules need to embed several items into the module header. These |
2850 items are the type of module, the langauge of the module, the module | 2891 items are the type of module, the langauge of the module, the module |
2916 ></DIV | 2957 ></DIV |
2917 ><DIV | 2958 ><DIV |
2918 CLASS="CHAPTER" | 2959 CLASS="CHAPTER" |
2919 ><HR><H1 | 2960 ><HR><H1 |
2920 ><A | 2961 ><A |
2921 NAME="AEN908" | 2962 NAME="AEN922" |
2922 ></A | 2963 ></A |
2923 >Chapter 5. Libraries and LWAR</H1 | 2964 >Chapter 5. Libraries and LWAR</H1 |
2924 ><P | 2965 ><P |
2925 >LWTOOLS also includes a tool for managing libraries. These are analogous to | 2966 >LWTOOLS also includes a tool for managing libraries. These are analogous to |
2926 the static libraries created with the "ar" tool on POSIX systems. Each library | 2967 the static libraries created with the "ar" tool on POSIX systems. Each library |
2935 ><DIV | 2976 ><DIV |
2936 CLASS="SECTION" | 2977 CLASS="SECTION" |
2937 ><HR><H2 | 2978 ><HR><H2 |
2938 CLASS="SECTION" | 2979 CLASS="SECTION" |
2939 ><A | 2980 ><A |
2940 NAME="AEN912" | 2981 NAME="AEN926" |
2941 >5.1. Command Line Options</A | 2982 >5.1. Command Line Options</A |
2942 ></H2 | 2983 ></H2 |
2943 ><P | 2984 ><P |
2944 >The binary for LWAR is called "lwar". Note that the binary is in lower | 2985 >The binary for LWAR is called "lwar". Note that the binary is in lower |
2945 case. The options lwar understands are listed below. For archive manipulation | 2986 case. The options lwar understands are listed below. For archive manipulation |
3136 followed by any data required by the term. Then end of the list is flagged | 3177 followed by any data required by the term. Then end of the list is flagged |
3137 by a NULL expression (only an end of expression term).</P | 3178 by a NULL expression (only an end of expression term).</P |
3138 ><DIV | 3179 ><DIV |
3139 CLASS="TABLE" | 3180 CLASS="TABLE" |
3140 ><A | 3181 ><A |
3141 NAME="AEN995" | 3182 NAME="AEN1009" |
3142 ></A | 3183 ></A |
3143 ><P | 3184 ><P |
3144 ><B | 3185 ><B |
3145 >Table 6-1. Object File Term Types</B | 3186 >Table 6-1. Object File Term Types</B |
3146 ></P | 3187 ></P |
3208 allows local symbols that are not exported to have the same names as | 3249 allows local symbols that are not exported to have the same names as |
3209 exported symbols or external references.</P | 3250 exported symbols or external references.</P |
3210 ><DIV | 3251 ><DIV |
3211 CLASS="TABLE" | 3252 CLASS="TABLE" |
3212 ><A | 3253 ><A |
3213 NAME="AEN1025" | 3254 NAME="AEN1039" |
3214 ></A | 3255 ></A |
3215 ><P | 3256 ><P |
3216 ><B | 3257 ><B |
3217 >Table 6-2. Object File Operator Numbers</B | 3258 >Table 6-2. Object File Operator Numbers</B |
3218 ></P | 3259 ></P |