Latest version of BASIC Anywhere Machine: try it now !
The list of enhancements in this new version of BASIC Anywhere Machine is faithful to those mentioned earlier (see the 🚧 In the works post.)
Some things may have changed a wee touch, so I'll mention any deviations in this post and also provide links to relevant documentation in the BASIC Anywhere Machine Programming Reference and User Guide.
Before getting into any details, here's the list:
- New "View Code Issues" functionality
- Documentation: Adding Syntax (aka Railroad) Diagrams
- New UrlQueryString$ function
- New UrlKey$ function
- New PUTSTRING statement
- New SCROLL statement
- New IFF function
- New BETWEEN function
- New CHOOSE function
- New MIN and MAX functions
- New DAY$ function
- New FRAC function
- Added DIV keyword as an alternative to the "\" operator
- Improved INSTR function
- Improved SLEEP statement
- Improved conversion from base 10 numbers to binary/hexadecimal/octal number systems
- Added BIN$ as alternative keyword for _BIN$
- Improved WIDTH statement
- New HEIGHT statement
- Improved RANDOMIZE statement
- Improved DEFtype statements
- Changed INTEGER data type
"View Code Issues" functionality
This is as described in 🚧 In the works: Code Issues Notification and Viewing.
I would like to present this in a video, hopefully in the not too distant future.
Syntax (aka Railroad) Diagrams
Finding myself very dissatisfied trying to express syntax with text notation, I've decided to try railroad diagrams, and I like the results. You'll find syntax diagrams in many of the statement/function documentation links below.
For all statements and functions, the arguments can be simple literal values, variables, constants, or any expression of any kind involving literals/variables/constants/functions. I'm still unsure how to coherently and concisely indicate that in the documentation.
UrlQueryString$ function
Although the UrlKey$ function sort of makes the UrlQueryString$ function irrelevant, UrlKey$ makes use of UrlQueryString$; since UrlQueryString$ is needed by BAM "internally", why bother hiding it?
UrlKey$ function
PUTSTRING statement
SCROLL statement
IFF function
BETWEEN function
Although planned as solely an "inclusive" between, now it is "inclusive" by default with the option of to use it as "exclusive" via a parameter.
CHOOSE function
MIN and MAX functions
Although originally planned as two-argument functions, they both allow any number of arguments.
DAY$
FRAC function
DIV keyword
INSTR function
SLEEP statement
Conversion from base 10 numbers
WIDTH and HEIGHT statements
RANDOMIZE statement
Although BASIC Anywhere Machine does nothing with the RANDOMIZE statement, the statement is recognized without errors: all about making old BASIC programs work in BASIC Anywhere Machine without too much fuss.
DEFtype statements
INTEGER data type
"INTEGER" was previously treated by BASIC Anywhere Machine as equivalent to a LONG integer."DEFINT" defines variables that begin with a specified letter as SHORT integer.To be consistent with DEFINT, and to be consistent/compatible with GW-BASIC, QBASIC, and QB64, "INTEGER" has been changed to be treated as equivalent to SHORT integer.
No comments:
Post a Comment