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 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.4 RETURNed parameters from FN/PROC
4.5 Compound assignment (+=, -=, *=, /= etc.) 4.5 Compound assignment (+=, -=, *=, /= etc.)
4.6 Assigning to a sub-string: LEFT$()=, MID$()= , RIGHT$()= 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.7 Hooks for CIRCLE, ELLIPSE, FILL, LINE, ORIGIN, RECTANGLE (graphics)
4.8 Hooks for ON, OFF, MODE function, TINT function, WIDTH function 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. 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.6 == synonymous with = in comparisons
5.7 DIM a global array inside a FN/PROC (use RETURN) 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.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. 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 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.0, 12-07-2024
;VERSION 5.1, 28-12-2024 ;VERSION 5.1, 28-12-2024
;VERSION 5.2, 11-01-2025 ;VERSION 5.2, 11-01-2025
;VERSION 5.3, 31-01-2025
; ;
GLOBAL XEQ GLOBAL XEQ
GLOBAL RUN0 GLOBAL RUN0
@@ -1823,32 +1824,30 @@ CLR: CALL CLEAR
LD HL,(PAGE) LD HL,(PAGE)
JR RESTR1 JR RESTR1
; ;
;RESTORE ERROR ;RESTORE DATA / ERROR / LOCAL
; ;
RESERR: INC IY RESDEL: INC IY ;Skip DATA / ERROR / LOCAL
LD A,2 LD A,C ;Save error code
EX AF,AF'
LD A,B ;1=DATA, 2=ERROR, 0=LOCAL
CALL RESLOC CALL RESLOC
JR NZ,XEQGO5 JR NZ,XEQGO5
LD A,53 ;ON ERROR not LOCAL EX AF,AF' ;Get error code
ERROR5: JP ERROR
;
;RESTORE DATA
;
RESDAT: INC IY
LD A,1
CALL RESLOC
JR NZ,XEQGO5
LD A,54 ;'DATA not LOCAL'
DEFB 21H DEFB 21H
NOLINE: LD A,41 ;'No such line' NOLINE: LD A,41 ;'No such line'
JR ERROR5 ERROR5: JP ERROR
; ;
;RESTORE [line] ;RESTORE [line | +n | DATA | ERROR | LOCAL]
; ;
RESTOR: CP TERROR RESTOR: CP TERROR
JR Z,RESERR LD BC,200H + 53 ;'ON ERROR not LOCAL'
JR Z,RESDEL
CP TDATA 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 '+' CP '+'
JR Z,RESREL JR Z,RESREL
LD HL,(PAGE) LD HL,(PAGE)
Binary file not shown.