[comp.sys.handhelds] Undocumented Functions

nevin1@ihlpf.ATT.COM (00704a-Liber) (02/06/88)

In article <3255@super.upenn.edu> mallow@linc.cis.upenn.edu.UUCP (Eric Mallow) writes:
>  Does anyone know of any undocumented functions on either the HP-25,
>TI-59, or HP-28c? Are there any undocumented features involving the
>TI-59/PC-100C printer combination, or TI-59 card reader?

One of the undocumented opcodes on the TI-58/59 (I think it was 48) would
allow you to modify the printer registers directly.  The way you enter this
opcode is by going RCL 48 in program mode, then go back and delete the RCL.
When this opcode is printed, it prints as "HIR", and the next line is the
register number you want to modify (such as HIR 01).  These registers only had
ten digits of precision (as best as I remember it), and would store non-negative
integers only.  You could do some of the things you could do with normal
registers, such as multiply into them, etc.

Although I originally discovered this undocumented function I did not know the
full extent of what you could do with it until I read about it in a TI-58/59
newsletter.
-- 
 _ __			NEVIN J. LIBER	..!ihnp4!ihlpf!nevin1	(312) 510-6194
' )  )				"The secret compartment of my ring I fill
 /  / _ , __o  ____		 with an Underdog super-energy pill."
/  (_</_\/ <__/ / <_	These are solely MY opinions, not AT&T's, blah blah blah

mms@gpu.utcs.toronto.edu (John J. Chew III) (02/08/88)

In article <3624@ihlpf.ATT.COM> nevin1@ihlpf.UUCP (00704a-Liber,N.J.) writes:
> In article <3255@super.upenn.edu> mallow@linc.cis.upenn.edu.UUCP (Eric Mallow) writes:
> >  Does anyone know of any undocumented functions on either the HP-25,
> >TI-59, or HP-28c? Are there any undocumented features involving the
> >TI-59/PC-100C printer combination, or TI-59 card reader?
> 
> One of the undocumented opcodes on the TI-58/59 (I think it was 48) would
> allow you to modify the printer registers directly.  The way you enter this
> opcode is by going RCL 48 in program mode, then go back and delete the RCL.
> When this opcode is printed, it prints as "HIR", and the next line is the
> register number you want to modify (such as HIR 01).  These registers only had
> ten digits of precision (as best as I remember it), and would store non-negative
> integers only.  You could do some of the things you could do with normal
> registers, such as multiply into them, etc.

The HIR opcode allowed you access to the stack that was used to
hold values during HIeRarchical algebraic expression evaluation.
I vaguely recall finding them useful when memory was running low
and I wasn't doing anything with a complicated order of evaluation.

There was also something else I remember discovering about strange
things that happen if you step past the end of program memory
when the last instruction was a multi-step instruction.

If I could only find my notes or my 58C in my closet now... :-)

John Chew

-- 
john j. chew (v3.0)                       poslfit@gpu.utcs.toronto.edu
+1 416 463 5403 (300/1200 bps)            poslfit@utorgpu.bitnet
{cbosgd,decvax,mnetor,utai,utcsri,{allegra,linus}!utzoo}!utgpu!poslfit
"Holy priceless collection of Etruscan snoods!"

davidbro@microsoft.UUCP (Dave BROWN) (03/21/90)

After browsing through the manual and looking through the menus a few times,
I discovered a pair of functions that weren't explained in depth.  They
were listed in the manual in the function summary, but no references were
given.

Both have names that recall Lisp functionality, and both do what you would
expect.

APPLY takes a name and a list, and returns an algebraic:

	{1 2 3} 'foo' APPLY --> 'foo(1,2,3)'
	'APPLY(foo,1,2,3)' EVAL --> 'foo(1,2,3)'

QUOTE returns its argument, unevaluated:

	1 QUOTE --> 1
	'foo' QUOTE --> 'foo'
	'QUOTE(foo)' EVAL --> 'foo'
	'QUOTE(1+2)' EVAL --> '1+2'

At first I couldn't see any reason to have QUOTE, until I realized that it would
guard an evaluatable algebraic (e.g. '1+2') from being evaluated, making such
operations as:

	'APPLY(foo,QUOTE(1+2))' EVAL --> 'foo(1+2)'

possible.

I may be going on about nothing, but what did HP have in mind when they
included these functions?  There is a very large syntactic difference between
algebraics and programs, even though they may look the same internally, and
I don't see any trivial use for these functions, except maybe internally.
Of course, this could just mean they were meant to solve non-trivial problems,
and I'm just missing the boat entirely, which wouldn't be the first time.

Could anybody at HP enlighten me?  Will this be something covered in the
forthcoming book on programming?  And when will that book be out?

dave
-- 
Dave Brown                                       ...!uunet!microsoft!davidbro
...ni ssendriew eht tel eW
"the night doesn't like it...
 looks just like your face in the moon to me"