This article is under construction and needs to be completed. You can help by expanding it.

Filename
Fargo
Summary
First assembly shell for TI-92
Authors
David Ellsworth
Site URL
http://www.ticalc.org/home/fargo/
Ticalc.org URL
http://www.ticalc.org/pub/92/asm/shells/fargo.zip
Release Date
November 10, 1996
Compatibility
TI-92
Language
Assembly
Fargo was the first assembly shell released for the TI-92. Just like with the TI-85, it was discovered that sending a memory backup from the computer to the calculator with excess information would cause an overflow into other areas of memory. The correct amount of overflowing data was deduced, and placed in such a position that it would overwrite the 68000's vector table, which points to routines that the processor calls to handle certain events. These routine pointers were modified to point to machine code in RAM.
Product Screenshot

(Screenshot of Product)
Significance of Product
- Why product was important to TI community
- Any controversy or interesting circumstances surrounding product
- Awards won, fond memories that people have
Documentation
(Taken from Fargo FAQ)
8.3.2.1. What is Fargo?
Fargo is a plug-in extension to the TI-92 that allows it to run machine language programs stored in the calculator's RAM. It was the first TI calculator shell to use a fully modular approach. However, the word "shell" does not accurately describe what Fargo is, as it represents a paradigm shift from earlier shells (i.e., ZShell). It has been followed by shells such as Usgard and SuperNova, which use a similar design philosophy. (Note: calculator shells that use this design approach are often called Operating Systems.)
Fargo has integrated library support and relocation. It consists of two primary components, the kernel and the shell. The kernel is in charge of all the low-level tasks. This includes: the bootstrap that installs Fargo after it has been transferred via a backup file; the routines which load, relocate, and dynamically link programs and libraries; and the interrupt hooks which allow Fargo to be integrated with the TI-92, e.g. allowing Fargo programs to be executed in the same way TI-BASIC programs are started.
The shell component is the interface that users see when they want to run Fargo programs. It is triggered by pressing Shift-ON. Although the shell distributed with Fargo is called "FBrowser", any Fargo program may be set to run as the default shell, even if it is (for example) a game rather than an actual shell.
8.3.2.2. Why the name 'Fargo'?
David Ellsworth explains:
"After I figured out how to run machine code on the 92 using a wraparound backup, I contacted Dan Eble because I'd heard he'd been working on the 92. It turned out that he'd also teamed up with Rob Taylor to write a 68000 disassembler. I teamed up with the two to work on a shell for the 92.
"'MShell' was, at the time, the prevailing idea for its name. However, we found out that a PC program by that name already existed (Moon Shell). So at one point, Dan emailed us about how he had discussed with one of his friends what to call the new shell. They had rattled off city names to each other. One of them said 'Fargo' and that was what Dan proposed. We agreed that it was a fine name and, though it wasn't clear at the time, 'Fargo' was apparently supposed to be a code name which we'd later change.
"We did at one point discuss and propose dozens of alternate names. But the name 'Fargo' became so widely known and associated with the new shell that we eventually just decided to keep it."
8.3.2.3. What are the requirements?
(1) A TI-92 with a ROM version between 1.2 and 1.12, inclusive. (Fargo II will also support ROM 2.1 and any ROM versions that may follow it.)
(2) A computer, TI-92 linking software that runs on the computer, and a link cable that is supported by the software. The software must be capable of sending 92B backup files.
8.3.2.4. Who wrote Fargo?
The short answer is, David Ellsworth.
Dan Eble provided groundwork by compiling a set of text files which summarized his reverse engineering efforts. He had borrowed a TI-92 from TI, and during that time made a dump of its ROM. Following that he teamed up with Rob Taylor to cowrite a 68000 disassembler, then used it to analyze the ROM dump.
Working independently, David Ellsworth discovered a method to run machine code on the TI-92. Following that he teamed up with Dan and Rob, and they shared information and ideas. When sufficient information had been found, David proceeded to design and implement Fargo.
Development History
- November 10, 1996 — Fargo 1.0 Beta 12 leaked by a beta tester. First public release.
- November 14, 1996 — The List-Fargo mailing list went public.
- November 21, 1996 — FTerm 1.0 Beta 7 released.
- November 22, 1996 — A fixed version of Flib released.
- December 4, 1996 — A new and improved version of Romlib released.
- December 19, 1996 — A fixed version of Core.o released.
- December 23, 1996 — The Graylib7 v1.0 library is released.
- January 2, 1997 — Fargo 0.1.13 released by David Ellsworth (new version numbering scheme).
- February 26, 1997 — David Ellsworth released a new Romlib and Core.o (Fix111.ZIP).
- March 8, 1997 — Diamonds with Sound 1.0 released by Markus Klisics, first Fargo program with sound.
- May 8, 1997 — David Ellsworth announces Fargo 2.0 features.
Miscellaneous
(Taken from Fargo documentation)
Fargo.
1. A TI-92 with a ROM version between 1.2 and 1.12, inclusive. (Fargo II
will also support ROM 2.1 and any ROM versions that may follow it.)
2. A computer, TI-92 linking software that runs on the computer, and a link
cable that is supported by the software. The software must be capable of
sending 92B backup files. (At some point I will write a calc-to-calc
transfer program; when that is done, this requirement will also be
satisfiable by any second TI-92 that has Fargo installed, along with the
transfer program.)
The short answer is, David Ellsworth.
Dan Eble provided groundwork by compiling a set of text files which
summarized his reverse engineering efforts. He had borrowed a TI-92 from
TI, and during that time made a dump of its ROM. Following that he teamed
up with Rob Taylor to co-write a 68000 disassembler, then used it to analyze
the ROM dump.
Working independently, David Ellsworth discovered a method to run machine
code on the TI-92. Following that he teamed up with Dan and Rob, and they
shared information and ideas. When sufficient information had been found,
David proceeded to design and implement Fargo.
Yes. http://www.ticalc.org/home/fargo/
Fargo 0.1.13 (released January 2, 1997), with the masked ROM fix (posted
February 26, 1997).
http://www.ticalc.org/pub/92/asm/shells/fargo.zip
David Ellsworth
the ticalc.org project
gro.clacit|lledivad#gro.clacit|lledivad