colorForth is a dialect of Forth that uses color to replace punctuation. It is its own operating system, user interface, and development system (editor and compiler) on a small fraction of a floppy disk.
Since the author released his work into the public domain in 2001, several hobbyists and enthusiastic programmers have contributed to the development. This ISO image, part of the cfdos4 alpha-0.02 release, contains Conway's Game of Life, Mark Slicker's awesome Mandelbrot display program, and support for several devices including a partial TCP/IP stack.... read more
Release alpha-0.05 of cf_emu now includes an ISO image (ISOLinux/FreeDOS) with a modified COLOR.COM to demo colorForth to those who, up to now, have not been able to run the program natively. It should run on most modern x86 systems. The modification was to squeeze the Mandelbrot set into the first 63K by overwriting some of the code of the CM2001 image (Print, PNG, and LZ77).
Soon we should be able to release a fairly full-featured CDROM which boots directly into colorForth; no need for ISOLinux nor FreeDOS. But we ran into problems, so this is a "teaser" release.... read more
colorForth is a public domain operating system, development environment, and user interface that runs from a single floppy disk.
This SourceForge project is an attempt to extend the reach of Chuck Moore's code to more computers. It uses BIOS calls to load disk blocks and set video modes. It still does require a VESA card which supports a linear framebuffer at 800x600 or 1024x768 resolution.
This release runs on the "big 3" emulators: VMWare, QEMU, and Bochs, in order of best performance, and it should run on any x86 PC that meets the minimum video hardware requirement above.... read more
This is a bugfix release of cf_emu, the native colorForth binaries with shortcuts to your preexisting installations of Bochs, QEMU, and VMware Player.
colorForth is an operating system, user interface, and development environment occupying a small part of a floppy disk.
This bugfix was for the Mandelbrot display application included in the previous release. It is now possible to zoom without losing your place in the complex number plane, and the alt key, which is necessary to release the keyboard from the emulators to make a screenshot, no longer affects the image (it was previously the "zoom in" key).... read more
The newest release, cf_emu, creates 4 desktop shortcuts, for VMware Player (the fastest), QEMU (second fastest), Bochs-2.3, and Bochs compiled from CVS sources. The first two and the last use the 1024x768 image, and Bochs-2.3 uses 800x600 since I couldn't get fullscreen mode to work with that.
The latest CVS sources have a primitive Mandelbrot set generator: no pan nor zoom capability yet. Runs at either screen size; faster load on QEMU, faster run on VMWare.
I've tested this under QEMU for Windows 0.8.2 and VMWare Player 1.0.3. Download the a.img.gz file, gunzip it and edit an existing vmx file to use that as the floppy0 image with VMWare. The command for QEMU is: qemu.exe -L . -m 32 -fda a.img
Several bugs have been fixed, mostly related to the "offset errors" introduced when I moved the relocated code to an offset of 0x9400 instead of 0.
This is an experimental colorForth that uses BIOS calls for floppy I/O and can thus run under the unpatched Bochs-2.3 binary. It is considerably less sluggish than the previous beta version which runs on a Bochs built from recent CVS sources.
Feedback would be much appreciated.
just an arbitrary decision on my (jc's) part, but now that it's using unmodified Bochs sources, reliably reading and writing to the virtual floppy drive, and we haven't yet received a complaint, it's time to get more people involved and maybe actually make something useful out of this.
During this past week, the Bochs project accepted a patch to floppy.cc that allows a subset of non-DMA functionality which enables colorForth to run. Future releases of cfBochs will therefore not need a custom-patched version of Bochs once the Bochs project releases its next download.
Finally got floppy.cc patched to where it allows both reads and writes using polling rather than DMA. The download includes the patched Bochs; all you need other than this is the BIOS files that come with the Bochs project (http://bochs.sourceforge.net/) download.
one of the difficulties an experimenter runs across when compiling color.com from source was that only the first 12K assembled, and even that had many differences from the color.com downloadable from colorforth.com. where is the rest?
now you can see the full sources, decompiled from the 2001 color.com image. look at the Makefile in the "as" subdirectory for details.
Next step in my plan is to get non-DMA writes to work (and/or fix DMA code in boot.asm).
Uploaded first alpha release. Use at your own risk; danger is minimal since it runs under an emulator and can't even write to the virtual floppy disk. after download, it unzips into its own cfBochs/ directory, from where you run cfbochs.bat. Make sure you have Bochs-2.3 installed under \Program Files. this release is, of course, Windows-only, though it may have some use on other Bochs-supported platforms for the adventurous and/or creative.
now no longer crashes when hitting spacebar at logo screen to go into numeric keypad. can now, for example, "56 load" to show "rose" screen, and do simple command-line arithmetic such as "56 65 *". keystroke recognition is still slow, unlikely to be fixed except by faster emulation. cannot save, haven't yet patched Bochs floppy emulation for non-DMA write.
Volker Ruppert of the Bochs project applied our fullscreen patch, with minor modifications, to the CVS sources for Bochs. Still trying to solve slow keyboard servicing before continuing with floppy DMA support within cf and/or non-DMA support in Bochs.
I patched Bochs (get bochs/win32.cc from anonymous CVS) to run fullscreen, and now I can see what I'm typing... but for some reason the lag on keystrokes is a second or more, no idea why.
got rid of the AGP-specific code in gen.asm and instead am fetching the linear video memory via a VESA call. now colorForth comes up in all its glory on Bochs, but because my laptop screen is max 1024x768 resolution i can't see the bottom of the colorForth screen. also, floppy formats and writes won't work until i finish hacking the bochs floppy simulator.
figured out how to import the current sources; I'm working under Cygwin, you may need to make some changes if you're using Linux or whatever else. the current goal is just to get something that runs under Bochs. for that, Bochs must be modified, and I'll be uploading that patch shortly, which is a horrible kludge and will probably render Bochs's floppy support unusable for any other purpose. even with the modified Bochs, the colorForth produced using the Makefile under as/ will crash somewhere during the "load" procedure. it will also write into nonexistent memory long before then, somewhere during "ati0" in gen.asm. but there seems to be a bug in color.com from CM's website, which makes the floppy skip cylinder 1 altogether. or is this intentional? since I haven't gotten colorForth to work at all yet, I don't really have a clue what's going on.