preForth.git
23 months agoAdd data and cdata commands in preForth (experimental) retro_experimental
Nick Downing [Tue, 3 May 2022 10:34:00 +0000 (20:34 +1000)]
Add data and cdata commands in preForth (experimental)

23 months agoRefactor preForth compiler a bit
Nick Downing [Sun, 1 May 2022 12:26:55 +0000 (22:26 +1000)]
Refactor preForth compiler a bit

23 months agoExperimental retroForth port
Nick Downing [Sun, 1 May 2022 10:59:13 +0000 (20:59 +1000)]
Experimental retroForth port

23 months agoFix a bug where hash table entry could be reused between Macro and end-macmro new_definer_syntax
Nick Downing [Sun, 1 May 2022 00:34:36 +0000 (10:34 +1000)]
Fix a bug where hash table entry could be reused between Macro and end-macmro

2 years agoImplement the Create macro in tokenizer, for a more Forth-like definer syntax
Nick Downing [Sat, 30 Apr 2022 09:51:12 +0000 (19:51 +1000)]
Implement the Create macro in tokenizer, for a more Forth-like definer syntax

2 years agoMove the creation of heads out of "new" and "create" so it becomes the caller's respo... less_use_of_heads
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

2 years agoIn tokenizer, improve consistency between :-definitions and Definer-definitions
Nick Downing [Sat, 30 Apr 2022 03:23:46 +0000 (13:23 +1000)]
In tokenizer, improve consistency between :-definitions and Definer-definitions

2 years agoMove h@ to directly after token everywhere, change compile, to , xt_is_address
Nick Downing [Fri, 29 Apr 2022 09:45:42 +0000 (19:45 +1000)]
Move h@ to directly after token everywhere, change compile, to ,

2 years agoFix oops 65c02_port
Nick Downing [Fri, 29 Apr 2022 08:05:08 +0000 (18:05 +1000)]
Fix oops

2 years agoChange __hp to use .ds rather than .dw, removes padding from seedForth binaries
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

2 years agoHack in /emu_65c02 to make multiple instructions executed, and fix warnings
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

2 years agoAdd /65c02 directory with working preForth and seedForth, add a sophisticated tracing...
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

2 years agoAdd /emu_65c02 directory, based on /emu_z80 with backend taken from https://github...
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

2 years agoAdd copyright notice (required for the GPLv3 license to be effective) z80_port1
Nick Downing [Thu, 28 Apr 2022 10:45:10 +0000 (20:45 +1000)]
Add copyright notice (required for the GPLv3 license to be effective)

2 years agoIn /z80 fix 32/16 bit divide bug and optimize multiply/divide, general tidy ups
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

2 years agoFix some missing tests in seedForthDemo after separating machine dependent part
Nick Downing [Thu, 28 Apr 2022 04:54:45 +0000 (14:54 +1000)]
Fix some missing tests in seedForthDemo after separating machine dependent part

2 years agoAdd preForthDemo build using host Forth (for debugging a new preForth runtime)
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)

2 years agoFix asxxxx < > syntax in /z80/test.asm
Nick Downing [Wed, 27 Apr 2022 13:22:34 +0000 (23:22 +1000)]
Fix asxxxx < > syntax in /z80/test.asm

2 years agoImprove appearance of z80 generated code slightly
Nick Downing [Wed, 27 Apr 2022 13:05:10 +0000 (23:05 +1000)]
Improve appearance of z80 generated code slightly

2 years agoAdd accidentally .gitignored /emu_z80/test.asm
Nick Downing [Wed, 27 Apr 2022 09:07:05 +0000 (19:07 +1000)]
Add accidentally .gitignored /emu_z80/test.asm

2 years agoFix typo in /emu_z80/Makefile
Nick Downing [Wed, 27 Apr 2022 08:11:04 +0000 (18:11 +1000)]
Fix typo in /emu_z80/Makefile

2 years agoHack in /emu_z80 to make everything inline and multiple instructions executed
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

2 years agoInsert z80-specific code in /z80, and change to 16-bit and from ITC to DTC
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

2 years agoCopy /i386 to /z80 and rename files as appropriate
Nick Downing [Wed, 27 Apr 2022 03:12:03 +0000 (13:12 +1000)]
Copy /i386 to /z80 and rename files as appropriate

