Imagination and competence of the TI-59 owners vastly exceeded the expectations of the TI-59's creators. After many years of research, hardly any of the TI-59 secrets remained hidden under the black calculator's cover. On this page we will put together the most remarkable accomplishments of the TI-59 community. If you think some other programs or techniques should be mentioned here, please write...
|Printing a year's calendar does not sound like a big deal, but the friendly competition between the TI-59 and the HP-41C owners produced masterpiece programs. The contest started in May 1978, when Jaren Weinberger and Lou Cargile wrote a TI-59 program able to print a calendar in 34 minutes. Panos Galidas managed to cut that time to 5.5 minutes, but Roger Hill's HP-41C program, published in July-August 1980 issue of PPC Journal, produced a calendar in 2 minutes 17 sec (to be honest, HP-41C printout looked better). After many iterations, Palmer Hanson wrote a fast mode calendar-printing program that seemed unbeatable - 1 minute 32 sec (read Palmer Hanson's story about those programs). Yet, Roger Hill finally won the contents with 1 minute 14 sec HP-41C program. Well, win some, lose some...
|One of those things everybody finds impossible... until they happen. Writing a chess program on a 1 KB computer like ZX-81 is a great challenge, but a chess program for a 1 KB TI-59 using symbolic code (higher level language compared to assembler) is a true masterpiece. The program 'Schach 2.1' was written by Michael Sperber and published in TI PPC Notes v7n7/8p20-22. It followed all the rules of chess and could even defeat an inexperienced chess player... if he lives long enough to see all the moves (it usually took 3-6 hours per move).
|It refers to the technique to disable the display refresh and make the calculator run twice as fast... but with some restrictions, like not being able to call subroutines. The way to enter fast mode (PGM 02 SBR 240) was discovered by Martin Neef (Zepra club) in May 1980, and more advanced method using STF IND 7 INV at the end of program memory (or h12 code) was discovered in 1982 by Patrick Accosta. In the late TI-59 days, most of the programs were designed to run in the fast mode.
|Besides solid-state ROMs, TI-59 had some internal symbolic language software built in the calculator itself. These internal programs implemented advanced statistical and other functions. Using OP 09 PGM 02 R/S R/S R/S OP 17 GTO 000 OP 17 R/S P/R LRN sequence, Stefen Seitz found a way to single step and analyze that internal software. Similar tricks were later used to synthesize hex codes.
|TI-59 data and program storage were interchangeable - using Op 17 instruction you could turn program steps into data registers or vice-versa, eight program steps per register. However, eight program steps took two bits less then the data register, so it was possible to insert 'undefined' instruction codes at each step whose position is divisible by 8. By varying extra bits, programmers were able to execute internal instructions. Hex codes were discovered by Patrick Acosta (TI PPC Notes v6n9/10p14), and Dejan Ristanovic decoded some of the 'new' instructions (TI PPC Notes v7n6p8). The discovery occurred in the late TI-59 days, so most of the hex code did not find practical use.
|In addition to (up to) 100 data registers, TI-59 had eight internal registers used for advanced arithmetic calculations (when you evaluate 1+2*(3+4*(5+6)) expression, you have to store constants (1, 2, 3 & 4) somewhere in order to calculate 5+6), statistic functions and printing. Using artificially synthesized instruction code 82 (mnemonic HIR, Hierarchical Internal Register), it was possible to access internal registers and use them as additional storage space. The first digit of the code following HIR instruction defined the operation (0 for store, 1 for recall, 3 for sum etc) while the other digit determined the register (0-7). HIR 20 instruction used in the firmware was never decoded, but was considered to be some kind of conditional return. HIR registers were discovered by Heinrich Schnepf (see 52-Notes v2n9p1).
|The PC100C printer was a character-oriented device, so it was not possible to plot high-resolution graphics. However, Michael Sperber, Gerald Schlueter and Johann Berger discovered that h25 (h stands for hex) code halted the printing operation, so only the top three pixels of the characters got printed. By carefully choosing characters, programmers were able to design fascinating output (for that time, anyway). Hi-res printing was combined with the fast mode by Harald M. Otto (TI PPC Notes v6n6/7p3), and Dejan Ristanovic wrote the Fast Mode Scribbler program (TI PPC Notes v9n3p18-21) that enabled the user to design larger pictures made of multiple tape strips.
|Jump during execution
|The TI-59 was not actually designed for arcade games - the running program could not acquire any information from the keyboard, and the only active key, R/S, suspended program execution. Martin Neef found a way to use R/S not to halt the running program, but to start a ROM program instead (see TI PPC Notes v5n7p11). Dejan Ristanovic found a way to use this feature to control program execution (see TI PPC Notes v6n9/10p31) and wrote '5/10 start' and 'TI-59 Super test' programs using this feature.
|Speedy Factor Finder
|Finding factors of the integer somehow fascinated the TI-59 community. Many Speedy Factor Finder programs were written since v5n7p6 of TI PPC Notes. Modulo 210 Speedy Factor Finder in Fast mode was written by Patrick Acosta (v6n4-5p13), and Palmer Hanson's final masterpiece, Modulo 30 Speedy Factor Finder, was published in TI PPC Notes v8n5p19-23.