Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 06:48 07 Nov 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 V7

Author Message
panky

Guru

Joined: 02/10/2012
Location: Australia
Posts: 1137
Posted: 01:51am 06 Nov 2026
Copy link to clipboard 
Print this post

I am a little confused?

Reading the posts on TheBackShed, there now appears to be V7.00.xxx for the CMM2 and the PicoMite but with a forked PicoMite version (official or unofficial?) offering an integrated C compiler. My reading is that Peter's official version of the PicpMite MMBasic also has an integrated C compiler?

My question then is, are the 2 PicoMite versions fully or just functionally compatible?

Do Peter and Geoff remain the formal version controllers?

Just trying to keep up  
... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it!
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2998
Posted: 07:58am 06 Nov 2026
Copy link to clipboard 
Print this post

I echo Panky’s post with additional confusion.

There is mention in various different threads of Python, NES emulation, C, Windows, etc.

However, are these all different/separate U2F files that can be loaded (on the ‘One Board For All’) for whatever environment you want, OR, are they just one ‘multi use’ U2F that allows you to call the additional ‘environment’ from within MMBasic command prompt, and then on exit, you return back to MMBasic?

Just need some simple clarification regarding all these wonderful capabilities…..
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12129
Posted: 08:40am 06 Nov 2026
Copy link to clipboard 
Print this post

I provide 3 versions of firmware for the RP2350/RP2040 and one for the CMM2

The three RP2350/RP2040 versions are:
PicoMite with multiple variants. These are Basic machines but include an optimiser for Basic (OPTION COMPILE ON) that converts some Basic statements to machine code to improve performance. AFAIK all Basic programs will run in this mode (including things like Petscii robots with extensive graphics and sound) unless they are very large as this can exceed the available memory. There is nothing for the user to do to use this facility other than enable it. None of the versions have any sort of C compiler.
On the PC I provide python scripts that automate the process of creating a CSUB either from normal C source or direct from Basic using the Fuzix transpiler - see below
Micropython a boot to Micropython version of Micropython for the Pico Computer 2 and Pico Computer 3
Fuzix A version of Unix v7 to run on the Pico Computer 2 and Pico Computer 3. This contains a C compiler fully validated against the C89 specification. This includes header files giving access to most MMBasic capabilities. In addition it includes a transpiler that will convert MMbasic to C. This is powerful enough in combination with the C compiler to compile and run a fully compiled version of Petscii robots from the Unix command prompt (Petscii is my "if it can do this there can't be much wrong" test). It does not include a MMBasic interpreter as this would be too large

I provide a single firmware version for the CMM2
This runs the full CMM2 MMBasic interpreter and also now has a compatibility mode to run PicoMite code direct. It has the same MMBasic optimiser as the Picomite. The CMM2 runs typically at least twice as fast as the Picomite
In addition, It now supports "apps" loadable from sdcard and launched from the Basic command prompt and returning to it on exit. These currently include:
a PC386 emulator capable of running MSDOS and Windows 3.1 and even Windows95.
Doom,
Heretic,
the ScummVM virtual machine for playing games like Monkey Island,
a NES emulator,
Micropython,
the Fuzix C compiler and MMBasic transpiler both with fewer restrictions than the PicoMite.

I do not provide and won't be providing a C compiler for the RP2350/RP2040. C created on the PC and used to create a CSUB will typically run 3 to 5 times as fast as the same code compiled by the Fuzix compiler as the C compiler uses optimisation that is completely outside of the scope of a small "onboard" compiler. If you just want to learn C the the Fuzix environment is ideal. If you need very fast code create it on the PC.
Edited 2026-11-06 19:00 by matherp
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9298
Posted: 08:45am 06 Nov 2026
Copy link to clipboard 
Print this post

Sometimes there are additional functions built into MMBasic, sometimes there are additional programs supplied with it that can be called from MMBasic, sometimes there are different stand-alone U2F files (e.g. MicroPython, Fuze). :)  These are all on the official MMBasic tree.

The recently released version of MMBasic with an integrated Tiny C is a port from the original tree and isn't supported by matherp.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
Wölfi

Newbie

Joined: 14/10/2026
Location: Germany
Posts: 37
Posted: 08:48am 06 Nov 2026
Copy link to clipboard 
Print this post

