Michael wrote:
Nice project. May I ask if you're using the 'purple' RP2040 board because it has more flash memory? If so, is there any reason why someone couldn't use the RasPi Pico board?
Thanks. This can't be done with an original Pico, because the Pico only offers 26 GPIOs on the board. 4 GPIOs are used for internal functions like power management and the LED. The "purple" was chosen, because it offers all 30 GPIOs of the RP2040. Having 16MB of flash was a benefit, that only came to use later for the wear levelling internal drive.
(The ideal number of GPIOs for this project would have been 31, so I needed to drop the SYNC pin. Having this would have offered my a good entry point to come up with a disassembler in when working on bus logs. I was thinking that I might be able to use the GPIO line for RDY with some kind of "multiplexing", but that would only work if I can pull down RDY during the "SYNC cycle" without stopping the CPU, and SYNC would be a low active signal, which it isn't.)
drogon wrote:
Not even get to 2Mhz to emulate a BBC Micro?
This can be done easily by just changing one line of code: change clockspeed of the RP2040 from 133MHz to 240MHz. Then you'll get ~2MHz on the 65C02 side. It's overclocking, but still something the RP2040 is known to work well with. For example when using the RP2040 for HDMI output, the example code clocks with 252MHz. BTW: The clockspeed is measured during runtime by the system.
plasmo wrote:
Another cheap, simple solution may be W65C134. It is a 6502 microcontroller with good collection of I/O needing only a RAM to complete as a computer. It even has ROM monitor built in and can run at 14MHz.
I've got a W65C134SBX here. It's a nice little eval board. However it lacks features like the "poor man's logic analyser" that I've got, where you can see what happens the bus during every clock cycle.
Also another fun thing to do was to replace the 6502 with a 65816 and implement a 128k RAM system. That opened my eyes in another thing I was always looking out for. I had the idea of an Atari 2600 where I replace the CPU with a 65802 and an adapter board, so I can do stuff like triggering two strobe registers in to consecutive clock cycles. Or writing two color registers just one clock cycle apart. Once I was building the 65816 expansion, I realized that you just can drop in a 65816 instead a 65802 and it wouldn't make a difference. At least in my system.