| |
|
| 0 Value wlib \ temporary library handle to make live easy |
0 Value wlib \ temporary library handle to make live easy |
| |
|
| : wl-catalog ( n -- addr | u ) |
: wl-catalog ( n lib-addr -- addr | u ) |
| s" catalog" wlib lib-sym dup 0= |
s" catalog" rot lib-sym dup 0= |
| ABORT" No word catalog" |
ABORT" No word catalog" |
| icall1 ; |
icall1 ; |
| |
|
| : wl-words ( lib-addr -- ) |
: wl-words ( lib-addr -- ) |
| to wlib 0 |
0 |
| BEGIN dup wl-catalog ?dup |
BEGIN 2dup swap wl-catalog ?dup |
| WHILE cell+ count type space |
WHILE cell+ count type space |
| 1+ |
1+ |
| REPEAT drop ; |
REPEAT 2drop ; |
| |
|
| : wl-create ( adr adr2 len2 -- ) |
: wl-create ( adr adr2 len2 -- ) |
| nextname |
nextname |
| Create , |
Create , |
| DOES> @ call-c ; |
DOES> @ wcall ; |
| |
|
| : wl-tovoc ( -- ) |
: wl-tovoc ( lib-addr -- ) |
| 0 |
0 |
| BEGIN dup wl-catalog ?dup |
BEGIN 2dup swap wl-catalog ?dup |
| WHILE dup @ swap cell+ count wl-create |
WHILE dup @ swap cell+ count wl-create |
| 1+ |
1+ |
| REPEAT drop ; |
REPEAT 2drop ; |
| |
|
| : (WordLibrary) |
: (WordLibrary) |
| Create DOES> @ ; |
Create DOES> @ ; |
| bl word count open-fpath-file throw rot close-file throw |
bl word count open-fpath-file throw rot close-file throw |
| \ open library with correct path |
\ open library with correct path |
| open-lib |
open-lib |
| dup 0= ABORT" Library not found" |
dup 0= ABORT" Library load error" |
| dup to wlib , |
dup , |
| wl-tovoc ; |
wl-tovoc ; |