HNHacker News
TopNewBestAskShowJobs

crc_

24 karma · joined February 17, 2021

I develop RetroForth and Konilo.
submissionscomments
crc_··on Ilo – a Forth system running on UEFI
With this, I wasn't seeing any output with -display curses. It does work with -nographic or using a vnc connection to qemu's display, as well as on the two physical machines I currently have access to.
crc_··on Ilo – a Forth system running on UEFI
Thanks; I'll start doing that when running on Linux. (I had missed this, as my main dev box is running OpenBSD which doesn't have kvm)
crc_··on Ilo – a Forth system running on UEFI
64kW of RAM @ a 4 byte (32-bit) word size, so 256KiB of actual RAM for the applications running on ilo.

For a reference, the 8088 build needs a bit more than that to account for stacks, the VM code, drivers, and memory needed for the actual hardware. (Around 384KiB physical RAM on an 8088/8086 works well from my testing, but I've tested with 285-320KiB in non-standard configurations under a few emulation targets).

crc_··on Ilo – a Forth system running on UEFI
I wasn't aware of the clash when I chose the name, unfortunately.
crc_··on Ilo – a Forth system running on UEFI
For RetroForth, I have a new interface under development that may be somewhat like this. A screenshot can be seen at https://imgur.com/a/z4jhq6e

I use RetroForth as a working environment on Unix [mostly OpenBSD & FreeBSD], with an (unreleased) userland written in it, along with some use of external standard utilities. I'm still working on improvements around chaining programs via a pipe-like structure, but it's been my main environment apart from Konilo for a few years now.

crc_··on Ilo – a Forth system running on UEFI
I'm not well versed in qemu's various options. When I didn't specify a BIOS image, it seems to be using SeaBIOS, not UEFI, and hangs on "Booting from Hard Disk...". I should be able to start doing proper videos soon; I've been slowly working towards that.

I can say that the display & overall performance is noticeably faster on the two actual computers I tested on than under qemu on my Linux system.

crc_··on ReMarkable Paper Pro Move
Supernote hasn't posted anything about the potential future Linux system. I'm personally not expecting this to actually come around.

The standard OS is derived from Android, but has no Google Play services and only supports side loading (which works well via ADB; I've not tried other app stores like FDroid). It doesn't have a lot of standard Android things like a home screen/launcher, no notifications, and no UI for switching between apps other than using the sidebar to bring up the application list and going back that way. There are no speed modes for adjusting refresh rates.

IMO, it's a great eink notepad & sketch book, and makes a good ereader with something like koreader, but it's not good as an Android tablet.

crc_··on Konilo: A personal computing system in Forth
I'm not sure I'd quite count this as Forth; it's more of a very simple monitor for loading and running code. It's not a bad approach for use with a host Forth though.
crc_··on Konilo: A personal computing system in Forth
I wrote a short article on interfacing with Konilo using external tools. It's at https://konilo.org/articles/interfacing-with-konilo.txt
crc_··on Konilo: A personal computing system in Forth
Thank you for the feedback.

I'm hoping to have the documentation considerably improved over the remainder of the year. Apart from the current work on the hypertext manual, a larger book format manual and tutorial are being worked on, though they're both very incomplete at present.

On the internal/external bits, Konilo is largely intended to be a self contained environment, but it is possible to use in some contexts with outside tools. I'll write up something on this in the next few days and will post a reply in this thread with a link once it's done.

crc_··on Konilo: A personal computing system in Forth
Konilo is not an ANSI Forth. It's a unique dialect with similarities to my older RetroForth system, which is also not a traditional model.

In Konilo, that example would look like:

  :variable d:create #0 comma ;
and using it would appear as:

  'ORANGES variable
While much of the system is complete, documentation has been lacking, partly due to me not investing much time on this while things were evolving. Now that it's stable, I am working on this, and have added some information to the manual (see https://konilo.org/manual) to help clarify that it's not a traditional Forth model.
crc_··on Konilo: A personal computing system in Forth
Filesystems introduce complexity that may not be needed, especially on smaller targets.

I'm personally not averse to file systems. I've implemented (but not yet published) a couple for testing purposes. It's probable that one or more of these will eventually be included in Konilo. But that won't happen until I write a program that needs this and have an implementation that I'm happy with.

crc_··on Konilo: A personal computing system in Forth
ilo could likely be made to work, though with some limitations.

From a quick reading of the linked system:

- ilo is little endian (for block & rom format); if you wanted to keep external compatibility, this would need to be dealt with. It's not difficult to do this; e.g., the 68k Mac version does this: fossils.retroforth.org:8000/ilo/file?name=vm/ilo-68k-mac.c&ci=tip

- this system presents some memory limits that would necessitate changes to ilo. Two aspects stand out to me.

First, separate code & data sections, with a limit of 64K each. ilo's standard memory area is a flat 65,536 32-bit words, needing 256K. This can be reduced, but will then not work with a standard Konilo rom. (The memory layout in the Konilo rom can be edited by modifying the assembly, but the overall reduction in available space will be very limiting for a full Konilo system. It'd be fine for using just the basic wordset in the rom or for assembly programs).

Second, memory is divided into 2K banks, so a bit of work in ilo may be needed to deal with that. The previously linked Mac version can deal with this as well.

- performance will be slow.

ilo is internally a 32-bit system. I've built & run it on an old 8088 MS-DOS system, but it's very slow there. I suspect it'd also be quite slow here as this is another 16-bit system.

I don't have the timings for this, but starting up a minimal Konilo system on an emulated Mac Plus (mini vMac @ 1x, emulating an 8MHz 68k CPU) takes 1m8s. It took quite a bit longer to start up on the DOS system.

Though again, this is when running Konilo. It'll be much faster with smaller assembly programs or things that do less i/o.

crc_··on Konilo: A personal computing system in Forth
There is a floppy image on the x86 page. I also have multiboot compatible kernels linked there for use with GRUB or similar bootloaders.
crc_··on Konilo: A personal computing system in Forth
There is some limited graphics support. The underlying system (ilo) has a branch for x11 providing a limited framebuffer and pointing device support, and the native x86 system optionally supports a low resolution display (but no mouse yet). My son & I are working on expanding the graphics functionality, though we aren't expecting to have this work finished until later this year.
crc_··on Konilo: A personal computing system in Forth
There is a version that runs natively on x86 hardware (through it's a 32-bit system, aimed at older hardware; my newest x86 hardware is over a decade old and I've not had time to work much on a 64-bit system & drivers). See konilo.org/x86
crc_··on Konilo: A personal computing system in Forth
This is correct.
crc_··on Retro: A modern, pragmatic Forth
I'd love to have a better name for this, and am quite willing to change my description of it when I find one.
crc_··on Goodbye Freenode
Currently you can.
crc_··on RetroForth 2021.1
That is correct.

I use FreeBSD and OpenBSD, the ports/packages for others are contributed by others.

crc_··on RetroForth 2021.1
I've identified the issue. A correctly built copy of the ePub is at https://forthworks.com/retro/r/RETRO12-2021.1.epub (replacing the broken one) and I've now issued a 2021.2 release to fix the issue that caused this.
crc_··on RetroForth 2021.1
I'll investigate this and get a bug fix release out ASAP.
crc_··on RetroForth 2021.1
A few comments follow; note that I'm not unbiased :)

RetroForth is smaller and easier to build than gforth or Factor. I actively use it and seek to improve it, and I've been told the documentation is good, though I still feel I have a long way to go on that front. It's not a traditional Forth, but it works well for me. I borrow things from traditional Forth, colorForth, Factor, 8th, and other languages when I think they make sense for my needs. Releases are quarterly, with daily snapshots provided.

Gforth is big and I find it to be difficult to build from source. If you need or want a traditional/standard Forth, it's probably what I'd recommend if using one of the commercial ones isn't an option. Definitely build it from source though; the releases are infrequent and the development versions have a lot of bug fixes and improvements.

Factor is big, has lots of interesting stuff, but apart from stacks and colon decisions, really doesn't feel like Forth to me. It is under active development, but releases other than snapshots are very infrequent (last in 2018). Building from source isn't something I've done with this in years, and platform support is more limited (Linux, Windows, macOS, on x86 or x86-64). I've borrowed some ideas and terminology from Factor over the years and would consider it worth learning from.

crc_··on RetroForth 2021.1
It's not only in ePub.

The canonical source for the documentation is in doc/book, with HTML formatted copies in doc/html and a Markdown copy as doc/RETRO-Book.md. The glossary of words is also included separately as a text file under the doc directory.

crc_··on RetroForth 2021.1
RainbowForth is interesting, but unrelated to RetroForth.
crc_··on RetroForth 2021.1
The server limits the number of connections; this is likely the heaviest traffic it's seen; I've raised the limits a little to hopefully help with this.