pfe-double-ext ? Double number + extensions
2LITERAL ( x1 x2 -- ) ?=>? ( | ); | ? |
"[ANS] FORTH";D+ ( d1.ud1 d2.ud2 -- d3.ud3 ) ?=>? ( | ); | ? |
"[ANS] FORTH";D- ?=>? ( | ); | ? |
"[ANS] FORTH";D. ( d1.d1 -- ) ?=>? ( | ); | ? |
"[ANS] FORTH";D.R ( d1.d1 n -- ) ?=>? ( | ); | ? |
"[ANS] FORTH";D0< ( d1.d1 -- flag ) ?=>? ( | ); | ? |
"[ANS] FORTH";D0= ( d1.d1 -- flag ) ?=>? ( | ); | ? |
"[ANS] FORTH";D2* ( d1.d1 -- d1.d1' ) ?=>? ( | ); | ? |
"[ANS] FORTH";D2/ ( d1.d1 -- d1.d1' ) ?=>? ( | ); | ? |
"[ANS] FORTH";D< ( d1.d1 d2.d2 -- flag ) ?=>? ( | ); | ? |
"[ANS] FORTH";D= ( d1.d1 d2.d2 -- flag ) ?=>? ( | ); | ? |
"[ANS] FORTH";D>S ( d.d -- n ) ?=>? ( | ); | ? |
"[ANS] FORTH";DABS ( d1.d1 -- d1.d1' ) ?=>? ( | ); | ? |
"[ANS] FORTH";DMAX ( d1.d1 d2.d2 -- d1.d1|d2.d2 ) ?=>? ( | ); | ? |
"[ANS] FORTH";DMIN ( d1.d1 d2.d2 -- d1.d1|d2.d2 ) ?=>? ( | ); | ? |
"[ANS] FORTH";DNEGATE ( d1.d1 -- d1.d1' ) ?=>? ( | ); | ? |
"[ANS] FORTH";M*/ ( d1.d1 n1 +n2 -- d2.d2 ) ?=>? ( | ); | ? |
"[ANS] FORTH";M+ ( d1.d1 n1 -- d2.d2 ) ?=>? ( | ); | ? |
"[ANS] FORTH";
2LITERAL ( x1 x2 -- ) immediate => "[ANS] FORTH"
compile a double-cell number to the current definition. When run, the doubele-cell is left on the stack for execution.
( -- x1 x2 )
(in most configurations this word is statesmart and it will do nothing
in interpret-mode. See 2LITERAL, for a non-immediate variant)
D+ ( d1.ud1 d2.ud2 -- d3.ud3 ) => "[ANS] FORTH"
the double-cell sum operation ( + )
D- - no description, sorry
D. ( d1.d1 -- ) => "[ANS] FORTH"
freefield output for a double-cell number ( => . )
D.R ( d1.d1 n -- ) => "[ANS] FORTH"
aligned output for a double-cell number ( => .R )
D0< ( d1.d1 -- flag ) => "[ANS] FORTH"
the double-cell less-than-zero operation ( 0< )
D0= ( d1.d1 -- flag ) => "[ANS] FORTH"
the double-cell equal-to-zero operation ( 0= )
D2* ( d1.d1 -- d1.d1' ) => "[ANS] FORTH"
the double-cell arithmetic shiftleft-by-1 operation ( 2* )
D2/ ( d1.d1 -- d1.d1' ) => "[ANS] FORTH"
the double-cell arithmetic shiftright-by-1 operation ( 2/ )
D< ( d1.d1 d2.d2 -- flag ) => "[ANS] FORTH"
the double-cell is-less operation ( < )
D= ( d1.d1 d2.d2 -- flag ) => "[ANS] FORTH"
the double-cell is-equal operation ( = )
D>S ( d.d -- n ) => "[ANS] FORTH"
result is the numeric equivalent of d. If the double number was
greater than what could fit into a single cell number, the
modulo cellsize will be left since the higher-significant bits
are just DROPed
DABS ( d1.d1 -- d1.d1' ) => "[ANS] FORTH"
the double-cell abs operation ( ABS )
DMAX ( d1.d1 d2.d2 -- d1.d1|d2.d2 ) => "[ANS] FORTH"
the double-cell max operation ( MAX )
DMIN ( d1.d1 d2.d2 -- d1.d1|d2.d2 ) => "[ANS] FORTH"
the double-cell max operation ( MIN )
DNEGATE ( d1.d1 -- d1.d1' ) => "[ANS] FORTH"
the double-cell arithmetic negate operation ( NEGATE )
M*/ ( d1.d1 n1 +n2 -- d2.d2 ) => "[ANS] FORTH"
the double-cell multiply-divide operation
using a triple-cell intermediate result for *
( *\/ )
M+ ( d1.d1 n1 -- d2.d2 ) => "[ANS] FORTH"
the double-cell mixed-operand sum operation ( + / D+ )