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=-