Compare commits
10
Commits
5af83df4d5
...
410e7fb089
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
410e7fb089 | ||
|
|
4e8a802fc1 | ||
|
|
bf56aa6852 | ||
|
|
ae939a3acb | ||
|
|
68415af1b6 | ||
|
|
e26b0441e4 | ||
|
|
719f837096 | ||
|
|
0b6ae8cc96 | ||
|
|
7c3c72f0cf | ||
|
|
4196ad9921 |
No files matched your search
@@ -2,7 +2,8 @@
|
|||||||
BBC BASIC (Z80) v5 is an implementation of the BBC BASIC programming language for the Z80 CPU.
|
BBC BASIC (Z80) v5 is an implementation of the BBC BASIC programming language for the Z80 CPU.
|
||||||
It is largely compatible with Acorn's ARM BASIC V but with a few language extensions based on
|
It is largely compatible with Acorn's ARM BASIC V but with a few language extensions based on
|
||||||
features of 'BBC BASIC for Windows' and 'BBC BASIC for SDL 2.0'. These extensions include the
|
features of 'BBC BASIC for Windows' and 'BBC BASIC for SDL 2.0'. These extensions include the
|
||||||
EXIT statement, the address-of operator (^) and byte (8-bit) variables and arrays (& suffix).
|
EXIT statement, the address-of operator (^) and byte (unsigned 8-bit) variables and arrays
|
||||||
|
(& suffix character).
|
||||||
|
|
||||||
More details of the features added in version 5.00 can be found in the file WHATSNEW.TXT.
|
More details of the features added in version 5.00 can be found in the file WHATSNEW.TXT.
|
||||||
|
|
||||||
|
|||||||
+6
-3
@@ -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 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
|
||||||
|
|
||||||
@@ -66,6 +67,8 @@ New features in BBC BASIC (Z80) version 5.00, June 2024:
|
|||||||
5.5 ELSE IF <condition> THEN; (trailing semicolon)
|
5.5 ELSE IF <condition> THEN; (trailing semicolon)
|
||||||
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.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.
+1
-1
@@ -7,7 +7,7 @@ z80asm amos/rmf
|
|||||||
z80asm acorn/rmf
|
z80asm acorn/rmf
|
||||||
z80asm data/rmf
|
z80asm data/rmf
|
||||||
era bbctube.com
|
era bbctube.com
|
||||||
link bbctube=/p:0100,main,exec,eval,asmb,math,acorn,amos,/p:4B00,data
|
link bbctube=/p:0100,main,exec,eval,asmb,math,acorn,amos,/p:4C00,data
|
||||||
hexbin bbctube
|
hexbin bbctube
|
||||||
era bbctube.hex
|
era bbctube.hex
|
||||||
ren bbctube.com=bbctube.bin
|
ren bbctube.com=bbctube.bin
|
||||||
Binary file not shown.
+21
-1
@@ -3,7 +3,7 @@
|
|||||||
;PATCH FOR BBC BASIC TO CP/M 2.2 & 3.0
|
;PATCH FOR BBC BASIC TO CP/M 2.2 & 3.0
|
||||||
;* ACORN COMPUTERS Z80 TUBE VERSION *
|
;* ACORN COMPUTERS Z80 TUBE VERSION *
|
||||||
;(C) COPYRIGHT R.T.RUSSELL, 02-01-1984
|
;(C) COPYRIGHT R.T.RUSSELL, 02-01-1984
|
||||||
;VERSION 5.0, 18-06-2024
|
;VERSION 5.0, 12-07-2024
|
||||||
;
|
;
|
||||||
OSWRCH EQU 0FFEEH
|
OSWRCH EQU 0FFEEH
|
||||||
OSWORD EQU 0FFF1H
|
OSWORD EQU 0FFF1H
|
||||||
@@ -61,6 +61,8 @@ TFILL EQU 03H
|
|||||||
GLOBAL TINT
|
GLOBAL TINT
|
||||||
GLOBAL WAIT
|
GLOBAL WAIT
|
||||||
GLOBAL SYS
|
GLOBAL SYS
|
||||||
|
GLOBAL CSRON
|
||||||
|
GLOBAL CSROFF
|
||||||
;
|
;
|
||||||
GLOBAL PUTIMS
|
GLOBAL PUTIMS
|
||||||
GLOBAL GETIMS
|
GLOBAL GETIMS
|
||||||
@@ -385,6 +387,24 @@ GCOL0: LD H,L
|
|||||||
CALL WRCH3 ;DLH
|
CALL WRCH3 ;DLH
|
||||||
XEQGO1: JP XEQ
|
XEQGO1: JP XEQ
|
||||||
;
|
;
|
||||||
|
;CSRON - Turn caret on
|
||||||
|
;CSROFF - Turn caret off
|
||||||
|
;
|
||||||
|
CSRON: LD C,1
|
||||||
|
JR CSRGO
|
||||||
|
;
|
||||||
|
CSROFF: LD C,0
|
||||||
|
CSRGO: LD A,23
|
||||||
|
CALL OSWRCH
|
||||||
|
LD A,1
|
||||||
|
CALL OSWRCH
|
||||||
|
LD A,C
|
||||||
|
LD B,8
|
||||||
|
CSRGO1: CALL OSWRCH
|
||||||
|
XOR A
|
||||||
|
DJNZ CSRGO1
|
||||||
|
JR XEQGO1
|
||||||
|
;
|
||||||
;LINE x1,y1,x2,y2
|
;LINE x1,y1,x2,y2
|
||||||
;
|
;
|
||||||
LINE: CALL EXPRI
|
LINE: CALL EXPRI
|
||||||
|
|||||||
+17
-12
@@ -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
|
;BBC BASIC INTERPRETER - Z80 VERSION
|
||||||
;EVALUATE EXPRESSION MODULE - "EVAL"
|
;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
|
;THE NAME BBC BASIC IS USED WITH THE PERMISSION
|
||||||
;OF THE BRITISH BROADCASTING CORPORATION AND IS
|
;OF THE BRITISH BROADCASTING CORPORATION AND IS
|
||||||
@@ -11,6 +11,9 @@
|
|||||||
;VERSION 2.3, 07-05-1984
|
;VERSION 2.3, 07-05-1984
|
||||||
;VERSION 3.0, 08-03-1987
|
;VERSION 3.0, 08-03-1987
|
||||||
;VERSION 5.0, 31-05-2024
|
;VERSION 5.0, 31-05-2024
|
||||||
|
;VERSION 5.1, 28-12-2024
|
||||||
|
;VERSION 5.2, 11-01-2025
|
||||||
|
;VERSION 5.3, 16-03-2025 (Shifts moved to new codes)
|
||||||
;
|
;
|
||||||
;BINARY FLOATING POINT REPRESENTATION:
|
;BINARY FLOATING POINT REPRESENTATION:
|
||||||
; 32 BIT SIGN-MAGNITUDE NORMALIZED MANTISSA
|
; 32 BIT SIGN-MAGNITUDE NORMALIZED MANTISSA
|
||||||
@@ -273,7 +276,7 @@ SHIFT: CP '='
|
|||||||
INC IY
|
INC IY
|
||||||
INC B
|
INC B
|
||||||
SHIFT1: LD A,B
|
SHIFT1: LD A,B
|
||||||
SUB 18
|
SUB 16
|
||||||
JR EXPR2D
|
JR EXPR2D
|
||||||
;
|
;
|
||||||
EXPR2S: EX AF,AF'
|
EXPR2S: EX AF,AF'
|
||||||
@@ -639,7 +642,7 @@ CONS2: LD A,(IY)
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
ARRAY: LD A,14 ;'Bad use of array'
|
ARRAY: LD A,14 ;'Bad use of array'
|
||||||
JP ERROR
|
JR ERROR0
|
||||||
;
|
;
|
||||||
; ARRLEN - Get start address and number of elements of an array
|
; ARRLEN - Get start address and number of elements of an array
|
||||||
; Inputs: HL addresses array descriptor
|
; Inputs: HL addresses array descriptor
|
||||||
@@ -723,20 +726,21 @@ LOADS: LD DE,ACCS
|
|||||||
EXX
|
EXX
|
||||||
OR A
|
OR A
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,80H ;STRING MARKER
|
REPDUN: LD A,80H ;STRING MARKER
|
||||||
RET Z
|
RET Z
|
||||||
LD B,0
|
LD B,0
|
||||||
LDIR
|
LDIR
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
LOADS2: LD A,(HL)
|
LOADS2: PUSH IX
|
||||||
|
POP HL
|
||||||
|
LOADS3: LD A,(HL)
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC HL
|
INC HL
|
||||||
CP CR
|
CP CR
|
||||||
REPDUN: LD A,80H ;STRING MARKER
|
JR Z,REPDUN
|
||||||
RET Z
|
|
||||||
INC E
|
INC E
|
||||||
JR NZ,LOADS2
|
JR NZ,LOADS3
|
||||||
RET ;RETURN NULL STRING
|
RET ;RETURN NULL STRING
|
||||||
;
|
;
|
||||||
; Version 5 extensions:
|
; Version 5 extensions:
|
||||||
@@ -1526,9 +1530,8 @@ GET5: LD D,0
|
|||||||
GET6: PUSH BC
|
GET6: PUSH BC
|
||||||
CALL OSBGET
|
CALL OSBGET
|
||||||
POP BC
|
POP BC
|
||||||
JR C,GET9 ;EOF
|
|
||||||
BIT 1,B
|
BIT 1,B
|
||||||
JR Z,GET8
|
JR Z,GET10
|
||||||
CP C
|
CP C
|
||||||
JR Z,GET9 ;NUL (or supplied term)
|
JR Z,GET9 ;NUL (or supplied term)
|
||||||
BIT 7,B
|
BIT 7,B
|
||||||
@@ -1539,9 +1542,11 @@ GET6: PUSH BC
|
|||||||
JR Z,GET9 ;LF
|
JR Z,GET9 ;LF
|
||||||
GET7: CP CR
|
GET7: CP CR
|
||||||
JR Z,GET9 ;CR
|
JR Z,GET9 ;CR
|
||||||
GET8: LD (HL),A
|
GET8: OR A
|
||||||
|
GET10: LD (HL),A
|
||||||
INC L
|
INC L
|
||||||
DEC D
|
DEC D
|
||||||
|
JR C,GET9 ;EOF
|
||||||
JR NZ,GET6
|
JR NZ,GET6
|
||||||
GET9: EX DE,HL
|
GET9: EX DE,HL
|
||||||
LD A,80H
|
LD A,80H
|
||||||
|
|||||||
+52
-43
@@ -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
|
;BBC BASIC INTERPRETER - Z80 VERSION
|
||||||
;STATEMENT EXECUTION MODULE - "EXEC"
|
;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
|
;THE NAME BBC BASIC IS USED WITH THE PERMISSION
|
||||||
;OF THE BRITISH BROADCASTING CORPORATION AND IS
|
;OF THE BRITISH BROADCASTING CORPORATION AND IS
|
||||||
@@ -10,7 +10,10 @@
|
|||||||
;
|
;
|
||||||
;VERSION 2.1, 22-01-1984
|
;VERSION 2.1, 22-01-1984
|
||||||
;VERSION 3.1, 11-06-1987
|
;VERSION 3.1, 11-06-1987
|
||||||
;VERSION 5.0, 16-06-2024
|
;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 XEQ
|
||||||
GLOBAL RUN0
|
GLOBAL RUN0
|
||||||
@@ -58,6 +61,8 @@
|
|||||||
EXTRN BYE
|
EXTRN BYE
|
||||||
EXTRN NXT
|
EXTRN NXT
|
||||||
EXTRN NLIST
|
EXTRN NLIST
|
||||||
|
EXTRN CSRON
|
||||||
|
EXTRN CSROFF
|
||||||
;
|
;
|
||||||
EXTRN OSWRCH
|
EXTRN OSWRCH
|
||||||
EXTRN OSLINE
|
EXTRN OSLINE
|
||||||
@@ -358,6 +363,16 @@ CLI: CALL EXPRS
|
|||||||
CALL OSCLI
|
CALL OSCLI
|
||||||
JR XEQ
|
JR XEQ
|
||||||
;
|
;
|
||||||
|
EXTRAS: CP TELSE-TCMD
|
||||||
|
JR Z,REM ;ELSE
|
||||||
|
CP TERROR-TCMD
|
||||||
|
JR Z,THROW ;ERROR
|
||||||
|
CP TLINE-TCMD
|
||||||
|
JP Z,LINE ;LINE
|
||||||
|
CP TOFF-TCMD
|
||||||
|
JP Z,CSROFF ;OFF
|
||||||
|
JP SYNTAX
|
||||||
|
;
|
||||||
;REM, *
|
;REM, *
|
||||||
;
|
;
|
||||||
EXT: PUSH IY
|
EXT: PUSH IY
|
||||||
@@ -372,14 +387,6 @@ REM: PUSH IY
|
|||||||
POP IY
|
POP IY
|
||||||
JP XEQ0
|
JP XEQ0
|
||||||
;
|
;
|
||||||
EXTRAS: CP TELSE-TCMD
|
|
||||||
JR Z,REM ;ELSE
|
|
||||||
CP TERROR-TCMD
|
|
||||||
JR Z,THROW ;ERROR
|
|
||||||
CP TLINE-TCMD
|
|
||||||
JP Z,LINE ;LINE
|
|
||||||
JP SYNTAX
|
|
||||||
;
|
|
||||||
;ERROR num,string$
|
;ERROR num,string$
|
||||||
;
|
;
|
||||||
THROW: CALL EXPRI
|
THROW: CALL EXPRI
|
||||||
@@ -446,7 +453,6 @@ LET: CALL ASSIGN
|
|||||||
JR C,SYNTAX ;"Syntax error"
|
JR C,SYNTAX ;"Syntax error"
|
||||||
JP P,LETARR ;Numeric array
|
JP P,LETARR ;Numeric array
|
||||||
JP PE,LETARR ;String array
|
JP PE,LETARR ;String array
|
||||||
LD A,D ;Type
|
|
||||||
PUSH DE
|
PUSH DE
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL EXPRS
|
CALL EXPRS
|
||||||
@@ -833,7 +839,9 @@ XEQGO3: JP XEQ
|
|||||||
;ON ERROR [LOCAL] statement [:statement...]
|
;ON ERROR [LOCAL] statement [:statement...]
|
||||||
;ON ERROR [LOCAL] OFF
|
;ON ERROR [LOCAL] OFF
|
||||||
;
|
;
|
||||||
ON: CP TERROR
|
ON: CALL TERMQ
|
||||||
|
JP Z,CSRON
|
||||||
|
CP TERROR
|
||||||
JR Z,ONERR ;"ON ERROR"
|
JR Z,ONERR ;"ON ERROR"
|
||||||
CALL EXPRI
|
CALL EXPRI
|
||||||
LD A,(IY)
|
LD A,(IY)
|
||||||
@@ -1791,7 +1799,7 @@ ENDWH1: PUSH IY
|
|||||||
CLS: CALL CLRSCN
|
CLS: CALL CLRSCN
|
||||||
XOR A
|
XOR A
|
||||||
LD (COUNT),A
|
LD (COUNT),A
|
||||||
JP XEQ
|
JR XEQGO5
|
||||||
;
|
;
|
||||||
;STOP
|
;STOP
|
||||||
;
|
;
|
||||||
@@ -1808,7 +1816,7 @@ STOP: CALL TELL
|
|||||||
;REPORT
|
;REPORT
|
||||||
;
|
;
|
||||||
REPOR: CALL REPORT
|
REPOR: CALL REPORT
|
||||||
JP XEQ
|
JR XEQGO5
|
||||||
;
|
;
|
||||||
;CLEAR
|
;CLEAR
|
||||||
;
|
;
|
||||||
@@ -1816,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
|
||||||
JP NZ,XEQ
|
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
|
|
||||||
JP NZ,XEQ
|
|
||||||
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)
|
||||||
@@ -2014,25 +2020,25 @@ BPUT: CALL CHANEL ;CHANNEL NUMBER
|
|||||||
EXX
|
EXX
|
||||||
LD A,L
|
LD A,L
|
||||||
POP DE
|
POP DE
|
||||||
CALL OSBPUT
|
BPUT1: CALL OSBPUT
|
||||||
BPUTX: JR XEQGO1
|
BPUTX: JR XEQGO1
|
||||||
;
|
;
|
||||||
BPUTS: LD A,E
|
BPUTS: LD A,E
|
||||||
POP DE
|
POP DE
|
||||||
LD D,A
|
LD D,A
|
||||||
LD HL,ACCS
|
LD HL,ACCS
|
||||||
|
OR A
|
||||||
|
JR Z,BPUTS0
|
||||||
BPUTS1: LD A,(HL)
|
BPUTS1: LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
CALL OSBPUT
|
CALL OSBPUT
|
||||||
DEC D
|
DEC D
|
||||||
JR NZ,BPUTS1
|
JR NZ,BPUTS1
|
||||||
CALL NXT
|
BPUTS0: CALL NXT
|
||||||
CP ';'
|
CP ';'
|
||||||
INC IY
|
|
||||||
JR Z,BPUTX
|
|
||||||
LD A,LF
|
LD A,LF
|
||||||
CALL OSBPUT
|
JR NZ,BPUT1
|
||||||
DEC IY
|
INC IY
|
||||||
JR BPUTX
|
JR BPUTX
|
||||||
;
|
;
|
||||||
;CALL address[,var[,var...]]
|
;CALL address[,var[,var...]]
|
||||||
@@ -2356,7 +2362,7 @@ MODIFY: LD A,E
|
|||||||
CALL FPP
|
CALL FPP
|
||||||
POP IX
|
POP IX
|
||||||
POP DE
|
POP DE
|
||||||
JP C,ERROR
|
JR C,ERRORC
|
||||||
STORE0: LD A,D ;Type
|
STORE0: LD A,D ;Type
|
||||||
STOREN: CP 5
|
STOREN: CP 5
|
||||||
JR Z,STORE5
|
JR Z,STORE5
|
||||||
@@ -2393,14 +2399,17 @@ MODIFS: LD A,L ;Operator
|
|||||||
CP '+'
|
CP '+'
|
||||||
LD A,H ;Type
|
LD A,H ;Type
|
||||||
JR NZ,STACCS
|
JR NZ,STACCS
|
||||||
PUSH IY
|
|
||||||
PUSH IX
|
PUSH IX
|
||||||
POP IY
|
EX (SP),IY
|
||||||
CALL PUSHS
|
CALL PUSHS
|
||||||
PUSH IY
|
PUSH IY
|
||||||
POP IX
|
POP IX
|
||||||
CALL LOADS
|
CALL LOADS
|
||||||
POP BC
|
POP BC
|
||||||
|
LD A,E
|
||||||
|
ADD C
|
||||||
|
LD A,19 ;String too long
|
||||||
|
ERRORC: JR C,ERROR6
|
||||||
LD A,B ;Type
|
LD A,B ;Type
|
||||||
INC C
|
INC C
|
||||||
DEC C
|
DEC C
|
||||||
@@ -2473,7 +2482,7 @@ CHECK: PUSH HL
|
|||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
XOR A
|
XOR A
|
||||||
JP ERROR ;"No room"
|
ERROR6: JP ERROR ;"No room"
|
||||||
;
|
;
|
||||||
STORS3: LD C,E
|
STORS3: LD C,E
|
||||||
PUSH IX
|
PUSH IX
|
||||||
|
|||||||
@@ -19,6 +19,8 @@
|
|||||||
GLOBAL TINT
|
GLOBAL TINT
|
||||||
GLOBAL WAIT
|
GLOBAL WAIT
|
||||||
GLOBAL SYS
|
GLOBAL SYS
|
||||||
|
GLOBAL CSRON
|
||||||
|
GLOBAL CSROFF
|
||||||
;
|
;
|
||||||
GLOBAL ADVAL
|
GLOBAL ADVAL
|
||||||
GLOBAL POINT
|
GLOBAL POINT
|
||||||
@@ -55,6 +57,8 @@ MODEFN:
|
|||||||
WIDFN:
|
WIDFN:
|
||||||
WAIT:
|
WAIT:
|
||||||
SYS:
|
SYS:
|
||||||
|
CSRON:
|
||||||
|
CSROFF:
|
||||||
XOR A
|
XOR A
|
||||||
CALL EXTERR
|
CALL EXTERR
|
||||||
DEFM 'Sorry'
|
DEFM 'Sorry'
|
||||||
|
|||||||
+12
-11
@@ -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
|
;BBC BASIC INTERPRETER - Z80 VERSION
|
||||||
;COMMANDS AND COMMON MODULE - "MAIN"
|
;COMMANDS AND COMMON MODULE - "MAIN"
|
||||||
;(C) COPYRIGHT R.T.RUSSELL 1981-2024
|
;(C) COPYRIGHT R.T.RUSSELL 1981-2025
|
||||||
;
|
;
|
||||||
;THE NAME BBC BASIC IS USED WITH THE PERMISSION
|
;THE NAME BBC BASIC IS USED WITH THE PERMISSION
|
||||||
;OF THE BRITISH BROADCASTING CORPORATION AND IS
|
;OF THE BRITISH BROADCASTING CORPORATION AND IS
|
||||||
@@ -11,6 +11,8 @@
|
|||||||
;VERSION 2.3, 07-05-1984
|
;VERSION 2.3, 07-05-1984
|
||||||
;VERSION 3.0, 01-03-1987
|
;VERSION 3.0, 01-03-1987
|
||||||
;VERSION 5.0, 31-05-2024
|
;VERSION 5.0, 31-05-2024
|
||||||
|
;VERSION 5.1, 10-08-2024
|
||||||
|
;VERSION 5.2, 16-02-2025
|
||||||
;
|
;
|
||||||
EXTRN XEQ
|
EXTRN XEQ
|
||||||
EXTRN RUN0
|
EXTRN RUN0
|
||||||
@@ -174,10 +176,10 @@ PURGE: LD (HL),A ;CLEAR SCRATCHPAD
|
|||||||
CALL NEWIT
|
CALL NEWIT
|
||||||
JP NZ,CHAIN0 ;AUTO-RUN
|
JP NZ,CHAIN0 ;AUTO-RUN
|
||||||
CALL TELL
|
CALL TELL
|
||||||
VERMSG: DEFM 'BBC BASIC (Z80) Version 5beta6'
|
VERMSG: DEFM 'BBC BASIC (Z80) Version 5.00 '
|
||||||
DEFB CR
|
DEFB CR
|
||||||
DEFB LF
|
DEFB LF
|
||||||
NOTICE: DEFM '(C) Copyright R.T.Russell 2024'
|
NOTICE: DEFM '(C) Copyright R.T.Russell 2025'
|
||||||
DEFB CR
|
DEFB CR
|
||||||
DEFB LF
|
DEFB LF
|
||||||
DEFB 0
|
DEFB 0
|
||||||
@@ -2017,13 +2019,12 @@ DLP1: EX (SP),HL
|
|||||||
;
|
;
|
||||||
RANGE: LD A,(IY)
|
RANGE: LD A,(IY)
|
||||||
CP '$'
|
CP '$'
|
||||||
RET Z
|
RET C
|
||||||
CP '%'
|
CP '&'+1
|
||||||
RET Z
|
CCF
|
||||||
|
RET NC
|
||||||
CP '('
|
CP '('
|
||||||
RET Z
|
RET Z
|
||||||
CP '&'
|
|
||||||
RET Z
|
|
||||||
RANGE1: CP '0'
|
RANGE1: CP '0'
|
||||||
RET C
|
RET C
|
||||||
CP '9'+1
|
CP '9'+1
|
||||||
@@ -2107,14 +2108,14 @@ LEXAN7: CP '*'
|
|||||||
JR Z,LEXAN9
|
JR Z,LEXAN9
|
||||||
OR A
|
OR A
|
||||||
CALL P,LEX ;TOKENISE IF POSS.
|
CALL P,LEX ;TOKENISE IF POSS.
|
||||||
|
CP TDATA
|
||||||
|
JR Z,LEXAN9
|
||||||
CP TOKLO
|
CP TOKLO
|
||||||
JR C,LEXAN8
|
JR C,LEXAN8
|
||||||
CP TOKHI+1
|
CP TOKHI+1
|
||||||
JR NC,LEXAN8
|
JR NC,LEXAN8
|
||||||
ADD A,OFFSET ;LEFT VERSION
|
ADD A,OFFSET ;LEFT VERSION
|
||||||
LEXAN8: CP TREM
|
LEXAN8: CP TREM
|
||||||
JR Z,LEXAN9
|
|
||||||
CP TDATA
|
|
||||||
JR NZ,LEXANA
|
JR NZ,LEXANA
|
||||||
LEXAN9: SET 6,C ;QUIT TOKENISING
|
LEXAN9: SET 6,C ;QUIT TOKENISING
|
||||||
LEXANA: CP TFN
|
LEXANA: CP TFN
|
||||||
|
|||||||
+15
-11
@@ -1,10 +1,11 @@
|
|||||||
TITLE '(C) COPYRIGHT R.T.RUSSELL 1986-2024'
|
TITLE '(C) COPYRIGHT R.T.RUSSELL 1986-2025'
|
||||||
;
|
;
|
||||||
;Z80 FLOATING POINT PACKAGE
|
;Z80 FLOATING POINT PACKAGE
|
||||||
;(C) COPYRIGHT R.T.RUSSELL 1986-2024
|
;(C) COPYRIGHT R.T.RUSSELL 1986-2024
|
||||||
;VERSION 0.0, 26-10-1986
|
;VERSION 0.0, 26-10-1986
|
||||||
;VERSION 0.1, 14-12-1988 (BUG FIX)
|
;VERSION 0.1, 14-12-1988 (BUG FIX)
|
||||||
;VERSION 5.0, 16-06-2024 (SHIFTS ADDED)
|
;VERSION 5.0, 16-06-2024 (SHIFTS ADDED)
|
||||||
|
;VERSION 5.1, 16-03-2025 (Shifts moved to new codes)
|
||||||
;
|
;
|
||||||
;BINARY FLOATING POINT REPRESENTATION:
|
;BINARY FLOATING POINT REPRESENTATION:
|
||||||
; 32 BIT SIGN-MAGNITUDE NORMALIZED MANTISSA
|
; 32 BIT SIGN-MAGNITUDE NORMALIZED MANTISSA
|
||||||
@@ -129,10 +130,13 @@ FTABLE: DEFW ABS ;16 ABS
|
|||||||
DEFW FTEST ;40 TEST
|
DEFW FTEST ;40 TEST
|
||||||
DEFW FCOMP ;41 COMPARE
|
DEFW FCOMP ;41 COMPARE
|
||||||
;
|
;
|
||||||
DEFW ISHL ;42 <<
|
DEFW BAD ;42 Reserved for Z88
|
||||||
DEFW ISHX ;43 <<<
|
DEFW BAD ;43 Reserved for Z88
|
||||||
DEFW ISAR ;44 >>
|
;
|
||||||
DEFW ISHR ;45 >>>
|
DEFW ISHL ;44 <<
|
||||||
|
DEFW ISHX ;45 <<<
|
||||||
|
DEFW ISAR ;46 >>
|
||||||
|
DEFW ISHR ;47 >>>
|
||||||
;
|
;
|
||||||
RTABLE: DEFW FAND ;AND (FLOATING-POINT)
|
RTABLE: DEFW FAND ;AND (FLOATING-POINT)
|
||||||
DEFW FBDIV ;DIV
|
DEFW FBDIV ;DIV
|
||||||
@@ -591,16 +595,16 @@ TRUE: LD HL,-1
|
|||||||
;
|
;
|
||||||
ISHX:
|
ISHX:
|
||||||
ISHL: CALL SHIFTS
|
ISHL: CALL SHIFTS
|
||||||
JR Z,SHRET
|
RET Z
|
||||||
ISHL1: EXX
|
ISHL1: EXX
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
EXX
|
EXX
|
||||||
ADC HL,HL
|
ADC HL,HL
|
||||||
DJNZ ISHL1
|
DJNZ ISHL1
|
||||||
SHRET: RET
|
RET
|
||||||
;
|
;
|
||||||
ISAR: CALL SHIFTS
|
ISAR: CALL SHIFTS
|
||||||
JR Z,SHRET
|
RET Z
|
||||||
ISAR1: SRA H
|
ISAR1: SRA H
|
||||||
RR L
|
RR L
|
||||||
EXX
|
EXX
|
||||||
@@ -611,7 +615,7 @@ ISAR1: SRA H
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
ISHR: CALL SHIFTS
|
ISHR: CALL SHIFTS
|
||||||
JR Z,SHRET
|
RET Z
|
||||||
ISHR1: SRL H
|
ISHR1: SRL H
|
||||||
RR L
|
RR L
|
||||||
EXX
|
EXX
|
||||||
@@ -629,10 +633,10 @@ SHIFTS: CALL FIX2
|
|||||||
LD A,E
|
LD A,E
|
||||||
EXX
|
EXX
|
||||||
LD B,32
|
LD B,32
|
||||||
JR NZ,SHMAX
|
RET NZ
|
||||||
LD B,A
|
LD B,A
|
||||||
OR A
|
OR A
|
||||||
SHMAX: RET
|
RET
|
||||||
;
|
;
|
||||||
;FUNCTIONS:
|
;FUNCTIONS:
|
||||||
;
|
;
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user