Another little demo written in #durexforth for the #c64. This one is an experiment with extended background colour mode and uses 56 unique character tiles.

#forth #generativeart #8bit #retroprogramming

https://www.youtube.com/watch?v=cmLVNIp5qoI

C64 Ribbons demo (DurexForth)

YouTube
DurexForth - C64-Wiki

@maxdevjs Yes, that's right. It's actively developed and complies with the Forth 2012 standard.
@amuletofyendor interesting... further curiosity: is it generally run in an emulator or actual hardware?
@maxdevjs It can run on either real or emulated hardware. I find it convenient to run in an emulator as you can paste code in from the likes of vscode. I'm sure it's personal preference though.
DurexForth provides both a cartridge and a disk image. Some additional libraries are only on the disk image, so I like to have both the cartridge and the disk images attached in Vice emulator.
Programs can also be saved to self contained files for distribution so the user doesn't need to know about Forth

@amuletofyendor thank you for the detailed explanation.

Let me check if I understood:
- the cartridge includes several demos (gfxdemo, mmldemo, ..)
- and optional modules (?). Can you list a few of these modules?

@maxdevjs The cartridge contains only the base environment and is equivalent to loading "*" on the disk but much faster (instant). To "include" any of the optional modules you'll need the disk. This includes things like the gfx, sid, and turtle libraries and a compat library with some lesser-used words ("functions") that are a part of the Forth 2012 spec. The disk also has the demo programs such as gfxdemo and fractals which demonstrate the use of the optional modules.

@amuletofyendor @amuletofyendor The following is probably more a vice thing, but

- to have both the cartridge and the disk images attached in Vice emulator I can "Attach disk image" (d64) and before/after "Attach cartridge image" (crt). I guess is this. What is the usefulness to have both attached? I wonder how I can discriminate between them...
- programs can also be saved to self contained files (with "Create/attach" datasette image, right? Or do you refer to something else?

@maxdevjs The usefulness of having both attached is simply that you can avoid typing load"*",8,1 every time you reset the computer, and the resulting wait for Forth to load, but you can still access the optional modules from the disk if you need them (I save my own programs to this disk too, while I'm learning).
@maxdevjs The manual contains details of saving a self-contained program. Essentially you can save the entire Forth runtime including your own newly defined words to a new disk. Further to this, you can define a word to run automatically after loading, and further to this, there is the "Turnkey" module for stripping out everything you wouldn't need in a distributed program, such as the interpreter.
@maxdevjs There is perhaps a bit of an art to this process. I haven't tried it yet 😂
@amuletofyendor at the moment I am fighting with 'v', stuck in insert mode :D
@maxdevjs hit "end" if you're using Vice, which I guess would be "restore" on a real C64
@amuletofyendor 👀 😃 saved my life once again. Happy new year 🥳 🎆
@maxdevjs The usefulness of "instant on" can't be overstated. Forth is stack-based. Especially while learning, stack overflows and stack underflows are common and will often crash the computer. For the same reason, it's good to have a disk attached and save your work regularly.
@amuletofyendor apparently I got it now: after a reset it reloads automatically