zzzFORTH
This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
- bigbob
- Member
Member - Posts: 122
- Joined: Tue Oct 01, 2013 2:50 am
- Location: Budapest, Hungary
- Contact:
zzzFORTH
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)
- Can boot from Floppy/HD/USB-MSD
In FORTH (in ZFOS/fthsrc/):
- IDE hard disk driver
- USB(EHCI, XHCI) driver (can read files from pendrive formatted to FAT32)
- 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 and USB(EHCI, XHCI)) are available in the ASM folder.
Planned (in FORTH):
- 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).
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)
- Can boot from Floppy/HD/USB-MSD
In FORTH (in ZFOS/fthsrc/):
- IDE hard disk driver
- USB(EHCI, XHCI) driver (can read files from pendrive formatted to FAT32)
- 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 and USB(EHCI, XHCI)) are available in the ASM folder.
Planned (in FORTH):
- 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).
Last edited by bigbob on Wed Dec 25, 2024 6:02 am, edited 3 times in total.
- Alexey1994
- Member
Member - Posts: 63
- Joined: Sat Jan 28, 2023 11:41 am
- Location: Belarus
- Contact:
Re: zzzFORTH
Post by Alexey1994 »
[引用]
60,000 loc in assembler. How long did it take you to write all this?
- bigbob
- Member
Member - Posts: 122
- Joined: Tue Oct 01, 2013 2:50 am
- Location: Budapest, Hungary
- Contact:
Re: zzzFORTH
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.
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.