Basics Archives Community Services Programming
Hardware Help About Search Your Account
   Home :: Community :: Articles :: BASIC Shells
BASIC Shells

Posted on 1 July 1998

The following text was written by Kirk Meyer:

I wish to comment on an out-of-control aspect of calculator programming: BASIC shells. On the TI-80 and TI-81, there is no assembly language available and thus no one has written any BASIC shells. On the TI-82, TI-85, and TI-92 assembly language is only available in an assembly shell, thus a BASIC shell is not possible. On the TI-83 and TI-86, however, assembly support is built in and thus BASIC shells are rampant. If something is not done about this, BASIC shells will also abound for the TI-89 and TI-92 Plus.

What do I find wrong with BASIC shells? Plenty. To begin, I will give you some background on how a BASIC shell works. On the TI-83, TI-86, TI-89, and TI-92 Plus, Texas Instruments built assembly language support into the calculators. This made assembly shells a convenience rather than a necessity. Along with this support came the advent of BASIC shells. Now that assembly language programs could be called from BASIC programs, BASIC programmers were eager to write their own shells. There was one problem with these shells, though - they could not determine what programs currently resided on the user's calculator.

The programmers were still determined, though. If they could not figure out which programs were on a user's calculator, then they would have to supply them, bringing about a nasty problem. The programs which a certain BASIC shell could run were set in stone. They could not be changed without the user editing the shell. Since they were set in stone, it made sense to give the user a bundle of programs with the shell. This is where the problem lies. When BASIC shell programmers redistribute other people's programs, they violate the wishes of other programmers. In readme files programmers write, "Please redistribute this file only in its current, unmodified form." Well, what do you think they mean?

These BASIC shell programmers redistribute a load of programs in a group file, and they do not give the users the intended documentation either. The BASIC shell programmers do not stop to realize that not only will the user be confused about the operation of the bundled programs, but that they are violating the wishes of other programmers.

When programs are distributed in modified form:

  • users are confused about their operation
  • programmers become slightly ticked off
  • users do not have access to program updates

As an example I will cite KickAsm 86 (it is definitely not the only example). This BASIC shell redistributes many different games, math, and chemistry program as well as my own Secure86 security program. The programmer did not include any documentation for any of the programs. I cannot imagine how someone could operate everything there without some sort of documentation. Not only that, but I found updated versions for almost every included program. The version of Secure86 he included was version 1.0.0; the newest version is 3.0.0.

I do not mean to say that BASIC shells are entirely bad, I just mean to say that they need to be held in control. Included programs should be distributed in unmodified form. This means if there was documentation, include it. I hope that I have not offended anyone with this article. This is just something that has been bugging me for a while now.

  Reply to this item

Re: BASIC Shells
Steven Kelbley  Account Info
(Web Page)

I agree that many times BASIC shells are altered and then redistributed under a different name. I am presently working on a BASIC shell, but as of yet I haven't seen a shell which can detect programs running on your calculator. I think BASIC shells would become more mainstream if they were made to recognize programs, using an ASM file if necessary, and be of a higher quality. I have yet to see an excellent BASIC shell.

Reply to this comment    14 December 2005, 22:47 GMT

Re: Article: "BASIC Shells"

Although I agree that BASIC shells have their faults, I think that they also have advantages. They don't freeze as often as Assembly shells.
They are often smaller than the king-sized shells
like ASE. Plus, they are usually made for easy access to games. Plus, if you download a group of games for people with ticalcs who don't know all of the nuances of the Calculator, the BASIC shells are helpful to them so that they can use their games. I think that instead of totally trashing BASIC shells, you should come up with some ideas (perhaps Assembly utilities for detecting games) to improve BASIC shells. ASE rules, but it crashes often, so try out a BASIC shell today!!
more easily.

Reply to this comment    7 October 1998, 17:35 GMT

Re: Re: Article: "BASIC Shells"
Chris F.
(Web Page)

I agree with what is being said. BASIC shells are not that useful. The programmer really designs them for his/her self in mind. Although a good point was brought up with an assembly program that detects other programs on the calculator. For those that are just starting ASM programming (like me), this makes some of our BASIC programming more effective. I made a shell, Windows 2001 and it was very popular. I didn't submit it to ticalc.org but distrubuted it at school. I admit that it wasn't nearly as effective or useful as assembly shells but it gives the programmer a little sense of accomplishment. I'm learning ASM kind of slowly and soon, BASIC will become a thing of the past. I think that more people should focus on ASM programming and try to learn. Those of you (I mean no offense) who "knock" other peoples accomplishments should help and encourage those people. Bring them into the ASM world and then you won't have to complain about their BASIC shells, etc.

I'm sorry if I've offended anyone. Just my opinion on the subject.

Reply to this comment    1 January 1999, 21:32 GMT

Re: Re: Re: Article: "BASIC Shells"
Chris Fazio  Account Info

LOL my name is Chris F. also!

Reply to this comment    13 January 2000, 00:44 GMT

Re: Re: Re: Article: BASIC Shells
Dustin Sneath Account Info
(Web Page)

I fully agree... I am in the process of writing two shells, one in asm and one in basic. The asm one is very similar to basic except it is meant to be distributed with all the programs i have written. The Basic one is designed mainly for my own personal use, and I like it better than asm because it is easier to program and use. There are some issues, such as the lack of a program-detection ability, but hell, im the programmer anyways, i can put it in myself!

