Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 09:51 04 Oct 2026 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : MMBasic for macOS (MMB4M)

     Page 1 of 2    
Author Message
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 03:28pm 05 Sep 2026
Copy link to clipboard 
Print this post

Hello all,

there is now a port of MMBasic for macOS:
https://github.com/TomSchimana/mmb4m

Linux and the Mac are both part of my daily work, and on the Mac MMBasic was always the one thing missing. The port was only possible because MMBasic for Linux builds on SDL2, and SDL2 exists for macOS as well. When it turned out that others were interested too, I got in touch with Geoff and Tom Williams to ask for their blessing.

So, many thanks to Geoff and Tom for agreeing to the port. And thanks again above all to Tom (thwill): without his work on MMB4L there would be nothing to port, and that is where the real work went.

In our exchange Tom suggested building directly on his develop-v0.8-8, so that is what this first MMB4M version is based on.

MMB4M counts its own versions and starts at 0.1.0, and every release records the MMB4L commit it stands on. Carrying MMB4L's number did not feel right, since the two may drift apart over time.

Not everything could be tested, of course. Serial ports and gamepads are untested, for example, and the Intel build has so far only run under Rosetta.

If there are others who would like to use MMBasic on the Mac, and who then find bugs, please do get in touch. Here in the forum, or open an issue on GitHub.

Thanks again to Geoff, Peter, Tom and everyone else who has contributed to MMBasic over the years.

Tom
Edited 2026-09-06 01:32 by TomSchimana
MMBasic for Mac
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 182
Posted: 07:57pm 05 Sep 2026
Copy link to clipboard 
Print this post

Hi Tom,

great work, and many thanks for making MMBasic available natively on macOS! 👍

I experimented with MMBasic on my MacBook Air some time ago and managed to get it running with a few scripts and workarounds. So I know very well that MMBasic was one of the things still missing on the Mac.

Having a proper macOS port based on MMB4L is therefore really great news. I am particularly interested in the CMM2 compatibility mode, and I will definitely give MMB4M a try.

I am also working on my “My First MMBasic Program” tutorial, so MMB4M could be a very interesting additional platform for Mac users who want to learn and experiment with MMBasic without needing any additional hardware.

Thanks also for providing builds for both Apple Silicon and Intel Macs. I have a MacBook Air available for testing, so I'll be happy to report anything I find.

Many thanks to you, Tom Williams, Geoff, Peter and everyone involved!

Best regards,
Manfred
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 232
Posted: 08:05pm 05 Sep 2026
Copy link to clipboard 
Print this post

super!

at my first test its great!
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 08:23pm 05 Sep 2026
Copy link to clipboard 
Print this post

Version 0.1.1 is out. It includes a few minor fixes.
MMBasic for Mac
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 11:32am 06 Sep 2026
Copy link to clipboard 
Print this post

Hi,

So you don't have to run the update manually every time, mmbasic can now also be installed on Mac via Homebrew:


brew tap TomSchimana/mmbasic
brew install mmbasic



First remove the manually installed version and take out any leftover search paths in the .zshrc as well.

With brew update mmbasic, or rather normal brew upgrade, it comes along too.
Edited 2026-09-06 22:29 by TomSchimana
MMBasic for Mac
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6151
Posted: 07:01am 07 Sep 2026
Copy link to clipboard 
Print this post

Hi Tom,

I do own an old 27" iMAC running Catalina. Do you think it makes sense to try ?
Or is this relic heavilly outdated. The machine is very much loved, but hasn't seen updates since 2020 (since Apply did not release for this platform).
That is why I run FireFox browser on it. The only browser that still updates for this machine.

Regards,

Volhout
Edited 2026-09-07 17:03 by Volhout
PicomiteVGA PETSCII ROBOTS
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 03:41pm 07 Sep 2026
Copy link to clipboard 
Print this post

  Volhout said  I do own an old 27" iMAC running Catalina. Do you think it makes sense to try ?


Hi

In theory, it should run starting with 10.13, so High Sierra. I believe someone already tested it on an Intel Mac with 10.13, so it should work.

Tom
MMBasic for Mac
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 182
Posted: 07:22pm 07 Sep 2026
Copy link to clipboard 
Print this post

  Volhout said  Hi Tom,

I do own an old 27" iMAC running Catalina. Do you think it makes sense to try ?
Or is this relic heavilly outdated. The machine is very much loved, but hasn't seen updates since 2020 (since Apply did not release for this platform).
That is why I run FireFox browser on it. The only browser that still updates for this machine.

Regards,

Volhout


I have this old MacBook Air that I hadn't really been using.

My 2011 MacBook Air is running macOS Sierra version 10.12.6.

But now that I've installed Tom's MMBasic on it, I use it regularly to test my MMBasic programs.
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 01:07pm 28 Sep 2026
Copy link to clipboard 
Print this post

Hi,

Version 0.1.3 has been released. This includes some fixes from Tom for the Linux version, along with a fix for a new sound issue related to PLAY TONE.

https://github.com/TomSchimana/mmb4m/releases/tag/v0.1.3
https://github.com/TomSchimana/mmb4m/blob/main/CHANGELOG.md

Or if someone installed it via Brew, just run an brew upgrade.

Tom
Edited 2026-09-28 23:30 by TomSchimana
MMBasic for Mac
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 232
Posted: 02:04pm 28 Sep 2026
Copy link to clipboard 
Print this post

hello. I updated mmb4m with brew update/upgrade and it runs well.

the picmite version (6.04.xxx) has a function bit(x%,y). the y-th bit from x. this would be cool.

