The home of BBC BASIC

R. T. RUSSELL

BBC BASIC Console Mode editions



Click on picture for full-size version:

Towers of Hanoi
Towers of Hanoi demo

Chess game
Chess game

Eight Queens puzzle
Eight Queens puzzle

Snake game
Snake game

The BBC BASIC Console Mode editions are advanced cross-platform implementations of BBC BASIC for Windows (64-bit), Linux (x86, 64-bit), Mac OS-X (64-bit) and Raspberry Pi (Raspbian, 32-bit). They do not support sound or graphics but otherwise are highly compatible with BBC BASIC for Windows and BBC BASIC for SDL 2.0. They share with those dialects many new and advanced features including data structures, PRIVATE variables, an EXIT statment, long strings, timer interrupts, an address-of operator, byte variables, a line continuation character, indirect procedure and function calls and improved numeric accuracy. Up to 256 Megabytes of memory is provided for the user's program, data and stack.

The Console Mode editions take their input from stdin and send their output to stdout so may be run at a regular command prompt or in a client-server context (e.g. through a network or serial connection, or even via the internet). The console/terminal is assumed to be VT-100 compatible, which the great majority are, in which case most of the standard BBC BASIC VDU commands behave as expected (with the exception of graphics commands), although text viewports are not supported. Alternatively these editions may be used in CGI (Common Gateway Interface) applications, or as a shell replacement. Common shell commands may be accessed by prefixing them with a star (*), in the usual BBC BASIC way.

Limited program entry and editing capabilities are provided in Immediate Mode by means of the AUTO, DELETE, EDIT, LIST [IF], LISTO, LOAD, NEW, RENUMBER and SAVE commands, but in the case of large programs you are recommended to use either the BBC BASIC for Windows or BBC BASIC for SDL 2.0 IDE. The LOAD command will load a program in internal (tokenised) format or as a plain-text file (line numbers will be added if necessary). A BASIC program may be executed automatically by specifying it as a command-line parameter (it must be in tokenised format) or by giving it the same name as the executable but with a .bbc extension.

The Console Mode editions incorporate an assembler for the appropriate CPU (a 64-bit x86 assembler in the case of the Windows, MacOS and Linux editions, and a 32-bit ARM assembler in the case of the Raspbian edition). You can access Application Program Interface (API) functions from assembler code and from BASIC (using the SYS statement), allowing an experienced programmer to produce sophisticated applications.

These editions are entirely free and may be downloaded for the supported platforms as follows :

Windows edition (64-bits) (123 Kbytes)
Mac OS-X edition (64-bits) (102 Kbytes)
Linux edition (64-bits, x86) (97 Kbytes)
Raspberry Pi edition (32-bits) (75 Kbytes)

In each case the zip file contains the executable, some libraries and a few demonstration BBC BASIC programs; the contents should be extracted to a suitable directory. You may wish to add this directory to your PATH so that the executable and libraries can be accessed from 'anywhere'.


VersionDateModification details
0.2909-Nov-2020 Fixed a one-byte buffer overrun in the *KEY command; extended PTR() to accept a FN/PROC name as a parameter.
0.2807-Oct-2020 Fixed a subtle bug that could cause unwanted behaviour if ON ERROR LOCAL was used in a nested function.
0.2701-Oct-2020 Fixed ON ... PROC bug.
0.2612-Sep-2020 File pointers (PTR#) are always 64-bits; new PTR()= statement and SYS function; extended =PTR() function.
0.2504-Aug-2020 Fixed assigning a string to a numeric variable not reporting 'Type mismatch'; added libraries in the lib/ directory.
0.2422-Jul-2020 'Fatal' errors return to immediate mode rather than quitting; short text programs should not be misidentified as tokenised.
0.2318-Jul-2020 Introduced different timeouts for one-way (client → server) and round-trip (server → client → server) communication.
0.2217-Jul-2020 Escape timeout doubled from 100 to 200 ms.
0.2113-Jul2020 The LOAD command will now load a program in plain-text format as well as in ('Russell') tokenised format.
0.2011-Jul-2020 Console input handled in a separate thread.


Home - Products - Contact us

Best viewed with Any Browser Valid HTML 4.0!
© Richard Russell 2020