dsForth/TR-DOS

Show us what you're working on, (preferably with screenshots).
User avatar
ketmar
Manic Miner
Posts: 207
Joined: Tue Jun 16, 2020 5:25 pm

Re: dsForth/TR-DOS

Post by ketmar »

sorry for spamming with posts (this topic starting to look more like a developer blog, lol). so i finished converting dsForth to DTC. with DTC, each Forth word is one byte bigger, but each code word is two bytes smaller. it looks like they compenstates each other, so the image size is roughly the same with DTC. but the whole thing is ~1.2/1.5 times faster now. this is roughly the same speedup that Solo Forth got from the same transition. i believe that dsForth and Solo Forth are in the same speed league now (no benchmarking was done, though!).

p.s.: @PeterJ maybe we should create a subforum for "WIP projects"? "Brand new software" is good for announces, but the things like dsForth, with more-or-less constant progress reports only creates a useless noise there. and with "WIP projects" authors will be able to announce their projects, and give a link to development thread, if necessary. this way, "Brand new" will have only real announces and the corresponding discussion.
0 x

User avatar
PeterJ
Site Admin
Posts: 2683
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: dsForth/TR-DOS

Post by PeterJ »

@ketmar, the 'Showcase your work!" Subforum is the best place.
0 x

User avatar
ketmar
Manic Miner
Posts: 207
Joined: Tue Jun 16, 2020 5:25 pm

Re: dsForth/TR-DOS

Post by ketmar »

PeterJ wrote:
Mon Aug 10, 2020 10:15 pm
@ketmar,the 'Showcase your work!" Subforum is the best place.
oh, my bad. then move this topic there, if you please, so i'll stop spamming "brand new" with (mostly useless) updates. ;-)
1 x

User avatar
PeterJ
Site Admin
Posts: 2683
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: dsForth/TR-DOS

Post by PeterJ »

No problem at all @ketmar. The topic has been moved.
1 x

User avatar
ketmar
Manic Miner
Posts: 207
Joined: Tue Jun 16, 2020 5:25 pm

Re: dsForth/TR-DOS

Post by ketmar »

thank you alot, @PeterJ! now i can post my hourly updates, and won't irritate people looking for a fancy new game to play! ;-)

so, DTC is working, both optimiser and tracer were updated to the new code format, and the cross-compiler is fully functional again. i also implemented autocompletion in line editor, so you can type some letters, and press SS+ENT to ask the system to finish the word for you. i'm so used to autocompletion feature that i always tried to use it in dsForth, but alas, it wasn't there... until now! ;-)

i believe that we're close to the new release now. i'm also planning to write several simple demo games to show you all that Forth (and dsForth) is not a toy, and it can do much more that that awful "game" from Melbourne House tape. i'm not expecting people going mad and start writing new games in Forth, but hey, it is worth trying anyway! ;-)

if only i had such system 20 years ago...

anyway, don't adjust your sets! ;-)
2 x

User avatar
ketmar
Manic Miner
Posts: 207
Joined: Tue Jun 16, 2020 5:25 pm

Re: dsForth/TR-DOS

Post by ketmar »

added floating point support (with ROM calculator), including full-featured float<->string conversions (using calculator routines, so "42E18" can be parsed, and "4.2E+19" will be printed. i guess we're very close to 0.2.0 public release. ;-)

p.s.: don't expect the current development speed to stay the same after 0.2.0 release, tho. the system is more-or-less feature complete now, and for 0.3.0 release i need to complete various libraries, write documentation, and so on. the kind of work i don't really love to do.
0 x

User avatar
ketmar
Manic Miner
Posts: 207
Joined: Tue Jun 16, 2020 5:25 pm

Re: dsForth/TR-DOS

Post by ketmar »

the huge delay with new release is due to... oh... i spent last week writing x86 forth from scratch, in asm and forth. ;-) UrAsm already has UrForth built in, but it becomes more and more limiting to have forth built into assembler, and not vice versa. ;-) the plan is to create a full-featured cross-compiler/emulator. yeah, it prolly means porting Zymosis to Forth (or maybe to x86 asm). ;-)

anyway, 0.2.0 will still be UrAsm-based. and i will backport new loops implementation, with full break/continue support. oh, the joy of Forth: the code from quite big 32-bit system can be taken to little Speccy as-is, because UrForth was made mostly compatible with dsForth.

p.s.: UrForth Native is fully working now (and passes ANS tests where i think it worth support ANS standard). but i want it to be self-hosted, so i wrote (ahem... borro... wrote!) a huge part of built-in x86 assembler already.

and if you want to know why i'm doing all that, considering that there are prolly at least a billion of really good native x86 forth systems... because i can, of course.
0 x

User avatar
ketmar
Manic Miner
Posts: 207
Joined: Tue Jun 16, 2020 5:25 pm

Re: dsForth/TR-DOS

Post by ketmar »

so UrForth is self-hosting system now, which means that i have a working metacompiler framework. now i'm slowly doing natural-syntax Z80 assembler in it, and will use its metacompiler to cross-compile dsForth sources. all that means that dsForth project is not dead, and instead of being a mess of urasm and custom "almost-forth" syntax, it will be almost completely normal Forth, properly cross-compiled (with optimisiations, and better turnkey).

UrForth took slightly longer to write than i expected (3 weeks; i'm simply fine-tuning it now), due to writing natural-syntax x86 assembler in it first. that is, usual Forth assemblers are quite ugly, often looking like "4 [ebp] ecx mov". it is very easy to write the asm engine like that, but it is a PITA to use. so i wrote a custom parser and a "natural-syntax" asm, which accepts normal things, like "lea eax,[esi*4+edx+8]" instead.

i will do the same for Z80 assembler, and then will port current dsForth sources to the new system.

it means that there will be no 0.2.0 dsForth release, i'll jump staight to 0.4.0.
0 x

Post Reply