3 <title>What's New - The XORcyst Manual
</title>
4 <meta http-equiv=
"Content-Type" content=
"text/html">
5 <meta name=
"description" content=
"The XORcyst Manual">
6 <meta name=
"generator" content=
"makeinfo 4.7">
7 <link title=
"Top" rel=
"start" href=
"index.html#Top">
8 <link rel=
"prev" href=
"index.html#Top" title=
"Top">
9 <link rel=
"next" href=
"Overview.html#Overview" title=
"Overview">
10 <link href=
"http://www.gnu.org/software/texinfo/" rel=
"generator-home" title=
"Texinfo Homepage">
12 This is the manual for The XORcyst version 1.4.5.
14 Copyright (C) 2004, 2005 Kent Hansen.-->
15 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
16 <style type=
"text/css"><!--
17 pre
.display
{ font-family:inherit
}
18 pre
.format
{ font-family:inherit
}
19 pre
.smalldisplay
{ font-family:inherit
; font-size:smaller
}
20 pre
.smallformat
{ font-family:inherit
; font-size:smaller
}
21 pre
.smallexample
{ font-size:smaller
}
22 pre
.smalllisp
{ font-size:smaller
}
23 span
.sc
{ font-variant:small-caps
}
24 span
.roman
{ font-family: serif
; font-weight: normal
; }
30 <a name=
"What_0027s-New"></a>Next:
<a rel=
"next" accesskey=
"n" href=
"Overview.html#Overview">Overview
</a>,
31 Previous:
<a rel=
"previous" accesskey=
"p" href=
"index.html#Top">Top
</a>,
32 Up:
<a rel=
"up" accesskey=
"u" href=
"index.html#Top">Top
</a>
36 <h2 class=
"chapter">1 What's New
</h2>
38 <h3 class=
"heading">Version
1.4.5</h3>
40 <p><strong>Assembler
</strong>
43 <li>Fixed bug that prevented local labels from being used as operand to
<code>DB
</code>,
<code>DW
</code>,
<code>DD
</code> directives.
45 <li>Fixed bug in processing of array of operands to
<code>DB
</code>,
<code>DW
</code>,
<code>DD
</code> directives (some high-level constructs were only reduced in first item).
47 <li>Negative immediate operand no longer gives truncation warning as long as it fits in signed byte (
<code>DB
</code>, immediate mode instructions) or word (
<code>DW
</code>).
49 <li>Added
<code>BLT
</code>,
<code>BGE
</code> as aliases for
<code>BCC
</code>,
<code>BCS
</code> (unsigned comparison).
53 <p><strong>Linker
</strong>
56 <li>Prints physical addresses of relocated public symbols when
<code>--verbose
</code>.
60 <h3 class=
"heading">Version
1.4.4</h3>
62 <p><strong>Linker
</strong>
65 <li>Fixed bug in RAM allocator.
67 <li>Prints statistics on RAM management (total, used, left) when
<code>--verbose
</code>.
71 <h3 class=
"heading">Version
1.4.3</h3>
73 <p><strong>Assembler
</strong>
76 <li>Support for anonymous unions.
78 <li>Fixed bug in result of
<code>sizeof
</code> operator when applied to an initialized structure variable.
80 <li>Returns error code so that i.e. Make stops after the first erroneous invocation.
84 <p><strong>Linker
</strong>
87 <li>Returns error code so that i.e. Make stops after the first erroneous invocation.
91 <h3 class=
"heading">Version
1.4.2</h3>
93 <p><strong>Assembler
</strong>
96 <li>Symbols can be indexed statically, C-style; see section
3.2.16,
“Indexing symbols statically
”.
98 <li><code>sizeof
</code> operator now works correctly when applied to an array.
100 <li>Fixed bug that lead to dysfunctional symbol table when using `=' equates.
104 <p><strong>Linker
</strong>
107 <li>Fixed bug in RAM allocator.
109 <li>Fixed line number bug in error messages.
111 <li>Removed duplicate error message (unresolved symbols).
115 <h3 class=
"heading">Version
1.4.1</h3>
117 <p>This is a bugfix release.
119 <p><strong>Assembler
</strong>
122 <li>Fixed bug in processing of declaration of array of user-defined type (!).
124 <li>Fixed bug that lead to no error message when declaring an uninitialized variable of non-existing user-defined type.
128 <p><strong>Linker
</strong>
131 <li>Fixed imperfection in allocation of alignment-constrained data.
133 <li>Fixed memory leak in RAM allocator.
137 <h3 class=
"heading">Version
1.4.0</h3>
139 <p><strong>Assembler
</strong>
142 <li>Added
<code>--debug
</code> switch (short form:
<code>-g
</code>). When this switch is given, the assembler will retain file and line information in the object file, which the linker can use to produce more descriptive link-time warning and error messages.
144 <li><code>LABEL
</code> directive can take a specific address as argument, so that
“pointers
” can be made to any part of memory (i.e. you can address memory location
<code>$
200</code> as a structure (or array of structures), without having to explicitly define storage for it).
146 <li>Constraints can be communicated to the linker on how contents of data segments should be mapped to RAM; see section
3.2.19,
“Controlling data mapping
”.
148 <li>PUBLIC modifier can be specified directly when defining a variable.
150 <li>Fixed a bug in code generation of exported string constants.
154 <p><strong>Linker
</strong>
157 <li>Uses the information generated from the assembler
<code>--debug
</code> switch to produce descriptive warning and error messages.
159 <li>Rewrote data segment mapping function to take zeropage and alignment constraints into account.
161 <li>Improved code relocation; as a result, the current PC ($) can be used freely in any expression, and the
<code>origin
</code> argument for the
<code>pad
</code> command works.
163 <li>Fixed a linker script parsing bug.
167 <h3 class=
"heading">Version
1.3.5</h3>
169 <p><strong>Assembler
</strong>
173 <li>Added ability to declare storage for array of user-defined types, C-style (works for native types too).
175 <li>Added ability to specify the type of data that a label addresses.
177 <li>Fixed bug in code generation of storage of user-defined types.
179 <li>Fixed some error detection and parsing woes.
181 <li>Added
<code>DEFINE
</code> directive (same semantics as
<code>EQU
</code>, but potentially more compact).
185 <p><strong>Linker
</strong>
188 <li>Fixed a bad code relocation bug.
190 <li>Implemented bank operator (
<code>^
</code>).
192 <li><code>--verbose
</code> switch now gives helpful info on what the linker is doing.
196 <h3 class=
"heading">Version
1.3.0</h3>
199 <li>Added support for user-defined records (
<code>RECORD
</code> directive,
<code>MASK
</code> operator).
201 <li>Added
<code>WHILE
</code> directive.
203 <li>Implemented
<code>ELIF
</code> directive.
205 <li>Improved
<code>--define
</code> switch: A value can now be assigned to the identifier (i.e.
<code>--define a=
10</code>).
207 <li><code>SIZEOF
</code> operator now works on variable identifiers too.
209 <li>Fixed bug that prevented single-character identifiers from working.
211 <li>Added
<code>--no-warn
</code> switch to suppress assembler warnings.
213 <li>Early support for
<code>--verbose
</code> switch.
217 <h3 class=
"heading">Version
1.2.0</h3>
220 <li>Added support for forward/backward branches (
<code>-
</code>,
<code>--
</code>,
<code>+
</code>,
<code>++
</code>, and so on, up to eight levels (
<code>++++++++
</code>)).
222 <li>Fixed bug that caused the assembler to run out of file handles when including a large number of files.
224 <li>Fixed bug that caused
<code>.db
<a,
>b
</code> and other lines with
<code>< ></code> to be parsed erroneously.
228 <h3 class=
"heading">Version
1.1.0</h3>
231 <li>Full support for user-defined types: Structures, unions and enums.
233 <li>Better separation of symbol types. In the previous versions,
<em>everything
</em> was a label. The assembler now distinguishes properly between labels, procedures, variables, constants and user-defined types.
235 <li>Support for anonymous macros (
<code>rept
</code> directive).
237 <li>Crash-bug fixes (
<code>if
</code> directive,
<code>incbin
</code> directive).
239 <li>Preliminary support for
<code>--define=
</code><var>IDENT
</var> assembler switch (can be used in
<code>ifdef
</code> and
<code>ifndef
</code> directives).
241 <li>Added
<code>message
</code> directive.
243 <li>Improved literal expression folding.
<var>"hello " +
123</var> will now be folded to
<var>"hello 123"</var>.
245 <li>Added assembler switch
<code>--swap-parens
</code>, which swaps the operators used for indirection from [ ] to ( ).
247 <li>Syntax of
<code>extrn
</code> directive changed slightly: Must now specify the symbol type.
249 <li>Relaxed syntax of
<code>db
</code>,
<code>dsb
</code> and similar directives. If no expression is given as argument, a single item is allocated.