1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-06-01 03:41:34 +00:00

Catagorize words in VLIST and strip system scripts for faster loading

This commit is contained in:
David Schmenk 2024-01-09 11:04:29 -08:00
parent 5832883da9
commit 1f1376c467
10 changed files with 82 additions and 90 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

View File

@ -1,7 +1,4 @@
' CONIOAPI ENDSRC ( Avoid multiple loads )
( LOADMOD" CONIO" CONIO is already available in plforth )
' CONIOAPI ENDSRC
LOOKUP CONIO CONSTANT CONIOAPI
CONIOAPI 3 IFACE PLASMA _HOME : HOME _HOME DROP ;
CONIOAPI 4 IFACE PLASMA _GOTOXY : GOTOXY _GOTOXY DROP ;

View File

@ -1,7 +1,4 @@
' FILEIOAPI ENDSRC ( Avoid multiple loads )
( LOADMOD" FILEIO" FILEIO is already available in plforth )
' FILEIOAPI ENDSRC
LOOKUP FILEIO CONSTANT FILEIOAPI
FILEIOAPI 2 IFACE PLASMA GETFILEINFO
FILEIOAPI 3 IFACE PLASMA SETFILEINFO

View File

@ -1,11 +1,8 @@
' FPULIB ENDSRC ( Avoid multipe loads )
' FPULIB ENDSRC
" 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 ! ;
@ -77,16 +74,11 @@ 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 )
1 CONSTANT FPSTR.FIXED
0 CONSTANT FPSTR.FLOAT
2 CONSTANT FPSTR.STRIP
4 CONSTANT FPSTR.EXP
8 CONSTANT FPSTR.FLEX
: FP. HERE 10 4 FPSTR.FLEX FPSTR! HERE (.") ;
: FPEXT CREATE 10 ALLOT ;
FPRESET ( Load SANE code and set up libraries )
FPRESET

View File

@ -1,7 +1,5 @@
' GRMODE ENDSRC ( Avoid multiple loads )
" GRLIB" LOADMOD" "
LOOKUP GRPLOT PLASMA GRPLOT
LOOKUP GRHLIN PLASMA GRHLIN
LOOKUP GRVLIN PLASMA GRVLIN
@ -15,4 +13,4 @@ LOOKUP GRMODE PLASMA GRMODE
LOOKUP GRSHOW PLASMA GRSHOW
LOOKUP GRSWAP PLASMA GRSWAP
LOOKUP GRDRAWBUF PLASMA GRDRAWBUF
LOOKUP GRCOLOR PLASMA GRCOLOR
LOOKUP GRCOLOR PLASMA GRCOLOR

View File

@ -1,7 +1,5 @@
' HGRMODE ENDSRC ( Avoid multiple loads )
' HGRMODE ENDSRC
" HGRLIB" LOADMOD" "
LOOKUP HGRPLOT PLASMA HGRPLOT
LOOKUP HGRORPLOT PLASMA HGRORPLOT
LOOKUP HGRXORPLOT PLASMA HGRXORPLOT
@ -22,4 +20,4 @@ LOOKUP HGRMODE PLASMA HGRMODE
LOOKUP HGRSHOW PLASMA HGRSHOW
LOOKUP HGRSWAP PLASMA HGRSWAP
LOOKUP HGRDRAWBUF PLASMA HGRDRAWBUF
LOOKUP HGRCOLOR PLASMA HGRCOLOR
LOOKUP HGRCOLOR PLASMA HGRCOLOR

View File

@ -1,36 +1,33 @@
' DVAR ENDSRC ( Avoid multiple loads )
' DVAR ENDSRC
" 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 -- )
LOOKUP ZERO32 PLASMA ZERO32
LOOKUP ZEXT16TO32 PLASMA ZEXT32
LOOKUP NEG32 PLASMA NEG32
LOOKUP LOAD32 PLASMA LOAD32
LOOKUP LOADI16 PLASMA LOAD16
LOOKUP STORE32 PLASMA STORE32
LOOKUP ADD32 PLASMA ADD32
LOOKUP ADDI16 PLASMA ADD16
LOOKUP SUB32 PLASMA SUB32
LOOKUP SUBI16 PLASMA SUB16
LOOKUP SHL32 PLASMA SHL32
LOOKUP SHR32 PLASMA SHR32
LOOKUP MUL32 PLASMA MUL32
LOOKUP MULI16 PLASMA MUL16
LOOKUP DIV32 PLASMA DIV32
LOOKUP DIVI16 PLASMA DIV16
LOOKUP ISEQ32 PLASMA ISEQ32
LOOKUP ISEQI16 PLASMA ISEQ16
LOOKUP IDGE32 PLASMA ISGE32
LOOKUP ISGEI16 PLASMA ISGE16
LOOKUP ISLE32 PLASMA ISLE32
LOOKUP ISLEI16 PLASMA ISLE16
LOOKUP ISGT32 PLASMA ISGT32
LOOKUP ISGTI16 PLASMA ISGT16
LOOKUP ISLT32 PLASMA ISLT32
LOOKUP ISLTI16 PLASMA ISLT16
LOOKUP I32TOS PLASMA I32TOS
LOOKUP PUTI32 PLASMA PUTI32
: DVAR CREATE 4 ALLOT ;
DVAR _DOP1
DVAR _DOP2

View File

@ -1,4 +1,4 @@
' IFACE ENDSRC ( Avoid multiple loads )
' IFACE ENDSRC
: IFACE 2 * + @ ;
LOOKUP CMDSYS 0 IFACE CONSTANT PLASMAVER
LOOKUP CMDSYS 2 IFACE CONSTANT CMDLINE
@ -7,13 +7,13 @@ LOOKUP STRCPY PLASMA STRCPY
LOOKUP STRCAT PLASMA STRCAT
LOOKUP TOUPPER PLASMA TOUPPER
LOOKUP HEAPAVAIL PLASMA FREEMEM
: LOADMOD ( modulename paramstr -- )
CMDLINE " . " STRCPY DROP ( Module name )
CMDLINE SWAP STRCAT DROP ( Parameter string )
: LOADMOD
CMDLINE " . " STRCPY DROP
CMDLINE SWAP STRCAT DROP
EXECMOD 0< ABORT" Failed to load module" ;
: LOADMOD" ( modulename -- )
PAD SWAP STRCPY ( Move module name out of the way in case its immediate )
CHAR " WORD ( Build a string from input )
: LOADMOD"
PAD SWAP STRCPY
CHAR " WORD
LOADMOD ;
: EDIT " ED" " " LOADMOD ;
: EDIT" " ED" LOADMOD" ;

View File

@ -105,7 +105,7 @@ predef _create_#0, _itcdoes_(a)#0, _does_#0, _compoff_#0, _compon_#0
predef _compile_#0, _dictaddw_(a)#0, _dictaddb_(a)#0, _colon_#0, _semi_#0
predef _componly_#0, _interponly_#0, _immediate_#0, _exit_#0, _pad_#1, _trailing_(a,b)#2
predef _tors_(a)#0, _fromrs_#1, _toprs_#1, _lookup_#1
predef _move_(a,b,c)#0, _fill_(a,b,c)#0, _plasma_(a)#0
predef _cmove_(a,b,c)#0, _move_(a,b,c)#0, _fill_(a,b,c)#0, _plasma_(a)#0
predef _var_(a)#0, _const_(a)#0, _lit_#1, _slit_#1, _find_(a)#2
predef _tick_#0, _forget_#0, _terminal_#1, _prat_(a)#0
predef _blank_#0, _char_#0, _str_#0, _prstr_#0, _prpstr_#0
@ -295,24 +295,28 @@ byte = 0
word = @d_toprstk, 0, @_lookup_
// PLASMA LINKEAGE
char d_plasma = "PLASMA"
byte = imm_flag
byte = interponly_flag
word = @d_lookup, 0, @_plasma_
// VARIABLE
char d_var = "VARIABLE"
byte = imm_flag
byte = interponly_flag
word = @d_plasma, 0, @_var_
// CONSTANT
char d_const = "CONSTANT"
byte = imm_flag
byte = interponly_flag
word = @d_var, 0, @_const_
// CMOVE
char d_cmove = "CMOVE"
byte = 0
word = @d_const, 0, @_cmove_
// MOVE
char d_move = "MOVE"
byte = 0
word = @d_const, 0, @_move_
word = @d_cmove, 0, @_move_
// FILL
char d_fill = "FILL"
byte = 0
word = @d_move, 0, @_fill_
word = @d_cmove, 0, @_fill_
// HERE
char d_here = "HERE"
byte = 0
@ -495,7 +499,7 @@ byte = param_flag
word = 0, 0, @_lit_
// COMPILED LITERAL VALUE FROM STACK
char d_literal = "LITERAL"
byte = imm_flag
byte = imm_flag | componly_flag
word = @d_tick, 0, @_compliteral_
// ?TERMINAL
char d_terminal = "?TERMINAL"
@ -666,11 +670,11 @@ byte = 0
word = @d_stepoff, 0, @_brk_
// BREAK ON
char d_brkon = "BRKON"
byte = imm_flag
byte = interponly_flag
word = @d_brk, 0, @_brkon_
// BREAK OFF
char d_brkoff = "BRKOFF"
byte = 0
byte = interponly_flag
word = @d_brkon, 0, @_brkoff_
// COMPILE USING ITC
char d_itc = "ITC"
@ -1831,27 +1835,36 @@ end
def _comment_#0
nextword(')')
end
def _vlist_#0
def typelist(typestr, typemask, type)#0
word d
byte tab
tab = 0
puts(typestr)
tab = ^typestr
d = vlist
while d
tab = tab + 1 + ^d
if tab > 39
putln;
tab = ^d
else
puts(" ")
fin
puts(d)
if conio:keypressed()
getc; getc
if (typemask & ^_ffa_(d)) == type
tab = tab + 1 + ^d
if tab > 39
putln;
tab = ^d
else
puts(" ")
fin
puts(d)
if conio:keypressed(); getc; getc; fin
fin
d = *_lfa_(d)
loop
end
def _vlist_#0
putln
typelist("Compile only: ", componly_flag, componly_flag)
putln; putln
typelist("Interpret only: ", interponly_flag, interponly_flag)
putln; putln
typelist("Both: ", componly_flag | interponly_flag, 0)
end
//
// Quit
//