Thanks for clearing that up.

Will every stable MMBASIC release be finally available on Geoff’s site or on your GitHub?
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12129
Posted: 08:51am 06 Nov 2026
Copy link to clipboard 
Print this post

  Quote  Will every stable MMBASIC release be finally available on Geoff’s site or on your GitHub?

Both
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6241
Posted: 08:53am 06 Nov 2026
Copy link to clipboard 
Print this post

If I am not confused

PicoMite

- PicoMite V7 (2350 only) has a built in compiler that you can invoke by just adding the magic words OPTION COMPILER ON in the first line of a MMbasic program.

- Picomite has a python script you run on a PC to compile a MMBasic program.


Pico Computer 3 (PC3) = specific hardware

beside above functions, also:

- PicoPython(MicroPython) is released by Peter to run on PC3.

- several people work on additional software for the PC3 platform. The PC3 platform can run picomite MMbasic, but it can also run (non MMBasic) code, such as NES emulator, DOOM, C-compiler, etc... These are not MMBasic, and to run them you need to replace MMBasic with a specific binary (uf2 file). But theses programs are adapted to run on the specific PC3 hardware (sound/video/sd card/keyboard).


CMM2

To confuse the heck out of you, the CMM2 can now run PicoMite MMBasic programs in compatibility mode OPTION PICOMITE ON. Similar like it could run CMM1 programs using OPTION LEGACY ON.

The new feature set for CMM2 is currently being developed, so I cannot say where this ends. But V7.0.0rc2 now supports

- MMBasic (the old CMM2 basic with additions copied from PicoMite, and speed ups). This also includes the OPTION COMPILE ON similar to PicoMite 2350.

- A full MMBasic compiler on the CMM2 itself (not on PC), and C compiler, and runtime.

- Running of pre-compiled binaries with extension ".app". Includes games like DOOM etc.

This functionality is available without replacing the MMBasic, but is included in MMBasic for CMM2.

I hope I got that all right.


Volhout
Edited 2026-11-06 18:55 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Wölfi

Newbie

Joined: 14/10/2026
Location: Germany
Posts: 37
Posted: 08:54am 06 Nov 2026
Copy link to clipboard 
Print this post

Thank you for your outstanding work. MMBASIC is truly a dream of a programming language.    
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3372
Posted: 08:59am 06 Nov 2026
Copy link to clipboard 
Print this post

Yes, it is getting confusing.  The current state of play is this:

MMBasic versions From Peter

MMBasic for the RP2040 and RP2350 (PicoMites)
16 different versions for different hardware (eg, VGA, HDMI, etc).  The RP2350 version includes a feature which automatically compiles some of the code on RUN.  Currently in V7 release test.

MMBasic for the Pico Computer 3
One version especially configured for the Pico Computer 3, otherwise the same as the RP2350 HDMI/USB version above.  Currently in V7 release test.

MMBasic for the Colour Maximite 2
One version  for the Colour Maximite 2 Gen 1 and Gen 2.  Currently in V7 beta/release test.

MMBasic for Windows and Linux
MMBasic compiler and C compiler for Windows and Linux.  The runtime emulates the Pico Computer 3 on Windows and Linux.  Currently in V7 beta/release test.  
This is seriously brilliant - you can develop for PicoMite MMBasic on Windows/Linux.

MMBasic for UNIX running on the Pico Computer 3
MMBasic compiler and C compiler for Unix on the Pico Computer 3.  The runtime gives you access to all the hardware features of the Pico Computer 3.  Currently in V7 beta/release test.

As well as the above Peter also has a Micropython compiler for the Pico Computer 3.  BTW Peter is not currently planning a pure MMBasic compiler for the RP2040 and RP2350 (PicoMites)... but who knows what will happen in the future.

When Peter releases the release stage I plan to write a series of articles for Silicon Chip magazine and list/support all of his releases on my web page.

From Mike Vengerovich (MikeV73)
I have not been following this closely but as I understand, it includes a C and MMBasic compiler and is a fork of Peter's code described as "PicoMite / WebMite / PicoMiteVGA / PicoMiteHDMI MMBasic firmware for RP2040 & RP2350 (refactored into a per-subsystem source tree)".  It would be best to check Mike's post at https://www.thebackshed.com/forum/ViewTopic.php?TID=19209#260948.

