Raspberry BASIC

Recent Posts

Pages: [1] 2 3 ... 10
1
BBC BASIC / BBC BASIC for SDL 2.0 version 1.12a released
« Last post by Richard Russell on May 08, 2020, 05:18:29 PM »
I've released version 1.12a 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:
  • BASIC Interpreter / Run Time Engine

    Updated the MacOS edition (only) to SDL 2.0.12 to fix some graphical glitches.

    Enabled render batching in the iOS edition (deferred from 1.11a because of a compatibility issue).

    Improved the Windows edition's compatibility with the username containing non-ASCII characters.

  • IDEs and Utilities

    In the SDLIDE file selector, starting to type the wanted filename scrolls the listbox.

    Updated BBCEdit to version 0.34.2 (thanks to Andy Parkes).

    Updated touchide to support copying-and-pasting entire directories.

    Fixed a memory leak in SDLIDE's Compile utility.

    When SDLIDE is used with BBC BASIC for Windows the Compile utility now works (it calls the BB4W compiler).

  • Libraries

    Added the imglib library for rotating, scaling and flipping 2D images efficiently (a highly compatible library is also available for BBC BASIC for Windows).

    Modified the filedlg library so that starting to type the wanted filename scrolls the listbox.

    Added FN_utf8_to_ansi() and FN_ansi_to_utf8() functions to the utf8lib library.

    Fixed a bug in the box2dgfx library affecting non-zero y-origin values when PROC_gfxMatrix is used.

  • Example Programs

    Added bbclock.bbc (in examples/physics), a graphical Box2D simulation of a 'Ball Bearing Clock'.  This program is compatible with BBC BASIC for Windows if the Box2D libraries are installed.

    Added dunebuggy.bbc (in examples/physics), a Box2D demo of a vehicle with sprung suspension.  This program is compatible with BBC BASIC for Windows if the Box2D libraries are installed.

    Added kerning.bbc (in examples/general/) to demonstrate the effect of kerning.  This program is compatible with BB4W.

    Modified aliens.bbc to use the new imglib library; this also makes it compatible with BB4W, but without hardware acceleration it runs only slowly.

    Fixed a bug in SkyBaby.bbc affecting some editions (e.g. Android but not Windows), caused by a surprising anomaly in the 'asctime' and 'mktime' C runtime library routines.
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).
2
Other Languages / Re: Duktape JavaScript ECMAscript engine
« Last post by John Spikowski on April 14, 2020, 06:21:30 AM »
This looks like it might be a nice ScriptBasic extention module. I have a V7 JavaScript extension module but the library is now deprecated.

I believe Dave Zimmer the developer that did the ScriptBasic COM extension module also wrote a VB6 Ducktape extension.
3
Liberty BASIC / Re: About Liberty BASIC
« Last post by paulwratt on April 14, 2020, 05:13:10 AM »
As of 2017, OS/2 Warp 4 is now known as ArcaOS v5.0, so you may be interested in finishing that 0S/2 version of LibertyBASIC.

ArcaOS 5.1: https://www.arcanoae.com/arcaos/

interview: https://www.youtube.com/watch?v=8oXKMZ56R2o
review: https://www.youtube.com/watch?v=0PZE_swqO5U

POWER9: https://www.raptorcs.com/TALOSII/
4
Other Languages / Re: cint C/C++ Interpreter
« Last post by paulwratt on April 14, 2020, 03:55:46 AM »
;-)
5
Other Languages / Duktape JavaScript ECMAscript engine
« Last post by paulwratt on April 14, 2020, 03:50:56 AM »
when duktape is built with linenoise a tiny JavaScript Interpreter is also build by default, which can also work the same way shell scripts do. It is ECMAscript 6 compatible.

https://duktape.org/
https://github.com/svaarala/duktape/
https://github.com/paulwratt/linenoise

Cheers

Paul
6
Other Languages / Re: cint C/C++ Interpreter
« Last post by John Spikowski on April 14, 2020, 03:46:11 AM »
Thanks Paul for your contribution.

Welcome to the forum!
7
Other Languages / cint C/C++ Interpreter
« Last post by paulwratt on April 14, 2020, 03:43:48 AM »
I have and online copy of the last known working version of cint C/C++ Interpreter, pulled from within CERN "root-5.34.00-patches", whic as of v6.0.0 now uses cling.

https://github.com/paulwratt/cint-5.34.00

patches welcome

Cheers

Paul
8
Interpreters / Other BASIC Interpreters
« Last post by paulwratt on April 14, 2020, 03:19:10 AM »
The following list are repos I have on GitHub that I have been using for years.

Specifically I use bas-2.5-pw and pistol_Basic (SDL_Basic), but I know SDL2_Basic also works.
 
