diff --git a/Cargo.toml b/Cargo.toml index 9a74643..63f56d9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,3 +9,6 @@ edition = "2021" clap = { version = "4.4.8", features = ["derive"] } log = "0.4" simple_logger = "4.2.0" + +[[bin]] +name = "dekejit" diff --git a/README.md b/README.md new file mode 100644 index 0000000..6a8e806 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# DEKEJIT + +## EXPERIMENTAL!! NOTHING WORKS AND MAKES SENSE!!! + +This is an experimental 16-bit virtual machine. + +A lenghty description can be found [here.](spec.md) + +If you want to have a great time, you can try experimenting with it: + +### Installation + +Clone this repository, and run "cargo build". + +This currently builds the virtual machine, which can execute binary files, and an assembler which can turn text files into binary files. + +To install the program, run `cargo install --path .` . + +### Usage + +`dekejit build ` will read the provided `` and write a binary file `` which can be executed using `dekejit run ` + +A few example files can be found in `tests/assembly/`. + + +### Future + +Right now the only possible way to use the virtual machine is to manually write the assembly. +In the future, small compilers for toy languages will be built that target my toy assembly. + + diff --git a/spec.md b/spec.md index 37d3c4b..379a80d 100644 --- a/spec.md +++ b/spec.md @@ -91,9 +91,7 @@ The constant is added to the value of the second register argument. ### JIT's system calls: -the `CALL` instruction is a bit of a hack because I want to load more functionality into the thing. -The JIT can decide what to do with the register s0 and the number c. -It should be possible to open files, write files, read stdin, write to stdout, etc... +What the `CALL` instruction does is up to implementations. The JIT can decide what to do with the register s0 and the number c. It could provide mechanisms to perform I/O on a true filesystem, on an emulated filesystem, or it could do something else entirely, i.e, something web related. #### io\_vec: first systemcall environment