A89: Yet another problem with AMS 2.xx


[Prev][Next][Index][Thread]

A89: Yet another problem with AMS 2.xx




Hi!

I just discovered yet another terrible thing with AMS 2.xx in 
addition to famous 2.xx limit (more precise, Rafael V. Paddilla 
points to me to this problem). AMS 2.xx does not allow ASM 
programs in expressions!!! 

What I mean? See, Rafael tried to make a factoriel function in 
ASM, using TIGCC and directive RETURN_VALUE. Then, he tried to 
execute fact(5), and it works. After, he tried fact(5)+2 or 
fact(5)->a, and TI-89 generates "Invalid program refference". 
Of course, he asked me what is the problem. And, I started to 
research. First, I noticed that this works fine on AMS 1.xx. 
Problems are only on AMS 2.xx. Then I started to searching 
deeply. What I discovered is terrible: when you type 2+fact(5),
the program "fact" will not be executed at all! 

So, this is not problem with the "fact", nor "tigcc", nor 
"tigcclib"! The problem is in AMS 2.xx. I found the exact 
place which produces the problem: before executing an assembly
program, AMS 2.xx checks whether an assembly program is a part
 of the expression. If it is, a "invalid program refference" 
is thrown!!! So, it is nothing I can do in tigcclib itself, 
because the ASM program will not be executed at all if it is 
the part of an expression. TI disallows using ASM programs in
expressions starting from AMS 2.xx. Why TI, why?  This is just
a blocking of one very useful possibility (not blocking of 
using TI-89 as Gameboy). Why??? Again, why????? 

Any solution??? Yes (but somewhat awkward). I will make a 
"patch" which will intercept this stupid test, and allow 
executing ASM programs in expressions. This patch will need
to be installed after the reset of the calculator, and it
will remain active until next reset. This is the only 
solution. I am afraid that TI users will become tired of 
various "patches" which need to be installed on AMS 2.xx to
work normally... 

Zeljko Juric




Follow-Ups: