Assembly shell (graphing calculator)
Encyclopedia
On graphing calculator
s, an assembly shell
is a program that is used to run programs written in the calculator's native machine code
rather than the calculator's standard high-level programming language
. Such programs were originally created at a time when calculator manufacturers did not support native-code programming on their hardware; the first, ZShell was created for the Texas Instruments
TI-85
calculator after an exploit
was found 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; though this rendered the traditional assembly shell unnecessary on the 83 hardware, calculator programmers continued to develop shells to add to 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 on their hardware; however, due to the availability of onboard programming tools, a separate shell is not needed.
While all assembly shells can run assembly programs, some (at least on the TI-83 Plus) also have the capability of running TI-Basic
programs.
On some calculators, no native support or easily recognized security holes for running assembly programs is provided, so a hacked memory backup file containing a shell is sent to the calculator.
Graphing calculator
A graphing calculator typically refers to a class of handheld calculators that are capable of plotting graphs, solving simultaneous equations, and performing numerous other tasks with variables...
s, an assembly shell
Shell (computing)
A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
is a program that is used to run programs written in the calculator's native machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...
rather than the calculator's standard high-level programming language
High-level programming language
A high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be from the specification of the program, making the process of...
. Such programs were originally created at a time when calculator manufacturers did not support native-code programming on their hardware; the first, ZShell was created for the Texas Instruments
Texas Instruments
Texas Instruments Inc. , widely known as TI, is an American company based in Dallas, Texas, United States, which develops and commercializes semiconductor and computer technology...
TI-85
TI-85
The TI-85 was a graphing calculator made by Texas Instruments based around the Zilog Z80 microprocessor. Designed in 1992 as TI's second graphing calculator , it has since been replaced by the TI-86, which has also been discontinued....
calculator after an exploit
Exploit (computer security)
An exploit is a piece of software, a chunk of data, or sequence of commands that takes advantage of a bug, glitch or vulnerability in order to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic...
was found to bypass the calculator's standard operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer 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; though this rendered the traditional assembly shell unnecessary on the 83 hardware, calculator programmers continued to develop shells to add to 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
Hewlett-Packard
Hewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...
also supports assembly language programming on their hardware; however, due to the availability of onboard programming tools, a separate shell is not needed.
While all assembly shells can run assembly programs, some (at least on the TI-83 Plus) also have the capability of running TI-Basic
TI-BASIC
TI-BASIC is the unofficial name of a BASIC-like language built into Texas Instruments 's graphing calculators, including the TI-83 series, TI-84 Plus series, TI-89 series, TI-92 series , TI-73, and TI-Nspire...
programs.
On some calculators, no native support or easily recognized security holes for running assembly programs is provided, so a hacked memory backup file containing a shell is sent to the calculator.
External links
- ticalc.org - An archive of Assembly and Basic programs for TI calculators.