[comp.sys.handhelds] Sysevals and Hidden objects.

frechett@boulder.Colorado.EDU (-=Runaway Daemon=-) (10/05/90)

This is a note that I received from Rick Grevelle conserning SYSEVALS and 
some questions that I asked conserning how to get the null length object
into a list and then into a key assignment. 


From n233dk@tamuts.tamu.edu  Thu Oct  4 17:58:02 1990
Received: by snoopy.Colorado.EDU (5.57/CU-CNS2.4-C)
	id AA21422; Thu, 4 Oct 90 17:58:02 MDT
Received: from tamuts.tamu.edu by TAMU.EDU (AA08888); Thu, 4 Oct 90 18:56:55 CDT
Received: by tamuts.tamu.edu (/\../\ Smail3.1.14.4 #14.2)
	id <m0iKZpP-00003vC@tamuts.tamu.edu>; Thu, 4 Oct 90 18:57 CDT
Message-Id: <m0iKZpP-00003vC@tamuts.tamu.edu>
Date: Thu, 4 Oct 90 18:57 CDT
From: n233dk@tamuts.tamu.edu (Rick Grevelle)
To: frechett@snoopy.colorado.edu

>Yes, I would be interested in knowing how you make that program a 
>bit smaller.  I can always use the space.  What you gave to me makes 
>and interesting object to say the least.  I am curious how it holds together
>and also if it is possible to get this into <<   >> in any way?  I do
>appreciate your reply.  I enjoy my hp greatly. ;)  
	
Last question first, the French quotes are not the main program delimiters.
They are user program delimiters used by the 48 to compile and distinguish
user written programs.  While it is not really complicated, it is a long and
detailed explaination of how objects are stored internally.  Currently I am
still slowly working on an article which will help individuals such as you
to get started hacking.

Here is the ->KEY routine made as short, and fast, as possible.  C->KEY is 
needed to create an on stack copy of ->KEY.  It utilizes a SYSEVAL which
works by appending the binary integers.  This version of ->KEY is written
similarly to the RPL routines found in the 48's ROM.  An RPL dissassembly
follows of ->KEY.


C->KEY
(BYTES: #BFA5h 115)

%%HP: T(3)A(D)F(.);
\<<
 # A06E9718AB212D9Dh
 # D1A3BE06E9720B9h
 # 312B05445040h 1 2
 START # 5193h SYSEVAL
 NEXT # 4003h SYSEVAL
 # 62B9Ch SYSEVAL 
\>>


02D9D    begin RPL
18AB2    need one argument from stack
06E97    place next address on stack, do not call
20B9A    rcl list
06E97    place next address on stack, do not call
1A3BE    EVAL
0400D    short integer <3h>
05445    ->program
0312B    end RPL

Since there are probably others who would might possibly be interested in the
above information, perhaps you should consider posting it.

------end quote--------

Hope someone can use the information besides myself and I would like to thank
Rick again.  

	ian

--

-=Runaway Daemon=-