SDL_Basic is a fullscreen line editor BASIC interpreter that works in console or X-Windows window. It uses MIDI compatible tones for sound, and a couple of noise channels, with vector based graphics commands (as opposed to pixel based graphics commands). It is loosely based on TRS-80 BASIC. SDL_Basic originally used SDL 1.2 (pistol_Basic), but I now maintain an upto date branch in a fork of the SDL 2 version of the  SDL2_Basic repo.  SDL_Basic is not sdl-basic.

sdlBasic (using wxBasic core) is an editor and a byte code compiler with a runtime library (like freepascal). On RPi in Raspbian there has alwas been a crlf bug in the compiler and editor (unverified in Buster). sdlBasic is based on AMOS, which was based on STOS. sdlBasic is not sdl-basic.

qb64 is a commandline QuickBasic to C++ compiler with runtime library.

BAS (by Michael Haardt) is a FullBASIC implimentation, with some Bywater extensions (eg MATRIX), running on console or in terminal emulator window. I have added BIN$, MERGE, CHAIN, ./AUTOEXEC.BAS and 256 color support, and some other fixes to bas-2.5-pw including more useful doc structure (+ seperated commands, functions, and compatibility workarounds). There is now a new official version of 2.5/2.6 which also contains some fixes and additions by another regular dev user. He also works on a version that adds sound and was looking at adding graphics too (all of which are GW-BASIC orientated). BAS can be used in the same was shell scripts are.

It was intended to add GPIO to both bas-2.5-pw and pistol_basic, but this has not been done yet. However BAS allows shelling out to linux so GPIO is possible via 3rd party options. As well as create standalone baremetal versions of both.

I compile for armv6, armv7, aarch64, 68000 (AtariST), 68040 (ARAnyM), and 68020-060 (MiNT)

docs:

https://github.com/paulwratt/IchigoJam-BASIC-english
English translation of IchigiJam BASIC (for RPi) command help

----

My development BASIC repos:

https://github.com/paulwratt/bas-2.5-pw
2018 extended version of BAS 2.4 ANSI BASIC interpreter by Michael Haardt

https://github.com/paulwratt/bas-2.5-plus
2018 version of BAS 2.4 ANSI BASIC interpreter by Michael Haardt

https://github.com/paulwratt/SDL2_Basic
Basic Interpreter written with SDL2 with a maintained SDL1 branch

https://github.com/paulwratt/pistol_Basic
Pi SDL Basic with GPIO (incl. IchigoJam Pi), forked from SDL_Basic before SDL2 transition (GPIO not done yet)

https://github.com/paulwratt/raspberry-pi-sdl2
Raspberry Pi Baremetal Projects - intended for SDL2_Basic & pistol_Basic standalone baremetal versions

https://github.com/paulwratt/ShellBASIC-bin (incomplete)
ShellBASIC "bin" are CAP ONLY shell commands, POSIX compatible, ANSI BASIC. Some need framebuffer access.

https://github.com/paulwratt/ShellBASIC-shbasic (incomplete)
ShellBASIC "shbasic" is a shell replacement that uses ANSI BASIC plus extensions, just like Bash and Bash script

https://github.com/paulwratt/programmers-palettes
palettes for programmers, developers, and designers. an extensive suppliment to gimp-palettes

----

Other known working versions of BASIC on RPi:

https://github.com/paulwratt/bwbasic3
bywater basic

https://github.com/paulwratt/cbmbasic
cbmbasic, a portable version of Commodore's version of Microsoft BASIC 6502 as found on the Commodore 64

https://github.com/paulwratt/qb64
Automatically exported from code.google.com/p/qb64

http://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=11352
Pi-cromite - mmbasic for Micromite, running on RPi

http://www.nicholson.com/rhn/basic/
Chipmunk BASIC, no sources, originally written in PASCAL

https://gitlab.com/kollo/X11Basic
X11-Basic BASIC programming interpreter & compiler. (GFA Basic for *nix)

http://www.xbasic.org/
XBasic, interactive program development environment, advanced 32-bit/64-bit BASIC, fast compilation, fast execution, interactive graphical GuiDesigner, multi-platform portable source code

http://hp.vector.co.jp/authors/VA008683/english/index.htm
https://decimalbasic.ninja-web.net/English.htm
https://osdn.net/projects/decimalbasic/releases/p8178
DecimalBASIC - ISO Full BASIC is compatible with ANSI Full BASIC (American standard), and ECMA BASIC (European Standard), Japanese Industrial Standard (JIS) Full BASIC. (written in Pascal)

http://www.nicholson.com/rhn/basic/basic.info.html#2
Old (Chipmunk) BASIC links page, including compilers.

https://www.sdlbasic.altervista.org/main/index.html
https://sourceforge.net/projects/sdlbasic/
sdlBasic syntax is based on AMOS, which was based on STOS.

Hope someone finds these useful. At some point I wanted to start an organisation on GitHub that only contains repos of versions of BASIC, all patched for RPi (where appropriate), maybe that could now be RaspberryBASIC?