2 years agoRename seedForth-i386.pre to seedForth-i386-rts.pre, implement a new seedForth-i386...
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

2 years agoMove 16/32 bit and ITC/DTC dependencies into extra sources in /i386 directory
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

2 years agoIn emu_z80, add "cat" functionality for stdin, and non-blocking I/O facilities
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

2 years agoAdd emu_z80 directory based on submodules https://github.com/nickd4/asxv5pxx.git...
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

2 years agoSeparate /preForth directory into /common and /i386, add appropriate Makefiles
Nick Downing [Wed, 27 Apr 2022 00:07:11 +0000 (10:07 +1000)]
Separate /preForth directory into /common and /i386, add appropriate Makefiles

2 years agoRemove load-i386-preForth.fs, instead list the compiler sources on command line simplify_bootstrapping
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

2 years agoSimplify bootstrapping by not creating a new wordlist and only defining the nonstanda...
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

2 years agoMove nonstandard words from preForth-rts.pre into preForth-rts-nonstandard.pre
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

2 years agoModify tokenizer to use a 1024-entry symbol table with closed hashing by CRC10 tokenizer_hash_table
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

2 years agoAdd CRC10/ATM (bit reversed) table generator and evaluator
Nick Downing [Sun, 24 Apr 2022 13:55:27 +0000 (23:55 +1000)]
Add CRC10/ATM (bit reversed) table generator and evaluator

2 years agoImplement DO/?DO/LOOP, as experimental ?DO didn't have a correct companion LOOP self_hosting_tokenizer
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

2 years agoImplement a new preForth/seedForth token eemit which is like emit but writes to stder...
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)

2 years agoImplement eot token similar to the old bye token (so we can compile bye token)
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)

2 years agoRemap tokens so that EOT is no longer a seedForth token, detect EOT everywhere
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

2 years agoMake ./seedForth-tokenizer self hosting (works, but hangs after tokenizing)
Nick Downing [Sat, 23 Apr 2022 16:35:38 +0000 (02:35 +1000)]
Make ./seedForth-tokenizer self hosting (works, but hangs after tokenizing)

2 years agoSplit out control flow words and a few others from hi.forth into runtime.forth
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

2 years agoRationalize how echo is handled during the seedForthInteractive loading phases
Nick Downing [Sat, 23 Apr 2022 15:17:50 +0000 (01:17 +1000)]
Rationalize how echo is handled during the seedForthInteractive loading phases

2 years agoMove most code from seedForthInteractive.seedsource into seedForthRuntime.seedsource...
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

2 years agoRationalize seedForth-tokenize.fs so that seedsource no longer has to be wrapped...
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

2 years agoMake key? use fdin instead of always STDIN_FILENO, and use poll() not ioctl()
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()

2 years agoImplement built-in "cat" functionality in preForth/seedForth for reading input
Nick Downing [Sat, 23 Apr 2022 05:08:37 +0000 (15:08 +1000)]
Implement built-in "cat" functionality in preForth/seedForth for reading input

2 years agoRemove duplicated code in seedForth-i386.pre, take from preForth-i386-rts.pre i386_improvements
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

2 years agoSplit seedforth-i386.pre further into header and body portions
Nick Downing [Fri, 22 Apr 2022 16:44:02 +0000 (02:44 +1000)]
Split seedforth-i386.pre further into header and body portions

2 years agoSplit seedForth-i386.pre into machine dependent/less machine dependent 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

2 years agoRationalize the sections in assembly output, make code be compiled into bss rather...
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

2 years agoRationalize how cr is emitted in generated preForth code, make DB/DD lowercase
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

2 years agoUse tabs in preForth-i386-rts.pre and seedForth-i386.pre, improve consistency
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

2 years agoRemove redundant stuff in the preForth-generated asm code
Nick Downing [Fri, 22 Apr 2022 03:47:16 +0000 (13:47 +1000)]
Remove redundant stuff in the preForth-generated asm code

2 years agoRemove .$(UNIXFLAVOUR) extension and file copies in favour of ifeq (GNU make)
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)

