GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - aw/fiveforths: 32-bit RISC-V Forth for microcontrollers

BranchesTags
Open more actions menu

Latest commit

 

History

75 Commits
75 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
docs
docs
 
 
src
src
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
debug.gdb
debug.gdb
 
 
djb2.c
djb2.c
 
 
fiveforths.s
fiveforths.s
 
 
ft232r.cfg
ft232r.cfg
 
 
openocd.cfg
openocd.cfg
 
 

Repository files navigation

FiveForths: 32-bit RISC-V Forth for microcontrollers

GitHub Workflow Status GitHub release justforfunnoreally.dev badge

FiveForths is a tiny Forth written in hand-coded RISC-V assembly, initially designed to run on the 32-bit Longan Nano (GD32VF103) microcontroller.

fiveforths-terminal

FiveForths currently uses the indirect threading model and only has 19 built-in primitive words. It is 100% fully functional and can be extended by adding new primitives (in Assembly) or by defining new words (in Forth). This implementation is loosely inspired by sectorforth, jonesforth, and derzforth.

Development progress has been logged regularly in the devlogs.


  1. Quick start
  2. Documentation
  3. Todo
  4. Contributing
  5. Changelog
  6. License

Quick start

The quickest way to get started is to download and flash one of the firmware binaries listed below:.

  • fiveforths-longan-nano-lite.bin (64K Flash, 20K RAM)
  • fiveforths-longan-nano.bin (128K Flash, 32K RAM)

See the TUTORIALS for detailed download and flashing information.

Documentation

  • TUTORIALS: a quick guide to get started
  • EXPLAIN: learn the story behind FiveForths
  • HOWTO: build, usage, and code examples in Forth and RISC-V Assembly
  • REFERENCE: learn the technical details, what's under the hood

TODO

  • Code cleanup and optimizations

Contributing

Please create a pull-request or open an issue on GitHub.

Changelog

0.5 (2023-05-29)

  • Fix issue #19 - Error building without zicsr extension
  • Fix issue #20 - Specify stm32loader instead of dfu-util in docs

0.4 (2023-01-23)

  • Fix issue #16 - Add the ability to read hex numbers
  • Update documentation
  • Add example for toggling an LED

0.3 (2023-01-19)

  • Fix issue #7 - Implement bounds checks for stacks
  • Fix issue #8 - Implement bounds checks for user dictionary
  • Fix issue #13 - TOIN should not be an address
  • Fix issue #14 - STORE primitive is incorrect
  • Add better error messages
  • Add detailed documentation in docs
  • Add djb2.c to generate a word's hash locally
  • Add RAM zerofill of unused dictionary space on reset

0.2 (2023-01-10)

  • Fix issue #9 - Handling of carriage return
  • Fix issue #11 - Ignore non-printable characters
  • Re-organize code to support different boards and MCUs
  • Add boot message when the device is reset
  • Add GitHub action to automatically build and publish the firmware binaries

0.1 2023-01-09 - First release

License

MIT License

Copyright (c) 2021~ Alexander Williams

About

32-bit RISC-V Forth for microcontrollers

fiveforths.a1w.ca

Topics

forthgd32vf103gnu-assemblylongan-nanomicrocontrollersrisc-v

Resources

Readme
MIT license
Activity

Stars

96 stars

Watchers

7 watching

Forks

6 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.