Cheers

Paul
9
BBC BASIC / BBC BASIC for SDL 2.0 version 1.11a released
« Last post by Richard Russell on March 28, 2020, 09:57:11 AM »
I've released version 1.11a 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:

  • BASIC Interpreter / Run Time Engine

    Enabled render batching (in SDL 2.0.10 and later) which should improve graphics performance.

    Rationalised the VDU variables, e.g. ?444 and @vdu%!248 no longer have their previous functions.

    Added @vdu.w{a&,b&,c&,d&}, @size{x%,y%} and @char{x%,y%} to mirror some system variables.

    32-bit x86 editions now support the 64-bit indirection operator (]) as 64-bit and ARM editions always have.

    VDU 27,n (output symbol for character codes 0-31 and 127) now works in VDU 5 as well as VDU 4 mode.

    Changed the default MODE 7 font to be more similar to RISC OS and Matrix Brandy.

    Fixed a bug causing BBCSDL not to run properly if the installation path contained a 'dot' character.

  • IDEs and Utilities

    Updated BBCEdit to version 0.32.4, which fixes a minor bug in the last release.

    Enhanced SDLIDE so that the Tab key inserts eight spaces in the editor.

    Fixed a bug in the Compiler utility which could cause crunching to fail with code containing both 32-bit and 64-bit versions of a structure (e.g. box2dlib.bbc is in this category).

    Fixed a bug in the Search BASIC Programs utility which could cause it to freeze in rare circumstances.

  • Libraries

    The ogllib and gleslib 3D graphics libraries have been modified to improve support for point-source, spot- and directional lights (compatible, as far as I can reasonably achieve, with BB4W).

    The ellipse library has been updated to be compatible with 'render batching'.

    The dlglib library has minor improvements to the textbox and listbox.

    Svein has updated his treeview library to version 3.08, which has improved performance.

  • Example Programs

    Added spotlight.bbc in examples/graphics to demonstrate the different light types available in OpenGL.

    Added pintograph.bbc in examples/physics, a Box2D simulation of a drawing machine originally by Svein Svensson.  This program is compatible with BB4W if the Box2D libraries are installed.

    Added trebuchet.bbc in examples/physics, a Box2D simulation of a trebuchet by David Marples.  This program is compatible with BB4W if the Box2D libraries are installed.

    Modified getri.bbc to report whether render batching is enabled.

    Updated tower.bbc to ensure compatibility with render batching.
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.
10
BBC BASIC / BBC BASIC for SDL 2.0 version 1.10a released
« Last post by Richard Russell on February 15, 2020, 02:35:45 PM »
I've released version 1.10a 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:

  •   BASIC Interpreter / Run Time Engine

    Bundled the Box2D physics engine (as famously used by the Angry Birds games) with all editions.

    Fixed a bug causing ON GOTO statements to be incorrectly tokenised (64-bit and ARM editions only).

    Improved plotting accuracy of 'thick' diagonal lines, outline circles and outline ellipses.

    Updated the Android edition to SDL 2.0.10.  This has necessitated moving to a different build process (Android Studio) meaning you will need to uninstall then reinstall; see below.

  •   IDEs and Utilities

    Updated BBCEdit to version 0.32.3, many thanks to Andy Parkes for this new release.

    Fixed a minor problem in SDLIDE with pasting Unicode text containing the (a-grave) character.

    Fixed a bug in the Compiler utility which could cause creation of an app bundle to fail on MacOS if the installation path contains a space character.

    Modified the List Variables utility so that a mouse right-click clears the listbox selection.

  •   Libraries

    Added box2dlib.bbc and box2dgfx.bbc to support the Box2D physics engine.

    Fixed a bug in dlglib.bbc which affected the 'Save As' dialogue in SDLIDE, also improved operability by the Amazon Fire TV remote.

  •   Example Programs

    Added kaleidoscope.bbc in examples\graphics, adapted from David Williams's BB4W demo.

    Added three Box2D demonstration programs in examples\physics; these are also compatible with BBC BASIC for Windows if the Box2D libraries are installed:

     crates.bbc:  Falling boxes; on mobile devices tilting the screen has an interesting effect!
     dangle.bbc:  Touch the screen or use the mouse to grab the chain; also responds to tilting.
     lotto.bbc:   A simulation of a lottery selection machine.  Sorry, there's no prize if you win!

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).

If you are using the iOS edition you should install this latest release to update the certificate, otherwise BBC BASIC will stop working when the current certificate expires on 23rd February.

If you are using the Android edition you will need to uninstall the previous version before installing this one.  Please check whether you have any personal files or folders stored in @usr$ and back them up (e.g. via a USB connection to a PC) so you can restore them after re-installation.

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.
Pages: [1] 2 3 ... 10