Raspberry BASIC

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Richard Russell

Pages: [1] 2 3 4
1
BBC BASIC / BBC BASIC for SDL 2.0 version 1.30a released
« on: May 08, 2022, 11:15:40 am »
I have released version 1.30a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, Mac OS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:

  • BASIC Interpreter / Run Time Engine

    OS Filing System errors now update the SDL error string, for the convenience of BASIC programs.

    iOS edition only: Reduced size of the back button on iPads.

    iOS edition only: Reinstated the ability to create a home screen icon to run a specific BASIC program (which stopped working at some point).

  • IDEs and Utilities

    The Compile utility no longer quits if an embedded file cannot be found.

    Touch IDE: The background may now be selected from a choice of eight colours.
     
    Android and iOS only: added the ability to disable or enable fullscreen mode.

  • Libraries

    Updated gfxlib to accept negative inter-character spacing values (@vdu.w.d&).

  • Example Programs

    Added bugs.bbc (in examples/games), written by David Williams in 2006 based on the Flash game Ladybug Sumo.

    Added pageturn.bbc (in examples/graphics) which is a BBCSDL conversion of the old BB4W demo.
This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).

2
BBC BASIC / BBC BASIC for SDL 2.0 version 1.29a released
« on: March 26, 2022, 10:59:22 pm »
I have released version 1.29a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, Mac OS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:
  • BASIC Interpreter / Run Time Engine

    Added support for Serial I/O (e.g. EXT# returning the number of bytes waiting in a serial input buffer).

    Fixed a minor graphics bug which could cause fill operations to fail if an odd-value relative coordinate was supplied.

  • IDEs and Utilities

    Updated searchin.bbc to avoid it being confused by an Acorn-format tokenised program.

    Improved error reporting if SDLIDE.bbc fails to create a temporary file.

  • Libraries

    Optimised aagfxlib by calling SDL2 API functions by address rather than by name.

  • Example Programs

    Added conway.bbc (in examples/general), a version of Conway's Game of Life in which the calculations are performed by the GPU.

    Added video.bbc (in examples/general) as a proof-of-principle demonstration of playing a video, albeit uncompressed and with no sound.
Important note for Android users: the Code Signing Certificate has been updated, and because the company from which I have previously obtained them has closed down the new certificate has a different ID.  You will need to uninstall BBC BASIC before you can install v1.29a; take care to backup (e.g. to a PC) anything you need in @usr$.

This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).

3
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: March 18, 2022, 06:14:06 pm »
I have updated the Console Mode editions of BBC BASIC to version 0.41.  The changes in this version are:
  • Added support for serial I/O, for example the EXT# function returns the number of characters waiting in the input buffer.

  • Added a new example program animal.bbc which is the famous 'guess the animal' program, which learns from its mistakes (sort of).
Version 0.41 may be downloaded from the usual place.

4
BBC BASIC / BBC BASIC for SDL 2.0 version 1.28a released
« on: February 10, 2022, 04:52:49 pm »
I have released version 1.28a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, Mac OS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:

  • BASIC Interpreter / Run Time Engine

    Updated SDL2_ttf to version 2.0.18 (Windows edition only); note that this changes the appearance of some fonts, especially in small sizes.

    ARM and 64-bit versions brought into line with 32-bit x86 versions in a couple of minor respects.

  • IDEs and Utilities

    Updated about.bbc to be compatible with SDL2_ttf version 2.0.18 or later (in reporting the version of FreeType).

  • Libraries

    Updated imglib.bbc to support displaying animated GIFs (there is an updated BB4W library too).

    Updated gfxlib.bbc to include PROC_gfxGaussianBlur3x3 (also updated gfxlib_docs.pdf).

    Updated dlglib.bbc to behave better with SDL2_ttf version 2.0.18 or later.

  • Example Programs

    Added anigif.bbc (in examples/graphics) to illustrate displaying an animated GIF.

    Modified telstar.bbc so that F11 sends a carriage-return character to the line.


This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).


5
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: January 24, 2022, 06:36:17 pm »
I have updated the Console Mode editions of BBC BASIC to version 0.40.  The changes in this version are:

  • Fixed a bug in the handling of @% whereby setting the field width (LS byte) to zero didn't have the correct effect.

  • Hexadecimal addresses passed to *commands are now assumed to be unsigned.  This fixes a problem (on 32-bit editions only) when the address is in the top half of the memory map.

  • Fixed a warning issued by GCC 11 related to the way the pseudo-random number prand is handled.  This doesn't affect operation.

  • Added a new example program solve.bbc which is a console version of the program of the same name supplied with the GUI editions (it solves simultaneous equations by inverting a matrix).
Version 0.40 may be downloaded from the usual place.

