annotate docs/manual/x41.html @ 577:e49d24f4a9a5

Correct bug in the object file output code leading to stack corruption It turns out leaving a pointer to a stack allocated temporary in a persistent data structure is not conducive to correct program operation. Undo the export check setup in the object file output sequence so a pointer to stack allocated memory is not left hanging when the function returns. This seems to correct at least one mysterious crash bug, and possibly others. Thanks to Boisy Pitre for reporting the crash bug that led to this discovery, as well as a previous crash bug that likely has the same root cause. Additional thanks to Ciaran Anscomb whose debugger wielding wizardry revealed the exact location of this particular bit of unbrilliance.
author William Astle <lost@l-w.ca>
date Sat, 03 Aug 2024 14:30:06 -0600
parents b30091890d62
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
324
b30091890d62 Add documentation of the new hex output formats.
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">
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
2 <HTML
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
3 ><HEAD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
4 ><TITLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
5 >Intel Hex</TITLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
6 ><META
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
7 NAME="GENERATOR"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
9 REL="HOME"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
10 TITLE="LW Tool Chain"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
11 HREF="index.html"><LINK
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
12 REL="UP"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
13 TITLE="Output Formats"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
14 HREF="c21.html"><LINK
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
15 REL="PREVIOUS"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
16 TITLE="Motorola S-Record"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
17 HREF="x36.html"><LINK
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
18 REL="NEXT"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
19 TITLE="OS9 Modules"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
20 HREF="x46.html"></HEAD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
21 ><BODY
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
22 CLASS="SECTION"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
23 BGCOLOR="#FFFFFF"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
24 TEXT="#000000"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
25 LINK="#0000FF"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
26 VLINK="#840084"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
27 ALINK="#0000FF"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
28 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
29 CLASS="NAVHEADER"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
30 ><TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
31 SUMMARY="Header navigation table"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
32 WIDTH="100%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
33 BORDER="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
34 CELLPADDING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
35 CELLSPACING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
36 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
37 ><TH
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
38 COLSPAN="3"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
39 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
40 >LW Tool Chain</TH
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
41 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
42 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
43 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
44 WIDTH="10%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
45 ALIGN="left"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
46 VALIGN="bottom"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
47 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
48 HREF="x36.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
49 ACCESSKEY="P"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
50 >Prev</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
51 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
52 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
53 WIDTH="80%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
54 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
55 VALIGN="bottom"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
56 >Chapter 2. Output Formats</TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
57 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
58 WIDTH="10%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
59 ALIGN="right"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
60 VALIGN="bottom"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
61 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
62 HREF="x46.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
63 ACCESSKEY="N"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
64 >Next</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
65 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
66 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
67 ></TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
68 ><HR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
69 ALIGN="LEFT"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
70 WIDTH="100%"></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
71 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
72 CLASS="SECTION"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
73 ><H1
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
74 CLASS="SECTION"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
75 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
76 NAME="AEN41"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
77 >2.5. Intel Hex</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
78 ></H1
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
79 ><P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
80 >This ASCII format consists of a series of CR+LF terminated "records" of ASCII
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
81 text. Each record has the following structure: a start-of-record character
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
82 ":", a two-digit ASCII hex byte count, a four-digit ASCII hex address, a two-
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
83 digit ASCII hex record type, an optional sequence of two-digit ASCII hex data
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
84 values, and a two-digit ASCII hex checksum. The LW tool chain issues only 00,
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
85 and 01 Intel Hex record types. Data records are limited to maximum of 16
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
86 data bytes in length, and paragraph alignment of addresses is favored. The
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
87 address sequence of the Intel hex records directly follows that of the source
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
88 file; multiple ORG directives in the source code may result in out-of-sequence
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
89 addresses in the Intel Hex output. </P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
90 ><P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
91 >Intel Hex format is the other standard ASCII format accepted by most memory
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
92 device programming equipment, it and the Motorola S-Record format are used for
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
93 similar purposes.</P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
94 ><P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
95 >LWASM can output this format since version 4.10.</P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
96 ></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
97 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
98 CLASS="NAVFOOTER"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
99 ><HR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
100 ALIGN="LEFT"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
101 WIDTH="100%"><TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
102 SUMMARY="Footer navigation table"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
103 WIDTH="100%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
104 BORDER="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
105 CELLPADDING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
106 CELLSPACING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
107 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
108 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
109 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
110 ALIGN="left"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
111 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
112 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
113 HREF="x36.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
114 ACCESSKEY="P"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
115 >Prev</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
116 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
117 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
118 WIDTH="34%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
119 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
120 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
121 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
122 HREF="index.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
123 ACCESSKEY="H"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
124 >Home</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
125 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
126 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
127 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
128 ALIGN="right"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
129 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
130 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
131 HREF="x46.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
132 ACCESSKEY="N"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
133 >Next</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
134 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
135 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
136 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
137 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
138 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
139 ALIGN="left"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
140 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
141 >Motorola S-Record</TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
142 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
143 WIDTH="34%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
144 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
145 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
146 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
147 HREF="c21.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
148 ACCESSKEY="U"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
149 >Up</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
150 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
151 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
152 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
153 ALIGN="right"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
154 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
155 >OS9 Modules</TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
156 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
157 ></TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
158 ></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
159 ></BODY
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
160 ></HTML
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
161 >