Fixed += not checking for String too long

This commit is contained in:
Richard Russell committed 2025-01-11 15:16:55 +00:00
1 parent e26b0441e4
commit 68415af1b6
4 files changed
+20 -15

No files matched your search

Binary file not shown.
Binary file not shown.
+10 -8
View File
@@ -1,8 +1,8 @@
TITLE BBC BASIC (C) R.T.RUSSELL 1981-2024
TITLE BBC BASIC (C) R.T.RUSSELL 1981-2025
;
;BBC BASIC INTERPRETER - Z80 VERSION
;EVALUATE EXPRESSION MODULE - "EVAL"
;(C) COPYRIGHT R.T.RUSSELL 1981-2024
;(C) COPYRIGHT R.T.RUSSELL 1981-2025
;
;THE NAME BBC BASIC IS USED WITH THE PERMISSION
;OF THE BRITISH BROADCASTING CORPORATION AND IS
@@ -12,6 +12,7 @@
;VERSION 3.0, 08-03-1987
;VERSION 5.0, 31-05-2024
;VERSION 5.1, 28-12-2024
;VERSION 5.2, 11-01-2025
;
;BINARY FLOATING POINT REPRESENTATION:
; 32 BIT SIGN-MAGNITUDE NORMALIZED MANTISSA
@@ -640,7 +641,7 @@ CONS2: LD A,(IY)
RET
;
ARRAY: LD A,14 ;'Bad use of array'
JP ERROR
JR ERROR0
;
; ARRLEN - Get start address and number of elements of an array
; Inputs: HL addresses array descriptor
@@ -724,20 +725,21 @@ LOADS: LD DE,ACCS
EXX
OR A
LD C,A
LD A,80H ;STRING MARKER
REPDUN: LD A,80H ;STRING MARKER
RET Z
LD B,0
LDIR
RET
;
LOADS2: LD A,(HL)
LOADS2: PUSH IX
POP HL
LOADS3: LD A,(HL)
LD (DE),A
INC HL
CP CR
REPDUN: LD A,80H ;STRING MARKER
RET Z
JR Z,REPDUN
INC E
JR NZ,LOADS2
JR NZ,LOADS3
RET ;RETURN NULL STRING
;
; Version 5 extensions:
+10 -7
View File
@@ -1,8 +1,8 @@
TITLE BBC BASIC (C) R.T.RUSSELL 1981-2024
TITLE BBC BASIC (C) R.T.RUSSELL 1981-2025
;
;BBC BASIC INTERPRETER - Z80 VERSION
;STATEMENT EXECUTION MODULE - "EXEC"
;(C) COPYRIGHT R.T.RUSSELL 1981-2024
;(C) COPYRIGHT R.T.RUSSELL 1981-2025
;
;THE NAME BBC BASIC IS USED WITH THE PERMISSION
;OF THE BRITISH BROADCASTING CORPORATION AND IS
@@ -12,6 +12,7 @@
;VERSION 3.1, 11-06-1987
;VERSION 5.0, 12-07-2024
;VERSION 5.1, 28-12-2024
;VERSION 5.2, 11-01-2025
;
GLOBAL XEQ
GLOBAL RUN0
@@ -451,7 +452,6 @@ LET: CALL ASSIGN
JR C,SYNTAX ;"Syntax error"
JP P,LETARR ;Numeric array
JP PE,LETARR ;String array
LD A,D ;Type
PUSH DE
PUSH HL
CALL EXPRS
@@ -2363,7 +2363,7 @@ MODIFY: LD A,E
CALL FPP
POP IX
POP DE
JP C,ERROR
JR C,ERRORC
STORE0: LD A,D ;Type
STOREN: CP 5
JR Z,STORE5
@@ -2400,14 +2400,17 @@ MODIFS: LD A,L ;Operator
CP '+'
LD A,H ;Type
JR NZ,STACCS
PUSH IY
PUSH IX
POP IY
EX (SP),IY
CALL PUSHS
PUSH IY
POP IX
CALL LOADS
POP BC
LD A,E
ADD C
LD A,19 ;String too long
ERRORC: JR C,ERROR6
LD A,B ;Type
INC C
DEC C
@@ -2480,7 +2483,7 @@ CHECK: PUSH HL
POP HL
RET C
XOR A
JP ERROR ;"No room"
ERROR6: JP ERROR ;"No room"
;
STORS3: LD C,E
PUSH IX