Added RESTORE LOCAL statement

This commit is contained in:
Richard Russell committed 2025-01-31 14:18:26 +00:00
1 parent 68415af1b6
commit ae939a3acb
5 files changed
+21 -20

No files matched your search

+5 -3
View File
@@ -1,4 +1,4 @@
New features in BBC BASIC (Z80) version 5.00, June 2024:
New features in BBC BASIC (Z80) version 5.00, January 2025:
1. BASIC V statements
@@ -54,8 +54,9 @@ New features in BBC BASIC (Z80) version 5.00, June 2024:
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,MOUSE,ORIGIN,RECTANGLE,SYS,TINT,WAIT
4.8 Hooks for ON, OFF, MODE function, TINT function, WIDTH function
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
@@ -67,6 +68,7 @@ New features in BBC BASIC (Z80) version 5.00, June 2024:
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
Binary file not shown.
Binary file not shown.
+16 -17
View File
@@ -13,6 +13,7 @@
;VERSION 5.0, 12-07-2024
;VERSION 5.1, 28-12-2024
;VERSION 5.2, 11-01-2025
;VERSION 5.3, 31-01-2025
;
GLOBAL XEQ
GLOBAL RUN0
@@ -1823,32 +1824,30 @@ CLR: CALL CLEAR
LD HL,(PAGE)
JR RESTR1
;
;RESTORE ERROR
;RESTORE DATA / ERROR / LOCAL
;
RESERR: INC IY
LD A,2
RESDEL: INC IY ;Skip DATA / ERROR / LOCAL
LD A,C ;Save error code
EX AF,AF'
LD A,B ;1=DATA, 2=ERROR, 0=LOCAL
CALL RESLOC
JR NZ,XEQGO5
LD A,53 ;ON ERROR not LOCAL
ERROR5: JP ERROR
;
;RESTORE DATA
;
RESDAT: INC IY
LD A,1
CALL RESLOC
JR NZ,XEQGO5
LD A,54 ;'DATA not LOCAL'
EX AF,AF' ;Get error code
DEFB 21H
NOLINE: LD A,41 ;'No such line'
JR ERROR5
ERROR5: JP ERROR
;
;RESTORE [line]
;RESTORE [line | +n | DATA | ERROR | LOCAL]
;
RESTOR: CP TERROR
JR Z,RESERR
LD BC,200H + 53 ;'ON ERROR not LOCAL'
JR Z,RESDEL
CP TDATA
JR Z,RESDAT
LD BC,100H + 54 ;'DATA not LOCAL'
JR Z,RESDEL
CP TLOCAL
LD BC,12 ;'Not in a FN or PROC'
JR Z,RESDEL
CP '+'
JR Z,RESREL
LD HL,(PAGE)
Binary file not shown.