Doors CS 7 Source Code Released
Published by KermMartian 8 years, 2 months ago (2016-04-01T16:26:15+00:00) | Discuss this article

In September 2001, "Doors XP" was first created for the TI-83 graphing calculator as a trivially-simple TI-BASIC program. It contained a hard-coded menu of the programs on my calculator, allowing me to run any of them by choosing them from the list. Over the fourteen and a half years since that first experiment, Doors XP transformed into Doors CS 7, an App shell for the TI-83 Plus, TI-83 Plus Silver Edition, TI-84 Plus, and TI-84 Plus Silver Edition (and their confusingly-named French counterparts, the TI-82 Advanced, TI-83, and TI-84 Plus To quote a previous Cemetech news article, Doors CS has engendered accolades, criticism, and controversy, and Doors CS and its features have been featured on, Hackaday, Gizmodo, and others. It was first upgraded from a pure TI-BASIC program to a TI-BASIC program with a custom ASM program used to list and run programs. Then, it because a fully-assembly program, and soon after that, an App stored in and run from Archive. Over the years, new features were added, including libraries for TI-BASIC and assembly programmers, Shell Expansions (SEs), Associated Programs (APs) that open files in associated viewers, a GUI API for programmers to use, the CALCnet 2.2 networking system, and more. Throughout its life, Doors CS 7 has remained a GUI- and mouse-based shell, where you move a mouse cursor and click to interact with the shell. On feedback from users, a Shell Expansion called TabFuncs was first created, then integrated into the shell, allowing programs to be selected with the arrow keys instead of a mouse cursor if desired.

In July 2013, I released Doors CS 7.2, bringing bug fixes to the shell but announcing that no further Doors CS 7 versions would be released, and effectively bringing support to an end-of-life state. As I said then:
I want to especially thank all of you in the community, from the Cemetech administrators who helped me stay motivated on Doors CS, to the beta-testers and coders who contributed their time and effort. I even want to thank the seasoned community members who scoffed at some young upstart boasting about his as-yet nonexistent shell so many years ago, whose skepticism pushed Doors CS from two marble notebook full of half-working assembly code into the rock-solid, widely-used software that it is today. I look forward to the next decade-long project that I'll find myself embroiled in.

Now, I want to add one final epilogue to this story. For a long time, Doors CS had been open-source, with the source code available to anyone who wanted to read it and learn. An unfortunate incident drove me to close its source, but now, I'm happy to re-open the source code for posterity. Anyone looking to learn about TI-83 Plus/TI-84 Plus shells, GUIs, networking, and graphics routines are invited to check out the source code on GitHub. The source has been released under a custom license that acknowledges the fact that some Doors CS 7 code is used in the still closed-source Doors CSE 8 and Doors CE 9, but I intend to allow as much re-use of the code in others' projects as possible, as long as you ask nicely first. Please enjoy, and I'll even accept pull requests and consider releasing new versions if people find bugs to fix and optimizations to make. I'd like to that CVSoft, geekboy1011, Iambian, and tr1p1ea for discussing this move with me and giving me their blessings to release their contributions. Enjoy!

Doors CS 7 binary release
Doors CS 7 source code