i wrote a sub in the basic. but it is no as fast as an inplemented command...
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 05:31pm 28 Sep 2026
Copy link to clipboard 
Print this post

  hhtg1968 said  hello. I updated mmb4m with brew update/upgrade and it runs well.

the picmite version (6.04.xxx) has a function bit(x%,y). the y-th bit from x. this would be cool.

i wrote a sub in the basic. but it is no as fast as an inplemented command...


Hi! Yes, that's on my roadmap. First I'm trying to catch up with the current PicoMite release, and after that keep pace with Peter's latest innovations.
MMBasic for Mac
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 232
Posted: 08:13pm 28 Sep 2026
Copy link to clipboard 
Print this post

hello.

I defined an integer array. is it right that the limit of the index (per dimension) 15bit or 16 bit signed is? not higher than 32767...

is it easy to change this?
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6151
Posted: 05:02am 29 Sep 2026
Copy link to clipboard 
Print this post

When it is based on picomite…probably yes. 32000 integers is 256 kbyte RAM, and that is all RAM there is.
No need for higher index.

Volhout
PicomiteVGA PETSCII ROBOTS
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 05:16am 29 Sep 2026
Copy link to clipboard 
Print this post

  hhtg1968 said  hello.

I defined an integer array. is it right that the limit of the index (per dimension) 15bit or 16 bit signed is? not higher than 32767...

is it easy to change this?


Hi. Yes, the limit is there at the moment. It comes from MMBasic for Linux, which MMB4M is built on. Why it is there I can only guess, perhaps for compatibility with the original Pico (RP2040), which has the same limit. The Pico 2, the CMM2 and the Windows version do not have it in this form, so lifting it is planned for one of the next releases. On top of that, the current 1 MB of memory limits the total size of an array; that will be looked at along with it.
MMBasic for Mac
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 06:22am 29 Sep 2026
Copy link to clipboard 
Print this post

Hello,

I have created a Roadmap . It shows, roughly, the delta between the current alpha of MMBasic for Mac and Peter's current developments (Picomite, etc.).

You can see which version adds what. If you have any requests, feel free to post them here, and I will try to include them.

Regards,
Tom
MMBasic for Mac
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 4386
Posted: 07:10am 29 Sep 2026
Copy link to clipboard 
Print this post

Looks promising.  Applies (mostly) to Linux I suppose.

John
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6151
Posted: 07:49am 29 Sep 2026
Copy link to clipboard 
Print this post

Hi Tom,

I am wondering what your aim is. Do you want MMBasic on MAC to be compatible with the microcontrollers (CMM2/pico) or do you want to use it to develop applications in MMBasic that exceed the capabilities of the microcontroller MMBasic.

Example: for huge databases you need array index larger than 32000. But that will never run on the microcontroller MMBasic. So you loose compatibility.

MMBasic: for each variable there is a 64 byte data block that has a predefined structure (variable name, type, etc...) and for arrays 2 bytes for each array dimension. Are you redefining these structures ?

It is not simply changing a 16 bit variable, into a 32 bit variable. This is the core of MMBasic in 2011 defined by Geoff.

Regards,

Volhout
Edited 2026-09-29 17:51 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11934
Posted: 08:13am 29 Sep 2026
Copy link to clipboard 
Print this post

  Quote  and for arrays 2 bytes for each array dimension. Are you redefining these structures ?


2 bytes for rp2040, 4 bytes for rp2350, max 5 dimensions for rp2350, max 6 dimensions for rp2040.
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 08:20am 29 Sep 2026
Copy link to clipboard 
Print this post

Hello Volhout,

Thanks for the question. It gets at an important point.

My current goal is to become more compatible with Peter's latest developments. That means implementing on the Mac the commands, functions, and features that are currently missing in the Linux version. It does not mean emulating everything 1:1. PicoMite and CMM2 programs should run on the Mac, and their commands should work. I'll look at what else makes sense only after that.

About the arrays: you're right that this is more than changing one variable from 16 to 32 bits. The dimensions in the variable header become wider, and the header grows. As Peter wrote, the RP2350 already does it this way. So do CMM2 and MMB4W, and only the RP2040 stays at 16 bits. I'm following Peter on this.

Compatibility is lost in one direction only. A program that runs on the RP2040 will keep running. A program with larger arrays won't run on the RP2040, but it will run on Peter's larger platforms. As with memory requirements, the program's author has to decide. Devices can be simulated, but that currently doesn't extend to the hardware limits.

I don't yet know exactly how much work this will be in the core. That is planned for 0.2. If you know of places where the 16 bits are implicitly assumed, I'd be grateful for any pointers. I've only been working with MMBasic at this architectural level for a few weeks. And if I'm misunderstanding something, I'd appreciate a hint as well.

Regards,
Tom
Edited 2026-09-29 18:22 by TomSchimana
MMBasic for Mac
 
TomSchimana

Newbie

Joined: 27/08/2023
Location: Germany
Posts: 15
Posted: 08:42am 29 Sep 2026
Copy link to clipboard 
Print this post

  JohnS said  Applies (mostly) to Linux I suppose.


Right now, MMB4M is almost identical to MMB4L at Thomas's latest state. Whatever I build new exists only on the Mac. Internally, and not publicly, I work so that every change is its own patch, which would make it easier for Thomas to adopt them later. He told me he won't be able to work actively on MMB4L again until next year. So whether, when, and what he takes over is for him to answer. First, though, I need to deliver and build new features.
MMBasic for Mac
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026