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 : MMB4L: MMBasic for Linux version 0.6
Author | Message | ||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
Previous MMB4L release thread Alas there isn't much here, just the requested BIN2STR$() and STR2BIN() functions and some fixes and titivation that have accumulated over the last year. Download: https://github.com/thwill1000/mmb4l/releases/tag/0.6.0 README: https://github.com/thwill1000/mmb4l/blob/0.6.0/README.md I've only published the x86_64 build for the moment as that is what @homa requires, I can do other builds on request. Version 0.6.0 - 4-Feb-2024: - Added BIN2STR$() and STR2BIN() functions. - Added MM.INFO(LINE) function to return the number of the current line. - Added NOP implementation of PAGE command. - Changed file path reported in an error message to be canonicalised. - Changed maximum error message length to 255 characters (from 127). - Changed previously NOP implementation of MODE to clear the console. - Changed parser to allow any non-name character to be used as a keyword terminator, i.e. DIM i AS INTEGER=10 is now valid. - Changed 'micro' version in semantic versioning from 2 digits to 3, the most significant digit indicates whether it is an alpha, beta, RC or release version: 0 - alpha 1 - beta 2 - RC (release candidate) 3 .. 9 - release, in which case the "real" MICRO version is the 3-digit number minus 300. e.g. version 1230560001 => 1.23 alpha 56 build 1 1231560012 => 1.23 beta 56 build 12 1232560123 => 1.23 RC 56 build 123 1233561234 => 1.23.56 build 1234 1234567890 => 1.23.156 build 7890 Currently the version is 63000000 => 0.6.0 build 0. - Changed MM.VER to return an INTEGER instead of a FLOAT, the same as MM.INFO(VERSION). - Changed maximum length of command line when starting MMB4L from 256 to 512 characters. - Also improved error message when that command line is too long. - Note that the length of a command entered at the MMB4L prompt is still limited to the width of the console. - Fixed bugs in DIR$() function that would cause a crash if called with no arguments: - If it had never been initialised with a pattern to match. - If the empty string indicating the end of the directory stream had already been returned. - Fixed bug in CALL command and function to allow the function/subroutine name to be provided by a non-trivial expression. - Fixed bug in variable declaration where 2nd and subsequent dimensions of a multi-dimensional array could be declared with 1 element. - Fixed bug with left and right arrow glyphs being swapped when using OPTION CODEPAGE CMM2. Best wishes, Tom Edited 2024-02-05 01:33 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
homa Guru Joined: 05/11/2021 Location: GermanyPosts: 351 |
Hi Tom, I downloaded the new version directly from you and installed it on my Linux laptop. My programm with the two commands is running straight away and without any errors! Many, many thanks for that. Great work! Matthias Edited 2024-02-05 02:18 by homa |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
Lovely. I may be 7x slower than Peter but I get there in the end. Best wishes, Tom Edited 2024-02-05 03:00 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Hans Senior Member Joined: 18/10/2022 Location: CanadaPosts: 116 |
Hi Tom; Should this be able to run on Bullseye? That is the version I am running on my MAC Mini 4,1. Thanks Hans ... |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
Hi Hans, I known nothing about Mac, but I'm guessing that is of the generation using Intel rather than Apple silicon and that you are (somehow) running a Debian Linux ? If that is the case then I suspect it will run. The .tgz only contains a single executable (mmbasic) with no baroque dependencies so probably simplest to just try it and let me know what it has to say for itself. Best wishes, Tom Edited 2024-02-05 07:12 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3799 |
Quick test - works OK, thanks Tom. John |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Tom--is there a latest MMB4L executable available for Raspberry Pi (Bookmark)? Lance PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
No, but I might be able to do something about that. Which Pi? 32 or 64-bit ? Tom Edited 2024-09-28 23:26 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Raspberry Pi 4B with 64-bit Bookworm OS PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
Try this Lance: https://github.com/thwill1000/mmb4l/releases/download/v0.6.1/mmb4l-0.6.1-aarch64-glibc-2.29.tgz Note this is just a slightly warmed over version of v0.6, not the forthcoming v0.7 which is still in the oven until I'm satisfied it is cooked. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2112 |
I never heard of rpi bookmark. looked it up. using twister os rpi 400 but keybpard is faulty. going to use usb keyboard. twister os works from ssd but will try bookmark |
||||
toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 339 |
Alas there isn't much here, just the requested BIN2STR$() and STR2BIN() functions and some fixes and titivation that have accumulated over the last year. Tom Can this be used (minus graphics, of course) over a serial connection to a terminal? |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Perfect, Tom. Thank you very much. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Here it is over putty: PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 339 |
Here it is over putty: Great! I have eight terminals running on my Linux box. I teach people programming and the class is very popular. I may need to add terminals. It's nice to know I can teach them a decent version of BASIC (No flames, please! I've heard all the arguments against BASIC but none of them holds water with a good, modern implementation.) |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
Hi @toml_12953, As @lizby demonstrated MMB4L is intended to be a well behaved Linux console application and you should have no problem using it via a (serial) terminal. If you do have problems then please let me know, it's probably a bug. Likewise if you do end up using MMB4L for your classes then please let me know of any issues you experience, or (minor) enhancements that would help you. I would note that there must surely be "better" maintained modern BASIC implementations for Linux than MMB4L ? which, let's be honest, I'm maintaining largely for my own amusement and so I can use it as a proxy for the real MMBasic hardware. Or do they all have dependencies on a window manager ? Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 339 |
As @lizby demonstrated MMB4L is intended to be a well behaved Linux console application and you should have no problem using it via a (serial) terminal. If you do have problems then please let me know, it's probably a bug. Likewise if you do end up using MMB4L for your classes then please let me know of any issues you experience, or (minor) enhancements that would help you. I would note that there must surely be "better" maintained modern BASIC implementations for Linux than MMB4L ? which, let's be honest, I'm maintaining largely for my own amusement and so I can use it as a proxy for the real MMBasic hardware. Or do they all have dependencies on a window manager ? Best wishes, Tom I like MMB4L because, while it's a modern BASIC, it's still very close to BASIC's roots. It can still have line numbers, LET, GOTO, GOSUB, DATA statements and other old features. You might be surprised at how many so-called "BASIC"s have dropped some if not all of those features. Why they still call them BASIC, I have no idea. The new features are seamlessly integrated into the language which is exactly what Kemeny and Kurtz (the Creators!) were striving for. You may have written it for your own amusement but, it seems, your amusement is shared by many people. I, for one, am very grateful that you're enjoying writing this wonderful program. |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4035 |
Most of that gratitude should be directed at Geoff and Peter. I'm just mangling their work . Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3799 |
I'm also grateful, Tom. John |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4221 |
Tom, In my effort to use MMB4L (0.6) on an Ubuntu system (22.04) I read through your README and there is all sorts of mention of editors. Well, here is another one that is simple to use: MMEdit, the linux version. 1/ Install MMB4L as in the description (chapter #2 in the introduction). When succesfully installed, you can open a Linux terminal window and type "mmbasic", and it will open MMBasic. You can "LOAD xxx.bas" and edit it and run it. 2/ Open MMEdit (assuming you installed it) Go to "File" the "Preferences", select the tab "External Programs" Change the filed called "Parameters" as below. Save the change. In MMEdit you now can select the desired syntax (MMB4L V0.6 is close to DOS syntax, but has some features from CMM2). So you can choose either. Note MMB4L 0.6 does not support graphics and sound yet. When you press the RUN button, your program runs in MMB4L. At the end of the run, you type "quit" to close the RUN window. This is on purpose, so you see error messages that would be invisible when the window closed premature. Good luck programming. Volhout Edited 2024-10-04 16:35 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Print this page |