6
BBC BASIC / BBC BASIC for SDL 2.0 version 1.27a released
« on: December 30, 2021, 05:17:13 pm »
I've released version 1.27a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, Mac OS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:

  • BASIC Interpreter / Run Time Engine

    Treat hexdecimal pointers in *LOAD commands etc. as unsigned numbers.

    Disable ON ERROR when in AUTO line-entry mode (64-bit and ARM editions only).

  • IDEs and Utilities

    The compiler utility can now build a 'web application' bundle to deploy online using https://wasm.bbcbasic.co.uk/bbcsdl.html?app=<URL of web bundle>.

    Fixed a race-hazard in the debugger which could cause a rare crash during variable listing.

  • Libraries

    Updated gfxlib and gfxlib_docs.pdf to add PROC_gfxPlotColumnListScale, PROC_gfxPlotRowListScale and FN_gfxLoadTextureSwapRGB.

    Updated audiolib to add PROC_mixCancel (truncates a sound effect) and PROC_mixSoundLevel (plays a sound effect at a specified level).

  • Example Programs

    Added candle.bbc (in examples/graphics), an animation of a burning candle, adapted from a program by David Williams.

    Added compiler directives to a few examples so they run as web applications without modification.


This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).


7
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: November 27, 2021, 05:48:35 pm »
I have updated the Console Mode editions of BBC BASIC to version 0.39.  The changes in this version are:

  • Fixed an off-by-one bug which resulted in a crash if the response to an INPUT LINE statement was a maximum length string (255 characters).

  • Added a new example program patience.bbc which is a simple Patience (Solitaire) program, adapted from one first published in Practical Computing nearly 40 years ago!  Note that it uses VT100 line-drawing characters, which may need to be enabled in some terminal emulators (particularly PuTTY).  See the code for more information.
Version 0.39 may be downloaded from the usual place:


8
BBC BASIC / BBC BASIC for SDL 2.0 version 1.26a released
« on: November 19, 2021, 01:54:45 pm »
I've released version 1.26a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, MacOS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:

  • BASIC Interpreter / Run Time Engine

    Changed the behaviour of VDU 127 (DEL) in VDU 5 mode to correspond to that of Acorn systems, i.e. the background GCOL mode is ignored.

    Fixed a bug causing VDU 127 not to work correctly in VDU 5 mode if the text direction has been changed.

    Fixed a bug (in ARM and 64-bit editions only) whereby characters plotted in VDU 5 mode could not be read back using GET(x,y).

  • IDEs and Utilities

    Fixed a minor bug in SDLIDE.bbc which could cause incorrect indentation of lines added at the end of a program.

    Modified compiler.bbc so that message boxes still work when path names are very long.

    Modified compiler.bbc (on Windows only) to be tolerant of spaces in the path to BBCSDL.

  • Libraries

    Added gfxlib.bbc which partially emulates David Williams's GFXLIB2 library for BB4W; see gfxlib_docs.pdf for a detailed description.

    Added audiolib to support playing music (including MP3) and sound effects.

    Modified dlglib so that it works correctly if @ox% or @oy% is non-zero, or the graphics ORIGIN has been moved.

  • Example Programs

    Added cowboy.bbc in examples/games; this is David Williams's GFXLIB2 demo for BB4W, converted to use the new gfxlib library.

    Added metronome.bbc in examples/sounds (this is also compatible with BBC BASIC for Windows).

    Modified lemmings.bbc and tower.bbc to use the new audiolib library.


This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).

9
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: October 21, 2021, 11:33:35 am »
I have updated the Console Mode editions of BBC BASIC to version 0.38.  The changes in this version are:

  • The SUM operator has been introduced, which does modulo-2⁶⁴ addition (modulo 2⁶⁴ subtraction and multiplication are also possible using it); this brings the console editions into line with BBC BASIC for SDL 2.0.

  • The Raspberry Pi Pico  edition now has a working assembler (thanks to Memotech Bill), which supports the subset of the Thumb 2 instruction set executed by the ARM Cortex-M0+ CPU.  A new example program hello.bbc is included to demonstrate its use.

Version 0.38 may be downloaded from the usual place:


The Raspberry Pi Pico download consists of a UF2 file containing a flash image, including an initialised filesystem.  To program the Pico, connect it via USB whilst the button is pressed; it will appear as an external drive (typically D:\ in Windows or /dev/ttyACM0 on a Pi).  Then copy the UF2 file to that drive.

10
BBC BASIC / BBC BASIC for SDL 2.0 version 1.25a released
« on: October 08, 2021, 03:58:15 pm »
I've released version 1.25a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, MacOS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:

  • BASIC Interpreter / Run Time Engine

    PAGE may now be lowered without generating an error.  This is dangerous in general, but in limited memory environments (e.g. the Raspberry Pi Pico) it can be useful, as it was on the original BBC Micro.

    Implemented a new SUM operator which performs modulo-2^64 addition, i.e. overflows are ignored.  Using this operator modulo-2^64 subtraction and multiplication functions can be written:
