Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cqb13/ti-tools

TI Tools is a CLI tool designed for converting 8xp files (used by TI-83 and TI-84 calculators) to text files and vice versa. It also supports various other features for working with 8xp files.
https://github.com/cqb13/ti-tools

8xp 8xp-files texas-instruments texas-instruments-calculators ti-84 ti-basic ti-calculators tokenization

Last synced: 11 days ago
JSON representation

TI Tools is a CLI tool designed for converting 8xp files (used by TI-83 and TI-84 calculators) to text files and vice versa. It also supports various other features for working with 8xp files.

Awesome Lists containing this project

README

        

# TI Tools

TI Tools is a CLI tool designed for converting 8xp files (used by TI-83 and TI-84 calculators) to text files and vice versa. It also supports various other features for working with 8xp files.

## Acknowledgments

This project would not be possible without the help of the following:

- [TI Toolkit Token Sheet](https://github.com/TI-Toolkit/tokens)
- [TI Toolkit Discord Bot](https://github.com/TI-Toolkit/DiscordBot/blob/main/tokens.json)
- [TI Basic Developer Wiki](http://tibasicdev.wikidot.com/tokens)
- [Link Protocol Guide v1.4](https://merthsoft.com/linkguide/)

## Installation

### Build from Source

Clone the repository and build the project using [Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html):

```sh
git clone https://github.com/cqb13/ti-tools.git
cd ti-tools
cargo build --release
# The binary will be located at target/release/ti-tools
```

To add the binary to your PATH, run:

```sh
cargo install --path .
```

### Pre-built Binaries

Pre-built binaries are available for Windows, macOS, and Linux on the [releases page](https://github.com/cqb13/ti-tools/releases).

## Usage

```sh
ti-tools [COMMAND] [OPTIONS]
```

## Commands

```
help - Prints help information
command (optional) The command you want help with

version - Prints version information

convert - Converts between 8xp/83p/82p, json, and txt
input (required) The input path to an 8xp, 83p, 82p, json or txt file
-o --output The output path to an 8xp, 83p, json, or txt file
-d --display-mode The characters to translate the tokens to [pretty, accessible, ti] | Default: accessible
-e --encode-mode The mode used to parse tokens [min, max, smart] | Default: smart
-c --content Display the content of the input file
-p --preview Display the decoded output
-m --mass Changes input required from file to directory for mass file decoding

search - Retrieves a description for a token
token (required) The token to search for
-t --type The type of token to search for [accessible, pretty, byte] | Default: accessible

rename - Renames the program name in a 8xp/82p/83p file
input (required) The input path to an 8xp/82p/83p file
-n --name The new program name (8 or less alphabetic characters)
-f --new-file Save the renamed program to a new file
-d --delete-old Delete the old file

comment - Write a custom comment to an 8xp/82p/83p file
input (required) The input path to an 8xp/82p/83p file
-c --comment The new program comment (42 or less characters)
-f --new-file Save the program with the updated comment to a new file
-d --delete-old Delete the old file

lock - Lock an 8xp/82p/83p file
input (required) The input path to an 8xp/82p/83p file
-f --new-file Save the locked program to a new file
-d --delete-old Delete the old file

unlock - unlock an 8xp/82p/83p file
input (required) The input path to an 8xp/82p/83p file
-f --new-file Save the unlocked program to a new file
-d --delete-old Delete the old file

archive - Set the program to be sent to Archive
input (required) The input path to an 8xp/82p/83p file
-f --new-file Save the archived program to a new file
-d --delete-old Delete the old file

unarchive - Set the program to be sent to RAM
input (required) The input path to an 8xp/82p/83p file
-f --new-file Save the un-archived program to a new file
-d --delete-old Delete the old file

details - Displays information about an 8xp/82p/83p file
input (required) The input path to an 8xp/82p/83p file

models - Prints the supported TI calculator models
```

## Examples

### Decode

```sh
ti-tools convert ./tests/programs/TOCCATA.8xp -p -c -o ./TOCCATA.txt
```

```sh
ti-tools convert ./tests/programs -o ./programs --mass
```

### Encode

```sh
ti-tools convert ./TOCCATA.txt -p -c -o ./TOCCATA.8xp
```

```sh
ti-tools convert ./programs -o ./programs-other --mass
```

## Contributing

Contributions are welcome! Feel free to fork this repository and submit pull requests.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.