User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Mon Jul 06, 2020 4:29 pm

I have updated the Console Mode editions of BBC BASIC to version 0.16. Differences in this version are:

  • Paged mode (set with Ctrl+N) is implemented, except that as the shift key cannot be detected, pressing space displays the next page.
  • TIME is now initially evaluated modulo about 50 days, so there will be a minimum of about 200 days before it goes out of range.
This new version may be downloaded from the usual place:


User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Tue Jul 07, 2020 10:15 pm

I have updated the Console Mode editions of BBC BASIC to version 0.17. Differences in this version are:

  • Added a *DUMP command to display the contents of a file in hex and ASCII.
  • EDIT can now concatenate multiple lines, up to a maximum of 255 characters.
  • The Linux edition now uses /proc/self/exe to find its installation directory.
This new version may be downloaded from the usual place:


User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Mon Jul 13, 2020 10:41 am

I have updated the Console Mode editions of BBC BASIC to version 0.21.

The main change in this release is that the LOAD command (only available in immediate mode) will now load a program in plain-text format as well as in ('Russell') tokenised format; it will accept both CRLF and LF line endings (but not reliably LFCR, which I think Acorn machines can sometimes generate). Line numbers will be automatically added if necessary. It still won't load Acorn-format tokenised programs (the BB4W and BBCSDL IDEs will), although no error will result.

Version 0.21 may be downloaded from the usual place:


User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Fri Jul 17, 2020 9:58 pm

I have updated the Console Mode editions of BBC BASIC to version 0.22.

In this release I have doubled the 'escape timeout' from 100ms to 200ms, in an attempt to improve the reliability of escape detection when there is a significant latency, as may be the case if BBC BASIC and the terminal emulator are running on separate machines. I have tested this locally with the client being PuTTY running on Windows 10 and the server being a Ubuntu 18.04 machine (with an ssh connection).

To mitigate (to a degree) the doubled response time, when pressing the Escape key, I have arranged that if you press Escape twice, quickly, GET or INKEY will eventually receive two escape codes (27) rather than one. Of course this requires the default Escape action to be disabled using *ESC OFF. This doesn't mean that if you press Escape three times you will receive three keycode 27s, you won't!

Version 0.22 may be downloaded from the usual place:


srvaldez
Posts: 2
Joined: Tue May 14, 2019 12:40 pm

Re: Introduction to BBC BASIC

Fri Jul 17, 2020 11:37 pm

thank you Richard :)

User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Sat Jul 18, 2020 9:39 am

Updated again to version 0.23.

I have further optimised this version so that there are now two timeouts: a shorter timeout for distinguishing between the Escape key and an 'escape sequence', and a longer timeout when waiting for the response to a cursor-position query. This should work more reliably in a client-server context because the shorter timeout applies to communication in one direction only (client to server) and the longer one to a client-server-client round-trip.

Version 0.23 may be downloaded from the usual place.

User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Wed Jul 22, 2020 10:42 am

I have updated the Console Mode editions of BBC BASIC to version 0.24. The changes in this version are:

  • 'Fatal' errors (e.g. 'No room' and 'Bad program'') now return to the immediate mode prompt rather than quitting.
  • Very small text programs should now LOAD correctly (previously they could be misidentified as being tokenised).
  • A minor bug in the EVAL function has been fixed (it was accidentally introduced with the LOAD command).
Version 0.24 may be downloaded from the usual place:


mlongval
Posts: 6
Joined: Wed Oct 05, 2011 2:06 pm

Re: Introduction to BBC BASIC

Fri Jul 31, 2020 1:14 am

Thank you very much RichardRussell for the great work on this project.
I grew up in Canada, and we were not exposed to BBC Basic, which is a shame.
I used to program my C64 in Microsoft Basic v.2
From my understanding of BBC Basic, event in the '80s it was far ahead of the others.
At least now I can experience it on my Linux and RPi systems.

Cheers from Canada!

User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Fri Jul 31, 2020 4:02 am

mlongval wrote:
Fri Jul 31, 2020 1:14 am
I used to program my C64 in Microsoft Basic v.2
There's an interesting blog post here which argues that the C64, which was otherwise an excellent machine, was badly let down by its BASIC interpreter, even to the extent that the reputation of the BASIC language was forever damaged.

User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Mon Aug 03, 2020 9:58 pm

I've released version 1.14a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, MacOS, Linux, Raspbian, Android and iOS. The changes in this version are as follows:

  1. BASIC Interpreter / Run Time Engine

    Added a *DUMP command to list the contents of a file in hexadecimal and ASCII.

    Suppressed issuing an ON MOVE interrupt if the window size is reported as zero.

    Tweaked the 64-bit and ARM editions to improve compatibility with the 32-bit x86 editions, for example Ctrl+U in immediate mode now works as expected.

    Fixed a line-editing issue which affected only the Raspberry Pi, because its 'char' datatype is unsigned.

  2. IDEs and Utilities

    SDLIDE: The links to the website in the Help menu now specify https:// to suppress security warnings from modern browsers.

    BBCEdit: Updated to version 0.36.2 (with thanks to Andy Parkes).

  3. Libraries

    Modified filedlg.bbc so that the file-system root has only one trailing / or \.

    Modified dlglib.bbc so input focus isn't acquired by an invisible control, and so textboxes are initially scrolled fully left.

  4. Example Programs

    Updated SkyBaby.bbc to allow editing (but not deleting) a Custom Place or Custom Object.

    Updated telstar.bbc to support direct cursor addressing using the APS command.
This new version may be downloaded, for all the supported platforms, from the usual location. The GitHub repository has been updated (used to build the MacOS, Raspbian, iOS and 64-bit Linux editions, currently).

Please remember that if you use the BBC2APK Android Application Generator you should download a new APK template to ensure that any updates to the run-time engine are incorporated in your own apps.

Puffergas
Posts: 94
Joined: Thu Dec 19, 2019 12:16 am

Re: Introduction to BBC BASIC

Mon Aug 03, 2020 11:18 pm

Amazing amount of work. Thank you ! ! !

User avatar
RichardRussell
Posts: 653
Joined: Thu Jun 21, 2012 10:48 am

Re: Introduction to BBC BASIC

Tue Aug 04, 2020 11:34 am

I have updated the Console Mode editions of BBC BASIC to version 0.25. The main changes in this version are:

  • Fixed a bug which caused the expected 'Type mismatch' error not to be reported on assigning a string to a numeric variable!
  • Minor changes to the actions of the Esc key and on reporting an untrapped error, to improve consistency with other versions of BBC BASIC.
  • Added some libraries in the lib/ directory (arraylib, classlib, datelib, fnusing, sortlib, stringlib, utf8lib, xmllib).
Version 0.25 may be downloaded from the usual place:


Return to “Other programming languages”