mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-20 13:37:55 +00:00
Catagorize words in VLIST and strip system scripts for faster loading
This commit is contained in:
parent
5832883da9
commit
1f1376c467
doc
images/apple
src
Binary file not shown.
Before ![]() (image error) Size: 18 KiB After ![]() (image error) Size: 18 KiB ![]() ![]() |
Binary file not shown.
@ -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 ;
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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" ;
|
||||
|
@ -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
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user