Assembly shell

On graphing calculators, an assembly shell is a program that is used to run other programs written in the calculator's native machine code rather than the calculator's standard high-level programming language. While all assembly shells can run assembly programs, some can also run high-level programs. For example, MirageOS and DoorsCS, two popular TI-83+ assembly shells, can run TI-BASIC programs by placing a colon as the first bit of code on the first line in the program.

Assembly shells were created when calculator manufacturers did not support native-code programming. ZShell, the first assembly shell, was created for the TI-85 after an exploit was found using a hacked memory backup file containing the shell to bypass the calculator's standard operating system. Rather than crack down on users who had managed to bypass the OS to run their own code, Texas Instruments chose to release native programming information for its then-upcoming TI-83 calculator. However, their stance changed and they decided to remove native code functionality from the TI-84 plus CE, making an assembly shell necessary once again.

Although this rendered the traditional assembly shell unnecessary on the TI-83 hardware, calculator programmers continued to develop shells to supplement or replace the standard operating system. Since the TI-83, TI has supported assembly-level programming on all subsequent graphing calculators, though similar shell hacks needed to be created for older hardware, such as the TI-82 and the TI-92.

Hewlett-Packard also supports assembly language programming, though onboard programming tools mean that a separate shell is not needed.