{"id":42820205,"url":"https://github.com/aw/fiveforths","last_synced_at":"2026-01-30T06:52:27.226Z","repository":{"id":63396795,"uuid":"424801421","full_name":"aw/fiveforths","owner":"aw","description":"32-bit RISC-V Forth for microcontrollers","archived":false,"fork":false,"pushed_at":"2025-02-19T13:27:24.000Z","size":440,"stargazers_count":75,"open_issues_count":1,"forks_count":4,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-02-19T14:27:17.924Z","etag":null,"topics":["forth","gd32vf103","gnu-assembly","longan-nano","microcontrollers","risc-v"],"latest_commit_sha":null,"homepage":"https://fiveforths.a1w.ca","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-05T02:14:41.000Z","updated_at":"2025-02-19T13:27:29.000Z","dependencies_parsed_at":"2024-10-28T01:41:33.172Z","dependency_job_id":null,"html_url":"https://github.com/aw/fiveforths","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/aw/fiveforths","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aw%2Ffiveforths","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aw%2Ffiveforths/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aw%2Ffiveforths/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aw%2Ffiveforths/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aw","download_url":"https://codeload.github.com/aw/fiveforths/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aw%2Ffiveforths/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28907053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T06:42:00.998Z","status":"ssl_error","status_checked_at":"2026-01-30T06:41:58.659Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["forth","gd32vf103","gnu-assembly","longan-nano","microcontrollers","risc-v"],"created_at":"2026-01-30T06:52:26.587Z","updated_at":"2026-01-30T06:52:27.206Z","avatar_url":"https://github.com/aw.png","language":"Assembly","readme":"# FiveForths: 32-bit RISC-V Forth for microcontrollers\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/aw/fiveforths/main.yml) [![GitHub release](https://img.shields.io/github/release/aw/fiveforths.svg)](https://github.com/aw/fiveforths) [![justforfunnoreally.dev badge](https://img.shields.io/badge/justforfunnoreally-dev-9ff)](https://justforfunnoreally.dev)\n\n[FiveForths](https://github.com/aw/fiveforths) is a tiny [Forth](https://www.forth.com/starting-forth/) written in hand-coded RISC-V assembly, initially designed to run on the 32-bit [Longan Nano](https://longan.sipeed.com/en/) (GD32VF103) microcontroller.\n\n![fiveforths-terminal](https://user-images.githubusercontent.com/153401/213904509-089dd490-62e2-4c9d-9f9c-a6e5fab34e17.png)\n\n_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](https://github.com/cesarblum/sectorforth), [jonesforth](https://github.com/nornagon/jonesforth), and [derzforth](https://github.com/theandrew168/derzforth).\n\nDevelopment progress has been logged regularly in the [devlogs](https://fiveforths.a1w.ca/).\n\n---\n\n1. [Quick start](#quick-start)\n2. [Documentation](#documentation)\n3. [Todo](#todo)\n4. [Contributing](#contributing)\n5. [Changelog](#changelog)\n6. [License](#license)\n\n# Quick start\n\nThe quickest way to get started is to download and flash one of the firmware binaries listed below:.\n\n* [fiveforths-longan-nano-lite.bin](https://github.com/aw/fiveforths/releases/download/v0.5/fiveforths-longan-nano-lite.bin) (64K Flash, 20K RAM)\n* [fiveforths-longan-nano.bin](https://github.com/aw/fiveforths/releases/download/v0.5/fiveforths-longan-nano.bin) (128K Flash, 32K RAM)\n\nSee the [TUTORIALS](docs/TUTORIALS.md) for detailed download and flashing information.\n\n# Documentation\n\n* [TUTORIALS](docs/TUTORIALS.md): a quick guide to **get started**\n* [EXPLAIN](docs/EXPLAIN.md): learn the story behind _FiveForths_\n* [HOWTO](docs/HOWTO.md): build, usage, and code examples in Forth and RISC-V Assembly\n* [REFERENCE](docs/REFERENCE.md): learn the technical details, what's under the hood\n\n# TODO\n\n- [ ] Code cleanup and optimizations\n\n# Contributing\n\nPlease create a pull-request or [open an issue](https://github.com/aw/picolisp-kv/issues/new) on GitHub.\n\n# Changelog\n\n## 0.5 (2023-05-29)\n\n  * Fix issue #19 - Error building without zicsr extension\n  * Fix issue #20 - Specify `stm32loader` instead of `dfu-util` in docs\n\n## 0.4 (2023-01-23)\n\n  * Fix issue #16 - Add the ability to read hex numbers\n  * Update documentation\n  * Add example for toggling an LED\n\n## 0.3 (2023-01-19)\n\n  * Fix issue #7 - Implement bounds checks for stacks\n  * Fix issue #8 - Implement bounds checks for user dictionary\n  * Fix issue #13 - `TOIN` should not be an address\n  * Fix issue #14 - `STORE` primitive is incorrect\n  * Add better error messages\n  * Add detailed documentation in [docs](docs/)\n  * Add `djb2.c` to generate a word's hash locally\n  * Add RAM zerofill of unused dictionary space on reset\n\n## 0.2 (2023-01-10)\n\n  * Fix issue #9 - Handling of carriage return\n  * Fix issue #11 - Ignore non-printable characters\n  * Re-organize code to support different boards and MCUs\n  * Add boot message when the device is reset\n  * Add GitHub action to automatically build and publish the firmware binaries\n\n## 0.1 2023-01-09 - First release\n\n# License\n\n[MIT License](LICENSE)\n\nCopyright (c) 2021~ [Alexander Williams](https://a1w.ca)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faw%2Ffiveforths","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faw%2Ffiveforths","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faw%2Ffiveforths/lists"}