Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 07:26 23 Nov 2024 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 : MMB4L: MMBasic for Linux version 0.6

Author Message
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 02:47pm 04 Feb 2024
Copy link to clipboard 
Print this post

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: Germany
Posts: 351
Posted: 04:18pm 04 Feb 2024
Copy link to clipboard 
Print this post


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 Kingdom
Posts: 4035
Posted: 04:56pm 04 Feb 2024
Copy link to clipboard 
Print this post

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: Canada
Posts: 116
Posted: 08:25pm 04 Feb 2024
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 4035
Posted: 08:39pm 04 Feb 2024
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 3799
Posted: 10:13pm 04 Feb 2024
Copy link to clipboard 
Print this post

Quick test - works OK, thanks Tom.

John
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 01:08pm 28 Sep 2024
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 4035
Posted: 01:25pm 28 Sep 2024
Copy link to clipboard 
Print this post

  lizby said  Tom--is there a latest MMB4L executable available for Raspberry Pi (Bookmark)?


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 States
Posts: 3150
Posted: 02:47pm 28 Sep 2024
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 4035
Posted: 03:36pm 28 Sep 2024
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 2111
Posted: 04:46pm 28 Sep 2024
Copy link to clipboard 
Print this post

  thwill said  
  lizby said  Tom--is there a latest MMB4L executable available for Raspberry Pi (Bookmark)?


No, but I might be able to do something about that. Which Pi? 32 or 64-bit ?

Tom
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 States
Posts: 339
Posted: 08:37pm 28 Sep 2024
Copy link to clipboard 
Print this post

  thwill said  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.

Tom


Can this be used (minus graphics, of course) over a serial connection to a terminal?
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 10:45pm 28 Sep 2024
Copy link to clipboard 
Print this post

Perfect, Tom. Thank you very much.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 10:49pm 28 Sep 2024
Copy link to clipboard 
Print this post

  [ said  QUOTE=toml_12953Can this be used (minus graphics, of course) over a serial connection to a terminal?


Here it is over putty:


PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 339
Posted: 04:02pm 29 Sep 2024
Copy link to clipboard 
Print this post

  lizby said  
   said  toml_12953Can this be used (minus graphics, of course) over a serial connection to a terminal?


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 Kingdom
Posts: 4035
Posted: 10:15am 30 Sep 2024
Copy link to clipboard 
Print this post

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 States
Posts: 339
Posted: 02:18pm 30 Sep 2024
Copy link to clipboard 
Print this post

  thwill said  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


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 Kingdom
Posts: 4035
Posted: 02:59pm 30 Sep 2024
Copy link to clipboard 
Print this post

  toml_12953 said  I, for one, am very grateful that you're enjoying writing this wonderful program.


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 Kingdom
Posts: 3799
Posted: 01:42am 01 Oct 2024
Copy link to clipboard 
Print this post

I'm also grateful, Tom.

John
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 06:30am 04 Oct 2024
Copy link to clipboard 
Print this post

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


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

© JAQ Software 2024