TI-89/92+ AMS Version 2.08: Is It Really Necessary?

by Michael McElroy <lord_nightrose@yahoo.com> for CCoderz

Note: I've started getting e-mails from people about other compatibility issues with AMS 2.08. Check them out here.


     As you’re probably aware, TI recently released an updated version of the TI-89/92+ operating system - version 2.08. This version offers numerous new functions and features, most notably the addition of a clock. Sadly, this seems to be the best feature of the new operating system, as most of the others are somewhat lacking; and even this can be a hassle sometimes, since it uses up very slightly more power when the clock is on than when it is off, and occasionally the calculator will turn on with the contrast turned all the way up. I’ll outline all of the new features later, as well as give my opinion of them. For now, I’ll be explaining the new OS’s compatibility.

     Of course, every BASIC program is compatible with the new operating system. None of the old commands have been removed. A few have been added, but as yet I haven’t personally found any helpful use for them. The problem comes when you try to run a PPG program (also known as an ExePacked program). Now, for most of these, you will get an error reading "Invalid relocation data in ASM program". This can be a real pain, especially since a lot of popular games are distributed in this format now. However, there is apparently a way to fix this: in the previous version of Kurt Hoffman’s Tetris clone Queue, AMS 2.08 raised this error, but in the new version (version 0.9) the error is gone. I haven’t been able to find any other major compatibility problems, other than the fact that ALL of the clock features are unavailable on a TI-89 with hardware version 1. This is because, as has been stated on the TICalc.org news boards numerous times, there is a physical component in the HW2 design that is required for the clock to work: a crystal which operates at a frequency of exactly 1 Hz.

     There are a few minor additions to the BASIC programming part of the OS, apart from the new functions. The first thing is the ‘Request’ command. In older versions of the AMS, it only took up to two arguments: a string caption to be put in front of the request box, and the variable to store the text in. Now, there is an optional third argument - the ‘alpha’ argument. If you enter ‘0’ as this argument, ALPHA-lock will be off by default in the request box. If you enter ‘1’, it will be turned on. Other than that, I couldn’t find any other differences. When you’re actually editing text or programs, if you hit F5 to search for text, it will highlight (as in the other AMS versions) the first occurrence of the query. However, if query text isn’t found, it will now respond with the message "Text not found." I couldn’t find any other alterations to the basic OS other than this.

     The most obvious difference (other than the clock) is the addition of the Apps Desktop. This is probably the most disappointing part of the new AMS. Basically, all this does is give you a categorical list of your Flash apps, as well as the built in TI-OS apps: the clock, the data/matrix editor, the graph screen, the home screen, the program editor, the statistics table, the text editor, the window editor, and the Y= editor. The reason I found this disappointing is that this is all it will list: there is no way to add your own programs and functions to the list. Hopefully someone in the TI programming community will find a way around this, as they’ve found ways around numerous other limitations.

     TI made a big deal about the Apps Desktop’s new interface when they released the Voyage 200, but on the TI-89 it just seems to get in the way. Not only is it much less featured than TI could have made it, but it takes up a large amount of your FLASH (archive) memory simply to have it installed. Since it’s built into the new AMS, this means that when you install 2.08 you lose quite a large amount of your archive space. My calculator showed a total of 646575 bytes (about 631.4 KB) of FLASH memory available, while in AMS 2.05 it showed nearly 732.4 KB. That’s a loss of around 100KB of space; which could easily have been avoided simply by leaving out the Apps Desktop. What makes this fact even worse is that you can access exactly the same apps by simply pressing a couple of keys on the keypad. This is almost like an attempt by TI to create a Palm OS-style environment on their calculators, with a similar category feature that can be confusing and irritating.

     Nevertheless, I can’t honestly say that everything about the new AMS is bad. There are obviously a few nice additions, like the ability to localize programs to time zones, or write time-sensitive applications. In fact, this could lead to the beginning of pay-for-use programs. For example, a TSR hook could be installed that keeps a program from running if it hasn’t been registered after a certain period of time. This could open up a whole new market, not to mention the fact that we TI programmers could make a little extra cash on the side. However, there’s still the fact that removing a TSR hook is rather easy; usually all you have to do is reset the calculator.

     All in all, it seems that the number of new disadvantages presented by AMS 2.08 far outweigh the advantages. The loss of archive memory, the problem with ExePacked programs, and the pointless Apps Desktop are seriously detrimental to the OS, but the ease of setup for the clock, as well as the clock functions itself, help to justify its installation a bit. However, I wouldn’t personally suggest installing the new version, since doing so would cause you to lose the entire contents of your memory. If I were to rate AMS 2.08 on a scale of 1 to 10, I’d have to give it around a 2 for features, a 7 for user-friendliness, an 8 for compatibility, and a 3 for innovation, for an overall score of 5. If you can think of some use for a clock on a calculator, I’d suggest you download it; otherwise, there isn’t much too look forward to in the new OS.

     As promised, I will now outline all the new TI BASIC functions. These were all tested on a TI-89; some of these may behave differently on the TI-92+, or may be missing completely.

