/j1-tagged

J1 CPU emulator with tagged memory written in Rust.

Primary LanguageRustBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

J1 CPU emulator

J1 CPU emulator written in Rust.
Ported from j1 written in go.
requires rustup

build and install

$ cargo install --path . 

executables

Help with executable arguments <executable> -h or <executable> --help

Name Description
j1_tagged j1 emulator
j1_tagged_dump dump j1 cpu memory in assembly or instruction AST format

test

$ cargo test

document

$ cargo doc
# open j1-cpu/target/doc/j1/index.html with browser

run j1_tagged eforth repl

# option -r or --repl
$ j1_tagged --repl

run j1_tagged eforth repl with a script

# from j1-tagged directory
$ j1_tagged --repl --script resources/fib.4th

j1_tagged options

# help -h or --help
# Note: results saved to <script_file>-log.txt if not running repl
$ j1_tagged -h

j1_tagged 1.0
Roy Crippen
J1_tagged cpu emulator

USAGE:
    j1_tagged [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -r, --repl       Run the J1 forth repl
    -V, --version    Prints version information

OPTIONS:
    -b, --bin <bin_file>          Binary J1 forth image to load, default is j1e_bytes::J1E_BYTES
    -s, --script <script_file>    Forth script file to load and execute

todo

Task Done
stack
instructions
cpu
dump memory to asm and ast
j1 emulator
arguments for j1 executable
j1 gRPC service
move R->PC to bit 4
allow 5 bit opcodes
implement 32 bit tagged memory
add verbosity levels