On 12/31/2011 01:43 AM, Josh Dersch wrote:
Anyone have any recommendations for a reasonably
featured 8080 or Z80
BASIC?
What I've got running at the moment is a mongrel IMSAI 8080 with a
Z80, 48K of working memory and a serial port. My eventual goal is to
get CP/M running on it (I have a Cromemco 64FDC -- anyone know of
either an official CP/M for this or know of a BIOS that supports this
controller before I start writing my own?) but for the time being I
thought it would be fun to get a BASIC running on it.
The only bios that would work with a 64FDC is a Bios from a Cormemco S80
system. You might need the boot rom too unless it's
part of the 64FDC.
Just a reminder.. The CP/M BIOS _IS_NOT_ the same as PC bios. There is
no assumed BIOS on S100 crates. The BIOS is interated into CP/M
after its developed for the hardware in question (specifically FDC and
terminal IO). If you do not have the hardware exactly the same as a
Known system your in the business of writing your or or if you lucky and
have sources modifying to match what you have.
To make life easy you need the Comemco standard IO Card and FDC. Whos
Z80 board and what ram are not critical unless you are running
CP/M+ (AKA CP/M3) with the banked memory option then it gets more
complicated.
The catch is I need something I can adapt to the
serial I/O on the
Cromemco controller -- so something that I can pretty easily modify is
of course preferable. (I'm not opposed to manually hacking up a
binary but having an official source listing to start with would save
time :))
Find CP/M for the Cormemco, thats easiest.
I started looking at the IMSAI 8K basic listing but
there's a fair
amount of hardware-specific I/O code in it scattered throughout so I'm
not thrilled about modifying it... (and the only source listing I can
find is in a PDF, which doesn't help any...)
there isn't that much code to fix it's all centered around the terminal
IO and the routines are conin, conout, and CtrlC and they are trivial.
Load the code, use the front panel to see where it's looping and look
for the IN and OUT instructions. hand disassemble the 20 or so bytes
and you have the routine(s) to be fixed. Usual fix is topoint to the
right status register, Data port and test the right bits for ready.
Allison
Thanks,
Josh