*
This commit is contained in:
parent
def41120c1
commit
3af4843598
17 changed files with 391 additions and 921 deletions
43
README.md
43
README.md
|
|
@ -1,5 +1,42 @@
|
|||
# Kestrel
|
||||
|
||||
**Kestrel** is an implementation of the
|
||||
[Uxn](https://wiki.xxiivv.com/site/uxn.html) virtual machine and
|
||||
[Varvara](https://wiki.xxiivv.com/site/varvara.html) ecosystem in OCaml.
|
||||
**Kestrel** is:
|
||||
|
||||
- an implementation of the [Uxn](https://wiki.xxiivv.com/site/uxn.html) virtual
|
||||
machine as a library in OCaml
|
||||
- an implementation of the [Varvara](https://wiki.xxiivv.com/site/varvara.html)
|
||||
ecosystem using said library, supporting the devices needed for command-line programs.
|
||||
|
||||
## Building
|
||||
|
||||
**Kestrel** requires OCaml 5.3 or upper, as it uses the newly introduced
|
||||
effects syntax.
|
||||
|
||||
There are no requirements aside from the OCaml standard library, so it can be
|
||||
built simply using `dune`.
|
||||
|
||||
```shell-session
|
||||
$ dune build
|
||||
```
|
||||
|
||||
It then can be run using `dune exec -- kestrel`.
|
||||
|
||||
```shell-session
|
||||
$ dune exec -- kestrel file.rom
|
||||
```
|
||||
|
||||
The `uxnmin` program, which is similar to upstream's in functionality, can be
|
||||
built without `dune`:
|
||||
|
||||
```shell-session
|
||||
$ ocamlopt exe/uxnmin.ml -o uxnmin
|
||||
```
|
||||
|
||||
## Bootstrapping
|
||||
|
||||
Since **Kestrel** supports the needed Varvara devices for running the Drifblim
|
||||
assembler, it can be used to bootstrap the ecosystem. Bundled in the repository
|
||||
are copies of the Drifloon hex dump, the source code for Drifblim, and `dzoe`'s
|
||||
`xh.rom`.
|
||||
|
||||
A bootstrap script is provided that builds the assembler and some test ROMs.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue