Summary of changes/additions to the ASxxxx Assemblers from
Version 4.11 to Version 5.05.
Version 5.00 Update 5
2012_08_01
Update_05 for the ASxxxx Assembler and Linker Version 5.00
(use 'pkunzip -d u05500.zip' for extraction with MS-DOS)
(use 'unzip -L -a u05500.zip' for extraction with Linux)
See the note about merging
this update with the
asxv5pxx distribution.
This update for Version 5.00 of the ASxxxx Cross
Assemblers rolls up updates 1, 2, 3, and 4 with the addition of
a new assembler and fixes:
(1) A new cross assembler for the Fairchild
F8 microprocessor (or Mostek 3870).
(2) Minor syntactical changes for ANSI C compatability,
fix type conversion warnings, and update the
various build, make, and test files.
Update 4 Items
(1) The AS8048 base opcode value for the JMPP
instruction should be B3 and NOT 83.
(2) The AS8051 assembler calculates incorrect
offsets when using the program counter, ".",
as a destination in the instructions having
a PC-Relative addressing mode. These
instructions include: jbc, jb, jbn, jc,
jnc, jz, jnz, cjne, and djnz.
Update 3 Items
(1) A new cross assembler for the Fairchild
F8 microprocessor (or Mostek 3870).
(2) Minor syntactical changes for ANSI C compatability,
fix type conversion warnings, and update the
various build, make, and test files.
(1) New cross assemblers for STMicroelectronics
ST6, ST7, and STM8 microprocessors.
(2) An ASlink list file update error fix (-u option)
causing some errors not to be inserted into the
created .rst file.
(3) An additional ASxxxx assembler option (-v) which
enables checking for out of range signed / unsigned
values in symbol equates and arithmetic operations.
This option has some ambiguities as internally the
assemblers use unsigned arithmetic for calculations.
(e.g. for a 2-byte machine -32768 and 32768 are both
represented as 0x8000)
Update 2 Items
(1) When using the assembler directive .end to specify
the code entry address the assembler fails to set
the variable .__.END. as a global. Therefor the
value of .__.END. is not passed to the linker and
the start address frame is always zero.
(2) The linker will fail to create a start address frame
when there is no code generated within the area/bank
referenced by the .__.END. variable.
Update 1 Items
(1) The newest versions of gcc (and perhaps other
compilers) give warnings about missing arguments
in the fprintf() function. This update replaces
fprintf(arg1, arg2) with fprintf(arg1, "%s", arg2)
in each affected line of code.
(2) The newest versions of gcc (and perhaps other
compilers) have defined 'getline' as a standard
function in 'stdio.h'. This conflicts with the
function 'getline()' in the ASxxxx package.
All references to 'getline()' have been changed
to 'nxtline()'.
Before merging the asxv5pxx directory and subdirectories with
the V5.00 distribution the following files/directories must be
deleted:
[asxv5pxx\asf2mc8\f8mch.c
[asxv5pxx\asf2mc8\f8adr.c
[asxv5pxx\asf2mc8\f8pst.c
[asxv5pxx\asf2mc8\f8.h
[asxv5pxx\asxmak\vc6\asf2mc8]
[asxv5pxx\asxmak\vs05\asf2mc8]
Merge the update asxv5pxx directory and subdirectories with
the V5.00 distribution. The following files will be added /
overwritten:
[asxv5pxx]
u01500.txt
u02500.txt
u03500.txt
u04500.txt
u05500.txt
_clean.bat
_path.bat
_prep.bat
[asxv5pxx\as8048]
i48pst.c
t8048o.asm
t8048s.asm
[asxv5pxx\as8051]
i51mch.c
t8051.bat
t8051r.asm
t8051rl.asm
[asxv5pxx\ascheck\end]]
build.bat
t01.asm
t02.asm
t03.asm
t04.asm
t05.asm
t06.asm
t07.asm
t08.asm
[asxv5pxx\asf2mc8]
f2mc8.h
f2mc8adr.c
f2mc8mch.c
f2mc8pst.c
[asxv5pxx\asf8]
f8.h
f8adr.c
f8mch.c
f8pst.c
tf8err.asm
tf8err.bat
tf8ext.asm
tf8seq.asm
tf8seq.bat
[asxv5pxx\aspic]
picmch.c
[asxv5pxx\aspic\ptoa]
pictoasx.c
ptoa.h
[asxv5pxx\asst6]
st6.h
st6adr.c
st6err.asm
st6err.bat
st6gbl.asm
st6mch.c
st6pst.c
tst6.asm
tst6.bat
[asxv5pxx\asst7]
st7.h
st7adr.c
st7err.asm
st7err.bat
st7gbl.asm
st7mch.c
st7pst.c
tst7.asm
tst7.bat
[asxv5pxx\asst8]
st8.h
st8adr.c
st8err.asm
st8err.bat
st8gbl.asm
st8mch.c
st8pst.c
tst8.asm
tst8.bat
[asxv5pxx\asxhtml]
aschng.htm
ascont.htm
asmlnk.htm
asmlnk.pdf
asmlnk.txt
asf8.htm
asst6.htm
asst7.htm
asst8.htm
asxbld.htm
asxdoc.htm
asxxxx.htm
[asxv5pxx\asxmak\cygwin\build]
makefile
_clean.bat
_prep.bat
[asxv5pxx\asxmak\cygwin\build\backup]
makefile
_clean.bat
_prep.bat
[asxv5pxx\asxmak\cygwin\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\cygwin\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\djgpp\build]
build.bat
makefile
_clean.bat
_prep.bat
[asxv5pxx\asxmak\djgpp\build\backup]
build.bat
makefile
_clean.bat
_prep.bat
[asxv5pxx\asxmak\djgpp\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\djgpp\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\linux\build]
makefile
_clean.bat
_prep.bat
[asxv5pxx\asxmak\linux\build\backup]
makefile
_clean.bat
_prep.bat
[asxv5pxx\asxmak\linux\misc]
tstscn.bat
[asxv5pxx\asxmak\linux\misc\backup]
tstscn.bat
[asxv5pxx\asxmak\symantec\build]
asf2mc8.def
asf2mc8.DPD
asf2mc8.lnk
asf2mc8.mak
asf2mc8.opn
asf2mc8.prj
asf8.DPD
asf8.LNK
asf8.MAK
asf8.OPN
asf8.prj
asst6.DEF
asst6.DPD
asst6.LNK
asst6.MAK
asst6.OPN
asst6.prj
asst7.DEF
asst7.DPD
asst7.LNK
asst7.MAK
asst7.OPN
asst7.prj
asst8.DEF
asst8.DPD
asst8.LNK
asst8.MAK
asst8.OPN
asst8.prj
make.bat
_clean.bat
_makeall.bat
_prep.bat
_setpath.bat
[asxv5pxx\asxmak\symantec\build\backup]
make.bat
_clean.bat
_makeall.bat
_prep.bat
_setpath.bat
[asxv5pxx\asxmak\symantec\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\symantec\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\turboc30\build]
asf2mc8.dsk
asf2mc8.prj
ASF8.DSK
ASF8.PRJ
ASST6.DSK
ASST6.PRJ
ASST7.DSK
ASST7.PRJ
ASST8.DSK
ASST8.PRJ
makefile
_clean.bat
_makeall.bat
[asxv5pxx\asxmak\turboc30\build\backup]
makefile
_clean.bat
_makeall.bat
_prep.bat
_setpath.bat
[asxv5pxx\asxmak\turboc30\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\turboc30\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\vc6\build]
make.bat
_clean.bat
_prep.bat
[asxv5pxx\asxmak\vc6\build\asf2mc8]
asf2mc8.dsp
asf2mc8.dsw
[asxv5pxx\asxmak\vc6\build\asf8]
asf8.dsp
asf8.dsw
[asxv5pxx\asxmak\vc6\build\asst6]
asst6.dsp
asst6.dsw
[asxv5pxx\asxmak\vc6\build\asst7]
asst7.dsp
asst7.dsw
[asxv5pxx\asxmak\vc6\build\asst8]
asst8.dsp
asst8.dsw
[asxv5pxx\asxmak\vc6\build\backup]
make.bat
_clean.bat
_prep.bat
[asxv5pxx\asxmak\vc6\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\vc6\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\vs05\build]
make.bat
_clean.bat
_prep.bat
[asxv5pxx\asxmak\vs05\build\asf2mc8]
asf2mc8.sln
asf2mc8.vcproj
[asxv5pxx\asxmak\vs05\build\asf8]
asf8.sln
asf8.vcproj
[asxv5pxx\asxmak\vs05\build\asst6]
asst6.sln
asst6.vcproj
[asxv5pxx\asxmak\vs05\build\asst7]
asst7.sln
asst7.vcproj
[asxv5pxx\asxmak\vs05\build\asst8]
asst8.sln
asst8.vcproj
[asxv5pxx\asxmak\vs05\build\backup]
make.bat
_clean.bat
_prep.bat
[asxv5pxx\asxmak\vs05\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\vs05\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\vs10\build]
make.bat
_clean.bat
_prep.bat
[asxv5pxx\asxmak\vs10\build\as1802]
as1802.sln
as1802.suo
as1802.vcxproj
as1802.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as2650]
as2650.sln
as2650.suo
as2650.vcxproj
as2650.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as430]
as430.sln
as430.suo
as430.vcxproj
as430.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as61860]
as61860.sln
as61860.suo
as61860.vcxproj
as61860.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6500]
as6500.sln
as6500.suo
as6500.vcxproj
as6500.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6800]
as6800.sln
as6800.suo
as6800.vcxproj
as6800.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6801]
as6801.sln
as6801.suo
as6801.vcxproj
as6801.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6804]
as6804.sln
as6804.suo
as6804.vcxproj
as6804.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6805]
as6805.sln
as6805.suo
as6805.vcxproj
as6805.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6808]
as6808.sln
as6808.suo
as6808.vcxproj
as6808.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6809]
as6809.sln
as6809.suo
as6809.vcxproj
as6809.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6811]
as6811.sln
as6811.suo
as6811.vcxproj
as6811.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6812]
as6812.sln
as6812.suo
as6812.vcxproj
as6812.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as6816]
as6816.sln
as6816.suo
as6816.vcxproj
as6816.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as740]
as740.sln
as740.suo
as740.vcxproj
as740.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as8048]
as8048.sln
as8048.suo
as8048.vcxproj
as8048.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as8051]
as8051.sln
as8051.suo
as8051.vcxproj
as8051.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as8085]
as8085.sln
as8085.suo
as8085.vcxproj
as8085.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\as8xcxxx]
as8xcxxx.sln
as8xcxxx.suo
as8xcxxx.vcxproj
as8xcxxx.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asavr]
asavr.sln
asavr.suo
asavr.vcxproj
asavr.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\ascheck]
ascheck.sln
ascheck.suo
ascheck.vcxproj
ascheck.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asez80]
asez80.sln
asez80.suo
asez80.vcxproj
asez80.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asf2mc8]
asf2mc8.sln
asf2mc8.suo
asf2mc8.vcxproj
asf2mc8.vcxproj.filters
pasxv5pxx\asxmak\vs10\build\asf8]
asf8.sln
asf8.suo
asf8.vcxproj
asf8.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asgb]
asgb.sln
asgb.suo
asgb.vcxproj
asgb.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\ash8]
ash8.sln
ash8.suo
ash8.vcxproj
ash8.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\aslink]
aslink.sln
aslink.suo
aslink.vcxproj
aslink.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asm8c]
asm8c.sln
asm8c.suo
asm8c.vcxproj
asm8c.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\aspic]
aspic.sln
aspic.suo
aspic.vcxproj
aspic.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asrab]
asrab.sln
asrab.suo
asrab.vcxproj
asrab.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asscmp]
asscmp.sln
asscmp.suo
asscmp.vcxproj
asscmp.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asst6]
asst6.sln
asst6.suo
asst6.vcxproj
asst6.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asst7]
asst7.sln
asst7.suo
asst7.vcxproj
asst7.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asst8]
asst8.sln
asst8.suo
asst8.vcxproj
asst8.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asxcnv]
asxcnv.sln
asxcnv.suo
asxcnv.vcxproj
asxcnv.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asxscn]
asxscn.sln
asxscn.suo
asxscn.vcxproj
asxscn.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asz8]
asz8.sln
asz8.suo
asz8.vcxproj
asz8.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\asz80]
asz80.sln
asz80.suo
asz80.vcxproj
asz80.vcxproj.filters
[asxv5pxx\asxmak\vs10\build\backup]
make.bat
_clean.bat
_prep.bat
[asxv5pxx\asxmak\vs10\build\s19os9]
s19os9.sln
s19os9.vcxproj
s19os9.vcxproj.filters
[asxv5pxx\asxmak\vs10\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\vs10\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\watcom\build]
asf2mc8.lk1
asf2mc8.mk
asf2mc8.mk1
asf2mc8.tgt
asf2mc8.wpj
asf8.lk1
asf8.mk
asf8.mk1
asf8.tgt
asf8.wpj
asst6.lk1
asst6.mk
asst6.mk1
asst6.tgt
asst6.wpj
asst7.lk1
asst7.mk
asst7.mk1
asst7.tgt
asst7.wpj
asst8.lk1
asst8.mk
asst8.mk1
asst8.tgt
asst8.wpj
make.bat
_clean.bat
_makeall.bat
_prep.bat
_setpath.bat
[asxv5pxx\asxmak\watcom\build\backup]
make.bat
_clean.bat
_makeall.bat
_prep.bat
_setpath.bat
[asxv5pxx\asxmak\watcom\misc]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxmak\watcom\misc\backup]
tstscn.bat
tstwtee.bat
[asxv5pxx\asxxmisc]
asxxscan.c
[asxv5pxx\asxxsrc]
asdata.c
asexpr.c
aslex.c
aslist.c
asmain.c
asmcro.c
asout.c
assubr.c
asxxxx.h
[asxv5pxx\linksrc]
aslink.h
lkbank.c
lkdata.c
lklex.c
lklist.c
lkmain.c
lkrloc3.c
lkrloc4.c
lksym.c
[asxv5pxx\s19os9]
s19os9.c
You must recompile the ASxxxx Assemblers
to incorporate the update.
2011_07_24 Version 5.00 Update 4
This update for Version 5.00 of the ASxxxx Cross
Assemblers includes fixes for the following errors:
(1) The AS8048 base opcode value for the
JMPP instruction should be B3 and NOT 83.
(2) The AS8051 assembler calculates incorrect
offsets when using the program counter, ".",
as a destination in the instructions having
a PC-Relative addressing mode. These
instructions include: jbc, jb, jbn, jc,
jnc, jz, jnz, cjne, and djnz.
2010_10_31 Version 5.00 Update 3
This update for Version 5.00 of the ASxxxx Cross
Assemblers rolls up updates 1 and 2 with the addition of
three new assemblers and fixes:
(1) New cross assemblers for STMicroelectronics
ST6, ST7, and STM8 microprocessors.
(2) An ASlink list file update error fix (-u option)
causing some errors not to be inserted into the
created .rst file.
(3) An additional ASxxxx assembler option (-v) which
enables checking for out of range signed / unsigned
values in symbol equates and arithmetic operations.
This option has some ambiguities as internally the
assemblers use unsigned arithmetic for calculations.
(e.g. for a 2-byte machine -32768 and 32768 are both
represented as 0x8000)
Update 2 Items
(1) When using the assembler directive .end to specify
the code entry address the assembler fails to set
the variable .__.END. as a global. Therefor the
value of .__.END. is not passed to the linker and
the start address frame is always zero.
(2) The linker will fail to create a start address frame
when there is no code generated within the area/bank
referenced by the .__.END. variable.
Update 1 Items
(1) The newest versions of gcc (and perhaps other
compilers) give warnings about missing arguments
in the fprintf() function. This update replaces
fprintf(arg1, arg2) with fprintf(arg1, "%s", arg2)
in each affected line of code.
(2) The newest versions of gcc (and perhaps other
compilers) have defined 'getline' as a standard
function in 'stdio.h'. This conflicts with the
function 'getline()' in the ASxxxx package.
All references to 'getline()' have been changed
to 'nxtline()'.
2010_04_01 Version 5.00 Update 2
This update for Version 5.00 of the ASxxxx Cross
Assemblers includes fixes for the following errors:
(1) When using the assembler directive .end to specify
the code entry address the assembler fails to set
the variable .__.END. as a global. Therefor the
value of .__.END. is not passed to the linker and
the start address frame is always zero.
(2) The linker will fail to create a start address frame
when there is no code generated within the area/bank
referenced by the .__.END. variable.
2010_03_03 Version 5.00 Update 1
This update for Version 5.00 of the ASxxxx Cross
Assemblers includes fixes for the following errors:
(1) The newest versions of gcc (and perhaps other
compilers) give warnings about missing arguments
in the fprintf() function. This update replaces
fprintf(arg1, arg2) with fprintf(arg1, "%s", arg2)
in each affected line of code.
(2) The newest versions of gcc (and perhaps other
compilers) have defined 'getline' as a standard
function in 'stdio.h'. This conflicts with the
function 'getline()' in the ASxxxx package.
All references to 'getline()' have been changed
to 'nxtline()'.
2009_04_01 (Version 5.00)
Added a general purpose macro processor to the ASxxxx assem-
blers with the following mnemonics:
.macro define a general macro
.irp define an indefinite repeat macro by arguments
.irpc define an indefinite repeat macro by characters
.rept define a repeating macro
.mexit exit to end of macro
.endm end of macro
.nchr assign number of characters to a symbol
.narg assign number of expansion arguments to a symbol
.ntyp assign 0/1 if argument is absolute/relocatable
.nval assign value of argument to an absolute symbol
.mdelete delete a macro definition
The following additional conditionals provide testing of
string arguments most useful within macros:
.ifb if argument blank
.ifnb if argument not blank
.ifidn if arguments are identical
.ifdif if arguments are different
Added true (t), false (f), and true or false (tf) condition-
als to the .if / .else / .endif construct. The conditionals
.ift, .iff, and .iftf allow replacement of the .else directive
making the .if / .endif construct more readable.
.ift if condition is true
.iff if condition is false
.iftf if condition is true or false
An alternate .if construction has been added to the ASxxxx
assemblers:
.if eq,... if argument == 0
.if ne,... if argument != 0
.if lt,... if argument < 0
.if ge,... if argument >= 0
.if le,... if argument <= 0
.if gt,... if argument > 0
.if def,... if argument is defined
.if ndef,... if argument is not defined
.if b,... if argument is blank
.if nb,... if argument is not blank
.if idn,...,... if arguments are the same
.if dif,...,... if arguments are not the same
.if t if condition is true
.if f if condition is false
.if tf if condition is true or false
The immediate conditional statements have been added to the
ASxxxx assemblers. These conditionals can replace the
.if / ... / .endif construct for a single assembler source line:
e.g. .iifeq arg label: .word 0x1234
.iif if argument != 0
.iifeq if argument == 0
.iifne if argument != 0
.iiflt if argument < 0
.iifge if argument >= 0
.iifle if argument <= 0
.iifgt if argument > 0
.iifdef if argument is defined
.iifndef if argument is not defined
.iifb if argument is blank
.iifnb if argument is not blank
.iifidn if arguments are the same
.iifdif if arguments are not the same
.iift if condition is true
.iiff if condition is false
.iiftf if condition is true or false
The alternate immediate conditional statements have also been
added to the ASxxxx assemblers:
e.g. .iif eq,arg label: .word 0x1234
.iif eq,... if argument == 0
.iif ne,... if argument != 0
.iif lt,... if argument < 0
.iif ge,... if argument >= 0
.iif le,... if argument <= 0
.iif gt,... if argument > 0
.iif def,... if argument is defined
.iif ndef,... if argument is not defined
.iif b,... if argument is blank
.iif nb,... if argument is not blank
.iif idn,...,... if arguments are the same
.iif dif,...,... if arguments are not the same
.iif t if condition is true
.iif f if condition is false
.iif tf if condition is true or false
The listing options for the ASxxxx assemblers has been up-
dated to enable/disable any of the following parameters from be-
ing output to a generated listing file:
err error codes
loc code location
bin assembler binary code
eqt symbolic equates / if evaluations
cyc machine cycles
lin assembler source line number
src assembler source code
pag paging control
lst listing of .list / .nlist
md macro definition
me macro expansion
meb macro expansion binary code
! sets the listing mode to
!(.list) or !(.nlist) before
applying the sublist options
e.g. .nlist (lst,pag) ; disable .list/.nlist listing
; and pagination
The NOT parameter, !, is used to set the listing mode to the
opposite sense of the .list or .nlist directive. For example:
.nlist (!) is equivalent to .list and
.list (!) is equivalent to .nlist
To enable listing and simultaneously disable the cycle count use
the directive:
.nlist (!,cyc)
or if you wish to suppress the listing of the .list / .nlist
directives:
.nlist ; disables all listing
.nlist (!,lst) ; enables all listing except
: .list (...) and .nlist
Normally the .list and .nlist directives are not evaluated
when encountered within a FALSE conditional block. This default
behavior can be modified by specifying a non zero argument in
the .list or .nlist directive:
.nlist 1,(!,lst) ; enables listing even within
; a FALSE conditional block
The .bndry assembler directive has been added to ASxxxx. The
.bndry directive changes the current location address to be
evenly divisible by a specified integer value.
e.g. .org 0
.bndry 4
; . == 0
.org 1
.bndry 4
; . == 4
2009_02
Added the Cypress PSoc (M8C) ASM8C assembler
to ASxxxx.
2008_09
Added the 8048 (8021, 8022, and 8041) AS8048
assembler to Asxxxx.
2008_02
Added the SC/MP ASSCMP assembler to ASxxxx.
2008_02_03 (Version 4.11 Update 4)
An update to the AS2650 assembler to
fix the following errors:
1) The indexed addressing mode generates invalid
code by using the first argument register as
the index register: (addr = 0x1234)
loda r0,[addr,r1] 0C F2 34
this should give 0D F2 34
2) The index addressing mode did not generate
an addressing error when the first argument
register was not r0:
stra r1,[addr,r2] should give an 'a'
error, the source must be r0
loda r2,[addr,r3] should give an 'a'
error, the destination must be r0
3) The S2650 auto increment and decrement indexing
modes always perform the register update before
the register is used. i.e. +Rn or -Rn. The
assembler now accepts +Rn or Rn+ as meaning
pre-increment and -Rn or Rn- as meaning
pre-decrement.
The AS2650 assembler tstscn files have been updated
for testing the assemblers.
2007_10_21 (Version 4.11 Fix)
In the AS6816 assembler the instruction ANDP gives
wrong object code. Changed from 37 2A to 37 3A.
2007_04_01 (Version 4.11 Update 3)
An update to the ASPIC assembler and
associated fix to ASLINK:
1) Change the pic addressing to lo/hi from hi/lo
byte ordering.
2) The update fixes an error in the pic17 series
LCALL instruction.
3) A rewrite of the pic18 series assembler to change
the PC addressing from 1 per 16-bit word to 1 per
8-bit byte and add the extended instruction set.
4) Modify the Linker Merge Mode processing to take into
account the discarded low order bits for PC Relative
Addressing.
5) New tstscn files for testing the assemblers.
2006_11_01 (Version 4.11 Optional Update 2)
1) OS9 definition files and an OS9 assembler module
which creates the OS9 header, code and data areas,
and the module CRC block:
os9_mod.def OS9 Module Definitions
os9_sys.def OS9 Sytem Definitions
os9_mod.asm OS9 Module Begin / End Code
2) a program, s19os9, to post-process assembled OS9
modules in S19 format into binary OS9 modules
with the appropriate header checksum and module
CRC values calculated.
3) new make and project files which may be used to
compile the s19os9 program.
2006_11_01 (Version 4.11 Optional Update 01)
The .list and .nlist directives are now modified
by .if / .else / .endif processing so that they are
active only in a TRUE clause.
The .page and .include directives are now modified
by the .list and .nlist directives so that pagination
occurs only when listing is active.
The new default functionality for the .list, .nlist
and .page directives may be modified by including an
optional argument in the directive as shown here for
the the .list directive:
.list arg
a non-zero argument invokes the directive irrespective
of the .if / .else / .endif status.
2006_07_26 (Version 4.11 Patch 01)
The assembly of a direct page instruction with a
numeric constant causes a program crash when a .rel
file is created. e.g.:
andb *0x02
The use of a symbolic constant or symbol plus a
a constant compiles normally.
val = 0x02
andb *val
andb *extern+0x01
The assemblers effected are:
as6809
as6812
ash8
aspic
Summary of changes/additions to the ASxxxx Assemblers from
Version 4.10 to Version 4.11.
1. Incorporated the patches contained in p01410.zip which
corrected a coding error that affected BANKS containing
multiple ABS areas or mixed AREA types.
2. Incorporated the patches contained in p02410.zip which
corrected improper use of R_USGN in most addressing
modes in AS6500. This caused unexpected 'a' errors in
V4.xx because of the ASxxxx core change to 32-bit in-
tegers and arithmetic.
3. Incorporated the patches contained in p03410.zip which
corrected errors in the .local and .globl assembler
directive processing routine that introduced unwanted
side effects for variable and symbol definition files.
These effects included improper definitions and incor-
rect error warnings.
4. The following new subdirectories and their files have
been added to the asxtst directory:
* areabank Area and Bank Processing Test
This directory contains several test programs:
ts.asm (single file - multiple areas), tm1.asm and
tm2.asm (multiple file - multiple areas), and
tbm.asm, tbm1.asm, and tbm2.asm ( multiple file -
multiple areas within a bank) and several other
files which verify the correct operation of the
linker when used with a single linked file, multi-
ple linked files having no banking, and multiple
linked files with banking. These reference files
show in detail how the .area and .bank directives
work together.
* equtst Equate Processing Test
This directory contains a test file for verifying
the operation of the .globl, .local, .equ, .gblequ,
and .lclequ directives and the =, ==, and =:
equalities.
* inctst Nested Include File Test
* itst Include File Error Reporting Test
5. Incorporated the updates contained in u01410.zip which
added 10 undocumented 8085 instructions to the AS8085
assembler.
Summary of changes/additions to the ASxxxx Assemblers from
Version 4.00 to Version 4.10.
1. Added new assemblers for the Zilog EZ80, Zilog Z8, Sig-
netics 2650, and Fujitsu F2MC8(L,FX) processors.
2. Added the processor cycle count option (-c) to all pro-
cessors.
3. Several of the assemblers (ASZ80, ASRAB, AS6805,
AS6808, AS6812, ASF2MC8, ...) now support subsets or
supersets of their basic opcodes by the use of assem-
bler specific directives.
4. Added .ifeq, .ifne, .iflt, .ifgt, .ifle, and .ifge con-
ditional assembly directives.
5. Added support for the Tandy Color Computer Disc Basic
binary file format to ASLINK.
6. Updated the assembler and linker source code to support
16-Bit and 32-Bit compilers. Tested with Borland Turbo
C++ 3.0 and Symantec 7.2 C/C++ 16-Bit compilers, and
with Visual C++ 6.0, Cygwin, DJGPP V02.03, and Linux
32-Bit compilers.
7. Problem:
When an area size is equal to the 'address space size'
the size parameter is reported as 0. (A normal condi-
tion caused by address rollover to 0.) Aslink inter-
preted this as a 0 size.
Fix:
A new area 'Output Code Flag' bit was defined to indi-
cate when data is defined in an area. ASxxxx and
Aslink have been updated to set and process this area
flag bit.
8. Problem:
The use of the .end assembler directive in an Asxxxx
assembler would cause Aslink to output the optional
start address in all output files.
Fix:
Updated Aslink to output the optional start address
only in the output file associated with the area/bank
containing the .end directive.
9. Problem:
Aslink creates output files for banks with no output
data.
Fix:
Aslink now deletes any created output file for banks
with no data.
10. Incorporated the patches contained in p01400.zip for
files t1802.asm and 1802pst.c to correct for an error
in the opcodes generated for the BM, BL, and BNF
mnemonics.
11. Incorporated the patches contained in p02400.zip for
file ds8adr.c to correct for an error in the direct
page addressing mode of AS8xCxxx.
12. Incorporated the patches contained in p03400.zip for
file rabmch.c to correct for an error in the processing
of the "ret cc" instruction.
13. Made many corrections to internal code comments.
... Exit the ASxxxx Documentation
Last Updated: August 2012