| Menu | JAQForum Ver 26.09 |
Forum Index : Microcontroller and PC projects : My First MMBasic Program” – A Beginner's Tutorial (German)
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! |
||||||
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 |
||||||
Yes!!!....Brian Sorry...somehow I inadvertently change the title of the post. Edited 2026-08-03 02:06 by Briano |
||||||
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 |
||||||
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 |
||||||
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. |
||||||
Fantastic, an English version would be great. Think about a donate button to recoup some of your losses. |
||||||
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 |
||||||
Thanks ManiB! This is great. Very good explanations and a nice and motivating opportnity to improve my german language skills. Pluto |
||||||
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 |
||||||
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 |
||||||
That's even beaten "The Complete MSX Programmer's Guide", which has a mere 569 pages. :) That one has a plastic "ring" type binder. |
||||||
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 |
||||||
Absolutely amazing achievement. Thank you Manfred! |
||||||
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! |
||||||
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. 😊 |
||||||
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! |
||||||
| The Back Shed's forum code is written, and hosted, in Australia. |