Using TommyProm to load RAM on shared bus system #81
aemiller51
started this conversation in
Ideas
Replies: 1 comment
-
|
It would probably be best to use independent code to write the three Z80 signals, unless they are only modified at the same time addresses are changed. There are restrictions on the A6 and A7 pins in that they cannot be used as general purpose digital IO. I believe that are only available as analog in, so maybe they would work if you just need to read something. Please share if you post any details about your project. I've programmed the Z80 before, but have never done any hardware projects with it. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi Tom,
I've been using your programmer for a while now, and have recently been toying around with the idea of modifying the 595 register design to download code to a 62556 RAM chip that is shared with a Z80 CPU.
I've written a new class for the ram chip, which obviously doesn't need the code for locking and unlocking the chip etc and the basic design works fine on my breadboard.
As I'm only interested in programming 32K of RAM I don't need to use D10-D12 for the higher end address pins and would like to use them to manage the Z80's BUSREQ and RESET control pins and the 595's OE pin. I think I will have to somehow use the A6 or A7 to read the BUSACK signal.
I'm thinking when I relinquish control of the nano I will set the data pins to input, which I understand will make them effectively tristate, set the 595 OE pin high and then pulse the Z80 reset pin low to reset and run my downloaded code.
Looking at promAddressDriver.cpp I can see that you manipulate these pins in the setAddress and setUpperAddress functions. I am wondering whether to modify these functions to not use these pins and write my own code to handle them separately, use the setUpperAddress function to do the manipulation for me, or simply implement the required functionality in additional hardware.
Do you have any suggestions?
Beta Was this translation helpful? Give feedback.
All reactions