Beta3 2024/05/31: Fix keyword abbreviations

This commit is contained in:
Richard Russell committed 2024-05-31 22:26:27 +01:00
1 parent dd5b8b369d
commit 4b2b530017
5 files changed
+80 -75

No files matched your search

+4 -4
View File
@@ -21,9 +21,9 @@ New features in BBC BASIC (Z80) version 5.00, May 2024:
2.3 REPORT$
2.4 Binary constants
2.5 LEFT$ & RIGHT$ with last parameter omitted
2.6 MOD(array)
2.7 SUM(array)
2.8 SUMLEN(array)
2.6 MOD(array())
2.7 SUM(array())
2.8 SUMLEN(array())
2.9 GET$#file
3. BASIC V whole array operations
@@ -56,7 +56,7 @@ New features in BBC BASIC (Z80) version 5.00, May 2024:
5. Extensions to Acorn's BASIC V, compatible with BB4W, BBCSDL and BBCTTY
5.1 EXIT REPEAT / WHILE / FOR [var]
5.2 Address-of operator ^
5.2 Address-of operator (^)
5.3 Byte variables and arrays (& suffix)
5.4 'BY len' and 'TO term' qualifiers to GET$#file
5.5 ELSE IF <condition> THEN; (trailing semicolon)
Binary file not shown.
+9 -9
View File
@@ -1,12 +1,12 @@
m80 dist,dist.lst=dist.z80 /z
m80 main,main.lst=main.z80 /z
m80 exec,exec.lst=exec.z80 /z
m80 eval,eval.lst=eval.z80 /z
m80 asmb,asmb.lst=asmb.z80 /z
m80 cmos,cmos.lst=cmos.z80 /z
m80 math,math.lst=math.z80 /z
m80 hook,hook.lst=hook.z80 /z
m80 data,data.lst=data.z80 /z
z80asm dist/rmf
z80asm main/rmf
z80asm exec/rmf
z80asm eval/rmf
z80asm asmb/rmf
z80asm cmos/rmf
z80asm math/rmf
z80asm hook/rmf
z80asm data/rmf
era bbcbasic.com
link bbcbasic=dist,main,exec,eval,asmb,math,hook,cmos,/p:4B00,data
hexbin bbcbasic
+13 -6
View File
@@ -39,6 +39,7 @@
EXTRN FREE
EXTRN HIMEM
EXTRN CURLIN
EXTRN AUTONO
EXTRN USER
EXTRN VERMSG
;
@@ -1256,7 +1257,8 @@ WRCH1: CALL BDOS0
SET 1,(HL)
RET
;
TOGGLE: LD A,(FLAGS)
TOGGLE: LD BC,0
LD A,(FLAGS)
XOR 00000100B
LD (FLAGS),A
RET
@@ -1319,6 +1321,8 @@ LIMIT: CALL Z,KEYGET ;READ KEYBOARD
OR A ;TEST FOR ESCAPE
LD A,C
JP M,OSEXIT
CP 'P' AND 1FH
JP Z,TOGGLE
CP (IX-11) ;CURSOR UP (IX-11)
JP Z,LEFT
CP (IX-10) ;CURSOR DOWN (IX-10)
@@ -1328,13 +1332,11 @@ LIMIT: CALL Z,KEYGET ;READ KEYBOARD
JR Z,BACK
CP (IX-9) ;START OF LINE (IX-9)
JR Z,LEFT
CP (IX-7) ;CLEAR RIGHT (IX-7)
JR Z,DELETE
CP (IX-8) ;END OF LINE (IX-8)
JP Z,RIGHT
CP (IX-7) ;CLEAR RIGHT (IX-7)
JR Z,DELETE
LD C,0 ;INHIBIT REPEAT
CP 'P' AND 1FH
JP Z,TOGGLE
CP (IX-1) ;INSERT / OVR (IX-1)
JP Z,INSERT
CP (IX-6) ;DELETE LEFT (IX-6)
@@ -1359,10 +1361,15 @@ OSEXIT: LD A,(HL)
JP NZ,ABORT ;ESCAPE
LD A,LF
CALL OSWRCH
LD DE,(CURLIN)
XOR A
LD L,A
LD (EDPTR),HL
LD DE,(CURLIN)
CP D
RET NZ
CP E
RET NZ
LD DE,(AUTONO)
CP D
RET NZ
CP E
+54 -56
View File
@@ -10,7 +10,7 @@
;
;VERSION 2.3, 07-05-1984
;VERSION 3.0, 01-03-1987
;VERSION 5.0, 27-05-2024
;VERSION 5.0, 31-05-2024
;
EXTRN XEQ
EXTRN RUN0
@@ -174,7 +174,7 @@ PURGE: LD (HL),A ;CLEAR SCRATCHPAD
CALL NEWIT
JP NZ,CHAIN0 ;AUTO-RUN
CALL TELL
VERMSG: DEFM 'BBC BASIC (Z80) Version 5beta2'
VERMSG: DEFM 'BBC BASIC (Z80) Version 5beta3'
DEFB CR
DEFB LF
NOTICE: DEFM '(C) Copyright R.T.Russell 2024'
@@ -220,7 +220,10 @@ NOAUTO: LD HL,ACCS
JR NZ,NOTCMD
ADD A,A
LD C,A
LD B,0
LD A,H
OR L
JR NZ,INAUTO
LD B,A
LD HL,CMDTAB
ADD HL,BC
LD A,(HL) ;TABLE ENTRY
@@ -231,6 +234,7 @@ NOAUTO: LD HL,ACCS
CALL NXT
JP (HL) ;EXECUTE COMMAND
;
INAUTO: LD IY,ACCS
NOTCMD: LD A,H
OR L
CALL Z,LINNUM
@@ -339,8 +343,6 @@ KEYWDS: DEFB 80H
DEFM 'CHAIN'
DEFB 0BDH
DEFM 'CHR$'
DEFB 01H
DEFM 'CIRCLE' ; v5
DEFB 0D8H
DEFM 'CLEAR '
DEFB 0D9H
@@ -353,6 +355,8 @@ KEYWDS: DEFB 80H
DEFM 'COS'
DEFB 9CH
DEFM 'COUNT '
DEFB 01H
DEFM 'CIRCLE' ; v5
DEFB 0DCH
DEFM 'DATA'
DEFB 9DH
@@ -365,16 +369,14 @@ KEYWDS: DEFB 80H
DEFM 'DIM'
DEFB 0DFH
DEFM 'DRAW'
DEFB 02H
DEFM 'ELLIPSE' ; v5
DEFB 0CBH
DEFM 'ENDCASE ' ; v5
DEFB 0CDH
DEFM 'ENDIF ' ; v5
DEFB 0E1H
DEFM 'ENDPROC '
DEFB 0CEH
DEFM 'ENDWHILE ' ; v5
DEFB 0CBH
DEFM 'ENDCASE ' ; v5
DEFB 0CDH
DEFM 'ENDIF ' ; v5
DEFB 0E0H
DEFM 'END '
DEFB 0E2H
@@ -389,16 +391,18 @@ KEYWDS: DEFB 80H
DEFM 'ERROR'
DEFB 0C5H
DEFM 'EOF '
DEFB 10H
DEFM 'EXIT ' ; v5
DEFB 82H
DEFM 'EOR'
DEFB 9FH
DEFM 'ERR '
DEFB 10H
DEFM 'EXIT ' ; v5
DEFB 0A1H
DEFM 'EXP'
DEFB 0A2H
DEFM 'EXT '
DEFB 02H
DEFM 'ELLIPSE' ; v5
DEFB 0E3H
DEFM 'FOR'
DEFB 0A3H
@@ -427,12 +431,12 @@ KEYWDS: DEFB 80H
DEFM 'INKEY$'
DEFB 0A6H
DEFM 'INKEY'
DEFB 0CH
DEFM 'INSTALL' ; v5
DEFB 0A8H
DEFM 'INT'
DEFB 0A7H
DEFM 'INSTR('
DEFB 0CH
DEFM 'INSTALL' ; v5
DEFB 86H
DEFM 'LINE'
DEFB 92H
@@ -455,24 +459,22 @@ KEYWDS: DEFB 80H
DEFM 'MODE'
DEFB 83H
DEFM 'MOD'
DEFB 04H
DEFM 'MOUSE' ; v5
DEFB 0ECH
DEFM 'MOVE'
DEFB 04H
DEFM 'MOUSE' ; v5
DEFB 0EDH
DEFM 'NEXT'
DEFB 0ACH
DEFM 'NOT'
DEFB 05H
DEFM 'ORIGIN' ; v5
DEFB 0CCH
DEFM 'OTHERWISE' ; v5
DEFB 0EEH
DEFM 'ON'
DEFB 87H
DEFM 'OFF '
DEFB 0CAH
DEFM 'OF ' ; v5
DEFB 05H
DEFM 'ORIGIN' ; v5
DEFB 84H
DEFM 'OR'
DEFB 8EH
@@ -483,6 +485,8 @@ KEYWDS: DEFB 80H
DEFM 'OPENUP'
DEFB 0FFH
DEFM 'OSCLI'
DEFB 0CCH
DEFM 'OTHERWISE' ; v5
DEFB 0F1H
DEFM 'PRINT'
DEFB 90H
@@ -495,12 +499,12 @@ KEYWDS: DEFB 80H
DEFM 'PLOT'
DEFB 0B0H
DEFM 'POINT('
DEFB 0EH
DEFM 'PUT' ; Token changed
DEFB 0F2H
DEFM 'PROC'
DEFB 0B1H
DEFM 'POS '
DEFB 0EH
DEFM 'PUT' ; Token changed
DEFB 06H
DEFM 'QUIT ' ; v5
DEFB 0F8H
@@ -551,18 +555,18 @@ KEYWDS: DEFB 80H
DEFM 'SYS' ; v5
DEFB 0B7H
DEFM 'TAN'
DEFB 8CH
DEFM 'THEN'
DEFB 0B8H
DEFM 'TO'
DEFB 8AH
DEFM 'TAB('
DEFB 0FCH
DEFM 'TRACE'
DEFB 8CH
DEFM 'THEN'
DEFB 91H
DEFM 'TIME '
DEFB 0AH
DEFM 'TINT'
DEFB 0B8H
DEFM 'TO'
DEFB 0FCH
DEFM 'TRACE'
DEFB 0B9H
DEFM 'TRUE '
DEFB 0FDH
@@ -575,14 +579,14 @@ KEYWDS: DEFB 80H
DEFM 'VAL'
DEFB 0BCH
DEFM 'VPOS '
DEFB 0FEH
DEFM 'WIDTH'
DEFB 0BH
DEFM 'WAIT ' ; v5
DEFB 0C9H
DEFM 'WHEN' ; v5
DEFB 0C7H
DEFM 'WHILE' ; v5
DEFB 0C9H
DEFM 'WHEN' ; v5
DEFB 0BH
DEFM 'WAIT ' ; v5
DEFB 0FEH
DEFM 'WIDTH'
;'LEFT' TOKENS:
DEFB 0CFH
DEFM 'PTR'
@@ -832,7 +836,7 @@ LENSUB EQU $-TOKSUB
DELETE: CALL DLPAIR
DELET1: LD A,(HL)
OR A
JP Z,WARM
JR Z,WARMNC
INC HL
LD E,(HL)
INC HL
@@ -856,7 +860,7 @@ LISTO: INC IY ;SKIP "O"
EXX
LD A,L
LD (LISTON),A
CLOOP1: JP CLOOP
JP CLOOP
;
;LIST
;LIST line
@@ -1006,10 +1010,7 @@ RENUM1: LD A,(HL) ;BUILD TABLE
POP HL
EX DE,HL
JR C,RENUM1 ;CONTINUE
CALL EXTERR ;"Out of space"
DEFB 16H
DEFB 18H
DEFB 0
JP ERROR ;'No room' (A = 0)
;
RENUM2: EX DE,HL
LD (HL),-1
@@ -1021,7 +1022,7 @@ RENUM2: EX DE,HL
RENUM3: LD C,(HL)
LD A,C
OR A
JP Z,WARM
JR Z,WARMNC
EXX
EX DE,HL
INC HL
@@ -1114,6 +1115,15 @@ BAD: CALL TELL ;"Bad program'
NEW: CALL NEWIT
JR CLOOP0
;
;LOAD filename
;
LOAD: CALL EXPRS ;GET FILENAME
LD A,CR
LD (DE),A
CALL LOAD0
CALL CLEAR
JR WARM0
;
;OLD
;
OLD: LD HL,(PAGE)
@@ -1131,15 +1141,6 @@ OLD: LD HL,(PAGE)
CALL CLEAN
CLOOP0: JP CLOOP
;
;LOAD filename
;
LOAD: CALL EXPRS ;GET FILENAME
LD A,CR
LD (DE),A
CALL LOAD0
CALL CLEAR
JR WARM0
;
;SAVE filename
;
SAVE: CALL EXPRS ;FILENAME
@@ -1203,7 +1204,7 @@ ERROR2: LD SP,(HIMEM)
LD E,0
CALL C,OSSHUT ;CLOSE ALL FILES
CALL CRLF
JP CLOOP
JR CLOOP0
;
;SUBROUTINES:
;
@@ -1442,12 +1443,9 @@ LOUT: BIT 0,E
CALL OUT
RET
;
INDADD: INC E
RET
;
INDSUB: DEC E
JP P,INDRET
INC E
INDADD: INC E
INDRET: RET
;
;CRLF - SEND CARRIAGE RETURN, LINE FEED.