2 years agoAdd .gitignore, rationalize make clean, remove a gforth warning in tokenizer
Nick Downing [Fri, 22 Apr 2022 03:40:34 +0000 (13:40 +1000)]
Add .gitignore, rationalize make clean, remove a gforth warning in tokenizer

4 years agoUse LDEMULATION for modern Linux
Ulrich Hoffmann [Sat, 28 Mar 2020 14:16:19 +0000 (15:16 +0100)]
Use LDEMULATION for modern Linux

4 years agoUpdate docker support
Ulrich Hoffmann [Fri, 31 Jan 2020 18:12:59 +0000 (19:12 +0100)]
Update docker support

4 years agoCleanup documentation and startup file
Ulrich Hoffmann [Fri, 31 Jan 2020 13:49:57 +0000 (14:49 +0100)]
Cleanup documentation and startup file

4 years agoAdapt docker support
Ulrich Hoffmann [Fri, 31 Jan 2020 13:19:37 +0000 (14:19 +0100)]
Adapt docker support

4 years agoUse new tokenizer
Ulrich Hoffmann [Fri, 31 Jan 2020 13:12:10 +0000 (14:12 +0100)]
Use new tokenizer

4 years agoFocus just on i386 platform
Ulrich Hoffmann [Fri, 31 Jan 2020 12:56:21 +0000 (13:56 +0100)]
Focus just on i386 platform

4 years agoRemove side platforms and dialects
Ulrich Hoffmann [Fri, 31 Jan 2020 12:47:01 +0000 (13:47 +0100)]
Remove side platforms and dialects

4 years agoRemove uneccesary definitions
Ulrich Hoffmann [Thu, 2 Jan 2020 12:07:42 +0000 (13:07 +0100)]
Remove uneccesary definitions

4 years agoUpdate TODO
Ulrich Hoffmann [Thu, 2 Jan 2020 12:07:20 +0000 (13:07 +0100)]
Update TODO

4 years agoAdd save and empty to tokenized seedForth (and Tokenizer). Surround Test-Code by...
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

4 years agoAdd save and empty
Ulrich Hoffmann [Mon, 30 Dec 2019 21:31:37 +0000 (22:31 +0100)]
Add save and empty

4 years agoUpdate TODO
Ulrich Hoffmann [Mon, 30 Dec 2019 20:49:20 +0000 (21:49 +0100)]
Update TODO

4 years agoUpdate TODO
Ulrich Hoffmann [Mon, 30 Dec 2019 20:20:17 +0000 (21:20 +0100)]
Update TODO

4 years agoAdd abort, abort" and too probably too simple DO LOOP I unloop,
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,

4 years agoAdd refill, conditional compilation, and verbose header-removal
Ulrich Hoffmann [Fri, 20 Dec 2019 17:14:44 +0000 (18:14 +0100)]
Add refill, conditional compilation, and verbose header-removal

4 years agoAdd usleep, timeout in multitasker, interactive decompiler, dump
Ulrich Hoffmann [Fri, 20 Dec 2019 11:07:57 +0000 (12:07 +0100)]
Add usleep, timeout in multitasker, interactive decompiler, dump

4 years agoClean up
Ulrich Hoffmann [Sat, 14 Dec 2019 15:44:29 +0000 (16:44 +0100)]
Clean up

4 years agoSimplify kernel: Remove CATCH and THROW, leave INTERPRETER loop now by executing...
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

4 years agoExtend mutit tasker for catch and throw, export frame pointer from kernel, utf8 ...
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

4 years agoAdd high level multitasker and key?
Ulrich Hoffmann [Sat, 30 Nov 2019 18:12:10 +0000 (19:12 +0100)]
Add high level multitasker and key?

4 years agoAdd search order, status line, formatted number output DSL
Ulrich Hoffmann [Sat, 30 Nov 2019 11:06:30 +0000 (12:06 +0100)]
Add search order, status line, formatted number output DSL

4 years agoHave wordlists, prepare search order
uho [Tue, 26 Nov 2019 07:12:19 +0000 (08:12 +0100)]
Have wordlists, prepare search order

4 years agoHave ANSI colors, unicode prompt with emojies, unicode tests, sqrt, FOR NEXT
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

