|
Forum Index : Microcontroller and PC projects : MMBasic for macOS (MMB4M)
| Page 1 of 2 |
|||||
| Author | Message | ||||
| TomSchimana Newbie Joined: 27/08/2023 Location: GermanyPosts: 15 |
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: GermanyPosts: 182 |
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: GermanyPosts: 232 |
super! at my first test its great! |
||||
| TomSchimana Newbie Joined: 27/08/2023 Location: GermanyPosts: 15 |
Version 0.1.1 is out. It includes a few minor fixes. MMBasic for Mac |
||||
| TomSchimana Newbie Joined: 27/08/2023 Location: GermanyPosts: 15 |
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: NetherlandsPosts: 6151 |
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: GermanyPosts: 15 |
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: GermanyPosts: 182 |
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: GermanyPosts: 15 |
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: GermanyPosts: 232 |
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: GermanyPosts: 15 |
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: GermanyPosts: 232 |
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: NetherlandsPosts: 6151 |
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: GermanyPosts: 15 |
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: GermanyPosts: 15 |
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 KingdomPosts: 4386 |
Looks promising. Applies (mostly) to Linux I suppose. John |
||||
| Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 6151 |
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 KingdomPosts: 11934 |
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: GermanyPosts: 15 |
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: GermanyPosts: 15 |
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 |
|||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |