Hello Moggy
This will not answer your very question, but since you are talking about 32 bit math

, Forth works fine with both :
Double precision math (integer !) and Zeddy.
Of course Forth seems, at first, a very strange language, but believe me, you can do what you want with the
Zeddy using this, helas, forgotten language.
The Fig Forth standard use double precision with the standard double sum, and to store the result you can access later or by Machine Language is very easy.
You have, included, a Forth file zip, that you can use with your emulator (or your Zeddy).
http://forthretro.new.fr/download/math.zipBTW : In Forth, use the command - CLS - for to clear the screen.
1 - (Forth use the LSB for minus mark)
At the prompt try :
HEX <nl> \ you want hexadecimal
7FFFFF. <NL> \Don't forget the DOT - Forth will understand it is a 32 bit
FFFF. <NL> \ Forth = Polish Notation
D+ <NL> \ 32 bit sum
D. <NL> \ Display the result.
80FFFEIf you want to play with decimal :
DECIMAL <NL> \ you want decimal
8388607. <NL> \Don't forget the DOT
65535. <NL>
D+ <NL>
D. <NL>
84541422 - If you want to store the result somewhere ( let suppose adress $7000 and $7002)
I wrote the word
DSTORE (Double Store)- So you can do the following :
DECIMAL <NL> \ you want decimal
8388607. <NL> \Don't forget the DOT
65535. <NL>
D+ <NL>
DSTORE <NL> \ $0080 -> ($7002/3)
\ $FFFE -> ($7000/1)
3 - You can use the following words :
a)
D/ - It takes the ratio of two double to yield a single
DECIMAL <NL>
80544200. <NL>
805442. <NL>
D/ <NL>
. <NL> \ A DOT only since it is a single
100 \ or use SSTORE $0064 -> ($7002/3)
b)
D*S - Multiplies a double times a single to yield a double
DECIMAL <NL>
575236. <NL>
215 <NL> \Without the DOT, for Forth to understand it is a single
D*S <NL>
D. <NL> \ D. (D-Dot) print a double on the SCR
\ or use the command DSTORE as in ex 2
123675740 c)
D/S - Divides a double by single to yield a double quotient
d)
D*/ - Takes a double and multiplies and divide by single, yielding a double ( very useful for scaling)
e)
T* - (For UNSIGNED) Multiplies a double times a single to yield a triple precision.
(For to print on the screen, use . (DOT) then D. (D-DOT) or save it on $7000 $7002 $7004 with TSTORE)
f)
T/ - (For UNSIGNED) Divides a triple by a single to yield a double
g)
U*/ - (For UNSIGNED) Takes a double and multiplie and divide by a single yielding a double.
All the above comes from an old FORTH DIMENSION magazine V05 Number 1 Page 16 - "
Double-Precision Math Words" by
L H BiemanThere is also in other issue, Math with quadruple precision....

It is funny to see our Zeddy doing it.
I hope it help.
Amicalement Dominique