Nick Downing [Sat, 30 Apr 2022 04:01:52 +0000 (14:01 +1000)]
Move the creation of heads out of "new" and "create" so it becomes the caller's responsibility to do so if they need to, in the case of "new" this is done by replacing "new drop" with "new h," in the seedForth kernel, whereas in the case of "create" it is done by having the tokenizer prefix the body of the user's Definer-definition with "here h," -- or could make the latter a user responsibility
Nick Downing [Sat, 30 Apr 2022 03:23:46 +0000 (13:23 +1000)]
In tokenizer, improve consistency between :-definitions and Definer-definitions
Nick Downing [Fri, 29 Apr 2022 09:45:42 +0000 (19:45 +1000)]
Move h@ to directly after token everywhere, change compile, to ,
Nick Downing [Fri, 29 Apr 2022 08:05:08 +0000 (18:05 +1000)]
Fix oops
Nick Downing [Fri, 29 Apr 2022 03:19:29 +0000 (13:19 +1000)]
Change __hp to use .ds rather than .dw, removes padding from seedForth binaries
Nick Downing [Fri, 29 Apr 2022 01:07:55 +0000 (11:07 +1000)]
Hack in /emu_65c02 to make multiple instructions executed, and fix warnings
Nick Downing [Thu, 28 Apr 2022 01:21:10 +0000 (11:21 +1000)]
Add /65c02 directory with working preForth and seedForth, add a sophisticated tracing and symbolic debug (via annotated trace) system used to debug the 65C02 port, the trace is also available for the Z80 port and can be used for comparison
Nick Downing [Wed, 27 Apr 2022 09:08:17 +0000 (19:08 +1000)]
Add /emu_65c02 directory, based on /emu_z80 with backend taken from https://github.com/visrealm/vrEmu6502.git
Nick Downing [Thu, 28 Apr 2022 10:45:10 +0000 (20:45 +1000)]
Add copyright notice (required for the GPLv3 license to be effective)
Nick Downing [Thu, 28 Apr 2022 09:27:41 +0000 (19:27 +1000)]
In /z80 fix 32/16 bit divide bug and optimize multiply/divide, general tidy ups
Nick Downing [Thu, 28 Apr 2022 04:54:45 +0000 (14:54 +1000)]
Fix some missing tests in seedForthDemo after separating machine dependent part
Nick Downing [Thu, 28 Apr 2022 02:53:23 +0000 (12:53 +1000)]
Add preForthDemo build using host Forth (for debugging a new preForth runtime)
Nick Downing [Wed, 27 Apr 2022 13:22:34 +0000 (23:22 +1000)]
Fix asxxxx < > syntax in /z80/test.asm
Nick Downing [Wed, 27 Apr 2022 13:05:10 +0000 (23:05 +1000)]
Improve appearance of z80 generated code slightly
Nick Downing [Wed, 27 Apr 2022 09:07:05 +0000 (19:07 +1000)]
Add accidentally .gitignored /emu_z80/test.asm
Nick Downing [Wed, 27 Apr 2022 08:11:04 +0000 (18:11 +1000)]
Fix typo in /emu_z80/Makefile
Nick Downing [Wed, 27 Apr 2022 06:07:49 +0000 (16:07 +1000)]
Hack in /emu_z80 to make everything inline and multiple instructions executed
Nick Downing [Wed, 27 Apr 2022 04:48:51 +0000 (14:48 +1000)]
Insert z80-specific code in /z80, and change to 16-bit and from ITC to DTC
Nick Downing [Wed, 27 Apr 2022 03:12:03 +0000 (13:12 +1000)]
Copy /i386 to /z80 and rename files as appropriate
Nick Downing [Wed, 27 Apr 2022 04:33:36 +0000 (14:33 +1000)]
Rename seedForth-i386.pre to seedForth-i386-rts.pre, implement a new seedForth-i386.pre containing some compiler words so we can do special handling for DTC
Nick Downing [Wed, 27 Apr 2022 02:33:28 +0000 (12:33 +1000)]
Move 16/32 bit and ITC/DTC dependencies into extra sources in /i386 directory
Nick Downing [Wed, 27 Apr 2022 02:07:33 +0000 (12:07 +1000)]
In emu_z80, add "cat" functionality for stdin, and non-blocking I/O facilities
Nick Downing [Wed, 27 Apr 2022 01:11:06 +0000 (11:11 +1000)]
Add emu_z80 directory based on submodules https://github.com/nickd4/asxv5pxx.git and https://github.com/superzazu/z80.git
Nick Downing [Wed, 27 Apr 2022 00:07:11 +0000 (10:07 +1000)]
Separate /preForth directory into /common and /i386, add appropriate Makefiles
Nick Downing [Mon, 25 Apr 2022 02:40:35 +0000 (12:40 +1000)]
Remove load-i386-preForth.fs, instead list the compiler sources on command line
Nick Downing [Mon, 25 Apr 2022 02:20:13 +0000 (12:20 +1000)]
Simplify bootstrapping by not creating a new wordlist and only defining the nonstandard words on top of gForth's standard words, produces redefinition warnings
Nick Downing [Mon, 25 Apr 2022 01:56:08 +0000 (11:56 +1000)]
Move nonstandard words from preForth-rts.pre into preForth-rts-nonstandard.pre
Nick Downing [Sun, 24 Apr 2022 16:01:36 +0000 (02:01 +1000)]
Modify tokenizer to use a 1024-entry symbol table with closed hashing by CRC10
Nick Downing [Sun, 24 Apr 2022 13:55:27 +0000 (23:55 +1000)]
Add CRC10/ATM (bit reversed) table generator and evaluator
Nick Downing [Sun, 24 Apr 2022 13:53:43 +0000 (23:53 +1000)]
Implement DO/?DO/LOOP, as experimental ?DO didn't have a correct companion LOOP
Nick Downing [Sun, 24 Apr 2022 09:58:33 +0000 (19:58 +1000)]
Implement a new preForth/seedForth token eemit which is like emit but writes to stderr, fix self-hosted tokenizer termination issue (was debugged with eemit)
Nick Downing [Sun, 24 Apr 2022 08:51:36 +0000 (18:51 +1000)]
Implement eot token similar to the old bye token (so we can compile bye token)
Nick Downing [Sun, 24 Apr 2022 04:39:12 +0000 (14:39 +1000)]
Remap tokens so that EOT is no longer a seedForth token, detect EOT everywhere
Nick Downing [Sat, 23 Apr 2022 16:35:38 +0000 (02:35 +1000)]
Make ./seedForth-tokenizer self hosting (works, but hangs after tokenizing)
Nick Downing [Sat, 23 Apr 2022 15:35:35 +0000 (01:35 +1000)]
Split out control flow words and a few others from hi.forth into runtime.forth
Nick Downing [Sat, 23 Apr 2022 15:17:50 +0000 (01:17 +1000)]
Rationalize how echo is handled during the seedForthInteractive loading phases
Nick Downing [Sat, 23 Apr 2022 14:55:37 +0000 (00:55 +1000)]
Move most code from seedForthInteractive.seedsource into seedForthRuntime.seedsource, so that we can run textual forth code without the tests or the banner
Nick Downing [Sat, 23 Apr 2022 14:09:42 +0000 (00:09 +1000)]
Rationalize seedForth-tokenize.fs so that seedsource no longer has to be wrapped with PROGRAM / END, also removes automatic bye token that was generated by END
Nick Downing [Sat, 23 Apr 2022 05:52:36 +0000 (15:52 +1000)]
Make key? use fdin instead of always STDIN_FILENO, and use poll() not ioctl()
Nick Downing [Sat, 23 Apr 2022 05:08:37 +0000 (15:08 +1000)]
Implement built-in "cat" functionality in preForth/seedForth for reading input
Nick Downing [Fri, 22 Apr 2022 16:55:09 +0000 (02:55 +1000)]
Remove duplicated code in seedForth-i386.pre, take from preForth-i386-rts.pre
Nick Downing [Fri, 22 Apr 2022 16:44:02 +0000 (02:44 +1000)]
Split seedforth-i386.pre further into header and body portions
Nick Downing [Fri, 22 Apr 2022 16:36:05 +0000 (02:36 +1000)]
Split seedForth-i386.pre into machine dependent/less machine dependent portions
Nick Downing [Fri, 22 Apr 2022 16:08:40 +0000 (02:08 +1000)]
Rationalize the sections in assembly output, make code be compiled into bss rather than text section which avoids the need to call mprotect(), rename things
Nick Downing [Fri, 22 Apr 2022 15:16:09 +0000 (01:16 +1000)]
Rationalize how cr is emitted in generated preForth code, make DB/DD lowercase
Nick Downing [Fri, 22 Apr 2022 04:27:56 +0000 (14:27 +1000)]
Use tabs in preForth-i386-rts.pre and seedForth-i386.pre, improve consistency
Nick Downing [Fri, 22 Apr 2022 03:47:16 +0000 (13:47 +1000)]
Remove redundant stuff in the preForth-generated asm code
Nick Downing [Fri, 22 Apr 2022 04:32:33 +0000 (14:32 +1000)]
Remove .$(UNIXFLAVOUR) extension and file copies in favour of ifeq (GNU make)
Nick Downing [Fri, 22 Apr 2022 03:40:34 +0000 (13:40 +1000)]
Add .gitignore, rationalize make clean, remove a gforth warning in tokenizer
Ulrich Hoffmann [Sat, 28 Mar 2020 14:16:19 +0000 (15:16 +0100)]
Use LDEMULATION for modern Linux
Ulrich Hoffmann [Fri, 31 Jan 2020 18:12:59 +0000 (19:12 +0100)]
Update docker support
Ulrich Hoffmann [Fri, 31 Jan 2020 13:49:57 +0000 (14:49 +0100)]
Cleanup documentation and startup file
Ulrich Hoffmann [Fri, 31 Jan 2020 13:19:37 +0000 (14:19 +0100)]
Adapt docker support
Ulrich Hoffmann [Fri, 31 Jan 2020 13:12:10 +0000 (14:12 +0100)]
Use new tokenizer
Ulrich Hoffmann [Fri, 31 Jan 2020 12:56:21 +0000 (13:56 +0100)]
Focus just on i386 platform
Ulrich Hoffmann [Fri, 31 Jan 2020 12:47:01 +0000 (13:47 +0100)]
Remove side platforms and dialects
Ulrich Hoffmann [Thu, 2 Jan 2020 12:07:42 +0000 (13:07 +0100)]
Remove uneccesary definitions
Ulrich Hoffmann [Thu, 2 Jan 2020 12:07:20 +0000 (13:07 +0100)]
Update TODO
Ulrich Hoffmann [Wed, 1 Jan 2020 20:15:19 +0000 (21:15 +0100)]
Add save and empty to tokenized seedForth (and Tokenizer). Surround Test-Code by start-tests and end-tests in order to remove temporary definitions
Ulrich Hoffmann [Mon, 30 Dec 2019 21:31:37 +0000 (22:31 +0100)]
Add save and empty
Ulrich Hoffmann [Mon, 30 Dec 2019 20:49:20 +0000 (21:49 +0100)]
Update TODO
Ulrich Hoffmann [Mon, 30 Dec 2019 20:20:17 +0000 (21:20 +0100)]
Update TODO
Ulrich Hoffmann [Mon, 23 Dec 2019 14:32:19 +0000 (15:32 +0100)]
Add abort, abort" and too probably too simple DO LOOP I unloop,
Ulrich Hoffmann [Fri, 20 Dec 2019 17:14:44 +0000 (18:14 +0100)]
Add refill, conditional compilation, and verbose header-removal
Ulrich Hoffmann [Fri, 20 Dec 2019 11:07:57 +0000 (12:07 +0100)]
Add usleep, timeout in multitasker, interactive decompiler, dump
Ulrich Hoffmann [Sat, 14 Dec 2019 15:44:29 +0000 (16:44 +0100)]
Clean up
Ulrich Hoffmann [Sat, 14 Dec 2019 11:27:54 +0000 (12:27 +0100)]
Simplify kernel: Remove CATCH and THROW, leave INTERPRETER loop now by executing EXIT, Extend Kernel: also use double byte tokens
Ulrich Hoffmann [Tue, 10 Dec 2019 14:56:49 +0000 (15:56 +0100)]
Extend mutit tasker for catch and throw, export frame pointer from kernel, utf8 / code point conversion
Ulrich Hoffmann [Sat, 30 Nov 2019 18:12:10 +0000 (19:12 +0100)]
Add high level multitasker and key?
Ulrich Hoffmann [Sat, 30 Nov 2019 11:06:30 +0000 (12:06 +0100)]
Add search order, status line, formatted number output DSL
uho [Tue, 26 Nov 2019 07:12:19 +0000 (08:12 +0100)]
Have wordlists, prepare search order
Ulrich Hoffmann [Mon, 25 Nov 2019 12:36:22 +0000 (13:36 +0100)]
Have ANSI colors, unicode prompt with emojies, unicode tests, sqrt, FOR NEXT
Ulrich Hoffmann [Mon, 25 Nov 2019 12:29:00 +0000 (13:29 +0100)]
Fix typo and bump TODO
Ulrich Hoffmann [Sat, 23 Nov 2019 11:26:04 +0000 (12:26 +0100)]
Add headerless definitions
Ulrich Hoffmann [Thu, 14 Nov 2019 21:49:29 +0000 (22:49 +0100)]
Expand system
Ulrich Hoffmann [Sat, 9 Nov 2019 10:34:26 +0000 (11:34 +0100)]
Add todo
uho [Fri, 8 Nov 2019 07:30:19 +0000 (08:30 +0100)]
Allocate headers from dynamic memory
uho [Sun, 3 Nov 2019 19:37:40 +0000 (20:37 +0100)]
Extend interactive seedForth
Ulrich Hoffmann [Sat, 2 Nov 2019 14:11:20 +0000 (15:11 +0100)]
Extend interactive system
Ulrich Hoffmann [Sat, 2 Nov 2019 09:00:11 +0000 (10:00 +0100)]
Add headers
Ulrich Hoffmann [Sat, 2 Nov 2019 08:58:59 +0000 (09:58 +0100)]
Add headers
uho [Sat, 2 Nov 2019 08:47:32 +0000 (09:47 +0100)]
Tweak it, beautify it
Ulrich Hoffmann [Sat, 26 Oct 2019 12:30:27 +0000 (14:30 +0200)]
Fix definition of 2! in Forth
Ulrich Hoffmann [Sat, 26 Oct 2019 12:28:30 +0000 (14:28 +0200)]
Use exit instead of unnest
Ulrich Hoffmann [Sat, 26 Oct 2019 12:17:53 +0000 (14:17 +0200)]
Adapt dynamic memory to new tokenizer
Ulrich Hoffmann [Sat, 26 Oct 2019 09:52:22 +0000 (11:52 +0200)]
Fix typos in tokenizer
uho [Sat, 26 Oct 2019 08:20:10 +0000 (10:20 +0200)]
Add EuroForth 2018 paper and slides
uho [Sat, 26 Oct 2019 08:03:39 +0000 (10:03 +0200)]
Fix definition of 0=exit
uho [Sat, 26 Oct 2019 08:03:04 +0000 (10:03 +0200)]
Add line input
Ulrich Hoffmann [Wed, 23 Oct 2019 10:31:55 +0000 (12:31 +0200)]
Cleanup new tokenizer and seedForth demo
uho [Wed, 23 Oct 2019 05:33:00 +0000 (07:33 +0200)]
Revise tokenizer, improve syntax
Ulrich Hoffmann [Fri, 4 Oct 2019 10:37:01 +0000 (12:37 +0200)]
Fix number uses and test results
Ulrich Hoffmann [Fri, 4 Oct 2019 10:26:28 +0000 (12:26 +0200)]
Define common names for allocation, cleanup
Ulrich Hoffmann [Wed, 15 Aug 2018 15:59:35 +0000 (17:59 +0200)]
Adapt dynamic memory to new does> and large literals
Ulrich Hoffmann [Wed, 15 Aug 2018 15:11:27 +0000 (17:11 +0200)]
Provide counted string literals
Ulrich Hoffmann [Wed, 15 Aug 2018 13:56:32 +0000 (15:56 +0200)]
Add catch/throw
Ulrich Hoffmann [Fri, 22 Jun 2018 09:58:33 +0000 (11:58 +0200)]
Modified Does> w/o machine code in threaded code area, large literals in tokenizer
Ulrich Hoffmann [Wed, 20 Jun 2018 20:27:29 +0000 (22:27 +0200)]
Add dynamic memory, execute and compile, do h@
Ulrich Hoffmann [Wed, 13 Jun 2018 17:17:21 +0000 (19:17 +0200)]
Add tester to seedForth
Ulrich Hoffmann [Wed, 13 Jun 2018 17:16:50 +0000 (19:16 +0200)]
Add .gitignore