On Wed, 18 Feb 2026 21:23:41 -0500 (EST)
Will Cooke via cctalk <cctalk(a)classiccmp.org> wrote:
Here is a link to a family of assemblers that you
should look at. I
have no idea if the syntax will match, but I know the author goes to
a good deal of pain to match manufacturer syntax for most of them.
In the limited use I have made of a few of them, they have served me
well. The author is VERY responsive to bug fixes and they are still
under active development.
http://john.ccac.rwth-aachen.de:8000/as/
That's two votes for as/asl then, thanks.
Thank you for all the replies so far. I've loved working in assembler
since first touching a Z80 at school in 1982, but moving between
different processors (particularly older ones) has always been a bit of
a jarring experience because of the tools. I think "assemblers, yeah,
they're a solved problem, a mature set of tools" and then I realise
that, in many cases, "mature" means "rotten" and
"unmaintained"!
The first assembler I looked at for this was Ken Stauffer's as31,
despite it not having a macro facility: as Richard noted, macro
processing can easily be a bolt-on if necessary. However, it is written
in something like C90, and gcc threw so many warnings that I feared it
wouldn't produce an executable. When it did, I realised that, even
changing "db" to ".byte" throughout wasn't going to get my code
to
assemble. The parser gets itself confused between binary and
hexadecimal constants if you use suffixed numbers. What is "0bch"? as31
can't work it out. Wasn't going to spend time doing wholesale
replacements for that and its quirks of single/double quoting.
Today, I'm working with W. W. Heinz's asem51, which is freeware, not
FOSS, but it has "standard" directives for specifying data and it
rebuilt a correct ROM binary for me with just a single textual change.
That is enough to keep me on track while I wrangle the code for now.
As far as emulator/simulators go, I've started with Jari Komppa's
emu8051, which I will no doubt outgrow, but it has a really simple
ncurses interface that allows me to jump around the code and try out
various routines to check my understanding of 8051 behaviour. Case in
point: there was a table-searching routine which was supposed to return
Z or NZ for a result, but it was looping with DJNZ which, in my Z80
brain, will always flag Z when it runs to completion. Aha! On the 8051,
DJNZ does not affect flags - weird!
I'll take a look at Seemanta Dutta's gSim51 at some point. I braved the
popups of Sourceforge, ignored its "alpha" status and the fact it was
last updated 13 years ago and downloaded it.
Loving the 8051 and this VT320 code so far. Thank goodness for the
availabilty of schematics and ancient datasheets.
Regards,
Paul
asl seems to be a nice thing..agree fully.
But I want just to mention the Frankenstein Corssassembler package,
I've used it in the past:
Regards,
Holm
--
Technik Service u. Handel Tiffe,
, Holm Tiffe,
Goethestrasse 15, 09569 Oederan, USt-Id: DE253710583
info(a)tsht.de Tel +49 37292 709778 Mobil: 0172 8790 741