X-87, 256b DOS (386+) VESA 2 640x400 procedural graphics shown at Outline 2026

#x86 sources : https://github.com/grz0zrg/codegolfing/tree/main/DOS/X-87

details : https://www.onirom.fr/wiki/codegolf/x-87/

Works on Bochs + Freedos. Slow render time.

Attached is a #gforth version which was used as an intermediate prototype to produce the x87 FPU code.

#demoscene #forth

Had a day off today and used the free time to implement "take", ""drop" and "inv" (inventory) for that #text #adventure #game skeleton I'm occasionally tinkering with.

On the #Commodore64 I use #durexforth, but the same code also works on the #MyNorMy4th and with #gforth and I plan to get it to work on the #Minstrel4d as well.

I still use just a two-word #parser at the moment but I'm already looking into ways of expanding that (will not be as great as Infocom but better than it is now).

#forth
#retrocoding

@xexyl @duke_of_germany
Actually Labels As Values I hope does become standard; I heard it was created for #gforth Its one of the easier ways to implement Forth. I use it in my post4 interpreter.
post4

Post4 is an indirect threaded Forth interpreter written in C.

Codeberg.org

Initially, I was just fooling around, creating code snippets to see how it all may fit together. Quick, dirty hacks you know.

But somehow things got more and more refined and today I was able to test my little two-word #textadventure #game #parser by walking between two rooms.

Written using #gforth but also works with #dxforth on #cpm80

#forth
#retroprogramming

Back to some code exercises. Technically, you could write a #textadventure game in #Forth using the dictionary and the command prompt. I've seen at least one code snippet following such an approach.

However, I want a "classic" #parser (e.g. TAKE SWORD) and make sure it keeps the user "fenced" inside the game engine.

This means I need arrays of strings to provide lists of words the parser can check the user input against.

So here is some basic research on how to accomplish this in #gforth (also works with #dxforth)

Made a #forth ARMv2 (macro) assembler (tested with #gforth) and took the opportunity to revamp my light #ARM Forth a bit by adding useful words with some light changes :

https://github.com/grz0zrg/ARM-ForthLite/blob/main/examples/ARMv2_assembler.fs

The goal was to have one mnemonic = one word so 90% of the source is a lot of repetition but it looks close to the conventional syntax. (In a postfix way)

Does not require much primitives.

Wrote a small write-up : https://www.onirom.fr/wiki/blog/20-12-2025_writing_an_armv2_assembler_in_forth/

Spielerei mit Zahlensystemen (Basis 36 😅) hatte heute überraschenderweise die volle Aufmerksamkeit der Studies. In der 8.Stunde!
#forth #gforth #lernen #schule

A look at #Forth from a #Lisp developer — David Wilson from Systems Crafters takes a look at #GForth:

Forth: A Language Weirder Than Lisp? - System Crafters Live!
https://www.youtube.com/watch?v=X7dSTEJK-uU

Forth: A Language Weirder Than Lisp? - System Crafters Live!

YouTube
🤯 It looks like I'm in some kind of weird exploratory state of obscure super niche topics. I’ve been reading and testing #forth language (#gforth) all day yesterday, for no reason. Then I decided to check if someone has ported it to another super niche microcontroller - #ch32v003, and it turns out someone has! https://github.com/gravitydiv10/ch32v003-forth on the top of that, the person looks like an #emacs user, judging by the org-mode file in one of their other repos and the posts in the Chinese emacs forums. 🤯
GitHub - GRAVITYDIV10/ch32v003-forth: a simple multi task forth on ch32v003

a simple multi task forth on ch32v003. Contribute to GRAVITYDIV10/ch32v003-forth development by creating an account on GitHub.

GitHub

OK, #GForth developers. My hats off to you for the single scariest coding method I've seen in Forth to date, but also the absolute king of all hacks. The last time I've seen this method used was for invoking machine language code in BASIC on an IBM PCjr.

see use
: use
parse-name open-blocks ; ok
see open-blocks
: open-blocks
c" �"��~�fNb�U��"��~BbNb�U��!��~atNb�UBbNb�U�9!��~cNb�U`H ��~sNb�UB�Nb�UcNb�U`H ��~atNb�UҧNb�UcNb�U`H ��~BbNb�U8!��~��Nb�UcNb�U`" (try) 2dup open-fpath-file throw rot close-file throw
2dup file-status throw bin open-file throw >r 2drop r> (endtry) AHEAD
...etc...

My hats off to you! 😆 🤔