Commit Graph

67 Commits

Author SHA1 Message Date
Jesse D. McDonald ffb555c42f add DU.R, D.R, U.R, and .R for right-aligned numeric output 2020-11-05 18:57:26 -06:00
Jesse D. McDonald 50fe63b104 add OF? for logical tests in CASE structures 2020-11-05 17:01:39 -06:00
Jesse D. McDonald 0ee566ea39 formatting & whitespace 2020-11-05 02:07:48 -06:00
Jesse D. McDonald af34583b5f fix MARK so it works when interpreting, not just when compiling 2020-11-05 02:07:48 -06:00
Jesse D. McDonald 1f37a19c1b add ARGC, ARGV, and GETENV to access the command-line and environment variables 2020-11-05 02:07:48 -06:00
Jesse D. McDonald 73de579da0 add AA tree implementation 2020-11-05 02:07:48 -06:00
Jesse D. McDonald 4eb3fad278 add a form of LOCALS|…| for named local variables 2020-11-05 02:07:41 -06:00
Jesse D. McDonald 014033d715 add ELSE-IF … THEN-IF, other minor words, and cleanup 2020-11-01 03:26:55 -06:00
Jesse D. McDonald f3fae3f5c2 add truncation to 63 characters max when looking up words 2020-10-31 13:29:33 -05:00
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