The Parallax assembler syntax is not specified by a formal grammar, or completely documented in any one place. Thus, propasm may deviate from the Parallax syntax in subtle ways. I encourage any users that discover such deviations to report them to me immediately.
These are features in the Parallax assembler that are currently missing from propasm. All are planned for future addition, except where noted.
An up-to-date list of bugs is available on the Issue Tracker on our Google Code page.
.align allows you to specify an alignment for
a point in the source file (using byte, word,
or long). The assembler will pad as needed..include pulls in another source file at that
point in the program.These are deliberate deviations from the behavior of Parallax's assembler, to fix aspects that I consider bugs. (Most of these issues are described in more detail in Phil Pilgrim's Propeller Tricks and Traps document.)
The Parallax assembler allows these, and silently truncates to the low-order n bits. This is a syntax error in propasm.data byte #$A5A5A5A5
Such an instruction will fail in interesting ways at runtime. If you really must specify a read-only register in D, you may explicitly specify its numeric address — e.g. $1F2 for INA.test INA, #1 wz
RES
directive is immediately followed by a data directive, such as
LONG — that is, it will reserve the specified
number of longwords before the data is placed. The Parallax
assembler silently ignores these RES directives.
(propasm is likely to treat this as a syntax error in an
upcoming version.)CALL pseudo-operation
to be used with a local label pair.