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.5.2.
14 Copyright (C) 2004, 2005, 2007, 2008, 2009 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.5.2</h3>
42 <h3 class=
"heading">Version
1.5.0</h3>
44 Added some stuff, fixed some bugs.
46 <h3 class=
"heading">Version
1.4.5</h3>
48 <p><strong>Assembler
</strong>
51 <li>Fixed bug that prevented local labels from being used as operand to
<code>DB
</code>,
<code>DW
</code>,
<code>DD
</code> directives.
53 <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).
55 <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>).
57 <li>Added
<code>BLT
</code>,
<code>BGE
</code> as aliases for
<code>BCC
</code>,
<code>BCS
</code> (unsigned comparison).
61 <p><strong>Linker
</strong>
64 <li>Prints physical addresses of relocated public symbols when
<code>--verbose
</code>.
68 <h3 class=
"heading">Version
1.4.4</h3>
70 <p><strong>Linker
</strong>
73 <li>Fixed bug in RAM allocator.
75 <li>Prints statistics on RAM management (total, used, left) when
<code>--verbose
</code>.
79 <h3 class=
"heading">Version
1.4.3</h3>
81 <p><strong>Assembler
</strong>
84 <li>Support for anonymous unions.
86 <li>Fixed bug in result of
<code>sizeof
</code> operator when applied to an initialized structure variable.
88 <li>Returns error code so that i.e. Make stops after the first erroneous invocation.
92 <p><strong>Linker
</strong>
95 <li>Returns error code so that i.e. Make stops after the first erroneous invocation.
99 <h3 class=
"heading">Version
1.4.2</h3>
101 <p><strong>Assembler
</strong>
104 <li>Symbols can be indexed statically, C-style; see section
3.2.16,
“Indexing symbols statically
”.
106 <li><code>sizeof
</code> operator now works correctly when applied to an array.
108 <li>Fixed bug that lead to dysfunctional symbol table when using `=' equates.
112 <p><strong>Linker
</strong>
115 <li>Fixed bug in RAM allocator.
117 <li>Fixed line number bug in error messages.
119 <li>Removed duplicate error message (unresolved symbols).
123 <h3 class=
"heading">Version
1.4.1</h3>
125 <p>This is a bugfix release.
127 <p><strong>Assembler
</strong>
130 <li>Fixed bug in processing of declaration of array of user-defined type (!).
132 <li>Fixed bug that lead to no error message when declaring an uninitialized variable of non-existing user-defined type.
136 <p><strong>Linker
</strong>
139 <li>Fixed imperfection in allocation of alignment-constrained data.
141 <li>Fixed memory leak in RAM allocator.
145 <h3 class=
"heading">Version
1.4.0</h3>
147 <p><strong>Assembler
</strong>
150 <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.
152 <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).
154 <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
”.
156 <li>PUBLIC modifier can be specified directly when defining a variable.
158 <li>Fixed a bug in code generation of exported string constants.
162 <p><strong>Linker
</strong>
165 <li>Uses the information generated from the assembler
<code>--debug
</code> switch to produce descriptive warning and error messages.
167 <li>Rewrote data segment mapping function to take zeropage and alignment constraints into account.
169 <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.
171 <li>Fixed a linker script parsing bug.
175 <h3 class=
"heading">Version
1.3.5</h3>
177 <p><strong>Assembler
</strong>
181 <li>Added ability to declare storage for array of user-defined types, C-style (works for native types too).
183 <li>Added ability to specify the type of data that a label addresses.
185 <li>Fixed bug in code generation of storage of user-defined types.
187 <li>Fixed some error detection and parsing woes.
189 <li>Added
<code>DEFINE
</code> directive (same semantics as
<code>EQU
</code>, but potentially more compact).
193 <p><strong>Linker
</strong>
196 <li>Fixed a bad code relocation bug.
198 <li>Implemented bank operator (
<code>^
</code>).
200 <li><code>--verbose
</code> switch now gives helpful info on what the linker is doing.
204 <h3 class=
"heading">Version
1.3.0</h3>
207 <li>Added support for user-defined records (
<code>RECORD
</code> directive,
<code>MASK
</code> operator).
209 <li>Added
<code>WHILE
</code> directive.
211 <li>Implemented
<code>ELIF
</code> directive.
213 <li>Improved
<code>--define
</code> switch: A value can now be assigned to the identifier (i.e.
<code>--define a=
10</code>).
215 <li><code>SIZEOF
</code> operator now works on variable identifiers too.
217 <li>Fixed bug that prevented single-character identifiers from working.
219 <li>Added
<code>--no-warn
</code> switch to suppress assembler warnings.
221 <li>Early support for
<code>--verbose
</code> switch.
225 <h3 class=
"heading">Version
1.2.0</h3>
228 <li>Added support for forward/backward branches (
<code>-
</code>,
<code>--
</code>,
<code>+
</code>,
<code>++
</code>, and so on, up to eight levels (
<code>++++++++
</code>)).
230 <li>Fixed bug that caused the assembler to run out of file handles when including a large number of files.
232 <li>Fixed bug that caused
<code>.db
<a,
>b
</code> and other lines with
<code>< ></code> to be parsed erroneously.
236 <h3 class=
"heading">Version
1.1.0</h3>
239 <li>Full support for user-defined types: Structures, unions and enums.
241 <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.
243 <li>Support for anonymous macros (
<code>rept
</code> directive).
245 <li>Crash-bug fixes (
<code>if
</code> directive,
<code>incbin
</code> directive).
247 <li>Preliminary support for
<code>--define=
</code><var>IDENT
</var> assembler switch (can be used in
<code>ifdef
</code> and
<code>ifndef
</code> directives).
249 <li>Added
<code>message
</code> directive.
251 <li>Improved literal expression folding.
<var>"hello " +
123</var> will now be folded to
<var>"hello 123"</var>.
253 <li>Added assembler switch
<code>--swap-parens
</code>, which swaps the operators used for indirection from [ ] to ( ).
255 <li>Syntax of
<code>extrn
</code> directive changed slightly: Must now specify the symbol type.
257 <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.