From: "Dwight K. Elvey" <dwight.elvey at amd.com>
Sent: Tuesday, June 14, 2005 11:47 AM
From:
"Dave Dunfield" <dave04a at dunfield.com>
---snip---
If you do need RAM at 0000, then you will need to add a bit of
circutry to
allow your rom to "MOVE". One simple way, assuming you want to put
your ROM
at an address >= 8000 is to upon RESET, double-map your ROM to it's
correct
address (>= 8000) AND at 0000. While doing this, you need to pull the
phantom signal to disable any RAM at 0000 - Begin your bootstrap code
with
a JMP to it's correct address (+3) ... As soon as you see an
instruction
fetch with the high bit set, release the double-map at 0000 and
phantom,
and your system will be operating normally from the ROM at the higher
address.
Hi
An alternate method, since this it to be your tinker system,
would be to put a switch so that the EPROM board always
is seen at 0000 when the switch is held. When released,
it takes on the address that is out of the RAM's way.
If you make it so that it is double mapped while the switch
is pushed, making the transition to the normal address is
trivial.
One could even include a one-shot to trigger the reset.
Dwight
A simple automatic circuit can be added that looks at a particular address
bit, once set it could turn off ROM.
For example a simple SR flip-flop that is set by A15 and reset by system
reset. Have ROM on top of RAM and the ROM can copy over itself (read from
ROM write back to same address). Once copied all that is needed is to read
a byte from high RAM and the system goes to all RAM.
It would take very little glue logic. As a matter of fact using this
technique the system could be easily setup so all reads are from ROM and all
writes are to RAM until A15 is set which would greatly reduce address
decoding.
It could also be done during any I/O instruction so the monitor would have
to copy itself before any I/O activity.
Of course using the NorthStar CPU previously mentioned eliminates everything
since it has POJ & an EPROM option (2708 but as mentioned in a different
thread only two pins need be "changed" to allow other ROM types.
Randy