Scivoli is a demonstration of the eCos embedded operating system. It is a self-contained, bootable image viewer that can be written to a floppy disk together with an archive of jpeg's. It will then boot and loop through the jpeg images. It requires a VBE compatible video card to function. Many, but not all modern video cards meet this criteria.
The Scivoli distribution includes code to create your own image archives.
Try it out. You will need Tcl and tcllib to run md5check.tcl. These instructions should work for a Linux or BSD based system - windows users need to write the raw image to a floppy disk with a program such as rawrite.
./md5check.tcl image.bin /dev/fd0- you may have to use sudo if access to /dev/fd0 requires root access. Alternatively, you can just use
cpto transfer the file to disk:
cp image.bin /dev/fd0Although md5check has the advantage that it checks to see if the image has been successfully copied.
You are now ready to boot your computer from this floppy.
The source code is available from the SourceForge project page: http://sourceforge.net/projects/scivoli/
Scivoli manages to fit so many images on the floppy disk, because they are packed tightly with only a minimal offset table to keep track of them. The operating system, "application", and libjpeg themselves are only about 130K (and I haven't attempted to cut that down too much), so they take up relatively little space.
Both eCos and Forth can be very minimalist in nature, and infact, ZOG fits into less than 150K, at least with my current eCos configuration (i386, boots from floppy...).
What is it for? I have no idea - you tell me! I think it's a neat toy, though. The clever programmer could create an extremely small and powerful system that will even let the user interact and change it.
Check out the eCos and ficl web sites. I also added the words
'inb' and 'outb', which do what you would expect. To get
started, copy the floppy image directly to a floppy - using
cp ZOG.bin /dev/fd0 in Linux, for example. Then,
boot your computer using the floppy. It should come up with a
screen which shows you that it has loaded several extensions,
and the ficl version. Try typing a few things in...
For instance, try this:
: sc 0x3c9 outb ; 7 0x3c8 outb 0xff sc 0 sc 0 sc
If all goes well, it should turn the text on your screen red.
Please note - the source code is included so that you may have a look, but it may be difficult to make it compile into a running system. I'm not an expert in packaging eCos stuff yet - I'll see what I can do.
ZOG is named for the former King of Albania - King Zog. Not that he was a positive influence on humanity, I just thought the name sounded interesting.