Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 11:55 05 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 : My First MMBasic Program” – A Beginner's Tutorial (German)

     Page 2 of 3    
Author Message
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 12:33am 01 Aug 2026
Copy link to clipboard 
Print this post

  PeteCotton said  Very well done. I can appreciate the amount of effort you've put into this.

I have often thought that it would be fun to have a mixture of different MMBasic "learn to program" books (like David Ahl's program books).

Geoff/Peter have done an excellent job with the manuals for MMBasic. But different takes on the subject are often useful for when people get stuck with a concept.

Look at the Amstrad/Schneider CPC manual. It was a brilliant introduction to Basic and came free with the computer. But there were still a plethora of books for learning Basic on, or writing adventure games etc.

Keep up the great work!


Thank you very much for your kind words, Pete!

I completely agree with your point. Geoff and Peter have created excellent reference manuals for MMBasic, and I use them myself almost every day. My tutorial is not intended to replace those manuals, but to complement them from a beginner's perspective.

Like the classic BASIC books from the 1980s, my goal is to teach programming step by step through complete, working examples and small projects rather than by simply describing language features.

I also have very fond memories of the manuals that came with home computers such as the Amstrad/Schneider CPC. They inspired many people to start programming, and I'd be delighted if this tutorial could do the same for a new generation of MMBasic users.

Thank you again for your encouragement!
 
joker

Regular Member

Joined: 06/02/2024
Location: Germany
Posts: 54
Posted: 12:55pm 01 Aug 2026
Copy link to clipboard 
Print this post

Hello Manfred,
Brilliant work I think this is the book I would have bought and I will tell you why.

Teaching programming with complete programs instead of fragments is the key. After you have learned the commands you still have to find out how to use them and which possibilities they give to you. Just to know the command does not automatically mean to understand how it can contribute to the problem you want to solve, doesn't it.

Whenever I learned new programming languages, I always looked for source code I can learn from. That's probably why I love Open Source and Free Software especially. It allows you to look over the shoulder of programmers who solved your kind of problem already.

Of course, it is not easy find the right part of a program with hundreds or thousands of lines of code. But here your tutorial brings the real benefit. Small pieces of code, easy to understand and in a context which makes experiments easy. A nice twist is that your example programs invite for these experiments   (at least that one I looked at).

It would be great if your examples could consider the differences of the various systems and their MM Basic specifics (DOS MMBasic, Picomite, CMM2). This would help to port programs from one system to another and make your book attractive not only for beginners. But maybe I ask for too much.

Keep going with your good work and if you want to use some of my programs or parts of them (My Repository, please feel free to do so.

Cheers
Matthias
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 06:15pm 01 Aug 2026
Copy link to clipboard 
Print this post

  joker said  Hello Manfred,
Brilliant work I think this is the book I would have bought and I will tell you why.

Teaching programming with complete programs instead of fragments is the key. After you have learned the commands you still have to find out how to use them and which possibilities they give to you. Just to know the command does not automatically mean to understand how it can contribute to the problem you want to solve, doesn't it.

Whenever I learned new programming languages, I always looked for source code I can learn from. That's probably why I love Open Source and Free Software especially. It allows you to look over the shoulder of programmers who solved your kind of problem already.

Of course, it is not easy find the right part of a program with hundreds or thousands of lines of code. But here your tutorial brings the real benefit. Small pieces of code, easy to understand and in a context which makes experiments easy. A nice twist is that your example programs invite for these experiments   (at least that one I looked at).

It would be great if your examples could consider the differences of the various systems and their MM Basic specifics (DOS MMBasic, Picomite, CMM2). This would help to port programs from one system to another and make your book attractive not only for beginners. But maybe I ask for too much.

Keep going with your good work and if you want to use some of my programs or parts of them (My Repository, please feel free to do so.

Cheers
Matthias


Hi Matthias,

thank you very much for your thoughtful feedback.

I think you perfectly described the main idea behind this tutorial.

My goal has never been to write another language reference manual. Geoff's and Peter's manuals already do that exceptionally well.

Instead, I wanted to create the kind of book that I would have liked to have when learning a new programming language myself: lots of complete, working programs that can be explored, modified and extended.

That's also the reason why I'm currently creating and verifying a separate .bas file for every larger example in the book. Readers should be able to download a program, run it immediately and start experimenting.

I also like your suggestion regarding the different MMBasic platforms. The tutorial currently focuses mainly on PicoMite and Colour Maximite 2, but I will think about adding notes where platform-specific differences are relevant. That would certainly make the examples even more useful.

And thank you very much for your generous offer to use your programs. I really appreciate it and will certainly have a look at your repository.

Cheers,
Manfred
 
Briano
Newbie

Joined: 20/01/2026
Location: Canada
Posts: 19
Posted: 08:56pm 01 Aug 2026
Copy link to clipboard 
Print this post

  ManiB said  Hello everyone,

Would a comprehensive English beginner's tutorial for MMBasic be useful to the community?



Yes!!!....Brian

Sorry...somehow I inadvertently change the title of the post.
Edited 2026-08-03 02:06 by Briano
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 08:10pm 02 Aug 2026
Copy link to clipboard 
Print this post

  Briano said  
  ManiB said  Hello everyone,

Would a comprehensive English beginner's tutorial for MMBasic be useful to the community?



Yes!!!....Brian

Sorry...somehow I inadvertently change the title of the post.



Hi Brian,

I've started a new GitHub repository for the English version of the tutorial:MyFirstMMBasicProgram

The project is still in its early stages, but my goal is to create a beginner-friendly step-by-step introduction to MMBasic for both the PicoMite and the Colour Maximite 2.

The repository already contains the basic project structure, a roadmap, a TODO list, and contribution guidelines. The tutorial itself will grow chapter by chapter over time.

Feedback, suggestions, and contributions are always welcome!

Best regards,

Manfred
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 09:29pm 29 Sep 2026
Copy link to clipboard 
Print this post

A small update on my MMBasic book project

The first printed proof of My First MMBasic Program has arrived!





It is based on release 0.20 and has nearly 700 pages – and weighs an impressive 1.3 kg. So calling it a “paperback” is perhaps slightly optimistic.

Seeing all those chapters, BASIC programs and illustrations as a real printed book for the first time is quite a special moment for me.

Development hasn't stopped, though. Release 0.21 is already waiting in the wings and the KDP version is now approaching 800 pages.

And there is still one very special addition to come: Geoff Graham has kindly agreed to contribute a guest article to the book. I'm really looking forward to including that.

Before the final publication, I'll now use the proof copy to check the print quality, layout and readability – and probably find a few more little things to correct.

What started as a small German MMBasic tutorial has somehow turned into a 1.3 kg book. I certainly didn't expect that when I started!

If you'd like to see a few more photos and read more about the printed proof, I've posted a longer update on my blog:
https://mikrocontroller.bplaced.net/
Edited 2026-09-30 07:40 by ManiB
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3884
Posted: 10:46pm 29 Sep 2026
Copy link to clipboard 
Print this post

Wow. I wish I'd had something like that for the micromite when I ordered my first 28-pin version just shy of 10 years ago. Of course, it would have been a much smaller book.

What a great piece of work. Congratulations.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on FOTS
 
palcal

Guru

Joined: 12/10/2011
Location: Australia
Posts: 2053
Posted: 05:16am 30 Sep 2026
Copy link to clipboard 
Print this post

Fantastic, an English version would be great.
Think about a donate button to recoup some of your losses.
"It is better to be ignorant and ask a stupid question than to be plain Stupid and not ask at all"
 
Volhout

Guru

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

ManiB,

I am impressed. This is a real manual in the style of the 80's. The best of the best !

Only the metal ring binding is missing, so you could leave the book open at a page on your desk. But I assume that is impossible with a 700+ pages tome. You would have to shrink it to 300 pages or so.

Everything is explained in detail and structurally built up. Very good.

If I am allowed to make 1 suggestion: in chapter 39. Mention the combination of MMEdit and built in editor. When you run a program from MMEdit, and it errors, pressing F4 (built in editor) with show the listing, with focus on the error. Make a correction and immediately test with F2. Once the correction is okay, you can

make the same change in MMEdit
-or-
use MMCC to copy the program to MMCC (upload back to the PC).

I read you are supplying a portable MMEdit 5.2.9 (that is a very stable version I used for a long time). You might want to mention that 5.3.7 or newer have significantly faster download times. For larger programs that is significant (PETSCII robots the download to pico took 30 seconds with 5.2.9, and 5.3.7 only 5 seconds).

I will continue reading your book to the end (at chapter 39 now).
My German is relatively good, but when this book would become available in Dutch or English, my grand children could use it. I think it is very well possible to translate the text in English through google, but I am sure the automatic translator will make a mess of the German text and variable names in the programming examples. So I won't even try this route.

Regards,

Volhout
PicomiteVGA PETSCII ROBOTS
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 412
Posted: 09:35am 30 Sep 2026
Copy link to clipboard 
Print this post

Thanks ManiB!
This is great. Very good explanations and a nice and motivating opportnity to improve my german language skills.

Pluto
 
Volhout

Guru

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

Hi ManiB,

I have learned a lot, was especially surprised that BLIT works in RGB888 buffers. Confirmed that that is really the case.

Your book confirmed what I myself also realized: RESOLUTION 640,315000 is a bad choice. The HDMI standard mandates 640x480 in 60Hz for all devices. And that is what pico should default to. On my living room TV, that resolution is the only that it will show, all other (wide screen as well) resolution do not sync.

Anyway...

I personally think that the CHAIN command should NOT be in your book. It will cause more grief than that it will benefit. The issue is that the shared memory of all programs should fit in the heap. Assume one program uses a framebuffer f, or a large array.
Also variables in all programs must be aligned. So when one program uses a%, and another a$, that will conflict.

Chain can only work when a consolidated software package is developed, not as a menu system for individual programs. Such a consolidated software package could be 1/ a data entry program for a database, 2/ a viewer for that database, 3/ a search engine inside that database, 4/ a statistical analysis on that database. And then chain from a menu to select the function.

As a red thread through your book is development of games (i.e. PONG). One command that fits such basic game development is missing: PLAY SOUND. This is a 4 voice sound engine that allows you to have 1..3 voices play a tune, while the 4'th voice can be used for sound effects independent of the tune. Maybe at the end of the PLAY TONE chapter you can mention it.

In the section about SPRITES you do not mention the easiest way to define a sprite: in text form (as part of your listing). Another thing not mentioned is that sprites use color indexes, not colors as in the COLOUR MAP command.

Small remarks only. It is a masterpiece, that lays a good fundament for MMBasic teaching.

Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11938
Posted: 11:46am 30 Sep 2026
Copy link to clipboard 
Print this post

  Quote  Your book confirmed what I myself also realized: RESOLUTION 640,315000 is a bad choice.

There are now a large number of modern devices that won't accept 640x480@60Hz but will accept 640x480@75Hz. Despite 640x480@60Hz being "universal" it is now commonly omitted from new displays
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9167
Posted: 01:15pm 30 Sep 2026
Copy link to clipboard 
Print this post

That's even beaten "The Complete MSX Programmer's Guide", which has a mere 569 pages. :) That one has a plastic "ring" type binder.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
magi
Newbie

Joined: 25/07/2026
Location: Canada
Posts: 2
Posted: 03:15pm 30 Sep 2026
Copy link to clipboard 
Print this post

Good Day ManiB,

Congratulations on a fantastic effort, looks really nice! Reminds me of the days when 1"-2" manuals were included with all good development systems... Turbo **** days.

Of course, keeping up with "matherp's" revisions must be a major effort in itself!!!

At 800 pages, and probably counting, you have reached Biblical/Stephen King proportions, have you considered:

      1-Spliting the book into two or more volumes?
      2-Making a formatting allowance for three hole punching by the user?

The above would also simplify/allow for the inevitable "matherp" revisions


Thank you for doing this excellent work.

All the Best,

Marc
 
PeteCotton

Guru

Joined: 13/08/2020
Location: Canada
Posts: 664
Posted: 03:55pm 30 Sep 2026
Copy link to clipboard 
Print this post

Absolutely amazing achievement. Thank you Manfred!
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 09:35pm 02 Oct 2026
Copy link to clipboard 
Print this post

  palcal said  Fantastic, an English version would be great.
Think about a donate button to recoup some of your losses.


Thank you very much, lizby! 😊

That means a lot to me, especially coming from someone who started with the Micromite almost ten years ago.

And yes – a book about the 28-pin Micromite back then would probably have been quite a bit lighter. 😄

It’s amazing to see how much MMBasic and the whole ecosystem have grown since then.

Thanks again for your kind words!
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 09:36pm 02 Oct 2026
Copy link to clipboard 
Print this post

  palcal said  Fantastic, an English version would be great.
Think about a donate button to recoup some of your losses.


Thank you, palcal! 😊

Yes, an English version is definitely planned. There is still quite a bit of work ahead, but I think it would be great to make the tutorial available to the international MMBasic community as well.

And thanks for the suggestion about a donate button. I haven't really thought about that yet. For now, my main goal is to keep the tutorial freely available to everyone.

The printed book is mainly for those who, like me, still enjoy having a real book in their hands. 😊
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 09:40pm 02 Oct 2026
Copy link to clipboard 
Print this post

  Volhout said  ManiB,

I am impressed. This is a real manual in the style of the 80's. The best of the best !

Only the metal ring binding is missing, so you could leave the book open at a page on your desk. But I assume that is impossible with a 700+ pages tome. You would have to shrink it to 300 pages or so.

Everything is explained in detail and structurally built up. Very good.

If I am allowed to make 1 suggestion: in chapter 39. Mention the combination of MMEdit and built in editor. When you run a program from MMEdit, and it errors, pressing F4 (built in editor) with show the listing, with focus on the error. Make a correction and immediately test with F2. Once the correction is okay, you can

make the same change in MMEdit
-or-
use MMCC to copy the program to MMCC (upload back to the PC).

I read you are supplying a portable MMEdit 5.2.9 (that is a very stable version I used for a long time). You might want to mention that 5.3.7 or newer have significantly faster download times. For larger programs that is significant (PETSCII robots the download to pico took 30 seconds with 5.2.9, and 5.3.7 only 5 seconds).

I will continue reading your book to the end (at chapter 39 now).
My German is relatively good, but when this book would become available in Dutch or English, my grand children could use it. I think it is very well possible to translate the text in English through google, but I am sure the automatic translator will make a mess of the German text and variable names in the programming examples. So I won't even try this route.

Regards,

Volhout


Thank you very much, Volhout!

“The style of the 80's” is probably one of the nicest compliments you could give me. 😊 That is actually very close to what I had in mind: a book that explains things step by step and does not assume too much prior knowledge.

And yes, spiral binding would be perfect for a manual like this. But with 700+ pages it might become a rather impressive piece of hardware on its own. 😄

Your suggestion for chapter 39 is excellent. I hadn't considered describing the combination of MMEdit and the built-in editor in this way. Using F4 after an error, correcting and immediately testing with F2 is a very useful workflow, and I will add this to the chapter.

The MMEdit information also needs an update. Since preparing that version of the book I have been experimenting with newer MMEdit versions, and I am currently using MMEdit 5.4.3. Your information about the much faster transfers in 5.3.7 and later is therefore particularly useful, especially for larger programs.

And thank you for actually reading the book chapter by chapter. Knowing that you have already reached chapter 39 is wonderful feedback in itself.

An English version is definitely planned. I agree that simply feeding the complete book into an automatic translator would not be a good solution. Apart from the normal text, there are source listings, variable names, comments, screenshots and many technical terms that need to remain consistent. So the English version will need some careful work.

A Dutch version would of course be wonderful too – but first I think I have enough work ahead of me with the English one. 😄

Thanks again for the detailed feedback and suggestions. Please keep them coming as you continue reading!
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 09:54pm 02 Oct 2026
Copy link to clipboard 
Print this post

  Pluto said  Thanks ManiB!
This is great. Very good explanations and a nice and motivating opportnity to improve my german language skills.

Pluto


Thank you, Pluto! 😊

I hadn't really considered the book as a German language course – but if you can learn MMBasic and improve your German at the same time, that's a nice bonus. 😄

I'm very glad you like the explanations and find the book motivating.

And who knows – once the English version is available, you can use it to check how much German you've learned. 😉
 
ManiB
Senior Member

Joined: 12/10/2019
Location: Germany
Posts: 183
Posted: 09:56pm 02 Oct 2026
Copy link to clipboard 
Print this post

  Volhout said  Hi ManiB,

I have learned a lot, was especially surprised that BLIT works in RGB888 buffers. Confirmed that that is really the case.

Your book confirmed what I myself also realized: RESOLUTION 640,315000 is a bad choice. The HDMI standard mandates 640x480 in 60Hz for all devices. And that is what pico should default to. On my living room TV, that resolution is the only that it will show, all other (wide screen as well) resolution do not sync.

Anyway...

I personally think that the CHAIN command should NOT be in your book. It will cause more grief than that it will benefit. The issue is that the shared memory of all programs should fit in the heap. Assume one program uses a framebuffer f, or a large array.
Also variables in all programs must be aligned. So when one program uses a%, and another a$, that will conflict.

Chain can only work when a consolidated software package is developed, not as a menu system for individual programs. Such a consolidated software package could be 1/ a data entry program for a database, 2/ a viewer for that database, 3/ a search engine inside that database, 4/ a statistical analysis on that database. And then chain from a menu to select the function.

As a red thread through your book is development of games (i.e. PONG). One command that fits such basic game development is missing: PLAY SOUND. This is a 4 voice sound engine that allows you to have 1..3 voices play a tune, while the 4'th voice can be used for sound effects independent of the tune. Maybe at the end of the PLAY TONE chapter you can mention it.

In the section about SPRITES you do not mention the easiest way to define a sprite: in text form (as part of your listing). Another thing not mentioned is that sprites use color indexes, not colors as in the COLOUR MAP command.

Small remarks only. It is a masterpiece, that lays a good fundament for MMBasic teaching.

Volhout


Thank you again, Volhout!

This is exactly the kind of feedback I was hoping for. You are not only reading the book, but actually checking and testing things as you go along. That's extremely helpful.

Your comments give me a few things to work on. 😊

Regarding CHAIN: I understand your concern. I don't think I will simply remove it immediately, but I will definitely revisit that chapter. The restrictions concerning shared memory and variables are important, and the current explanation may make CHAIN look more generally useful than it really is. Your database example is a very good illustration of where it actually makes sense.

PLAY SOUND is a very good suggestion as well. Especially because games are something of a recurring theme throughout the tutorial, it fits nicely. I will look at adding it to the sound section.

And I will also revisit the sprite chapter. Defining sprites directly in text form is indeed very useful for small examples in a tutorial, and the distinction between colour indexes and actual colours deserves an explanation.

By the way, your earlier MMEdit suggestions have already resulted in a revision of chapter 39. I have added the workflow using MMEdit together with the built-in editor and F4/F2, and updated the MMEdit section to the portable V5.4.3 version I am currently using.

So please keep reading and keep the remarks coming. At this rate, you are becoming one of my unofficial technical reviewers. 😄

And thank you very much for calling it a masterpiece. That really means a lot to me.
 
     Page 2 of 3    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026