Crate tis_100 [] [src]

A TIS-100 emulator.

Example

use tis_100::save::parse_save;
use tis_100::machine::Sandbox;

// This program reads the value from the console and simply passes it to the console output.
let src = "@1\nMOV UP DOWN\n@5\nMOV UP DOWN\n@9\nMOV UP RIGHT\n@10\nMOV LEFT DOWN\n";

let save = parse_save(src).unwrap();
let mut sandbox = Sandbox::from_save(&save);

sandbox.write_console(42);

for _ in 0..5 {
    sandbox.step();
}

assert_eq!(sandbox.read_console(), Some(42));

Modules

core

Basic types for parsing and interpreting TIS-100 assembly code.

image

Constructs for generating images using the TIS-100.

io

Constructs for passing messages between TIS-100 execution nodes.

lex

Functions for splitting TIS-100 assembly code into lexemes.

machine

TIS-100 emulator implementations.

node

Types of nodes used in the TIS-100.

parse

Functions for parsing TIS-100 assembly code into instructions.

save

Functions for loading TIS-100 assembly code from save files.

spec

Constructs for specifying TIS-100 puzzles.