Compare commits

...
10 Commits
13 changed files with 130 additions and 83 deletions

No files matched your search

+2 -1
View File
@@ -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
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 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
View File
@@ -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
View File
@@ -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
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 ;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
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 ;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
+4
View File
@@ -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
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 ;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
View File
@@ -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.