conjuring up a reasonably small and not too slow line-by-line assembler is not
so trivial a process as translating code from one cpu to another, since the
process is generally content-dependent. If I translate the MikBug-resident
assembly code to 805x assembler, I'll have a cross-assembler, but still won't
have what I want. The structure I've been after is more like the LILBUG,
written for the 6801, or the BUFFALO, from the 68HC11, (one 'F' or two?)
monitor from MOT, not that either of these is necessarily better than MIKBUG,
but more that I simply know them and don't know the MIKBUG. The parser would
probably be simpler, since the 805x instruction set involves mainly ADD, SUBB,
ANL, ORL, shifts/rotates, and MOV instructions for anything hardware
independent, with an additional character or the absence of one to define the
addressing mode. Unlike the MOT processors, which have the destination
inherent in the opcode, the 805x types habeI figured a table-lookup would
provide a suitable approach, unless, and this is what I was hoping I'd
encounter, someone has makes an already built version available.
Naturally I can take a look at the code to see what can be gleaned from the
techniques applied to the corresponding tasks there.
One interesting debugger-related problem with the 805x and other architectures
that don't allow writes to code space is how one would create an environment
that permits setting breakpoints. Most of the debug environments I've seen do
this by mapping the code and data space into a combined map, thereby allowing
the two to reside in the same space, and, consequently, allowing code space to
be written. Of course, it also allows a runaway program to corrupt code space
... <sigh> ... it seems there's always a "gotcha."
I'm hoping to come up with an alternative to this, naturally, but I have to
start somewhere, and that will require a line-by-line assembler, so one can
use the mnemonics instead of having to learn the HEX codes for each
instruction.
Hopefully there's one already been done out there somewhere ...
Dick
----- Original Message -----
From: "Douglas Quebbeman" <dhquebbeman(a)theestopinalgroup.com>
To: <classiccmp(a)classiccmp.org>
Sent: Saturday, March 23, 2002 10:44 AM
Subject: RE: SIMTEL (was Re: Source code for 805x line-by-line assembler?)
> I found a number of hits there from GOOGLE, but
found, also, that they
were
apparently out
of date and inaccessible.
A traditional macro-assembler is a wonderful tool, but probably
inappropriatefor inclusion in a debug monitor intended to reside
in the processor'son-board ROM.
If you don't mind translating a not too-terribly-long
program for another processor, then I believe MIKBUG
for the 6800 may do ok. My first embedded
systems project was a 6800, and I included MIKBUG in
the ROM so that I could precisely what you want to do.
The 8051 being a more generous chip register-wise,
translating it shouldn't be difficult.
You can find at least one version here:
http://www.swtpc.com/mholley/MP_A/mikbug.txt
Looks like a fun weekend project.
Regards,
-doug q