Skip to content

Makes TI calculator upgrade files from ROM dumps

License

Notifications You must be signed in to change notification settings

KnightOS/mktiupgrade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mktiupgrade (1)

mktiupgrade - Build Texas Instruments calculator OS upgrades from ROM dumps

Installation

Linux, Mac, etc.:

$ make
# make install # as root

Windows

Install cygwin with scdoc, gcc, and make. Then, follow the Linux instructions.

Synopsis

'mktiupgrade' [options] infile outfile [pages...]

Description

Builds (and optionally signs) upgrade files to be sent to TI calculators from ROM dumps. infile should be a ROM dump with the OS, and outfile is the 73u, 8xu, or 8cu file to write the resulting upgrade to. Each page (specified in hexadecimal) will be extracted from the ROM dump and included with the upgrade. Additional pages may be automatically included if needed.

Options

-d, --device :: Specifies the target device type. If omitted, it will be inferred by the size of the ROM dump. The following options are valid:

* TI-73
* TI-83+
* TI-83+SE
* TI-84+
* TI-84+SE
* TI-84+CSE

-k, --key :: Specify the key file to sign the upgrade with. If omitted (and -s is not specified), the upgrade will be unsigned.

-n, --key-name :: Specify the name of the key, to be written to the OS header, in hexadecimal. If not included, it will be inferred from the key file name (i.e. "0A.key"). Specify this option after the key file.

-p, --print:: Prints information about the upgrade before writing it.

-r, --hw-revision :: Specify the maximum hardware revision. The default is 5.

-s, --signature :: Instead of calculating the signature while writing the upgrade file, instead use this signature file. This option overrides -k. You should specify -n manually. The default value is 0A if you choose not to.

-v, --version :: The upgrade version, in the format "major.minor". Each part can be between 0 and 255, inclusive. The default is "1.0".

Supported Devices

The following Texas Instruments calculators are supported:

  • TI-73
  • TI-83+
  • TI-83+ Silver Edition
  • TI-84+
  • TI-84+ Silver Edition
  • TI-84+ Color Silver Edition

Signing Keys

The Texas Instruments cryptographic signing keys may be found at http://brandonw.net/calculators/keys/. These keys do not work on all calculators, and you may need to use an additional exploit to load your operating system on newer models. An example of this process can be found in KnightOS, availble at https://github.com/KnightOS/KnightOS.

Examples

mktiupgrade input.rom output.8xu 00 01 02 03 4F:: Makes an upgrade from pages 00-03 and 4F of input.rom, then writes it to output.8xu, unsigned.

mktiupgrade -k 0A.key -v 2.3 input.rom output.8xu 00 01 02 03 4F:: Builds and signs an upgrade with the 0A key, and marks it as version "2.3".

mktiupgrade -s exploit.sig -n 0F input.rom output.8cu 00 01 02 03:: Builds an upgrade and uses the contents of exploit.sig as the signature, and indicates that the key is the 0F key. The result is written to output.8cu.

Authors

Maintained by Drew DeVault sir@cmpwn.com, who is assisted by other open source contributors. For more information about mktiupgrade development, see https://github.com/KnightOS/mktiupgrade.

Help, Bugs, Feedback

If you need help with KnightOS, want to keep up with progress, chat with developers, or ask any other questions about KnightOS, you can hang out in the IRC channel: #knightos on irc.libera.chat.

To report bugs, please create a GitHub issue or contact us on IRC.

If you'd like to contribute to the project, please see the contribution guidelines.