peterkrola
New Member
- Joined
- Sep 28, 2011
- Messages
- 1
It would be a nice trick if it worked..
Just trying to make sure I understand the memory map used in the PET.
Just trying to make sure I understand the memory map used in the PET.
Don't mind at all.I'm very late to the discussion, but if the object is just to replace the rom in a PET, wouldn't an adapter to replace the MOS 6540 with a 2716 EPROM be all that's necessary for replacement/debugging/fun as the OP originally stated?
There are schematics for such a board at www.6540rom.com
Note: I know little about PETs in general, and nothing about their hardware/addressing at all. I found this site in a quick search in looking for information to repair a blue-trimmed PET 2001-8 I recently pulled out of the electronics recycling bin at the local dump, and thought I'd post it here in case this was something similar to what was being looked for so that no one's recreating the wheel. Hope no one minds.
Well, C64 etc. is of course his main focus, considering how many of them are still out there and how active the various user groups etc. still are....I guess in my mind, I still associate him exclusively with C64/128 stuff, as back about 12 years ago when I first ran across his site while in college, that's what I remember his focus being on!
Bad RAM? You do only need the lower 4 chips to run, so why not swap a few? What are the symptoms?I'm hopeful that I've only a bad ram chip or two, however.... That would be amazingly lucky
if the object is just to replace the rom in a PET, wouldn't an adapter to replace the MOS 6540 with a 2716 EPROM be all that's necessary for replacement/debugging/fun as the OP originally stated?
I'm not completely sure, but after looking over 6502 timing diagrams, I believe I can use the MCU itself as the programmable logic device. With the MCU running at 16MHz, it should be just fast enough to read in the address bits, look up the appropriate chip selects from a table, and output the values to enable/disable the RAM during CPU reads/writes. Will keep you posted on progress..
I was thinking about clocking the MCU directly from the 16MHz signal on the motherboard. This would require a wire jumper, but that would not be too inconvenient. If necessary these MCUs can be clocked at 20Mhz as well to get a few more instructions.
Another thought on address decoding is to use a second small SRAM. The MCU would load up the SRAM with the appropriate chip enables and such corresponding to the different addresses (the top 5 address lines) such that when these addresses showed up during the functioning of the computer, the SRAM would enable/disable the main RAM chip accordingly. The memory/IO addressing pattern would be controllable by a file on the SD card. Basically the SRAM would take the place of a PAL.. any problems with this technique?
SRAM should be at least as fast as an EPROM, and I've heard of using EPROMs to replace PALs, so it seems like it *should* work. But again, I have no idea.
I think I'd just go with an oldskool 16 bit demux, a transceiver, and some DIP switches (and 32KB RAM and 128KB EPROM/Flash)...
And you'd still need something for the video RAM...
Mike,
Except for the fact that the "Nickolas board" relies on obsolete DIP parts (GAL, 32K RAM and 128KB Flash), it is a simple solution.
You can stop the 6502, but what about the CRTC? IHMO he'd like to access the bus when the 6502 doesn't in order to refresh the screen. So you'd have to synchronize the AVR with the CRTC / PHI 2. Maybe I'm wrong, but please think about it.I read through some 6502 documentation, and it looks like the 6502 can be single-stepped by lowering the RDY line at a certain time during a read cycle. For the diagnostic mode, I would think you would want to halt the CPU by lowering RDY when a request was detected from the user. Then the MCU would read from memory and send the contents out via the UART, after which RDY would be released. Does this sound about right?