(damn, Peter beat me to it while I was typing)
Geoff
Edited 2026-11-06 19:01 by Geoffg
Geoff Graham - http://geoffg.net
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6241
Posted: 09:00am 06 Nov 2026
Copy link to clipboard 
Print this post

erased
PicomiteVGA PETSCII ROBOTS
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2998
Posted: 09:01am 06 Nov 2026
Copy link to clipboard 
Print this post

“Micropython a boot to Basic version of Micropython for the Pico Computer 2 and Pico Computer 3”

Sorry for asking what will appear silly questions, but do you mean it also has MMBasic integrated when you say ‘boot to basic’?

With CMM2 being a more powerful base, then responding to another post asking the question ‘is anyone interested’, a CMM3 with HDMI is a no-brainer!

Thanks All for response helping clarify.
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3372
Posted: 09:06am 06 Nov 2026
Copy link to clipboard 
Print this post

It is "boot to Micropython ".
Geoff Graham - http://geoffg.net
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12129
Posted: 09:15am 06 Nov 2026
Copy link to clipboard 
Print this post

Current status is that:

PicoMite V7.00.00 is essentially stable and ready for release. I will hold off on this for another week or so to allow any more bugs to surface but it looks robust.

CMM2 V7.00.00 is essentially stable and ready for release. Currently work is going into the various "apps". I'll be posting a Spectrum emulator later today. This required no changes to the current RC2 core.

Micropython is stable and is essentially a release version

Fuzix is stable and is essentially a release version

MMBasic for Window and Linux works but needs further extensions to add more PicoMite compatibility

The C compiler in Fuzix and the CMM2 app has been validated against C89 conformance tests and passes everything with the exception of not supporting bit fields. It comes with an extensive range of header files giving access to the internal graphics, sound, and where applicable, web functionality of the underlying firmware.

Note on the CMM2. I have designed and am getting made a G2V3 version that will have onboard HDMI support. This will need some firmware changes but this will be completely transparent to the user. In addition I have designed a web "dongle" for the CMM2 that plugs on to the I/O port. Assuming this works V7.01.00 will be the next release bringing full web functionality to the CMM2. This will be available on all board variants G1, G2 and the new G3
 
javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 631
Posted: 10:24am 06 Nov 2026
Copy link to clipboard 
Print this post

  matherp said   In addition I have designed a web "dongle" for the CMM2 that plugs on to the I/O port.

Hi Peter,
I see that the CMM2 has ports for connecting two Wii controllers. I own one of these controllers and use it with a PicoMite, though mostly with other firmware.
Could you develop an adapter that would allow Wii/NES game controllers to be connected to the GPIO port of an PC3 ?
Edited 2026-11-06 20:25 by javavi
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6241
Posted: 11:14am 06 Nov 2026
Copy link to clipboard 
Print this post

  matherp said  In addition I have designed a web "dongle" for the CMM2 that plugs on to the I/O port. This will be available on all board variants G1, G2 and the new G3


If I recall correct, the CMM2 G1 and CMM2 G2 have a different pinout on the back panel IO connector. The G1 tried to mimick a Pi3 pinout, but failed in that is swapped odd and even pins. The G2 corrected that flaw.

Or is my memory wrong ???

Volhout
Edited 2026-11-06 21:17 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12129
Posted: 11:34am 06 Nov 2026
Copy link to clipboard 
Print this post

It's in the manual. The pinouts are identical but the G1 is rotated 180 degrees relative to the conventional p1 position and the index slot in the connector
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9298
Posted: 12:28pm 06 Nov 2026
Copy link to clipboard 
Print this post

@javavi
You can connect a WII controller to the PC3 on the System I2C pins (GP20/GP21). You'll also need to pick up GND and 3V3 obviously. You can only have one WII controller on the PC3 but two on the CMM2 G1 and three on the CMM2 G2.

The NES/SNES controllers use 3 digital data pins, those can be any (unused) pins you like as you write the data handling software in MMBasic. There is no standard as MMBasic doesn't support them in firmware. If you write your routine correctly you can share Clock and Latch among several controllers and just have individual Data pins for each so you can have four controllers on six pins instead of two.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026