No, I'm not at all sure that I "get it". By "Partfrac", do you mean
that your program is named "Partfrac"? If you really mean "PARTFRAC",
then write it that way.
Please do make an effort to write standard English. Try to write not
only in a manner that can be understood, but in a manner that can't be
misunderstood.
Doesn't having the result from PARTFRAC on the stack help? You can use
that result as the argument for something else that could follow what you have so
far.
For what you're doing, it seems to me that it may be better to have
the INPUT command force the Algebraic/Program-entry mode and start an
algebraic object, and you may as well have it check the syntax of the
algebraic object too. So how about:
%%HP: T(3)A(R)F(.);
@ Results from BYTES:
@ # B716h
@ 104.5
\<<
" enter function" { "''" 2. ALG V } INPUT
OBJ\->
\-> a
\<<
a PARTFRAC
DUP
"y(x)" \->TAG \->STR MSGBOX
\>>
\>>
Also, there's no need to use a local variable structure for this
program. The above program takes an object from the stack, stores it
to a local variable, and then puts the contents of the local variable
back on the stack and uses it for the argument to PARTFRAC, and
finally removes the local variable when it's done. Why jump through so
many hoops? Maybe try:
%%HP: T(3)A(R)F(.);
@ Results from BYTES:
@ # 78EEh
@ 88.
\<<
" enter function" { "''" 2. ALG V } INPUT
OBJ\->
PARTFRAC
DUP
"y(x)" \->TAG \->STR MSGBOX
\>>
That's smaller and faster, and ends up accomplishing the same
thing.
Regards,
James