annotate docs/manual/x1008.html @ 517:1faf14de9d04

Update manual to correctly reflect forwardrefmax behaviour Add a note to autobranchlength referencing forwardrefmax and also not that forwardrefmax is enabled by default.
author William Astle <lost@l-w.ca>
date Tue, 13 Apr 2021 15:38:12 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
517
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
2 <HTML
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
3 ><HEAD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
4 ><TITLE
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
5 >Format Specific Linking Notes</TITLE
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
6 ><META
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
7 NAME="GENERATOR"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
9 REL="HOME"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
10 TITLE="LW Tool Chain"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
11 HREF="index.html"><LINK
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
12 REL="UP"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
13 TITLE="LWLINK"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
14 HREF="c828.html"><LINK
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
15 REL="PREVIOUS"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
16 TITLE="Linking Scripts"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
17 HREF="x942.html"><LINK
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
18 REL="NEXT"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
19 TITLE="Libraries and LWAR"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
20 HREF="c1023.html"></HEAD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
21 ><BODY
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
22 CLASS="SECTION"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
23 BGCOLOR="#FFFFFF"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
24 TEXT="#000000"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
25 LINK="#0000FF"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
26 VLINK="#840084"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
27 ALINK="#0000FF"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
28 ><DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
29 CLASS="NAVHEADER"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
30 ><TABLE
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
31 SUMMARY="Header navigation table"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
32 WIDTH="100%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
33 BORDER="0"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
34 CELLPADDING="0"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
35 CELLSPACING="0"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
36 ><TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
37 ><TH
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
38 COLSPAN="3"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
39 ALIGN="center"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
40 >LW Tool Chain</TH
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
41 ></TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
42 ><TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
43 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
44 WIDTH="10%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
45 ALIGN="left"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
46 VALIGN="bottom"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
47 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
48 HREF="x942.html"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
49 ACCESSKEY="P"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
50 >Prev</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
51 ></TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
52 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
53 WIDTH="80%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
54 ALIGN="center"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
55 VALIGN="bottom"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
56 >Chapter 4. LWLINK</TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
57 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
58 WIDTH="10%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
59 ALIGN="right"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
60 VALIGN="bottom"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
61 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
62 HREF="c1023.html"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
63 ACCESSKEY="N"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
64 >Next</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
65 ></TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
66 ></TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
67 ></TABLE
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
68 ><HR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
69 ALIGN="LEFT"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
70 WIDTH="100%"></DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
71 ><DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
72 CLASS="SECTION"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
73 ><H1
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
74 CLASS="SECTION"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
75 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
76 NAME="AEN1008"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
77 >4.4. Format Specific Linking Notes</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
78 ></H1
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
79 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
80 >Some formats require special information to be able to generate actual
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
81 binaries. If the specific format you are interested in is not listed in
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
82 this section, then there is nothing special you need to know about to create
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
83 a final binary.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
84 ><DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
85 CLASS="SECTION"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
86 ><H2
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
87 CLASS="SECTION"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
88 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
89 NAME="AEN1011"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
90 >4.4.1. OS9 Modules</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
91 ></H2
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
92 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
93 >OS9 modules need to embed several items into the module header. These
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
94 items are the type of module, the langauge of the module, the module
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
95 attributes, the module revision number, the data size (bss), and the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
96 execution offset. These are all either calculated or default to reasonable
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
97 values.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
98 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
99 >The data size is calcuated as the sum of all sections named "bss" or
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
100 ".bss" in all object files that are linked together.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
101 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
102 >The execution offset is calculated from the address of the special
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
103 symbol "__start" which must be an exported (external) symbol in one of the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
104 objects to be linked.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
105 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
106 >The type defaults to "Prgrm" or "Program module". The language
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
107 defaults to "Objct" or "6809 object code". Attributes default to enabling
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
108 the re-entrant flag. And finally, the revision defaults to zero.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
109 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
110 >The embedded module name is the output filename. If the output
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
111 filename includes more than just the filename, this will probably not be
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
112 what you want.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
113 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
114 >The type, language, attributes, revision, and module name can all be
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
115 overridden by providing a special section in exactly one of the object files
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
116 to be linked. This section is called "__os9" (note the two underscores).
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
117 To override the type, language, attributes, or revision values, define a
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
118 non-exported symbol in this section called "type", "lang", "attr", or "rev"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
119 respectively. Any other symbols defined are ignored. To override the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
120 module name, include as the only actual code in the section a NUL terminated
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
121 string (the FCN directive is useful for this). If there is no code in the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
122 section or it beings with a NUL, the default name will be used. Any of the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
123 preceeding that are not defined in the special section will retain their
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
124 default values.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
125 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
126 >The built-in link script for OS9 modules will place the following
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
127 sections, in order, in the module: "code", ".text", "data", ".data". It
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
128 will merge all sections with the name "bss" or ".bss" into the "data"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
129 section. All other section names are ignored. What this means is that you
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
130 must define your data variables in the a section called "bss" or ".bss" even
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
131 though you will be refencing them all as offsets from U. This does have the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
132 unpleasant side effect that all BSS references will end up being 16 bit
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
133 offsets because the assembler cannot know what the offset will be once the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
134 linker is finished its work. Thus, if the tightest possible code is
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
135 required, having LWASM directly output the module is a better choice.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
136 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
137 >While the built-in link script is probably sufficient for most
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
138 purposes, you can provide your own script. If you provide a custom link
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
139 script, you must start your code and data sections at location 000D to
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
140 accommodate the module header. Otherwise, you will have an incorrect
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
141 location for the execution offset. You must use the ENTRY directive in the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
142 script to define the entry point for the module.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
143 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
144 >It should also be obvious from the above that you cannot mix the bss
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
145 (rmb) definitions with the module code when linking separately. Those
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
146 familiar with typical module creation will probably find this an unpleasant
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
147 difference but it is unavoidable.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
148 ><P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
149 >It should also be noted that direct page references should also be
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
150 avoided because you cannot know ahead of time whether the linker is going to
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
151 end up putting a particular variable in the first 256 bytes of the module's
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
152 data space. If, however, you know for certain you will have less than 256
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
153 bytes of defined data space across all of the object files that will be
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
154 linked, you can instead use forced DP addressing for your data addresses
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
155 instead of the ,u notation. When linking with 3rd party libraries, this
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
156 practice should be avoided. Also, when creating libraries, always use the
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
157 offset from U technique.</P
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
158 ></DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
159 ></DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
160 ><DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
161 CLASS="NAVFOOTER"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
162 ><HR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
163 ALIGN="LEFT"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
164 WIDTH="100%"><TABLE
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
165 SUMMARY="Footer navigation table"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
166 WIDTH="100%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
167 BORDER="0"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
168 CELLPADDING="0"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
169 CELLSPACING="0"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
170 ><TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
171 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
172 WIDTH="33%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
173 ALIGN="left"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
174 VALIGN="top"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
175 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
176 HREF="x942.html"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
177 ACCESSKEY="P"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
178 >Prev</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
179 ></TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
180 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
181 WIDTH="34%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
182 ALIGN="center"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
183 VALIGN="top"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
184 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
185 HREF="index.html"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
186 ACCESSKEY="H"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
187 >Home</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
188 ></TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
189 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
190 WIDTH="33%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
191 ALIGN="right"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
192 VALIGN="top"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
193 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
194 HREF="c1023.html"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
195 ACCESSKEY="N"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
196 >Next</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
197 ></TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
198 ></TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
199 ><TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
200 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
201 WIDTH="33%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
202 ALIGN="left"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
203 VALIGN="top"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
204 >Linking Scripts</TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
205 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
206 WIDTH="34%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
207 ALIGN="center"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
208 VALIGN="top"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
209 ><A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
210 HREF="c828.html"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
211 ACCESSKEY="U"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
212 >Up</A
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
213 ></TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
214 ><TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
215 WIDTH="33%"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
216 ALIGN="right"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
217 VALIGN="top"
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
218 >Libraries and LWAR</TD
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
219 ></TR
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
220 ></TABLE
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
221 ></DIV
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
222 ></BODY
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
223 ></HTML
1faf14de9d04 Update manual to correctly reflect forwardrefmax behaviour
William Astle <lost@l-w.ca>
parents:
diff changeset
224 >