[sebhc] Emulator fixes / additions
dave04a at dunfield.com
Wed May 26 17:28:56 CDT 2004
Aaarrrgghhh... I just can't put this thing down!
>On the next clock interrupt. PAM8's service routine checks to see if it's
>in user mode (mon led is out), and if so, it checks to see if the
>interrupted opcode is a halt, or if the RTM key combination is being
>pressed. In either case, it beeps and returns to monitor mode. Remember,
>PAM8 itself is designed to be a debugger!
>Anyway, to work like a real H8, you shouldn't jump into your debugger on a
>HLT unless it occurs while interrupts are disabled.
OK - I have implemented this - a HLT with interrupt disabled just freezes
until another PAM-8 interrupt - this does indeed go back to PAM-8.
HLT with interrupts disabled will trap to the debugger.
I have also added a /H option to cause the simulator to trap ALL halts.
Put in a few other goodies as well:
- The simulator now maintains a 32 entry map, and can selectively write
protect any 256 byte page in the first 8k (0000-1FFF). This means:
PAM-8 and H17 ROM are now write protected by this method, meaning that
we could easily turn them OFF, and allow all of memory to be RAM -
currently no I/O port for doing this, but it could be easily added.
[Unfortuntely, you can't do this when starting the simulator because PAM-8
dies if all memory is RAM - its "find end of memory" test wraps to 0000
and it continues forever]
I've added a 'LR=' option to load a HEX file "READ ONLY" (if it's in
the bottom 8k) - this allows you to install true ROM's into the expansion
I've added a WP= option to let you specifically write protect pages - Not
sure why you would want to do this, but if you need to eliminate some RAM
from the expansion area, this will let you do it.
- I've made the H17 optional. Basically, the H17 ROM and I/O ports will not
appear in the virtual 8080 environment until you have performed at least
one disk MOUNT function (eiher by command line argument or Mount function
key) - this allows me to exactly simulate my H8 - which has no H17 :-(
[Dosn't anyone out there have an extra H17?]
- I've added the ability to load a user supplied 80x86 code module into the
simulator to handle IN and OUT requests. Such modules can also set and clear
pending interrupts. This allows you to "write" your own custom hardware and
attach it to the virtual H8.
At some point I'll create a custom library for my Micro-C/PC compiler which
will let you write virtual I/O devices in 'C'.
New version is available at: http://www.dunfield.com/pub/H8.ZIP
dave04a (at) Dave Dunfield
dunfield (dot) Firmware development services & tools: www.dunfield.com
com Vintage computing equipment collector.
Delivered by the SEBHC Mailing List
More information about the Sebhc