Jesse D. McDonald
|
7e8b06c6ab
|
use .balign (always bytes) instead of .align (depends on target)
|
2020-10-31 12:07:07 -05:00 |
Jesse D. McDonald
|
9fe916db16
|
rename :REPLACE to :FINALIZE since prior word must be deferred
|
2020-10-31 11:58:07 -05:00 |
Jesse D. McDonald
|
abedc84f1a
|
remove redundant store of DODEFER in CFA of deferred word
|
2020-10-31 11:57:35 -05:00 |
Jesse D. McDonald
|
70c87e3d7a
|
refactor word header so only >NAME involves variable-length data
|
2020-10-31 11:55:57 -05:00 |
Jesse D. McDonald
|
3009bc84e5
|
remove ['] and [CHAR], add MARKER and PRESERVED, tweak bootstrap word lists, etc.
|
2020-10-31 11:41:52 -05:00 |
Jesse D. McDonald
|
a1c55c0d64
|
fix for inverted condition in ABS
|
2020-10-28 01:21:02 -05:00 |
Jesse D. McDonald
|
e7dacc5582
|
fix WITHIN to match ANS FORTH (low ≤ test < high)
|
2020-10-27 22:55:28 -05:00 |
Jesse D. McDonald
|
63b0c745ab
|
rename WORD to PARSE-NAME (from FORTH 2012) which is a better match for the interface
|
2020-10-27 21:52:24 -05:00 |
Jesse D. McDonald
|
28559fc98c
|
unify AGAIN and REPEAT; allow multiple WHILEs and BEGIN … WHILE … UNTIL
|
2020-10-27 21:18:17 -05:00 |
Jesse D. McDonald
|
1ceedba773
|
redefine 2CONSTANT in terms of CREATE DOES>, saving two cells per use
|
2020-10-27 16:59:00 -05:00 |
Jesse D. McDonald
|
687012b7df
|
add #DFP for Decimal Fixed Precision numeric output
|
2020-10-27 16:56:44 -05:00 |
Jesse D. McDonald
|
67bb06dd8f
|
refactor & reorganize
|
2020-10-27 16:56:44 -05:00 |
Jesse D. McDonald
|
e268cac0a4
|
add a COMPOSE combinator and ALIAS defining word
|
2020-10-25 02:14:37 -05:00 |
Jesse D. McDonald
|
24682b970b
|
align ALLOCATE'd memory to 8 bytes with a magic number in the extra cell
|
2020-10-25 01:49:42 -05:00 |
Jesse D. McDonald
|
0d107e17d2
|
add a generic MERGE-SORT function for linked lists
|
2020-10-24 20:49:00 -05:00 |
Jesse D. McDonald
|
7de6cf5a0c
|
add tests for numeric literal parsing
|
2020-10-24 15:15:40 -05:00 |
Jesse D. McDonald
|
59ed031ca4
|
add parsing for binary, octal, and hexadecimal literals
|
2020-10-24 14:12:30 -05:00 |
Jesse D. McDonald
|
f89a98e0b0
|
disallow interpreting string literals in bootstrap mode
|
2020-10-24 14:08:09 -05:00 |
Jesse D. McDonald
|
36e704b6cb
|
fix for redundant U* primitive (signed and unsigned are the same)
|
2020-10-24 14:03:50 -05:00 |
Jesse D. McDonald
|
8dbc2939fc
|
add DUPLICATE to ALLOCATE and copy a string or other data
|
2020-10-24 11:14:33 -05:00 |
Jesse D. McDonald
|
89c2f4df3d
|
read string literals into a dynamically resized transient buffer
|
2020-10-24 11:07:38 -05:00 |
Jesse D. McDonald
|
46211d5662
|
make ALLOCATE of 0 bytes and FREE with a null address no-ops
|
2020-10-24 10:52:26 -05:00 |
Jesse D. McDonald
|
d68804f866
|
add a Makefile rule for refreshing test expected results
|
2020-10-24 10:48:38 -05:00 |
Jesse D. McDonald
|
688fe7369e
|
change %ALLOT to return the aligned address of the data structure
|
2020-10-23 23:33:14 -05:00 |
Jesse D. McDonald
|
21eb4fafc4
|
add CLOSURE to capture data and code in a single execution token
|
2020-10-23 23:32:35 -05:00 |
Jesse D. McDonald
|
15fa156d02
|
add N@ and N! to transfer a group of cells to or from memory
|
2020-10-23 23:31:11 -05:00 |
Jesse D. McDonald
|
92d806298b
|
reorganize into multiple word lists & shrink bootstrap words
|
2020-10-23 19:39:29 -05:00 |
Jesse D. McDonald
|
4b98e19304
|
use ALLOCATE for the terminal input buffer and search order entries
|
2020-10-23 12:33:29 -05:00 |
Jesse D. McDonald
|
9cf133a715
|
remove BUDDY-STATS from the test output since the details vary
|
2020-10-23 12:31:20 -05:00 |
Jesse D. McDonald
|
c09ca4a9e4
|
add RESIZE definition to match ALLOCATE and FREE
|
2020-10-23 01:32:33 -05:00 |
Jesse D. McDonald
|
7b44312892
|
add allocation of blocks for small objects with mmap
|
2020-10-22 23:34:05 -05:00 |
Jesse D. McDonald
|
64a1ee9810
|
add a simple unit-test framework
|
2020-10-22 21:03:27 -05:00 |
Jesse D. McDonald
|
447c212f09
|
implement LEAVE, [IF]…[ELSE]…[THEN], and various other changes
|
2020-10-22 20:55:01 -05:00 |
Jesse D. McDonald
|
77607934cd
|
add a full complement of double-cell primitives
|
2020-10-21 20:11:40 -05:00 |
Jesse D. McDonald
|
bcf5d80be0
|
add a basic README.md file
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
9e21704825
|
add large-object allocation (over 4 MB) with mmap
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
53c76a2e6a
|
tweak prompt format
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
1a0fb71dd2
|
display exception code in default THROW handler
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
4460297631
|
add pictured numeric output definitions as per ANS FORTH
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
d90c8857e2
|
formalize 'THROW with string' & ensure default string is empty
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
96ebc29630
|
simplify primitive code
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
2ceb9f75da
|
add more double-cell numeric primitives and definitions
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
b22e3e9c93
|
implement ALLOCATE and FREE using buddy allocator
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
c0434e415a
|
fix for RSHIFT implemented as left shift
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
2eaa43f85f
|
add decoding for { … } literals in SEE
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
29b949d583
|
add exception handling with THROW and CATCH, and a version of SEE
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
c0391de969
|
revise the input system to better align with ANS FORTH
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
3ae2ff353b
|
add more primitives from the ANS FORTH standard
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
4528e9c5d8
|
add project .gdbinit script to simplify debugging
|
2020-10-21 00:44:23 -05:00 |
Jesse D. McDonald
|
1d56576f49
|
separate bootstrap (asm) definitions from runtime definitions
|
2020-10-21 00:44:23 -05:00 |