Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jjyr/jonesforth_riscv

Jonesforth RISC-V port.
https://github.com/jjyr/jonesforth_riscv

forth jonesforth riscv

Last synced: about 1 month ago
JSON representation

Jonesforth RISC-V port.

Awesome Lists containing this project

README

        

# Jonesforth RISC-V

RISC-V 64 implementation of Jones forth.

The code is based on Richard WM Jones's excellent literate x86 assembly
implementation of Forth, more on which here:
http://rwmj.wordpress.com/2010/08/07/jonesforth-git-repository/

The x86 version source code is copied from a mirror repo: https://github.com/nornagon/jonesforth

The RISC-V version is rewritten by [JJy](https://justjjy.com), mostly modification is in the `jonesforth.S` file.

> The RISC-V version jonesforth is using RV64 instructions, so the WORD size and alignment is 8 bytes.

## Run

Run Qemu VM:

1. Start qemu RISC-V VM: `make qemu` - will outputs lots out logs, wait until complete the boot.
2. Push files to qemu VM: `make push-remote` - the files are under `/jonesforth`.
3. Connect to RISC-V VM: `make ssh`.

> The docker image is very large, you can build it locally if you can't download it from server https://github.com/jjyr/docker-riscv-qemu-fedora

Compile & Run:

1. Compile `make`.
2. Start REPL: `make run`.
3. Run all tests: `make test`

> We haven't passed all tests yet: [issue #1](https://github.com/jjyr/jonesforth_riscv/issues/1)

## RISC-V references

* [RISCV Specification](https://riscv.org/technical/specifications/)
* [RISC-V Assembly Programmer's Manual](https://github.com/riscv/riscv-asm-manual/blob/master/riscv-asm.md)