#tibasic #ti84 #ti83

bin+lib tibrs

Provides functionality to compile and decompile tibasic source for TI graphing calculators

4 releases

0.1.3 Apr 17, 2024
0.1.2 Apr 17, 2024
0.1.1 Mar 17, 2024
0.1.0 Jan 9, 2024

#1618 in Parser implementations

Download history 2/week @ 2024-07-07 3/week @ 2024-07-28

200 downloads per month

MIT license

17KB
292 lines

tibrs

A library and CLI for compimling and decompiling TI-BASIC to and from an 8xp outside of TI-CONNECT.

Installation

# add this crate to your project
$ cargo add tibrs

# install `tibc` binary
$ cargo install tibrs --bins
$ tibc --help # confirm installation

Crate Usage


fn main() -> {
    let source = fs::read_to_string("~/path/to/source.tib").unwrap();
    let tokens: Vec<tibrs::TibToken> = tibrs::parse_str(source).unwrap();
    let buf: Vec<u8> = compile(tokens, "DEMONAME".as_bytes()).unwrap();

    fs::write("~/path/to/DEMONAME.8xp", buf).unwrap();
}

CLI Usage

Note: when compiling 8xp files, tibc will infer the embedded PRGM var name from the first 8 letters of the outfile name, capitilized.

$ cargo install tibrs --bin tibc

# compile
$ tibc --compile --outfile DEMONAME.8xp source.tib

# decompile
$ tibc --decompile --outfile decomp.tib DEMONAME.8xp

References

This binary implementation was based off the highly useful Merthsoft TI Linkguide.

Dependencies

~5.5MB
~103K SLoC