4 years agoFix typo and bump TODO
Ulrich Hoffmann [Mon, 25 Nov 2019 12:29:00 +0000 (13:29 +0100)]
Fix typo and bump TODO

4 years agoAdd headerless definitions
Ulrich Hoffmann [Sat, 23 Nov 2019 11:26:04 +0000 (12:26 +0100)]
Add headerless definitions

4 years agoExpand system
Ulrich Hoffmann [Thu, 14 Nov 2019 21:49:29 +0000 (22:49 +0100)]
Expand system

4 years agoAdd todo
Ulrich Hoffmann [Sat, 9 Nov 2019 10:34:26 +0000 (11:34 +0100)]
Add todo

4 years agoAllocate headers from dynamic memory
uho [Fri, 8 Nov 2019 07:30:19 +0000 (08:30 +0100)]
Allocate headers from dynamic memory

4 years agoExtend interactive seedForth
uho [Sun, 3 Nov 2019 19:37:40 +0000 (20:37 +0100)]
Extend interactive seedForth

4 years agoExtend interactive system
Ulrich Hoffmann [Sat, 2 Nov 2019 14:11:20 +0000 (15:11 +0100)]
Extend interactive system

4 years agoAdd headers
Ulrich Hoffmann [Sat, 2 Nov 2019 09:00:11 +0000 (10:00 +0100)]
Add headers

4 years agoAdd headers
Ulrich Hoffmann [Sat, 2 Nov 2019 08:58:59 +0000 (09:58 +0100)]
Add headers

4 years agoTweak it, beautify it
uho [Sat, 2 Nov 2019 08:47:32 +0000 (09:47 +0100)]
Tweak it, beautify it

4 years agoFix definition of 2! in Forth
Ulrich Hoffmann [Sat, 26 Oct 2019 12:30:27 +0000 (14:30 +0200)]
Fix definition of 2! in Forth

4 years agoUse exit instead of unnest
Ulrich Hoffmann [Sat, 26 Oct 2019 12:28:30 +0000 (14:28 +0200)]
Use exit instead of unnest

4 years agoAdapt dynamic memory to new tokenizer
Ulrich Hoffmann [Sat, 26 Oct 2019 12:17:53 +0000 (14:17 +0200)]
Adapt dynamic memory to new tokenizer

4 years agoFix typos in tokenizer
Ulrich Hoffmann [Sat, 26 Oct 2019 09:52:22 +0000 (11:52 +0200)]
Fix typos in tokenizer

4 years agoAdd EuroForth 2018 paper and slides
uho [Sat, 26 Oct 2019 08:20:10 +0000 (10:20 +0200)]
Add EuroForth 2018 paper and slides

4 years agoFix definition of 0=exit
uho [Sat, 26 Oct 2019 08:03:39 +0000 (10:03 +0200)]
Fix definition of 0=exit

4 years agoAdd line input
uho [Sat, 26 Oct 2019 08:03:04 +0000 (10:03 +0200)]
Add line input

4 years agoCleanup new tokenizer and seedForth demo
Ulrich Hoffmann [Wed, 23 Oct 2019 10:31:55 +0000 (12:31 +0200)]
Cleanup new tokenizer and seedForth demo

4 years agoRevise tokenizer, improve syntax
uho [Wed, 23 Oct 2019 05:33:00 +0000 (07:33 +0200)]
Revise tokenizer, improve syntax

4 years agoFix number uses and test results
Ulrich Hoffmann [Fri, 4 Oct 2019 10:37:01 +0000 (12:37 +0200)]
Fix number uses and test results

4 years agoDefine common names for allocation, cleanup
Ulrich Hoffmann [Fri, 4 Oct 2019 10:26:28 +0000 (12:26 +0200)]
Define common names for allocation, cleanup

5 years agoAdapt dynamic memory to new does> and large literals
Ulrich Hoffmann [Wed, 15 Aug 2018 15:59:35 +0000 (17:59 +0200)]
Adapt dynamic memory to new does> and large literals

5 years agoProvide counted string literals
Ulrich Hoffmann [Wed, 15 Aug 2018 15:11:27 +0000 (17:11 +0200)]
Provide counted string literals