On 2021-06-23 6:48 p.m., Paul Koning via cctalk wrote:
Somewhat related to the point of compiling and
executing mixed together is a very strange hack I saw in the Electrologica assembler for
the X8 (the company issue one, not one of the various ones built at various labs for that
machine). It is essentially a "load and go" assembler, so the code is dropped
into memory as it is assembled, with a list of places to be fixed up rather than the more
typical two pass approach. You can use a variation of the usual "start address"
directive to tell the assembler to start executing at that address right now. In other
words, you can assemble some code, execute it, then go back to assembling the rest of the
source text. Cute. Suppose you want to do something too hard for macros; just assemble
its input data, followed by some code to convert that into the form you want, then go back
to assembling more code. And that can start by backing up the assembly output pointer
("dot") so the conversion code doesn't actually take up space in the
finished program.
It sure makes cross-assemblers hard, because you have to include an EL-X8 simulator in
the assembler... :-)
paul
But at least it not a 386. Did any other computers have built in rom or
protected core used as rom for 'standard' routines like I/O or floating
point.
Ben.