76 lines
2.6 KiB
Plaintext
76 lines
2.6 KiB
Plaintext
New features in BBC BASIC (Z80) version 5.00, January 2025:
|
|
|
|
1. BASIC V statements
|
|
|
|
1.1 WHILE...ENDWHILE
|
|
1.2 Multi-line IF...THEN...ELSE...ENDIF
|
|
1.3 CASE...WHEN...OTHERWISE...ENDCASE
|
|
1.4 LOCAL DATA / RESTORE DATA
|
|
1.5 ON ERROR LOCAL / RESTORE ERROR
|
|
1.6 DIM var LOCAL size
|
|
1.7 ERROR err, message$
|
|
1.8 RESTORE +n
|
|
1.9 SWAP var1,var2
|
|
1.10 BPUT #file,string$[;]
|
|
1.11 QUIT
|
|
|
|
2. BASIC V functions
|
|
|
|
2.1 DIM(array()[,sub])
|
|
2.2 END (pointer to free space)
|
|
2.3 REPORT$
|
|
2.4 Binary constants
|
|
2.5 LEFT$ & RIGHT$ with last parameter omitted
|
|
2.6 MOD(array())
|
|
2.7 SUM(array())
|
|
2.8 SUMLEN(array())
|
|
2.9 GET$#file
|
|
|
|
3. BASIC V whole array operations
|
|
|
|
3.1 Pass a whole array to a FN/PROC
|
|
3.2 Pass a whole array to CALL
|
|
3.3 Whole array assignment
|
|
3.4 Whole array arithmetic *
|
|
3.5 Array dot-product operator
|
|
3.6 Array initialisation lists
|
|
3.7 Array compound assignment (+= etc.)
|
|
3.8 Make a whole array LOCAL
|
|
3.9 DIM a LOCAL array (on the stack) +
|
|
|
|
* String array expressions are not currently supported, instead of using
|
|
a$() = b$() + c$() use a$() = b$() : a$() += c$()
|
|
The use of EVAL with whole-array expressions is not currently supported.
|
|
|
|
+ LOCAL string arrays should be initialised to their maximum needed length
|
|
to eliminate the risk of a memory leak each time the PROC/FN is called:
|
|
LOCAL a$() : DIM a$(size%) : a$() = STRING$(max%, "a") : a$() = ""
|
|
|
|
4. Miscellaneous BASIC V features
|
|
|
|
4.1 Bit-shifts <<, >>, >>>
|
|
4.2 Floating-point indirection (|)
|
|
4.3 Additional VDU delimiter '|'
|
|
4.4 RETURNed parameters from FN/PROC
|
|
4.5 Compound assignment (+=, -=, *=, /= etc.)
|
|
4.6 Assigning to a sub-string: LEFT$()=, MID$()= , RIGHT$()=
|
|
4.7 Hooks for CIRCLE, ELLIPSE, FILL, LINE, ORIGIN, RECTANGLE (graphics)
|
|
4.8 Hooks for MOUSE, OFF, ON, SYS, TINT, WAIT (statements)
|
|
4.9 Hooks for MODE function, TINT function, WIDTH function
|
|
|
|
5. Extensions to Acorn's BASIC V, compatible with BB4W, BBCSDL and BBCTTY
|
|
|
|
5.1 EXIT REPEAT / WHILE / FOR [var]
|
|
5.2 Address-of operator (^)
|
|
5.3 Byte (unsigned 8-bit) variables and arrays (& suffix)
|
|
5.4 'BY len' and 'TO term' qualifiers to GET$#file
|
|
5.5 ELSE IF <condition> THEN; (trailing semicolon)
|
|
5.6 == synonymous with = in comparisons
|
|
5.7 DIM a global array inside a FN/PROC (use RETURN)
|
|
5.8 DIM var LOCAL -1 returns the stack pointer, even outside a FN/PROC
|
|
5.9 RESTORE LOCAL restores local variables without exiting the FN/PROC
|
|
|
|
Note: The token for PUT has changed from &CE in version 3 to &0E in version 5.
|
|
If this token is present in existing programs it will list as ENDWHILE rather
|
|
than PUT, and the programs will need to be modified to restore functionality.
|