added readme, made program installable

This commit is contained in:
raphy 2024-02-12 21:10:36 +01:00
parent 522043e376
commit b95c01116a
No known key found for this signature in database
GPG Key ID: 2987BB662DB3120B
3 changed files with 35 additions and 3 deletions

View File

@ -9,3 +9,6 @@ edition = "2021"
clap = { version = "4.4.8", features = ["derive"] }
log = "0.4"
simple_logger = "4.2.0"
[[bin]]
name = "dekejit"

31
README.md Normal file
View File

@ -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 <assemby_file> <output_file>` will read the provided `<assembly_file>` and write a binary file `<output_file>` which can be executed using `dekejit run <binary_file>`
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.

View File

@ -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