Code: [Select]
      DEF FNsub64(a%%,b%%)=a%%SUMNOTb%%SUM1
      DEF FNmul64(a%%,b%%)LOCALA%,B%:A%=a%%AND&7FFFFFFF:B%=b%%AND&7FFFFFFF
      =A%*B%SUM((a%%>>31)*B%<<<31)SUM(A%*(b%%>>31)<<<31)SUM((a%%>>31AND3)*(b%%>>31AND3)<<<62)
  • IDEs and Utilities

    No changes (other than the version number of SDLIDE.bbc being updated).

  • Libraries

    stringlib.bbc modified so that FN_binary() and FN_tobase() accept 64-bit integers.

  • Example Programs

    There are no changes to the example programs in this release.
This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).

11
BBC BASIC / BBC BASIC for the Raspberry Pi Pico
« on: August 26, 2021, 02:39:52 pm »
Eric Olson and 'Memotech Bill' have developed a version of BBC BASIC (based on mine) for the Raspberry Pi Pico, it's a Work In Progress but is substantially working and can run all the example programs supplied with the Console Mode editions.  There's a GitHub repository here.

Despite the Pico being a $5 microcontroller with only 264K of RAM it suits this application very well, not least because of BBC BASIC's simple memory management (which was of course originally designed for a machine with only as little as 16K of RAM, the BBC Micro).  Something like 240K of memory is available for the BASIC program, variables, stack and libraries.

12
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: August 26, 2021, 02:26:06 pm »
I have updated the Console Mode editions of BBC BASIC to version 0.36.  The changes in this version are:

  • Fixed a memory leak which could occur if you incompletely initialise a string array from a list of literals.

  • Added macros to support CPUs having strict alignment requirements (e.g. the ARM Cortex-M0+).

  • Reduced the memory footprint by removing unneccessary sound and graphics allocations.

  • Allow PAGE to be reduced (if you are aware of the dangers) in low-memory situations.

  • Added a fix (in Windows only) for fread() not always updating the file pointer correctly (this appears not to affect 64-bit Windows but it's safer to fix it anyway).

Version 0.36 may be downloaded from the usual place:


13
BBC BASIC / BBC BASIC for SDL 2.0 version 1.24a released
« on: August 20, 2021, 05:37:41 pm »
I've released version 1.24a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, MacOS, Linux, Raspberry Pi OS, Android, iOS and in-browser.  The changes in this version are as follows:

  • BASIC Interpreter / Run Time Engine

    Implemented GCOL modes 5-7 (in the web edition these are approximated by the closest available blend modes).

    Relative plot commands (e.g. DRAW BY x,y) no longer discard the LS bit of the offsets.

    Fixed a memory leak which could occur if you incompletely initialise a string array from a list of literals.

    Added macros to support CPUs having strict alignment requirements (e.g. the ARM Cortex-M1).

    Updated Emscripten to version 2.0.5 (still old, but recent versions won't run BBC BASIC owing to an SDL threading deadlock).

  • IDEs and Utilities

    SDLIDE now captures the mouse while dragging, to avoid an anomaly that could result if the drag continued beyond the edge of the window.  Also fixed another bug affecting dragging.

    Fixed Alt+F X (keyboard shortcut for Exit) not working in SDLIDE (oops!).

  • Libraries

    Updated ellipse.bbc to support GCOL modes 5-7.

  • Example Programs

    There are no changes to the example programs in this release.


This version may be downloaded, for all the supported platforms, from the usual location.  The GitHub repository has been updated (used to build the MacOS, Raspberry Pi, Android, iOS, 64-bit Linux and in-browser editions, currently).

14
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: July 20, 2021, 09:19:08 pm »
You would think the Raspberry Pi Foundation would have learned their lesson trying to offer your own OS.

I will concentrate on supporting whichever OS is more popular with users.  It's obvious that many more Raspberry Pis will be running the official 64-bit Debian than the unofficial 64-bit Ubuntu.

15
BBC BASIC / Re: New: Console Mode editions of BBC BASIC
« on: July 20, 2021, 10:30:46 am »
Ubuntu 64 for the RPI is an option of the official RPi installer.

I didn't use an "installer", I just downloaded this 64-bit OS image and flashed it into a memory card.  I don't see any 64-bit Ubuntu image at that site.

Quote
Based on the support and updates coming from Ubuntu for the RPi 64 I foresee Ubuntu becoming RPi's default 64 bit offering.

That isn't the impression I've gained from 'official' pronouncements.  The description of the current 64-bit version of Raspberry Pi OS (Debian) as 'beta test' makes me think that is what will become the default 64-bit offering.  For example see this (long) thread at the forum.

Pages: [1] 2 3 4