checkTmr(seconds) Checks on a timer, I suppose. If you enter ‘0’ as the argument, this function is literally the same as the startTmr() function. I suppose that the argument ‘seconds’ is supposed to check and see whether or not a specified amount of time has passed. For example: startTmr()->x:Loop:If checkTmr(10) = x:Text "10 seconds elapsed":EndLoop

ClockOn
Turns the clock on.

ClockOff
Turns the clock off. Using ClockOn will NOT fix the time if the clock has been turned off. You will have to use the setTime() and possibly even setDate() functions to restore the correct time.

cot(x)
Returns the cotangent of a given value.

cot-1(x)
Returns the arccotangent of a given value.

coth(x)
Returns the hyperbolic cotangent of a given value.

coth-1(x)
Returns the hyperbolic arccotangent of a given value.

csc(x)
Returns the cosecant of a given value.

csc-1(x)
Returns the arccosecant of a given value.

csch(x)
Returns the hyperbolic cosecant of a given value.

csch-1(x)
Returns the hyperbolic arccosecant of a given value.

dayOfWk(year, month, day)
Gets the day of the week, in integer form (starting with 1 = Sunday). Can take a god-awful long time to work if you enter dates that are a long time from today, either in the past or the future.

getDate()
Returns the current date in list form: {year, month, day}

getDtFmt()
Returns the current date format. Valid arguments are 1 through 8. See the format notes at the end of the article.

getDtStr(mode)
Gets a string containing the date. See the format notes at the end of the article.

getTime()
Returns the current time in list form: {hour, minute, second}

getTmFmt()
Returns either 12 or 24. See the format notes at the end of the article.

getTmStr(mode)
Returns the current time in a string. See the format notes at the end of the article.

getTmZn()
Returns the current time zone. I suppose this is supposed to be in relation to GMT.

isClkOn()
Returns true or false to tell you whether the clock is on or not.

setDate(year, month, day)
Sets the current date.

setDtFmt(int)
Sets the date format. Valid arguments are 1 through 8. See the format notes at the end of the article.

setTime(hour, minute, second)
Sets the current time.

setTmFmt(int)
Sets the time format. Valid arguments are 12 and 24. See the format notes at the end of the article.

setTmZn(int)
Sets the current time zone.

sec(x)
Returns the secant of a given value.

sec-1(x)
Returns the arcsecant of a given value.

sech(x)
Returns the hyperbolic secant of a given value.

sech-1(x)
Returns the hyperbolic arcsecant of a given value.

startTmr()
Returns the current timer count, which is expressed in the number of seconds since some pre-programmed date.

timeCnv()
Returns a converted time period when given a number of seconds, in the form of a list:{days, hours, minutes, seconds}. For example: timeCnv(417910) returns {4, 20, 5, 10}, which means 417,860 seconds is 4 days, 20 hours, 5 minutes, and 10 seconds.

Format Notes

Date formats (Y = year, M = month, D = day):
1.     MM/DD/YY
2.     DD/MM/YY
3.     MM.DD.YY
4.     DD.MM.YY
5.     YY.MM.DD
6.     MM-DD-YY
7.     DD-MM-YY
8.     YY-MM-DD

Time formats: 12 hour and 24 hour. Use setTmFmt(x) to set the time format, where x is 12 or 24. getTmFmt() will, as a result, return either 12 or 24.



Other People's Notes
This one comes from Clint (last name unknown):
Not only does it have the disadvantages that you laid out, but it totally breaks "Millennium Math Suite", which I use every day at work, as well as in grad school. I've got a V200 and a TI-89 and Ill be restoring both of them very shortly.

This comes from Timmay on TICalc.org:
The problem with the timing issue was fixed by updating TI Connect. The problem itself is still there. In fact, I believe it is with the black link, as one page on the TI website said not to use the black link if you have AMS 2.08.

This comes from Kevin Kofler:
The "Invalid Relocation Data in ASM Program" bug of old versions of ttstart (the ExePack launcher) is explained here, together with possible solutions. The easiest solution is to simply use an updated ttstart launcher to run the programs

This comes from Greg Dietsche:
They also fixed some serious crashing bugs... like forgetting to query OO_APP_CAN_DELETE for the installed flash apps before implicitly removing them after the user chooses mem->reset->all As far as i can tell, every bug that I reported is fixed (although i would need to go back and check my email to be sure i've remember them all).

This comes from Paul Griffin:
I just wanted you to know that when I stuck on OS 2.08 the first time it was released and decided to downgrade to OS 2.04, it froze my calculator, PERMANENTLY. Please inform people that they should use TI-Graph Link (with black cables) to change OSes. I ended up sending in my calculator for fixing, and they (TI) replaced it for free.


If anyone else has any suggestions, feel free to send them in to lord_nightrose@yahoo.com or post them to the news boards on TICalc.org. 1