I picked up this system from its previous caretaker yesterday, to hold onto for a friend.
I’ve also inventoried the major functional ICs and archived the “IPL-M” ROMs.
Here’s what’s in the Eagle-32:
- Main Logic Board
- 8MHz 68000 CPU
- 2x D8255 programmable peripheral interface
- left 8255 is clearly for parallel and user port
- right 8255 I strongly suspect is for hard disk, possibly ANSI or SASI
- D8253C programmable interval timer
- 2x 2651N programmable communications interface for serial ports
- 2x 2716 for IPL-M 0/1 ROMs
- Disk Controller Board
- FD1701B-02 floppy disk controller
- No video board, whether text or graphics
Since there’s no video board in the system, and a couple of cables internally that aren’t
attached to anything, I expect it was removed by a previous caretaker. This is sad because
without one it’s unlikely to come up, not that anyone has found any software for it. On
the other hand, there are zero PALs, so both full reverse engineering and maintenance
should be straightforward.
I threw the 4KB of boot ROM in Ghidra and confirmed a couple things:
- At boot, ROM is mapped to 0, and then remapped either by a write to the location or by a
cycle counter: The initial stack pointer at 0x0 is 0x0001fffe and the initial program
counter at 0x4 is 0x00ffc026, indicating the ROM is normally located at 0x00ffc000.
- The ROM freely interchanges addresses in the 0x00ffc000..0x00ffffff range and addresses
in the 0xffffc000..0xffffffff range, which is annoying to deal with in Ghidra.
- I/O devices appear to be in the 0x00ff8000..0x00ffbfff range, all of the devices
accessed via the bootstrap seem to be barely above 0x00ff8000.
- Only NMI, bus error, interrupt 2, and interrupt 5 are set up by the bootstrap.
- The bootstrap is very bare-bones but still has a bunch of indirection in it; it’s
obviously written in assembly, but it does seem to have parameterization so it may support
both console and serial I/O.
I suspect that I can figure out from the pattern of I/O accesses which devices are at
which address in the memory map, at least if I bring up an emulation in MAME. That should
at least allow writing new code for it, and _maybe_ even figuring out which CRT controller
the video hardware uses and where in the memory map it is. (I suspect the 6845 and/or 6847
just from the time period, but who knows? Gotta see what it actually do when trying to
show the “IPL IN PROGRESS” string contained in the ROM, or one of the couple error
strings…)
— Chris