Page 1 of 1

zzzFORTH

Posted: Tue Nov 05, 2024 7:19 am
by bigbob
Hi,

For those who are interested in FORTH.

Introduction

zzzFORTH (also called ZFOS) written in 32-bit Intel-assembly and FORTH.
The best FORTH tutorial is "Starting FORTH by Leo Brodie":
https://www.forth.com/starting-forth/

https://github.com/MrBig321/zzzFORTH

Features

- Resolutions: 1024x768x16 or 640x480x16 (for Eee PC)
- Multitasking (but only one core or CPU is used)
- USB(EHCI, XHCI) driver (can read/write files from/to pendrive formatted to FAT32)
- Can boot from Floppy/HD/USB-MSD
In FORTH (in ZFOS/fthsrc/):
- IDE hard disk driver
- HDAudio driver (very limited)
- BLOCK
- HEXVW, HEXED
- TXTVW, TXTED
- SIN, COS, TAN, SQRT (fixed point math)
- LINE, POLYGON(can be filled), CIRCLE(can be filled), PAINT
- Sutherland-Cohen line-clipping
- Sutherland-Hodgman polygon clipping
- BEZIERQ, BEZIERC
- Scrolling of the content of rectangular areas
- QOI image format (decode/code) supported
- 3D (fixed point math) (e.g. rotating cubes)

See ZFOS/docs for details

The original assembly code of the drivers (IDE, HDAUDIO) are available in the ASM folder.

Planned (in FORTH):
- USB (EHCI, XHCI)
- Modified FAT32 filesystem
- AHCI
- Astronomical Algorithms (Jean Meeus !?)
- Games

How to build and run

Add executable permission to scripts (in zzzFORTH or ZFOS folder):
chmod +x *.sh
./buildAll.sh

See docs/emulators.txt or docs/USBBoot.txt on how to start.

EDIT:
Note that sometimes a file is not found when usbfsread is executed. It is a bug in usb/fat32.asm (usbfat32_read, long/short entries).
A fix has been uploaded, but still there can be problems with it (so it is not related to usb).

Re: zzzFORTH

Posted: Thu Nov 07, 2024 1:41 pm
by Alexey1994
bigbob wrote: Tue Nov 05, 2024 7:19 am https://github.com/MrBig321/zzzForth
60,000 loc in assembler. How long did it take you to write all this?

Re: zzzFORTH

Posted: Thu Nov 07, 2024 11:32 pm
by bigbob
I started it 10 or 11 years ago, but there were years when I didn't do anything in connection with the development.
Although periods of unemployment gave the development a huge boost :D
Most of the code that is available in FORTH now, was first written in assembly.