Added hooks for ON and OFF

This commit is contained in:
Richard Russell committed 2024-07-12 15:42:16 +01:00
1 parent 7c3c72f0cf
commit 0b6ae8cc96
7 files changed
+47 -17

No files matched your search

+1 -1
View File
@@ -55,7 +55,7 @@ New features in BBC BASIC (Z80) version 5.00, June 2024:
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 MODE function, TINT function, WIDTH function
4.8 Hooks for ON, OFF, MODE function, TINT function, WIDTH function
5. Extensions to Acorn's BASIC V, compatible with BB4W, BBCSDL and BBCTTY
Binary file not shown.
+1 -1
View File
@@ -7,7 +7,7 @@ z80asm amos/rmf
z80asm acorn/rmf
z80asm data/rmf
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
era bbctube.hex
ren bbctube.com=bbctube.bin
Binary file not shown.
+21 -1
View File
@@ -3,7 +3,7 @@
;PATCH FOR BBC BASIC TO CP/M 2.2 & 3.0
;* ACORN COMPUTERS Z80 TUBE VERSION *
;(C) COPYRIGHT R.T.RUSSELL, 02-01-1984
;VERSION 5.0, 18-06-2024
;VERSION 5.0, 12-07-2024
;
OSWRCH EQU 0FFEEH
OSWORD EQU 0FFF1H
@@ -61,6 +61,8 @@ TFILL EQU 03H
GLOBAL TINT
GLOBAL WAIT
GLOBAL SYS
GLOBAL CSRON
GLOBAL CSROFF
;
GLOBAL PUTIMS
GLOBAL GETIMS
@@ -385,6 +387,24 @@ GCOL0: LD H,L
CALL WRCH3 ;DLH
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: CALL EXPRI
+20 -14
View File
@@ -10,7 +10,7 @@
;
;VERSION 2.1, 22-01-1984
;VERSION 3.1, 11-06-1987
;VERSION 5.0, 16-06-2024
;VERSION 5.0, 12-07-2024
;
GLOBAL XEQ
GLOBAL RUN0
@@ -58,6 +58,8 @@
EXTRN BYE
EXTRN NXT
EXTRN NLIST
EXTRN CSRON
EXTRN CSROFF
;
EXTRN OSWRCH
EXTRN OSLINE
@@ -358,6 +360,16 @@ CLI: CALL EXPRS
CALL OSCLI
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, *
;
EXT: PUSH IY
@@ -372,14 +384,6 @@ REM: PUSH IY
POP IY
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$
;
THROW: CALL EXPRI
@@ -833,7 +837,9 @@ XEQGO3: JP XEQ
;ON ERROR [LOCAL] statement [:statement...]
;ON ERROR [LOCAL] OFF
;
ON: CP TERROR
ON: CALL TERMQ
JP Z,CSRON
CP TERROR
JR Z,ONERR ;"ON ERROR"
CALL EXPRI
LD A,(IY)
@@ -1791,7 +1797,7 @@ ENDWH1: PUSH IY
CLS: CALL CLRSCN
XOR A
LD (COUNT),A
JP XEQ
JR XEQGO5
;
;STOP
;
@@ -1808,7 +1814,7 @@ STOP: CALL TELL
;REPORT
;
REPOR: CALL REPORT
JP XEQ
JR XEQGO5
;
;CLEAR
;
@@ -1821,7 +1827,7 @@ CLR: CALL CLEAR
RESERR: INC IY
LD A,2
CALL RESLOC
JP NZ,XEQ
JR NZ,XEQGO5
LD A,53 ;ON ERROR not LOCAL
ERROR5: JP ERROR
;
@@ -1830,7 +1836,7 @@ ERROR5: JP ERROR
RESDAT: INC IY
LD A,1
CALL RESLOC
JP NZ,XEQ
JR NZ,XEQGO5
LD A,54 ;'DATA not LOCAL'
DEFB 21H
NOLINE: LD A,41 ;'No such line'
+4
View File
@@ -19,6 +19,8 @@
GLOBAL TINT
GLOBAL WAIT
GLOBAL SYS
GLOBAL CSRON
GLOBAL CSROFF
;
GLOBAL ADVAL
GLOBAL POINT
@@ -55,6 +57,8 @@ MODEFN:
WIDFN:
WAIT:
SYS:
CSRON:
CSROFF:
XOR A
CALL EXTERR
DEFM 'Sorry'