annotate docs/manual/c21.html @ 583:000381ee2d5c default tip

Guard against single operand multiplication when detecting like terms This *shouldn't* happen, but it apparently does in some pathological cases so guard against a single operand multiplication to prevent a crash.
author William Astle <lost@l-w.ca>
date Mon, 04 Nov 2024 23:48:23 -0700
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 >Output Formats</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="PREVIOUS"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
13 TITLE="Introduction"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
14 HREF="c13.html"><LINK
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
15 REL="NEXT"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
16 TITLE="DECB Binaries"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
17 HREF="x27.html"></HEAD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
18 ><BODY
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
19 CLASS="CHAPTER"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
20 BGCOLOR="#FFFFFF"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
21 TEXT="#000000"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
22 LINK="#0000FF"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
23 VLINK="#840084"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
24 ALINK="#0000FF"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
25 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
26 CLASS="NAVHEADER"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
27 ><TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
28 SUMMARY="Header navigation table"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
29 WIDTH="100%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
30 BORDER="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
31 CELLPADDING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
32 CELLSPACING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
33 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
34 ><TH
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
35 COLSPAN="3"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
36 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
37 >LW Tool Chain</TH
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
38 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
39 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
40 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
41 WIDTH="10%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
42 ALIGN="left"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
43 VALIGN="bottom"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
44 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
45 HREF="c13.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
46 ACCESSKEY="P"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
47 >Prev</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
48 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
49 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
50 WIDTH="80%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
51 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
52 VALIGN="bottom"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
53 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
54 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
55 WIDTH="10%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
56 ALIGN="right"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
57 VALIGN="bottom"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
58 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
59 HREF="x27.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
60 ACCESSKEY="N"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
61 >Next</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
62 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
63 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
64 ></TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
65 ><HR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
66 ALIGN="LEFT"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
67 WIDTH="100%"></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
68 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
69 CLASS="CHAPTER"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
70 ><H1
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
71 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
72 NAME="AEN21"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
73 ></A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
74 >Chapter 2. Output Formats</H1
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
75 ><P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
76 >The LW tool chain supports multiple output formats. Each format has its
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
77 advantages and disadvantages. Each format is described below.</P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
78 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
79 CLASS="SECTION"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
80 ><H1
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
81 CLASS="SECTION"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
82 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
83 NAME="AEN24"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
84 >2.1. Raw Binaries</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
85 ></H1
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
86 ><P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
87 >A raw binary is simply a string of bytes. There are no headers or other
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
88 niceties. Both LWLINK and LWASM support generating raw binaries. ORG directives
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
89 in the source code only serve to set the addresses that will be used for
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
90 symbols but otherwise have no direct impact on the resulting binary.</P
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
91 ></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
92 ></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
93 ><DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
94 CLASS="NAVFOOTER"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
95 ><HR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
96 ALIGN="LEFT"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
97 WIDTH="100%"><TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
98 SUMMARY="Footer navigation table"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
99 WIDTH="100%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
100 BORDER="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
101 CELLPADDING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
102 CELLSPACING="0"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
103 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
104 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
105 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
106 ALIGN="left"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
107 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
108 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
109 HREF="c13.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
110 ACCESSKEY="P"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
111 >Prev</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
112 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
113 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
114 WIDTH="34%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
115 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
116 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
117 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
118 HREF="index.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
119 ACCESSKEY="H"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
120 >Home</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
121 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
122 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
123 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
124 ALIGN="right"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
125 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
126 ><A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
127 HREF="x27.html"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
128 ACCESSKEY="N"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
129 >Next</A
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
130 ></TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
131 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
132 ><TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
133 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
134 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
135 ALIGN="left"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
136 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
137 >Introduction</TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
138 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
139 WIDTH="34%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
140 ALIGN="center"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
141 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
142 >&nbsp;</TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
143 ><TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
144 WIDTH="33%"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
145 ALIGN="right"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
146 VALIGN="top"
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
147 >DECB Binaries</TD
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
148 ></TR
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
149 ></TABLE
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
150 ></DIV
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
151 ></BODY
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
152 ></HTML
b30091890d62 Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff changeset
153 >