TI-59 magnetic card
The TI-59 was a programmable calculator from Texas Instruments which was available from 1977 through 1983. It supported the ability to load and save programs using a magnetic-stripe card reader. The TI-58 model was also available at the same time with similar programming features but no card reader. An earlier TI-57 model was also programmable but with more limited features and memory and no storage device to permanently save the programs.
If you ran out of magnetic cards for it, it was apparently possible to make new ones by cutting up floppy disks.
The TI-59 had 120 storage registers, divided between program and data memory. They were divided into four banks of 30 registers, and one bank could be stored on a side of a magnetic card, for a total of two banks per card if both sides were used. Thus it took both sides of two cards to store the entire contents of the calculator. Each storage register could hold one floating-point numeric value or 8 program key codes.
The card reader used a four-track head designed to function at a speed between 2.0 and 2.5 inches per second. Track one is closest to the edge of the card. The write signal is a square wave of ± 1.5 V.
The TI-59 also had a place to insert firmware chips which contained library routines which could be used in programs.
Each key, character, or function on the calculator corresponded to a numeric code of two decimal digits. (How, exactly, this translated into particular magnetic pulses on the card is uncertain.)
|20||2nd CLR||Clear All?|
|21||2nd||Shift to alternate function|
|32||X:T||Exchange X with T|
|36||PGM||Program (followed by 2-digit number of library program, stored in 1 item)|
|37||P/R||Polar to Rectangular|
|40||IND||Indirect (followed by 2-digit memory location, stored in 1 item; uses contents of that as memory location to finally access)|
|42||STO||Memory store (followed by 2-digit memory location, stored in 1 item)|
|43||RCL||Memory recall (followed by 2-digit memory location, stored in 1 item)|
|44||SUM||Memory sum (followed by 2-digit memory location, stored in 1 item)|
|46||INS||Insert program line|
|47||CMs||Clear data memory|
|48||EXC||Memory exchange (followed by 2-digit memory location, stored in 1 item)|
|49||PRD||Memory product (followed by 2-digit memory location, stored in 1 item)|
|56||DEL||Delete program line|
|61||GTO||Goto (followed by two-digit label number, stored in one position)|
|69||OP||Special operations (followed by two-digit function code, stored in one position)|
|76||LBL||Label (followed by two-digit label number, stored in one position)|
|90||LST||List data registers on printer|
|92||RTN||Return from subroutine|
|96||WRT||Write to magnetic card|
|97||DSZ||Decrement and skip at zero|
|98||ADV||Printer paper advance|