#The KIM-1
04-May-95 01:31:32
Sb: #195581-#The KIM-1
Fm: Black Belt Systems 76004,1771
To: Steven Bennett 70046,441
Steve,
> So… Where did you manage to get a FLEX emulation from?
I wrote it, that's where. 🙂
First I wrote the 6809 emulator, because I like to make hardware
things with 6809's. Train set controllers, rock saw controllers, ham
radio repeater controllers, SSTV demodulators… I like the chip,
there isn't a more elegant 8-bitter made to this day, though many
have tried. The emulator makes for many fewer mistakes in these
one-off projects… it gets expensive when you screw up on one of
these little gems which have no inherent value anyway to justify
mistakes (or even their existance, but that's another argument :-).
The emulator was specifically written so that you could emulate any
imaginable 6809-based hardware. So one day I decided that one of the
emulations would be a flex machine – add a serial port and disk
controller emulation (1771) thought I, and it should run flex just
fine. I dragged out a copy of flex from my master disk files (similar
to the library of congress, I sometimes think) and dissasembled it to
see what was what, you know… a 6.5k operating system… and we
brag about AmigaDOS! …anyway, and found that the disk I/O routines
were VERY well modularized. Turns out that TSC, the people who made
flex, made it so that any manufacturer of a disk controller could
just plop in disk routines and it should work. Well, thought I… why
emulate the 1771… heck, I'll just emulate the disk routines instead
and replace them wholesale with AmigaDOS disk routines. That's what I
did, and it's way faster than the hardware emulation (of course). 🙂
For console I/o, I wrote a Soroc IQ140 emulator, since that is what my
editors were customized to use (everything was customized back then,
because noone ever had the same setup).
Flex had a "p" command you prefixed a command with in order to print
things… this called something named print.sys, by resetting the
I/o vectors to it's contents, would redirect the system output to the
printer. I wrote a print.sys that would get the thing into the
Amiga's printer output.
The I wrote the needed set of file transfer utilities flex->AmigaDOS
and reverse, disk list and delete commands, disk create commands…
and there you go. On an 4000/'040, it runs about as fast as a 2 mhz
6809, which is really not too bad at all.
Bingo – 100% emulation. I have yet to find anything that will not
work. Even crudware that hits the "serial hardware" directly works
because the port is completely emulated. Runs on it's own Amiga
screen, just way cool.
What I want to do now is get an OS9 emulation up and running. But I
can't locate a 6809 copy of OS9. The OS9 forum is between dead and
unresponsive, and the one guy I think could help, I can't seem to
find (Kevin Darling). It's one of those projects that gets a beating
on weekends. I'll figure it out. Hobbies – can't live with em,
can't… you know.
There – more than you ever wanted to know about the project, I'll
bet.