Mercurial > hg > index.cgi
annotate docs/manual/c21.html @ 434:052c5f335a92
Fix bug in like terms collection in expression simplification
Like term collection would lose the actual "variable" part of the term if
the second term collected happened to have no coefficient. This would cause
the expression to take the value of the calculated coefficient which is
obviously wrong.
Thanks to hider <stego@satx.rr.com> for reporting the bug and providing a
proper test case.
Observation: this bug has been present since the first pre-release of
lwtools 3.0 when the algebraic expression system was introduced. Apparently
people tend not to create expressions that trigger the like terms handler.
The specific conditions require the symbol to be undefined and the second
operand to the addition has to have no coefficient so it's likely a fairly
rare scenario. Still, it is somewhat surprising that nobody tripped on it
before now.
author | William Astle <lost@l-w.ca> |
---|---|
date | Mon, 23 Jan 2017 22:58:36 -0700 |
parents | b30091890d62 |
children |
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 > </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 > |