SmallBASIC version 0.12.6 has been released


The changes are:

Fix to prevent const overwriting another const
Updated MID and REPLACE for performance
POINT(0) and POINT(1) values now reset with each program run
POINT(-x, -y) now provides access to the base screen image. For better
performance use the IMAGE.SAVE sub command
Fixes for unit case sensitivity
Fixes for RUN/EXEC
Fixed memory handling issues with UNITs
Fixed memory issue related to SUB/FUNC pointers
Removed BALLOC, MALLOC and VADR keywords. Removed duplicate ENVIRON
Removed system constants BPP and VIDADR, OSNAME, LINECHART, BARCHART
Added TIMESTAMP to return the modified-datetime of a file
Added LSHIFT and RSHIFT bit shift operators
SBVER now includes build information
TICKS now returns millisecond intervals
Refactor eval() for performance
Fixed some memory leaks in the ui handler
Editor now restores cursor when returning from run
Editor now displays the correct filename in the title bar
Added "industrial" editor theme from Shian (slot 2)
Fixed editor highlighting
Runtime errors now show source screen with red error highlighter
Form refresh command now takes an boolean arg, true=push ui state to vars
The IMAGE argument can now be PNG data stored in an INT array
The IMAGE argument can now be x,y,w,h screen coordinates
The IMAGE argument can now be a 2-D array of POINTS
Updated IMAGE sub-command to save 2-D array of POINT
Added window.setFont command to set font size, bold and italic. example:
w = window():w.setFont(10, "pt", false, true)
TRUE is now always returned as 1
Added file manager to main shell program
Fixed problem with escaped chars using FORMAT
Fixed problem with XNOR command result
Fixed problem with IMP and EQV command result
Fixed issues with INKEY command to allow ALT/SHIFT/CTRL states to be returned
Fixed capslock handling
Fixed issues with TRY/CATCH
Fixed using POINT to retrieve IMAGE data
Fixed issues with CHAIN
Fixed TLOAD to work correctly with TRY/CATCH
Fixed XPOS and YPOS to return 0 based values
Fixed compiler checking for redundant symbols, for example: let a = 1 2 3
Added editor command F3+F4 - export to mobile SmallBASIC
Added editor command ALT+. to change cursor positioning.

Thanks shian, MGA and johnno56 for bug reports and suggestions.



Can't wait to download and try it (after work).

Thanks a lot for the hard work.

Wow, what a great list of changes. Thanks Chris!

I had a heck of a time getting the editor activated. Finally, I deleted the settings file (even though it was updating) and then the editor started working. I think that was it, maybe something else did the trick.

I am most curious about this:
w = window():w.setFont(10, "pt", false, true)

' quick test.bas  SmallBASIC 0.12.6 [B+=MGA] 2016-05-15
w = window():w.setFont(16, "pt", false, true) 'size, bold, italic
color 9,7
? "Testing 1, 2, 3..."
w.setFont(24, "pt", 0, 0)
color 7,9
? "Testing 4, 5, 6... press any..."
for i = 1 to 15
  at 0, isum : w.setfont(8+i, "pt", i%3, i%2)
  color i, 0
  ? "testing line: ";i;" w.setfont(";8+i;", "pt", i%3, i%2)"
  isum = isum + 8 + i + 4

Oh very nice! Are there other settings besides "pt" ?

This is working now in Windows 10:

' quick test.bas  SmallBASIC 0.12.6 [B+=MGA] 2016-05-15
? "Testing a call to NotePad from SmallBASIC's RUN, press any..."
RUN "Notepad" 
? "OK, we are back to SmallBASIC.

The latest version of Linux Mint is Linux Mint 17.3 which is based on Ubuntu 14.04.
(Linux Mint 18 is based on Ubuntu 16.04 but it will take more time until it's ready...).

It seems that SmallBASIC version 0.12.6 was built on Ubuntu 16.04...(?) which using newer libraries from another repositories.

Is there a safe way to install SmallBASIC version 0.12.6 on Ubuntu 14.04 (i.e. Linux Mint 17.3)?

Installed without any problem. Works very well.

I'll need to explore it of course...
Thanks a lot.

For johnno56 it might not work, he uses Linux Mint 17.x 64-bit system, and last time I've tried to install 32-bit SB on 64-bit system it didn't work...

Since most users of Linux Mint 17.x are probably using the 64-bit version, I hope that Chris will again show compassion and 'Mint' another version for Linux Mint 17.x 64-bit users.

Just in case, it's still possible to install the 32-bit version of Linux Mint on a 64-bit CPU; So if it's not a big deal for you, then you may download the 32-bit version of Linux Mint and install it on your system (the speed of a 32-bit version is just fine).