Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
New version 1.6.10 released!
#1
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: <!-- m --><a class="postlink" href="http://www.boriel.com/wiki/en/index.php/ZX_BASIC:Archive">http://www.boriel.com/wiki/en/index.php ... IC:Archive</a><!-- m -->
Reply
#2
Sounds like a big step forward ...
Currently I'm rebuilding BorIDE after a SSD failture and will add the new stuff.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply
#3
Actually it is.
And in the meantime version 1.6.12 is already out! (minor fixes) :roll:
Reply
#4
Yes, I saw the new version. Great progress!!!
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply
#5
boriel Wrote:Actually it is.
And in the meantime version 1.6.12 is already out! (minor fixes) :roll:


<!-- m --><a class="postlink" href="http://www.boriel.com/wiki/en/index.php/ZX_BASIC:ChangeLog">http://www.boriel.com/wiki/en/index.php ... :ChangeLog</a><!-- m --> ...
Reply
#6
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:
<!-- m --><a class="postlink" href="https://bitbucket.org/zxbasic/zxbasic/src/7175665153802ebd14d7c474f566c2fd1b0712ec/ChangeLog?at=master&fileviewer=file-view-default">https://bitbucket.org/zxbasic/zxbasic/s ... ew-default</a><!-- m -->

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
Reply
#7
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.
Reply
#8
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 Sad (to reduce the IF ELSEIF ELSEIF ... etc)
Reply
#9
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.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)