Page 1 of 1

New version 1.6.10 released!

PostPosted: Wed Sep 06, 2017 9:10 am
by boriel
Well, long time I don't announce new releases here (usually goes to Facebook or twitter).
This one is version 1.6.10 which includes:

- Lots of fixes and better stability
- Faster and better asm code generated
- Added UART library for ZX Uno (uses UART for communication. Wifi coming soon)
- Added Radastan Mode PRINT, DRAW, LINE, CIRCLE, FILL and other primitives
- Finally, arrays of pointer to labels, lIke DIM a(1 TO 3) => {@label 1, @label2 + 3, @label5 }
- New powerful statements ON .. GOTO, ON .. GOSUB

Download it here: http://www.boriel.com/wiki/en/index.php ... IC:Archive

Re: New version 1.6.10 released!

PostPosted: Tue Sep 12, 2017 12:00 pm
by LCD
Sounds like a big step forward ...
Currently I'm rebuilding BorIDE after a SSD failture and will add the new stuff.

Re: New version 1.6.10 released!

PostPosted: Tue Sep 12, 2017 12:12 pm
by boriel
Actually it is.
And in the meantime version 1.6.12 is already out! (minor fixes) :roll:

Re: New version 1.6.10 released!

PostPosted: Mon Sep 18, 2017 2:44 pm
by LCD
Yes, I saw the new version. Great progress!!!

Re: New version 1.6.10 released!

PostPosted: Tue Sep 19, 2017 2:29 pm
by britlion
boriel wrote:Actually it is.
And in the meantime version 1.6.12 is already out! (minor fixes) :roll:



http://www.boriel.com/wiki/en/index.php ... :ChangeLog ...

Re: New version 1.6.10 released!

PostPosted: Tue Sep 19, 2017 7:43 pm
by boriel
Hmm I forgot to upload it to the wiki.
But you can check the Changelog file (included with ZX Basic sources) or read it directly in the git repository:
https://bitbucket.org/zxbasic/zxbasic/s ... ew-default

Anyway, the greatest change is the one about to come:
Expanded syntax. After much effort (and 3-5 yrs) I've finally managed to allow to call SUBs without parenthesis.
This will allow users to "expand the ZX Basic syntax". For example:
  Code:
SUB Ellipse(x, y, r1, r2)
...
END SUB
...
...

Ellipse 128, 97, 45, 80: REM yes, no parenthesis


So a sub will look like a command. It will also allow to redefine ZX Basic primitives (DRAW, CIRCLE, PLOT, BORDER...).
And for functions with 1 parameter I'm working on it too (yes, I'm thinking on you, Britlion and your fastSQR library for example).

IF this is done, then ALL of the "core" functions (SIN, COS, TAN..., RND) and SUBS (DRAW, CIRCLE, PLOT, BORDER, RANDOMIZE, etc) could be taken out, into a library (e.g. Sinclair.bas?) which will be used transparently and let other people to define their owns, or even ones that resemble MSX or CPC Basic dialects (so they don't have to write PLOT, but "PSET" instead). Indeed, ATTR, POINT and SCREEN$ are already external functions.

The problem with DRAW, CIRCLE, PLOT, PRINT etc. is that they allow "modifier" (INK 7, PAPER 5, etc...). So my final idea is to include a command line flag, that will disable these "standard core functions" (and their syntax) to allow the user to define a new CIRCLE implementation, for example.

These and support for READ, DATA, RESTORE (and with the same complexity and power Sinclair BASIC allows, like DATA x * x + 5, that is, lambda anonymous functions) are the roadmap for 1.7.x

Re: New version 1.6.10 released!

PostPosted: Wed Sep 20, 2017 12:57 pm
by britlion
boriel wrote:Expanded syntax. After much effort (and 3-5 yrs) I've finally managed to allow to call SUBs without parenthesis.


O.O

That looks fun. Of course, that's more of a look and feel thing, really.

boriel wrote:IF this is done, then ALL of the "core" functions (SIN, COS, TAN..., RND) and SUBS (DRAW, CIRCLE, PLOT, BORDER, RANDOMIZE, etc) could be taken out, into a library (e.g. Sinclair.bas?) which will be used transparently and let other people to define their owns, or even ones that resemble MSX or CPC Basic dialects (so they don't have to write PLOT, but "PSET" instead). Indeed, ATTR, POINT and SCREEN$ are already external functions.


Ooh. Now that's _really_ shiny. I can change a program to use a fast circle or plot routine from the library, or a my own random number functions by some overload/overwrite concept without actually changing the main code? That's going to be handy.

Re: New version 1.6.10 released!

PostPosted: Wed Sep 20, 2017 5:55 pm
by boriel
britlion wrote:Ooh. Now that's _really_ shiny. I can change a program to use a fast circle or plot routine from the library, or a my own random number functions by some overload/overwrite concept without actually changing the main code? That's going to be handy.

Exactly (or your Fast SQR routines). Actually you've done an impressive work porting and adding many libraries.
But I decided to concentrate first in doing this so the programmer has more freedom, instead of creating a lot of #defines and intricated #includes.
A --optimize=memory / --optimize=speed (or the like) could also be added.

BTW I've checked your Pacman tutos, but could not figure out a way to use ON GOTO / ON GOSUB statements :( (to reduce the IF ELSEIF ELSEIF ... etc)

Re: New version 1.6.10 released!

PostPosted: Wed Oct 04, 2017 8:30 am
by LCD
boriel wrote:Anyway, the greatest change is the one about to come:
Expanded syntax. After much effort (and 3-5 yrs) I've finally managed to allow to call SUBs without parenthesis.

That's excellent!!! I have already CollectSUBs code in BorIDE, so I could use it to define lexer words.