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 Plus.fr, and TI-84 Plus Pocket.fr). 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 ticalc.org, 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:
Quote:
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!

Download
Doors CS 7 binary release
Doors CS 7 source code

*Downloads the file quickly in case it's a prank*

Now I can be dedicated to DCS texture mods
Yay! CVSoft can now port it to the TI-82 (although with fewer features) Smile
Kerm, I'm both really impressed that such a great event has graced the TI calculator community, and surprised that it actually happened on 1 April.

DJ, that was actually a part of the original intention Smile. But the TI-82 version is going to be based on Doors CS 5 for TI-83, which hasn't been released yet *bump*.
This is absolutely great Smile The code is very nicely commented along as well, which is very helpful. I'd be happy to help fix any bugs that are reported along, and submit any PR's as well. Very great work Kerm, and an epic journey. Thank you for everything! Very Happy
Shock When I first read this, I thought "haha, good April fools prank." Only after clicking on the GitHub link did I realise this is indeed legit. Great work Kerm!
Thanks, guys! I do think that a TI-82 port of Doors CS 5 would be a great idea; I'll add that code to the repository when I get a chance. Thank you for the compliments on the code quality, MateoConLechuga; I was actually very nervous to hear feedback on my formatting and commenting with a codebase that I've maintained mostly by myself for so long (and especially one that has accompanied me through my growth as an ASM programmer). Today did indeed seem like an appropriate day to release it. Wink
Kerm, why did you say doors cs was OBSOLETE?
The color calculators are a rapidly expanding market, and thus are a very high priority for shell development. Additionally, the CE has new capabilities for developers to use. Between that, Kerm's lack of free time, and the maturity of the monochrome calculator market, it made sense to discontinue personal development of Doors CS and let the eager community add in features/fix bugs.
Indeed. I also felt that I had reached close to an asymptote in the stability vs. effort curve, where the vast majority of Doors CS features users touch and see are rock-solid, and any remaining bugs are too vanishingly rare or are in features that nothing actually uses. It seemed like the best way to triage my time. Smile Not to mention that it seemed selfish to keep Doors CS 7's source closed at this phase in its usage and development.
Wow, Kerm, i'm really happy to see this. I didn't see the date until after reading the article, i'm glad it wasn't a prank! Thanks for the work you've put into keeping the community alive throughout the years. I'm also happy to see another programmer who uses tabs instead of spaces, i've received a lot of complaints about my tabs... Wink

The first file i looked at was, of course, eastereggs.asm. Razz
One day I think we could make an OS version of doors by combining this source code with the source code of the TI OS and code for the rest of the stuff a full GUI OS needs. This would in turn be something that would make the whole calculator community very happy. The only problem is that I don't know ASM ( I am still learning TI-basic)Razz. If someone listens to and cares about my idea, then our calcs will be more than a machine for math and monochrome video games... Razz
CalcMax wrote:
One day I think we could make an OS version of doors by combing this source code with the source code of the TI OS and code for the rest of the stuff a full GUI OS needs. This would in turn be something that would make the whole calculator community very happy. The only problem is that I don't know ASM ( I am still learning TI-basic)Razz. If someone listens to and cares about my idea, then our calcs will be more than a machine for math and monochrome video games... Razz

Good luck trying to get the source code of TI-OS. Only TI has it, and I bet they're unwilling to give it to someone who wants to make a third-party OS. Besides, what would the point be? You wouldn't get more functionality just because it's an OS. If you had the ability to include everything from TI-OS, you would at best be able to do the same things as when running TI-OS with DCS installed. At worst, you wouldn't even be able to use math or TI-BASIC.
Oh, but if you add all the stuff a desktop OS has, then you could really have something cool...
JosJuice wrote:
If you had the ability to include everything from TI-OS, you would at best be able to do the same things as when running TI-OS with DCS installed. At worst, you wouldn't even be able to use math or TI-BASIC.
Basically this. I've never bothered making a Doors OS because (1) Doors CS has maximal usefulness as a shell, letting people run programs and games within a desktop environment but allowing users to quickly drop back down into the TI-OS that teachers expect to be available for class, and (2) I would have so many fewer users with an OS (combined with commensurately more effort to develop), making it not worth my time.
*bump about Doors CS 5*
I've returned to doing z80 assembly, largely with non-community-affiliated projects, so I have some time to work on things like the planned TI-82 port.
Great! I look forward to seeing how it comes along, and presumably that means that you need the Doors CS 5 source code? I'll search around in my folders and try to dredge it up (and note that you'll probably have to back-port some bug fixes from Doors CS 6/7).
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement