refactor & reorganize

This commit is contained in:
Jesse D. McDonald 2020-10-26 05:05:06 -05:00
parent e268cac0a4
commit 67bb06dd8f
3 changed files with 788 additions and 705 deletions

View File

@ -1270,7 +1270,7 @@ defword ISBOOTSTRAP,"BOOTSTRAP?"
/* ( -- widn ... wid1 n ) Return the current search order */ /* ( -- widn ... wid1 n ) Return the current search order */
/* Redefining this word with DEFER! will change the bootstrap search order */ /* Redefining this word with DEFER! will change the bootstrap search order */
defword GET_ORDER,"BOOTSTRAP-GET-ORDER" defword BOOTSTRAP_GET_ORDER,"BOOTSTRAP-GET-ORDER"
.int BOOTSTRAP_WORDLIST,FORTH_WORDLIST,LIT,2,EXIT .int BOOTSTRAP_WORDLIST,FORTH_WORDLIST,LIT,2,EXIT
/* ( c-addr u wid -- 0 | xt 1 | xt -1 ) */ /* ( c-addr u wid -- 0 | xt 1 | xt -1 ) */
@ -1288,7 +1288,7 @@ defword SEARCH_WORDLIST,"SEARCH-WORDLIST"
/* ( c-addr u -- c-addr u 0 | xt 1 | xt -1 ) */ /* ( c-addr u -- c-addr u 0 | xt 1 | xt -1 ) */
defword FIND defword FIND
.int TWOTOR,GET_ORDER .int TWOTOR,BOOTSTRAP_GET_ORDER
0: .int DUP,ZBRANCH,(1f - .) 0: .int DUP,ZBRANCH,(1f - .)
.int SUB1,SWAP,TWORFETCH,ROT,SEARCH_WORDLIST,QDUP,ZBRANCH,(0b - .) .int SUB1,SWAP,TWORFETCH,ROT,SEARCH_WORDLIST,QDUP,ZBRANCH,(0b - .)
.int TWORDROP,TWOTOR,NDROP,TWOFROMR,EXIT .int TWORDROP,TWOTOR,NDROP,TWOFROMR,EXIT
@ -1336,6 +1336,7 @@ defword ESCAPED_CHAR
0: litstring "Unknown escape sequence: \\" 0: litstring "Unknown escape sequence: \\"
.int TYPE,EMIT,EOL,BAILOUT,EXIT .int TYPE,EMIT,EOL,BAILOUT,EXIT
/* ( "ccc<quote>" -- c-addr u ) */
defword READSTRING defword READSTRING
.int HERE .int HERE
0: .int PEEK_CHAR,LIT,34,NEQU,ZBRANCH,(1f - .) 0: .int PEEK_CHAR,LIT,34,NEQU,ZBRANCH,(1f - .)
@ -1343,17 +1344,17 @@ defword READSTRING
1: .int LIT,1,IN,INCREMENT,HERE,OVER,SUB,ALIGN,EXIT 1: .int LIT,1,IN,INCREMENT,HERE,OVER,SUB,ALIGN,EXIT
defword PARSENUMBER defword PARSENUMBER
.int DUP,LIT,0,GT,ZBRANCH,(6f - .) .int DUP,LIT,0,GT,ZBRANCH,(7f - .)
.int OVER,FETCHBYTE,LIT,'-',EQU,DUP,TOR,LIT,0,TOR,ZBRANCH,(0f - .) .int OVER,FETCHBYTE,LIT,'-',EQU,DUP,TOR,LIT,0,TOR,ZBRANCH,(0f - .)
.int DUP,LIT,1,GT,ZBRANCH,(6f - .),BRANCH,(1f - .) .int DUP,LIT,1,GT,ZBRANCH,(6f - .),BRANCH,(1f - .)
0: .int OVER,FETCHBYTE,LIT,'0',SUB 0: .int OVER,FETCHBYTE,LIT,'0',SUB
.int DUP,LIT,0,GE,ZBRANCH,(5f - .) .int DUP,LIT,9,ULE,ZBRANCH,(5f - .)
.int DUP,LIT,9,LE,ZBRANCH,(5f - .)
.int FROMR,LIT,10,MUL,ADD,TOR .int FROMR,LIT,10,MUL,ADD,TOR
1: .int SUB1,QDUP,ZBRANCH,(8f - .) 1: .int SUB1,QDUP,ZBRANCH,(8f - .)
.int SWAP,ADD1,SWAP,BRANCH,(0b - .) .int SWAP,ADD1,SWAP,BRANCH,(0b - .)
5: .int DROP 5: .int DROP
6: .int TWODROP,RDROP,RDROP,FALSE,EXIT 6: .int RDROP,RDROP
7: .int TWODROP,FALSE,EXIT
8: .int DROP,FROMR,FROMR,ZBRANCH,(9f - .) 8: .int DROP,FROMR,FROMR,ZBRANCH,(9f - .)
.int NEGATE .int NEGATE
9: .int TRUE,EXIT 9: .int TRUE,EXIT
@ -1370,8 +1371,7 @@ defword INTERPRET
.int TYPE,BAILOUT .int TYPE,BAILOUT
/* ELSE */ /* ELSE */
1: .int WORD,TWODUP,PARSENUMBER,ZBRANCH,(3f - .) 1: .int WORD,TWODUP,PARSENUMBER,ZBRANCH,(3f - .)
.int NROT,TWODROP .int STATE,FETCH,TWONIP,ZBRANCH,(2f - .)
.int STATE,FETCH,ZBRANCH,(2f - .)
.int LIT,LIT,COMMA,COMMA .int LIT,LIT,COMMA,COMMA
2: .int EXIT 2: .int EXIT
/* ELSE */ /* ELSE */

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,18 @@
ALSO UTILITY
: STATUS ( obj-addr c-addr u -- obj-addr ) : STATUS ( obj-addr c-addr u -- obj-addr )
TYPE ":\n Value: " TYPE DUP @ . TYPE ":\n Value: " TYPE DUP @ .
"\n Object size: " TYPE DUP OBJECT-SIZE U. EOL EOL ; "\n Object size: " TYPE DUP OBJECT-SIZE U. EOL EOL ;
PREVIOUS
SYSTEM-WORDLIST PUSH-ORDER SYSTEM-WORDLIST PUSH-ORDER
256 KB SIZEOF MEMBLOCK% - CONSTANT 256-KB-BLOCK
PREVIOUS
: TEST : TEST
24 ALLOCATE 1234 OVER ! "Allocated 24 bytes" STATUS 24 ALLOCATE 1234 OVER ! "Allocated 24 bytes" STATUS
33 RESIZE "Resized to 33 bytes" STATUS 33 RESIZE "Resized to 33 bytes" STATUS
24 RESIZE "Resized to 24 bytes" STATUS 24 RESIZE "Resized to 24 bytes" STATUS
256 KB MEMBLOCK-DATA-OFFSET - RESIZE "Resized to 256 KiB - header" STATUS 256-KB-BLOCK RESIZE "Resized to 256 KiB - header" STATUS
32 RESIZE "Resized to 32 bytes" STATUS 32 RESIZE "Resized to 32 bytes" STATUS
24 RESIZE "Resized to 24 bytes" STATUS 24 RESIZE "Resized to 24 bytes" STATUS
4 RESIZE "Resized to 4 bytes" STATUS 4 RESIZE "Resized to 4 bytes" STATUS