When I started to get into microprocessors, I wrote my
own 8008
cross-assembler--and I used hex on a CDC 6600 (which was, curiously, an
octal machine--60 bit words with 6 bit characters). It just made sense. I
never finished the 8008 machine I was building, but went for the 8080 when
it came out as the MITS box. I revised the 8008 assembler to assemble
8080 codes. IIRC, my assembler was a one-pass job. There wasn't any good
reason to write a two-pass assembler, given the simplicity of the code I
was writing.
I wrote my first 8080 assembler as a cross assembler on an IBM 360
mainframe (in fortran iirc)... took advantage of the "scads" of memory
available, and wrote it as a single pass which kept the output in core
and generated a "fixup" table to patch forward references at the end ...
worked, but the listing did not show the byte values for forward referenced
symbols correctly, so I abandoned the approach for my next 8080 assembler...
Which was a two pass assembler resident on the 8080 machine. One of
my first significant micro projects, this was a tiny little editor/assembler
which I managed to squeeze into about 2000 bytes so I could put it into
a 2716 (Hot new *BIG* EPROM!) - Worked only in hex (didn't support
decimal - or octal) - even the editor line numbers were in hex.
The mainframe cross assembler is completely gone ... I have no code
or copies of any of it anymore. I thought the first resident assembler
was also lost, however last year a hand-built machine from the time
period came to me with the editor/assembler still in ROM. I've got more
details up on the web site (look for "PIMPS"). I even put together an
I/O definition file to let my Horizon/Z80 simulator match the I/O of the
hand-built board so that you can actually run the thing (just in case
anyone has a burning desire to experience come of my earliest
code for micros).
Dave
--
dave06a (at) Dave Dunfield
dunfield (dot) Firmware development services & tools:
www.dunfield.com
com Collector of vintage computing equipment:
http://www.parse.com/~ddunfield/museum/index.html