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: