More pico-mac stuff

quinterro

Well-known member
I'm attempting to get this working like others have done, but have not been able to compile umac within the pico-mac repository. I'm attempting it with VS Code on a 2012 MacBook Pro with Raspberry Pi's Pico extension installed. I tried some of the example projects and they compile, but their folder structure isn't as complex as the pico-mac project. I'll probably need to set up the Pico SDK, which I think the VS Code extension does for you.

I have the board from Ron's Computer Videos, but at the moment I don't have a genuine Pico board that doesn't have headers soldered to them.

I do have a few of the RP2040 clones w/16MB PSRAM that don't have soldered headers. However, there is one pin between the clone and the Pico that is different. Pin 37 on the Pico is 3V3_EN, while on the clone it is GPIO23. The clone also has 4 pins on the debug header versus 3 on the Pico board.

I'll have to check to see which pins on Ron's board are connected to ensure I'm not connecting a pin that is expecting to add 3.3 volts to a GPIO pin if I use one of the clone boards. I would like to get it working with the genuine Pico first though.
 

quinterro

Well-known member
After watching a recent Action Retro video about the board from Ron's Computer Videos, I realized I was blind.

While I will need to compile when I want the memory size to be 208Kb, there is a pre-compiled image for the Pico. This evening I copied the uf2 file to the Pico, then connected it to the adapter board with a cable that connects a Raspberry Pi to a breakout board (I don't have any Pico boards without header pins already soldered to them).

I have some more Pico boards on order without soldered headers, and if the current contraption works I'll solder header sockets to one of the new boards.
 

quinterro

Well-known member
The Pico (clone) boards have arrived. I have three of one that looks like a genuine Pico, but without some of the labeling. The pinout of the PCB matches the genuine parts. I'm assuming this has 2MB of flash storage.

There are three of a different clone board that is purple, has 16MB of flash storage and a USB-C connector. Sounds nice, but the pinout is completely different than the genuine Pico boards. At least it has the pin labeling on both sides of the board. :)
 

quinterro

Well-known member
I copied the file from http://retro.bluescsi.com/PicoMac-DemoDsk.zip (after extracting it) to my Pico W, then connected it to the PCB with an IDE-like ribbon cable used for Raspberry Pi breakout boards and powered it up.

Anddddddd... nothing.

I then tried connecting short wires between the Pico W and the PCB and got the same result.

I verified the Pico W still works by building the blink example project from the Pico SDK and copying the UF2 file over to it. While I was at it, I copied the UF2 file to the above Pico clone boards and it worked on both of them as well. How they are able to sell a clone board with what appears to be a real RP2040 for less than $2 each is beyond me.
 

quinterro

Well-known member
I still haven't fully tested it - have to find my micro USB OTG adapter. I know I have a few of them floating around the office.
 

quinterro

Well-known member
It emulates a Mac 128k, but if the emulator is compiled the memory can be adjusted to 208kb.

Since it runs on a Raspberry Pi Pico, it only has 264kb of memory to work with.

 

Snial

Well-known member
It emulates a Mac 128k, but if the emulator is compiled the memory can be adjusted to 208kb.

Since it runs on a Raspberry Pi Pico, it only has 264kb of memory to work with.

My (in progress) MØBius emulator should provide a full 256kB on an RP2040 and 512kB on a RP2035.
 

Snial

Well-known member
Would it be possible to add more RAM externally? Serial (P)SRAM on a PIO?
It's tricky, because serial RAM is so slow compared with internal RAM. That's a lot of the problem with the emulator he's using (unlike the forthcoming MØBius emulator, which will run entirely within the RP2040's cache). Every time they need to load from flash (and it's execute-in-place, so it's just sending out an address), where the emulator's code resides, there's a delay of about 70 CPU cycles, I think. The bus has to send a serial address; you have to wait for the flash (55ns? maybe faster); then it has to fill a cache slot.

And the emulator uses a 64K x 32-bit table, just for generating jump vectors to the actual code implementing the emulator. So, this means that a lot of the time, it's thrashing that tiny 16kB cache: it's worse than the effect on the PPC emulator on a PowerMac 5200 before they added L2 cache.

The emulated code doesn't access emulated RAM at the same speed, but it will incur at least one 16-bit read penalty per instruction executed. And that's a significant penalty for serial RAM

Now it's possible that you could use internal RP2040 RAM as a cache for PSRAM. It'd be slower access speeds than current internal RAM; and as you say when you need an external access you could set the PIO to read that location and e.g. the rest of the emulated cache line.

However, I would suggest the following: get enthusiastic about MØBius (named after the first Mac-on-ARM project in the late 1980s)! It will be a 68000 emulator in pure Cortex M0+ assembler and will emulate every single 68K instruction faster than a real Mac 128K/512K would! My guess is that the average execution rate will be about 2x to 3x faster than a real Mac 128K.. Mac Plus No fancy hotspot tricks! Full 256kB available for a basic RP2040 implementation and 512kB available for an RP2035!

You would like it! Encourage me to complete it and it will happen!
 

quinterro

Well-known member
However, I would suggest the following: get enthusiastic about MØBius (named after the first Mac-on-ARM project in the late 1980s)! It will be a 68000 emulator in pure Cortex M0+ assembler and will emulate every single 68K instruction faster than a real Mac 128K/512K would! My guess is that the average execution rate will be about 2x to 3x faster than a real Mac 128K.. Mac Plus No fancy hotspot tricks! Full 256kB available for a basic RP2040 implementation and 512kB available for an RP2035!

You would like it! Encourage me to complete it and it will happen!
I'm definitely interested. I tried this particular emulator since my oldest physical Mac is a PowerBook G3 Lombard, and I wanted to play around with some older applications.

Quite frankly I was surprised that it worked, but the PCB greatly simplified things.
 

Snial

Well-known member
I'm definitely interested.
Cool!
I tried this particular emulator since my oldest physical Mac is a PowerBook G3 Lombard, and I wanted to play around with some older applications.
Oh, what you mean is that you've been playing with Pico-Mac, which you're calling "the emulator", because your PBG3 is your oldest physical Mac.
Quite frankly I was surprised that it worked, but the PCB greatly simplified things.
It's a lot like an Arduino nano.
 
Top