Hello, all:
Just a quick update on my progress with enhancing the Altair
Emulator. I also have an activity log on my Web site which all can view.
Most of what will go on over the next few weeks is code testing as a
complete recompiled "altair.exe".
A few notes:
- The emulated paper tape punch code works on a standalone basis and
has been integrated into the overall emulator. This is the code I need to
bang on.
- I wrote a bus I/O emulation Windows DLL to handle actual I/O
through the PeeCee's parallel port. I still have to build a little test jig
to connect to the port (an inverter, a latch, and a bus transceiver). This
gives the emulator 8-bits of external address space and 8-bits of I/O with
*ALE (latch control) and *R/*W signals. The way this is setup, the parallel
port is still shared with other Win32 processes. If this doesn't work for
the emulator, I'll have to write a dynamic virtual device driver to gain
exclusive access to the port so long as the Altair is "on."
- In a few weeks, I'm going to tinker with console emulation either
through capturing a physical communications port that has no underlying
hardware (like COM5:) so that a Windows terminal program can "connect" to
the Altair Emulator. Alternately, I may try just building a virtual-VDT into
the emulator.
- Other enhancements will hopefully include a virtual floppy drive
and the ability to "install" ROM.
One I have the base code stable (it now compiles/links with no
errors), I plan to make the binary available for testing and the source
available for review. Some of the punch code could benefit from
optimization, no doubt.
I also have some questions of actual users of the Altair. I wanted
to use a copy of Palo Alto Tiny BASIC on the emulator (because that's the
BASIC that I have), but TB relies on CP/M for console I/O. Regarding the
original Altair BASIC, did the BASIC code provide its own I/O services or
did it use CP/M also? What port locations were generally used to service
serial ports used for console I/O? Does anyone have a working set of CP/M
binaries that I can load into the emulator?
Again, any help is greatly appreciated.
Rich
http://highgate.comm.sfu.ca/~rcini/classiccmp/