BBC BASIC – Write your individual packages

Wiki
Forum
Manual
Touch interface
Differences from BB4W
Beginners’ Tutorial
Happy Birthday!
History
Click on on image for full-size model:
BBCSDL working on Home windows
BBCSDL working on Linux (Ubuntu)
BBCSDL working on Raspberry Pi
BBCSDL working on Amazon Fireplace TV
BBC BASIC for SDL 2.0 (BBCSDL) is a wholly free and Open Source
cross-platform implementation of
BBC BASIC for Home windows,
MacOS, Linux (x86 CPU solely), Raspberry Pi OS (RPi3 or later), Android, iOS or for
working in a browser.
It combines the simplicity of BASIC with the sophistication
of a structured language, permitting you to jot down utilities and video games, use
sound and graphics, and carry out calculations.
The Desktop editions (Home windows, MacOS, Linux, Raspberry Pi) embrace
a BASIC program editor with syntax colouring, stay indentation, search & substitute
and plenty of different options. Constructed-in diagnostic aids akin to run-time hint, itemizing of
variables, single-step execution and a profiler make debugging even probably the most complicated packages
easy.
The Android and iOS editions, for smartphones and tablets, have a simplified interface
optimised for touchscreen management. It too supplies a BASIC program editor with syntax
colouring, stay indentation, search & substitute and different options; see
here for extra particulars. The Android version will run properly on a (64-bit) Chromebook,
significantly in case you allow window resizing.
The in-browser version additionally makes use of the simplified interface, it’s suitable with desktop
variations of Courageous, Chrome, Edge, Firefox, Opera, Safari & Vivaldi;
the Android variations of Chrome and Firefox, and with Safari on iOS. It would additionally run on a Chromebook.
The Android version may even run on the Amazon Fireplace TV or Fireplace TV Stick and a few sensible TVs.
A number of of the provided instance packages will be operated utilizing the navigation wheel and
buttons on the distant management, together with a lot of the video games. Any sounds or music created
by a BASIC program might be performed by way of the speaker(s) of the connected TV.
You’ll be able to ‘compile’ your BASIC program to a standalone software bundle which is able to run with out
BBC BASIC having to be put in (.exe file in Home windows, .dmg file in MacOS, .zip
file in Linux or Raspberry Pi OS and .apk file in Android through the BBC2APK utility).
You’ll be able to distribute such software bundles freely with none royalty for BBC BASIC being due.
BBC BASIC for SDL 2.0 is basically suitable with BBC
BASIC for Windows; it shares with that dialect many new and superior options
together with knowledge constructions, PRIVATE variables, an EXIT statment, lengthy strings, occasion interrupts, an
address-of operator, byte variables, a line continuation character,
oblique process and performance calls and improved numeric accuracy.
It additionally retains a excessive diploma of compatibility with the BBC Microcomputer, together with
emulation of the SOUND and ENVELOPE statements, and the MODE 7 (teletext) display screen mode.
As much as 256 Megabytes of reminiscence (16 Mbytes within the in-browser version) is offered for the person’s
program, knowledge and stack (topic to enough RAM being out there). In contrast to some older
variations of BASIC, you will not undergo the frustration of working out of reminiscence!
Line numbers are non-compulsory.
BBC BASIC incorporates an assembler* which can be utilized
when the pace or different capabilities of the interpreter are insufficient. The assembler
is determined by the CPU in your system: x86 (32-bit or 64-bit) for Home windows, MacOS or Linux;
ARM (32-bit or 64-bit) for Raspberry Pi. Within the case of Android the assembler is ARM or x86
as acceptable. You’ll be able to entry Utility Program Interface (API) features
from BASIC and from assembler code, permitting an skilled programmer to provide
subtle purposes.
BBC BASIC for Home windows packages that decision Working System API features, or that depend on libraries
that don’t have a direct equal in each dialects, will have to be tailored to be able to be suitable with
BBCSDL. Additionally, packages that use the *FONT command would require a small alteration. However in any other case
packages will be anticipated to run with little or no modification. After all, packages that incorporate
meeting language code is not going to run on an ARM-based Android system or Raspberry Pi with out vital adjustments.
Particulars of the variations between BB4W and BBCSDL could also be discovered here.
BBC BASIC for SDL 2.0 is fully free and could also be downloaded for
the supported platforms as follows :
The Home windows version is on the market both as an installer or a Zip archive which merely must be extracted to an appropriate place.
The MacOS, Android and iOS editions are self-installing. The Linux and Raspberry Pi editions
should first be unzipped, after which put in based on the directions within the provided textual content file. The in-browser version wants no set up.
‡ On a Mac you will want to override the “unidentified developer” safety warning; there are directions for doing that
here. Please be aware that the app is
signed and is due to this fact protected in opposition to tampering; the warning merely implies that it has not been reviewed by Apple. This
version is x86 (Intel) code however will run properly on an M1 (‘Apple silicon’) Mac underneath Rosetta 2 emulation.
* The iOS and in-browser editions are exceptions. As a result of iOS doesn’t allow ‘arbitrary code execution’ the assembler, the CALL assertion and the USR operate
usually are not usable. This can be a restriction imposed by Apple and is unavoidable.
Model | Date | Modification abstract (click on on the model quantity for particulars) |
---|---|---|
1.38a | 13-Nov-2023 | Added Hebrew to DejaVuSansMono; added @fn%(21) desk entry; added tabs to editbox.bbc; added timerdem.bbc & settab.bbc; bug fixes. |
1.37a | 01-Sep-2023 | Added system variable @cache%; up to date SDLIDE & BBCEdit IDEs; added calculator.bbc instance program; a couple of minor bug fixes. |
1.36a | 31-Jul-2023 | Home windows version makes standalone EXEs; SDLIDE helps bi-directional textual content; new analyser & Hello_Box2D examples; up to date libraries. |
1.35a | 06-Apr-2023 | Fastened PLOT 68 plotting when it should not; use unbuffered I/O for serial gadgets; new examples blacksmith.bbc, carousel.bbc, welcome.bbc. |
1.34a | 07-Feb-2023 | Up to date SDL2, SDL2_ttf and SDL2_net to the newest variations; up to date pdflib library; new script library; new Add SDL Constants utility. |
1.33a | 28-Oct-2022 | Enabled *float 80 in ARM editions; mounted compiler.bbc failed add; added FN_readlinesocketM to socklib; restored Ceefax Sport index. |
1.32a | 20-Aug-2022 | SDLIDE helps key phrase abbreviations; added mysqllib library & mysqldem instance program; mounted a minor mouse coordinate problem. |
1.31a | 18-Jun-2022 | Up to date SDL2, SDL2_ttf & stb_image; listboxes now help a number of choice; up to date telstar.bbc; new pdfdemo.bbc instance program. |
1.30a | 08-Might-2022 | Improved iOS version; up to date the compile & touchide utilities; up to date gfxlib library; added bugs.bbc & pageturn.bbc instance packages. |
1.29a | 26-Mar-2022 | Up to date aagfxlib library; up to date searchin utility; added conway.bbc & video.bbc instance packages; help for serial I/O; minor bug fixes. |
1.28a | 10-Feb-2022 | Up to date dlglib, gfxlib & imglib (to help animated GIFs) libraries; added anigif.bbc instance program; modified telstar.bbc to ship CR. |
1.27a | 30-Dec-2021 | Added help for net bundles; up to date audiolib and gfxlib libraries; added candle.bbc instance program; a number of minor bug fixes. |
1.26a | 19-Nov-2021 | New audiolib & gfxlib libraries; new cowboy.bbc & metronome.bbc instance packages; minor compatibility enhancements & bug fixes. |
1.25a | 08-Oct-2021 | PAGE could also be lowered (with care!); new SUM operator (modulo-264 addition); stringlib library up to date to help 64-bit integers. |
1.24a | 20-Aug-2021 | Added GCOL 5-7; relative plot instructions do not discard the LSB; mounted a reminiscence leak on string array initialisation; mounted bugs in SDLIDE. |
1.23a | 09-Jul-2021 | Added 64-bit Raspberry Pi version; added msgbox library; up to date BBCEdit; extra Mac shortcuts; mounted cruncher bugs, and extra. |
1.22a | 28-Might-2021 | Added extra Mac keyboard shortcuts; added cradle.bbc & Box2D pattern demos; up to date sudoku.bbc; some efficiency optimisations. |
1.21a | 16-Apr-2021 | Helps some Mac keyboard shortcuts; added box2ddbg library; added pinball.bbc & voronoi.bbc examples; a number of minor bug fixes. |
1.20a | 03-Mar-2021 | Fastened FOR…NEXT bug in ARM editions; added f1-f4 shortcuts in Ceefax.bbc; eliminated timeout from sudoku.bbc; a number of minor bug fixes. |
1.19a | 22-Jan-2021 | Prolonged *dump cmd; new editbox & menulib libraries; new gorillas & textedit examples; new macro recorder for SDLIDE; bug fixes and many others. |
1.18a | 04-Dec-2020 | New -borderless swap; PTR() accepts FN/PROC identify; pdflib.bbc, raytrace.bbc & saa505x.bbc added; BBCEdit up to date; bug fixes and many others. |
1.17a | 23-Oct-2020 | New shaderlib and webgllib libraries; BBCEdit IDE up to date; Ceefax.bbc up to date to trace BBC web site adjustments; bug fixes and extra. |
1.15a | 11-Sep-2020 | New PTR()= assertion and SYS operate; SDLIDE has breakpoints and might print a list; up to date Ceefax.bbc & telstar.bbc; bug fixes and many others. |
1.14a | 03-Aug-2020 | New *dump command, up to date IDEs, up to date dlglib.bbc & filedlg.bbc, up to date SkyBaby.bbc & telstar.bbc examples, bug fixes and many others. |
1.13a | 19-Jun-2020 | MODE7 & SOUND enhancements, clean listbox scrolling, new classlib & mode7lib libraries, new instance sortdemo.bbc, bug fixes & extra. |
1.12a | 08-Might-2020 | Improved file selector, touchide copies directories, new instance packages bbclock.bbc, dunebuggy.bbc & kerning.bbc; bug fixes and extra. |
1.11a | 27-Mar-2020 | Render batching; MODE 7 font modified; new instance packages highlight.bbc, pintograph.bbc & trebuchet.bbc; bug fixes and extra. |
1.10a | 15-Feb-2020 | Box2D physics engine bundled; kaleidoscope.bbc, crates.bbc, dangle.bbc & lotto.bbc instance packages added; bug fixes and extra. |
1.09a | 11-Jan-2020 | New Reminiscence Monitor utility, dlglib library improved, Ceefax simulator up to date to incorporate climate, journey & native information, and extra. |
1.08a | 01-Dec-2019 | Bug fixes, eventlib made 64-bit suitable, added ellipsefit.bbc, bezierfit.bbc and multitouch.bbc instance packages, SkyBaby up to date. |
1.07a | 20-Oct-2019 | Bug fixes, treeview has a scrollbar, aagfxlib helps dotted/dashed traces, listboxes will be drag-scrolled, new SkyBaby instance program. |
1.06a | 03-Sep-2019 | Antialiased graphics (through new aagfxlib library); assembler fixes; aagfxdem.bbc, knots.bbc & BBSterm.bbc instance packages added. |
1.05a | 25-Jul-2019 | Bug fixes, Goto Line in SDLIDE, combobox help, up to date DejaVuSans font, new fluid.bbc & 3D animation to accompany skaters.bbc . |
1.04a | 23-Jun-2019 | VDU 23,24,n| adjusts character spacing; @tmp$ is now at all times user-specific; hangman.bbc & figleaf.bbc instance packages added. |
1.03a | 12-Might-2019 | BBCEdit IDE up to date; Search BASIC packages utility added; multi-column listing packing containers; mandel.bbc rewritten to run on all platforms. |
1.02a | 04-Apr-2019 | ARM & 64-bit editions buffer recordsdata; dlglib consists of trackbar help; new polydots & recorder examples, telstar.bbc up to date, bug fixes. |
1.01a | 23-Feb-2019 | VDU 23,23 works with circles/ellipses/arcs; RECTANGLE SWAP added; SDLIDE enhancements; disco, slitscan, surks & swirl examples. |
1.00a | 01-Feb-2019 | SDLIDE masses Acorn-format recordsdata, Cross Reference utility, ARM align directive, ellipse & treeview libraries, seascape & ellipses examples. |