Daft-Freak / probably-average-computer-emulator

Somewhat hacky PC (XT) emulator than can run on a PicoVision
MIT License
18 stars 1 forks source link

RP2350 and PSRAM #1

Open robert-rozee opened 1 week ago

robert-rozee commented 1 week ago

hi, have you given any thought to making use of an RP2350B (QFN-80 package) with a PSRAM chip attached to the QSPI bus that is shared with the flash chip?

the B variant of the RP2350 gives you memory-mapped PSRAM (i believe this memory-mapping is not available with the RP2350A due to pin GP47 not being brought out, but i could be wrong), and so, by my reckoning, you could then do away with the need to have any of the XT's RAM residing in the RP2350's on-chip memory.

hopefully the approx 500k of available on-chip RAM would be sufficient to hold the entirety of the XT emulator code, resulting in a speed boost that compensates for any losses caused by locating the XT's RAM in the (slower) PSRAM chip.

my own interests in this are the idea of creating a 'pocket XT': a small colour (VGA) LCD and keyboard, RP2350 and not much else, with it running IBMDOS 5.0 and having Turbo Pascal 5 available. in years past i've played around with the HP200LX, but it was always let down by the awful screen.

cheers, rob :-)

Daft-Freak commented 1 week ago

It was one of the first things I did! Initially on a Pico Plus 2 with a lot of jumper wires and more recently with an RP2350 Stamp XL + Carrier. There's some slightly messy code over here: https://github.com/Daft-Freak/probably-average-computer-emulator/tree/PP/2/

I haven't done any performance testing yet though. (Other than being faster than the PicoVision version)

robert-rozee commented 1 week ago

will be interested to see if you can achieve the same or better speed than a 4.77MHz PC/XT; i may need to get a Stamp XL to try out your code! on the RP2350 are you using the DVI over HDMI pins for the video output?

cheers, rob :-)

Daft-Freak commented 1 week ago

In some quick testing I got good numbers (~99% vsynced, ~120% unsynced) and that's without putting any code in RAM. I think my CPU may be a little optimistic on timings as well.

Yeah, it's using HSTX-based DVI on the micro HDMI output. Partly because of coming from the PicoVision version, but also because I don't have another 640x480 display :laughing:.

robert-rozee commented 1 week ago

with mmbasic (https://github.com/UKTailwind/PicoMiteAllVersions) on the RP2040 Peter Mather managed to achieve, as i recall, something approaching a 2x speed boost by putting key chunks of the interpreter into the onboard RAM - this was back when the pico first came out. i'd expect to see a similar speed gain with your emulator, possibly more as the whole emulator should(?) fit in RAM.

cheers, rob :-)