Lots of library updates and FORTH bugfixes importing existing libraries

This commit is contained in:
David Schmenk committed 2024-01-04 14:24:45 -08:00
1 parent 2d4417c698
commit 1db7cd16ee
32 files changed
+225 -41

No files matched your search

+2
View File
@@ -1,5 +1,6 @@
: ?PLASMA
" IFACE" FIND
SWAP DROP
0= IF
" PLASMA.4TH" SRC
THEN
@@ -9,6 +10,7 @@
: ?GRLIB
" GRLIB" FIND
SWAP DROP
0= IF
" GRLIB.4TH" SRC
THEN
+88
View File
@@ -0,0 +1,88 @@
" SANE" LOADMOD" "
" FPSTR" LOADMOD" "
" FPU" LOADMOD" "
0 VARIABLE FPERR
LOOKUP FPU CONSTANT FPULIB
FPULIB 0 IFACE PLASMA _FPRESET : FPRESET _FPRESET FPERR ! ;
FPULIB 1 IFACE PLASMA _FPGETENV : FPGETENV _FPGETENV FPERR ! ;
FPULIB 2 IFACE PLASMA _FPSETENV : FPSETENV _FPSETENV FPERR ! ;
FPULIB 3 IFACE PLASMA _FPTESTEXEPT : FPTESTECEPT _FPTESTEXEPT FPERR ! ;
FPULIB 4 IFACE PLASMA _FPSETEXCEPT : FPSETEXCEPT _FPSETEXCEPT FPERR ! ;
FPULIB 5 IFACE PLASMA _FPENTERPROC : FPENTERPROC _FPENTERPROC FPERR ! ;
FPULIB 6 IFACE PLASMA _FPEXITPROC : FPEXITPROC _FPEXITPROC FPERR ! ;
FPULIB 7 IFACE PLASMA _FPCONSTPI : FPCONSTPI _FPCONSTPI FPERR ! ;
FPULIB 8 IFACE PLASMA _FPCONSTE : FPCONSTE _FPCONSTE FPERR ! ;
FPULIB 9 IFACE PLASMA _FPINT@ : FPINT@ _FPINT@ FPERR ! ;
FPULIB 10 IFACE PLASMA _FPSGL@ : FPSGL@ _FPSGL@ FPERR ! ;
FPULIB 11 IFACE PLASMA _FPDBL@ : FPDBL@ _FPDBL@ FPERR ! ;
FPULIB 12 IFACE PLASMA _FPEXT@ : FPEXT@ _FPEXT@ FPERR ! ;
FPULIB 13 IFACE PLASMA _FPSTR@ : FPSTR@ _FPSTR@ FPERR ! ;
FPULIB 14 IFACE PLASMA _FPINT! : FPINT! _FPINT! FPERR ! ;
FPULIB 15 IFACE PLASMA _FPSGL! : FPSGL! _FPSGL! FPERR ! ;
FPULIB 16 IFACE PLASMA _FPDBL! : FPDBL! _FPDBL! FPERR ! ;
FPULIB 17 IFACE PLASMA _FPEXT! : FPEXT! _FPEXT! FPERR ! ;
FPULIB 18 IFACE PLASMA _FPSTR! : FPSTR! _FPSTR! FPERR ! ;
FPULIB 19 IFACE PLASMA _FPINTLOD : FPINTLOD _FPINTLOD FPERR ! ;
FPULIB 20 IFACE PLASMA _FPSGLLOD : FPSGLLOD _FPSGLLOD FPERR ! ;
FPULIB 21 IFACE PLASMA _FPDBLLOD : FPDBLLOD _FPDBLLOD FPERR ! ;
FPULIB 22 IFACE PLASMA _FPEXTLOD : FPEXTLOD _FPEXTLOD FPERR ! ;
FPULIB 23 IFACE PLASMA _FPSTRLOD : FPSTRLOD _FPSTRLOD FPERR ! ;
FPULIB 24 IFACE PLASMA _FPINTSTOR : FPINTSTOR _FPINTSTOR FPERR ! ;
FPULIB 25 IFACE PLASMA _FPSGLSTOR : FPSGLSTOR _FPSGLSTOR FPERR ! ;
FPULIB 26 IFACE PLASMA _FPDBLSTOR : FPDBLSTOR _FPDBLSTOR FPERR ! ;
FPULIB 27 IFACE PLASMA _FPEXTSTOR : FPEXTSTOR _FPEXTSTOR FPERR ! ;
FPULIB 28 IFACE PLASMA _FPSTRSTOR : FPSTRSTOR _FPSTRSTOR FPERR ! ;
FPULIB 29 IFACE PLASMA _FPSHIFTUP : FPSHIFTUP _FPSHIFTUP FPERR ! ;
FPULIB 30 IFACE PLASMA _FPSHIFTDOWN : FPSHIFTDOWN _FPSHIFTDOWN FPERR ! ;
: FPDROP _FPSHIFTDOWN FPERR ! ;
FPULIB 31 IFACE PLASMA _FPROTATEUP : FPROTATEUP _FPROTATEUP FPERR ! ;
FPULIB 32 IFACE PLASMA _FPROTATEDOWN : FPROTATEDOWN _FPROTATEDOWN FPERR ! ;
FPULIB 33 IFACE PLASMA _FPDUP : FPDUP _FPDUP FPERR ! ;
FPULIB 34 IFACE PLASMA _FPSWAP : FPSWAP _FPSWAP FPERR ! ;
FPULIB 35 IFACE PLASMA _FPCLEAR : FPCLEAR _FPCLEAR FPERR ! ;
FPULIB 36 IFACE PLASMA _FP+ : FP+ _FP+ FPERR ! ;
FPULIB 37 IFACE PLASMA _FP- : FP- _FP- FPERR ! ;
FPULIB 38 IFACE PLASMA _FP* : FP* _FP* FPERR ! ;
FPULIB 39 IFACE PLASMA _FP/ : FP/ _FP/ FPERR ! ;
FPULIB 40 IFACE PLASMA _FPREM : FPREM _FPREM FPERR ! ;
FPULIB 41 IFACE PLASMA _FPNEG : FPNEG _FPNEG FPERR ! ;
FPULIB 42 IFACE PLASMA _FPABS : FPABS _FPABS FPERR ! ;
FPULIB 43 IFACE PLASMA _FPTYPE : FPTYPE _FPTYPE FPERR ! ;
FPULIB 44 IFACE PLASMA _FPCMP : FPCMP _FPCMP FPERR ! ;
FPULIB 45 IFACE PLASMA _FPLOGB : FPLOGB _FPLOGB FPERR ! ;
FPULIB 46 IFACE PLASMA _FPSCALEBINT : FPSCALEBINT _FPSCALEBINT FPERR ! ;
FPULIB 47 IFACE PLASMA _FPTRUNC : FPTRUNC _FPTRUNC FPERR ! ;
FPULIB 48 IFACE PLASMA _FPROUND : FPROUND _FPROUND FPERR ! ;
FPULIB 49 IFACE PLASMA _FPSQRT : FPSQRT _FPSQRT FPERR ! ;
FPULIB 50 IFACE PLASMA _FPSQUARE : FPSQUARE _FPSQUARE FPERR ! ;
FPULIB 51 IFACE PLASMA _FPCOS : FPCOS _FPCOS FPERR ! ;
FPULIB 52 IFACE PLASMA _FPSIN : FPSIN _FPSIN FPERR ! ;
FPULIB 53 IFACE PLASMA _FPTAN : FPTAN _FPTAN FPERR ! ;
FPULIB 54 IFACE PLASMA _FPATAN : FPATAN _FPATAN FPERR ! ;
FPULIB 55 IFACE PLASMA _FPLOG2 : FPLOG2 _FPLOG2 FPERR ! ;
FPULIB 56 IFACE PLASMA _FPLOG21 : FPLOG21 _FPLOG21 FPERR ! ;
FPULIB 57 IFACE PLASMA _FPLN : FPLN _FPLN FPERR ! ;
FPULIB 58 IFACE PLASMA _FPLN1 : FPLN1 _FPLN1 FPERR ! ;
FPULIB 59 IFACE PLASMA _FPPOW2 : FPPOW2 _FPPOW2 FPERR ! ;
FPULIB 60 IFACE PLASMA _FPPOW21 : FPPOW21 _FPPOW21 FPERR ! ;
FPULIB 61 IFACE PLASMA _FPPOWE : FPPOWE _FPPOWE FPERR ! ;
FPULIB 62 IFACE PLASMA _FPPOWE1 : FPPOWE1 _FPPOWE1 FPERR ! ;
FPULIB 63 IFACE PLASMA _FPPOWE21 : FPPOWE21 _FPPOWE21 FPERR ! ;
FPULIB 64 IFACE PLASMA _FPPOWINT : FPPOWINT _FPPOWINT FPERR ! ;
FPULIB 65 IFACE PLASMA _FPPOW : FPPOW _FPPOW FPERR ! ;
FPULIB 66 IFACE PLASMA _FPCOMP : FPCOMP _FPCOMP FPERR ! ;
FPULIB 67 IFACE PLASMA _FPANNUITY : FPANNUITY _FPANNUITY FPERR ! ;
FPULIB 68 IFACE PLASMA _FPRANDNUM : FPRANDNUM _FPRANDNUM FPERR ! ;
1 CONSTANT FPSTR.FIXED ( Fixed count of fractional digits )
0 CONSTANT FPSTR.FLOAT ( Floating count of fractional digits )
2 CONSTANT FPSTR.STRIP ( Strip trailing fractional zeros )
4 CONSTANT FPSTR.EXP ( Force exponential format )
8 CONSTANT FPSTR.FLEX ( Flexible switch to EXP format if over/underflow )
: FP. HERE 4 4 FPSTR.FLOAT FPSTR! HERE (.") ;
FPRESET ( Load SANE code and set up libraries )
+1 -1
View File
@@ -1,4 +1,4 @@
LOADMOD" GRLIB"
" GRLIB" LOADMOD" "
LOOKUP GRPLOT PLASMA GRPLOT
LOOKUP GRHLIN PLASMA GRHLIN
+1 -1
View File
@@ -1,4 +1,4 @@
LOADMOD" HGRLIB"
" HGRLIB" LOADMOD" "
LOOKUP HGRPLOT PLASMA HGRPLOT
LOOKUP HGRORPLOT PLASMA HGRORPLOT
+3 -1
View File
@@ -1,5 +1,6 @@
: ?PLASMA
" IFACE" FIND
SWAP DROP
0= IF
" PLASMA.4TH" SRC
THEN
@@ -11,6 +12,7 @@ $6000 HERE - ALLOT ( Reserve HGR2 screen )
: ?HGRLIB
" HGRLIB" FIND
SWAP DROP
0= IF
" HGRLIB.4TH" SRC
THEN
@@ -57,4 +59,4 @@ $6000 HERE - ALLOT ( Reserve HGR2 screen )
0 HGRMODE DROP
;
( BOUNCE)
BOUNCE
+45
View File
@@ -0,0 +1,45 @@
" INT32" LOADMOD" "
LOOKUP ZERO32 PLASMA ZERO32 ( -- )
LOOKUP ZEXT16TO32 PLASMA ZEXT32 ( -- )
LOOKUP NEG32 PLASMA NEG32 ( -- )
LOOKUP LOAD32 PLASMA LOAD32 ( i32ptr -- )
LOOKUP LOADI16 PLASMA LOAD16 ( imm16 -- )
LOOKUP STORE32 PLASMA STORE32 ( i32ptr -- )
LOOKUP ADD32 PLASMA ADD32 ( i32ptr -- )
LOOKUP ADDI16 PLASMA ADD16 ( imm16 -- )
LOOKUP SUB32 PLASMA SUB32 ( i32ptr -- )
LOOKUP SUBI16 PLASMA SUB16 ( imm16 -- )
LOOKUP SHL32 PLASMA SHL32 ( imm8 -- )
LOOKUP SHR32 PLASMA SHR32 ( imm8 -- )
LOOKUP MUL32 PLASMA MUL32 ( i32ptr -- )
LOOKUP MULI16 PLASMA MUL16 ( imm16 -- )
LOOKUP DIV32 PLASMA DIV32 ( i32ptr -- rem32 )
LOOKUP DIVI16 PLASMA DIV16 ( imm16 -- rem32 )
LOOKUP ISEQ32 PLASMA ISEQ32 ( i32ptr -- f)
LOOKUP ISEQI16 PLASMA ISEQ16 ( imm16 -- f)
LOOKUP IDGE32 PLASMA ISGE32 ( i32ptr -- f)
LOOKUP ISGEI16 PLASMA ISGE16 ( imm16 -- f)
LOOKUP ISLE32 PLASMA ISLE32 ( i32ptr -- f)
LOOKUP ISLEI16 PLASMA ISLE16 ( imm16 -- f)
LOOKUP ISGT32 PLASMA ISGT32 ( i32ptr -- f)
LOOKUP ISGTI16 PLASMA ISGT16 ( imm16 -- f)
LOOKUP ISLT32 PLASMA ISLT32 ( i32ptr -- f)
LOOKUP ISLTI16 PLASMA ISLT16 ( imm16 -- f )
LOOKUP I32TOS PLASMA I32TOS ( i32ptr strptr -- strptr )
LOOKUP PUTI32 PLASMA PUTI32 ( i32ptr -- )
: DVAR CREATE 4 ALLOT ;
DVAR _DOP1
DVAR _DOP2
: D@ DUP @ SWAP 2+ @ ;
: D! DUP ROT SWAP 2+ ! ! ;
: D+ _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 ADD32 _DOP1 STORE32 _DOP1 D@ ;
: D- _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 SUB32 _DOP1 STORE32 _DOP1 D@ ;
: D* _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 MUL32 _DOP1 STORE32 _DOP1 D@ ;
: D/ _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 DIV32 _DOP1 STORE32 _DOP1 D@ ;
: D< _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 ISLT32 ;
: D> _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 ISGT32 ;
: D= _DOP2 D! _DOP1 D! _DOP1 LOAD32 _DOP2 ISEQ32 ;
: D0= OR 0= ;
: D. _DOP1 D! _DOP1 PUTI32 SPACE ;