Reply to this comment    7 December 2005, 04:03 GMT

Re: Re: Re: Article: BASIC Shells
asdf asdf  Account Info

It is very amazing... I just finished a BASIC shell called Windows just like a week ago. It is kind of pathetic, but it does incorporate some small assembly programs I found in the archives to find your programs, edit their hard points (archived, locked, hidden, etc.), and even run them. I also put this to an app form using BasicBuilder.
But.. I still think that Asm shells are much more usefull than any BASIC shell someone makes. I don't know any Assembly; never could find the time. But I think that when I do learn it, most all my programs will be in it afterward, including any more shells I do.

Reply to this comment    17 October 2006, 02:37 GMT

Re: Article: "BASIC Shells"
Dennis Lambe Jr.
(Web Page)

I agree with your sentements, but I don't think you have to worry about the same problems on the 89/92. Thanks to the loophole that allows the expr() function to execute instructions and programs stored in strings, CUSTOMIZABLE shells are possible. Therefore, you need not fear the same situations on the late-model calculators.

Reply to this comment    16 November 1998, 02:43 GMT

Re: Re: Article: "BASIC Shells"
Johnnycakes  Account Info
(Web Page)

I sure wish that the TI-83 plus calc had that option, because I'm trying to make a shell that automatically detects programs on the calc. If anyone knows how to do that, please tell me!

Reply to this comment    19 November 2000, 06:21 GMT

Re: Re: Re: Article: "BASIC Shells"
Timendus  Account Info
(Web Page)

What he ment with "customizable" was that the user does something like
and the shell uses this info with
"Disp Str0" or
"Text(1,1,Str0)" to display it in the menu and executing the program with

Well, that's not my idea of customizable. I agree that making shells in Basic is a waste of time. I made a few, just because it's a lot of fun to do, but please don't expect them to become popular. Just learn ASM, study hard, klimb to the top and THEN build a great shell that WILL become popular.

Sorry if I just scatered someones dream, but I fear that's reality...

Reply to this comment    19 April 2002, 16:22 GMT

Limits of 83 basic
bordoni nils  Account Info

Expr(str0) will not work on 83, becaus you must have prgm before. You can only execute programs stored in strings with 89,92,V200 because of the function indirection (#) making this (if i remember well):
I think that's not possible on 83.
And you can't simply do that:
1 -> a
storepic a
Basic on 83 is limitited...

Reply to this comment    28 June 2003, 09:59 GMT

Re: BASIC Shells
Abs S  Account Info

I know this is off topic but I don't know where else to put this. Is there a program for the TI-86 that can factor like the TI-89 or TI-92? Onw of my friends has a TI-92 and al he has to do is put in the factor program and then type x2-7x+28 and it'll give him the answer in this form: (x- )(x- ). He can type anything he wants and it'll give him the answer. If anyone has a program like this please e-mail me. Thanks

Reply to this comment    2 April 2001, 22:12 GMT

Re: Article: "BASIC Shells"
Michael Cook
(Web Page)

I agree with this article. If you want a basic shell the 83 has one built in. How to access it is a secret which may be why it is the best basic style shell on the 83. To access when your calculator is off press "ON" then "PROG" and there it is! Assembly shells have many great features and basic shells can't compare. There bigger, lack features, and if you wanted you can program your own. So why post them?

Reply to this comment    8 August 1998, 16:11 GMT

Re: Re: Article: "BASIC Shells"
Timendus  Account Info
(Web Page)

Couldn't agree more :-)

Reply to this comment    19 April 2002, 16:25 GMT

Re: Re: Article: "BASIC Shells"
Warrior Rocker  Account Info

i agree why waste time writing basic shells?. anyway ASM shells look nicer, can detect programs and run smoother than clunky basic shells, and also they are often smaller and many asm shells can detect and run basic programs as well so.... what is the advantage to basic shells

Reply to this comment    23 June 2003, 16:52 GMT

Re: Article: "BASIC Shells"
Patrick Behm

Okay, I'll come and say it. Yes BASIC shell stink and they are slow. But if you are like me and don't feel like trying to figure out how to program in ASM then BASIC shells are just fine. I personally only own a 85. But with I have tried to create a user freindly GUI. But it isn't with out bugs. I have checked and rechecked all ASM shells. Like ZShell and Usgard. Their are a few bad ones which I won't mention. But these two shells have the power behind them to make a standard shell on the 85. The 85 lacks the ASM features that the 83 and 86 have :(. But still these shells are making and effort.

Reply to this comment    22 December 1998, 20:54 GMT

Re: Article: "BASIC Shells"
Jonah Cohen

I wholeheartedly agree with Kirk Meyer on this one. The TI-83 and TI-86 have excellent assembly shells which can run any new program on your calculator. There is no need for people to submit BASIC shells which are useful to only one person--the one who submitted it. Nobody else wants to use those exact programs. If someone wants to write a BASIC shell, they should go ahead and use it themselves, but, truly, nobody else will use it.

Reply to this comment    11 August 1998, 00:33 GMT

Not all
Jannik Winkel  Account Info

some Basic shells have a extra programm where you can adjust them(prgmeditor) like:if a=1 then prgmxxx if a=2 then prgmxxx....

Reply to this comment    15 July 2002, 04:07 GMT

  Copyright © 1996-2010, the ticalc.org project. All rights reserved. | Contact Us | Disclaimer