Raspberry BASIC

Recent Posts

Pages: 1 [2] 3 4 ... 10
11
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
12
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.
13
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.
14
Programming Challenges / Re: GUI Login
« Last post by John Spikowski on February 12, 2020, 04:49:51 PM »
I got things setup here. It's now up to the forum members to make it work.

We all have to eat and pay bills before heading to the sandbox.
15
Programming Challenges / Re: GUI Login
« Last post by jalih on February 12, 2020, 03:53:39 PM »
Hi all,

I have been busy beta testing next version of 8th. JUCE based gui is out and the new gui is Nuklear based. I have to say, I like it more than JUCE based gui.

Sorry to hear John that you don't have much time for fun programming. I just started writing this;D
16
Programming Challenges / Re: GUI Login
« Last post by John Spikowski on February 11, 2020, 08:46:30 PM »
Hi AIR,

Glad you chimed in with an update of what is going on. I have been wrapping up some health issues and seem to be getting back to my old self. I just picked up a project and won't have much time for fun programming for a bit. I'm going to try an use Nim as part of the solution.
17
Programming Challenges / Re: GUI Login
« Last post by AIR on February 11, 2020, 04:02:42 AM »
So how are your NIM adventures going, John?

Sorry I haven't been around lately - 14 hour days at work while moving into a new home doesn't leave a lot of time for anything...

AIR.
18
BBC BASIC / Re: BBC BASIC for SDL 2.0 version 1.09a released
« Last post by John Spikowski on January 20, 2020, 02:09:08 AM »
Quote
One valuable side-effect of all these add-ons being themselves coded in BASIC

Couldn't agree more. That is why the C extension modules I write are done in C BASIC.

The reason Nim is attractive is that it's extension are written in Nim.
19
BBC BASIC / Re: BBC BASIC for SDL 2.0 version 1.09a released
« Last post by Richard Russell on January 18, 2020, 08:07:05 PM »
ScriptBasic core hasn't changed since 2005.

For some while my updates have principally been adding to or improving the IDE, libraries, tools and example programs rather than the 'core'.  It's one of the big differences between BBC BASIC for Windows and BBC BASIC for SDL 2.0 of course; in the former the IDE was written in C because at the time (18+ years ago) interpreted BASIC wasn't fast enough for that task.  Now, only the core interpreter needs to be written in assembler code and/or C, everything else (IDE, libraries, tools, utilities) can themselves be written in BASIC, because the performance is acceptable.

One valuable side-effect of all these add-ons being themselves coded in BASIC is that they are automatically CPU and OS-agnostic and will run on all the supported platforms without a build environment (C compiler, linker or whatever) - or the expertise to use it - needing to be available.
20
BBC BASIC / Re: BBC BASIC for SDL 2.0 version 1.09a released
« Last post by John Spikowski on January 18, 2020, 06:16:29 PM »
Great to hear you're approaching production stable status.

ScriptBasic core hasn't changed since 2005.

 If I don't see more members joining the forums I facilitate,  I may put the $130 a month I spend for a AWS server to better use and move everything to GitLab.
Pages: 1 [2] 3 4 ... 10