preForth.git
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

5 years agoAdd catch/throw
Ulrich Hoffmann [Wed, 15 Aug 2018 13:56:32 +0000 (15:56 +0200)]
Add catch/throw

5 years agoModified Does> w/o machine code in threaded code area, large literals in tokenizer
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

5 years agoAdd dynamic memory, execute and compile, do h@
Ulrich Hoffmann [Wed, 20 Jun 2018 20:27:29 +0000 (22:27 +0200)]
Add dynamic memory, execute and compile, do h@

5 years agoAdd tester to seedForth
Ulrich Hoffmann [Wed, 13 Jun 2018 17:17:21 +0000 (19:17 +0200)]
Add tester to seedForth

5 years agoAdd .gitignore
Ulrich Hoffmann [Wed, 13 Jun 2018 17:16:50 +0000 (19:16 +0200)]
Add .gitignore

5 years agoThe birth of seedForth
Ulrich Hoffmann [Wed, 13 Jun 2018 16:43:28 +0000 (18:43 +0200)]
The birth of seedForth

5 years agoAdd forth dump utility and tester
Ulrich Hoffmann [Wed, 13 Jun 2018 16:33:36 +0000 (18:33 +0200)]
Add forth dump utility and tester