"Real" emulation...

From: Jim Battle <frustum_at_pacbell.net>
Date: Sun Jan 7 20:07:49 2001

My Sol emulator has a couple hardware oddities incorporated in it.
There are some other oddities but modelling them is too difficult for
too little benefit, so they'll probably not get done.

For instance, the first version of the emulator would convert each
windows keystroke into an emulated "strobe" of a keystroke register.
But then my first user noted a discrepancy in a program he tried.

After thinking about it a little bit, we realized that the difference was
because the real Sol generates an approximately 6 us strobe when
a key is hit, asynchronously setting a "key ready" flop. If the processor
polls this register, the flop gets cleared, but if it polls it before the
6 us strobe is finished, then reading it doesn't clear the flop since
the async strobe has priority. Thus, one keystroke can appear twice
in these circumstances.

Solace now emulates this oddity.

Eventually I'm going to add disk emulation to Solace (including
Helios emulation and PT-DOS, if I can get sufficient help (I don't
have one myself, so I need copies of the BOOTLOAD ROM, some
disk controller docs, and a binary image of the OS, hint hint...
Bob Stek sent me a listing of PT-DOS but it runs over 200 pages
of fine text, and I think it won't OCR very well).

One thing I'm planning on adding is intermittent disk errors -- the reason
is that I want to eventually rewrite my CP/M BIOS and I would
rather test it on the emulator. Without failure simulation, then too
much of the BIOS would go untested.

Now for an example of behavior I'm not going to bother with.
The Sol keyboard has infinite key rollover. On my PC, either the
keyboard or the driver stops giving KEYDOWN messages after
about four keys are down. Perhaps there is some way to get that
extra info, but I'm not going to bother. I don't see any reason to
emulate that extra behavior, so it won't go in.
Jim Battle == frustum_at_pacbell.net
Received on Sun Jan 07 2001 - 20:07:49 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:46 BST