[comp.sys.handhelds] uuencoded FIND and syseval CFIND for 48

alonzo@microsoft.UUCP (Alonzo GARIEPY) (08/17/90)

Here is a uuencoded version of my FIND program.  Using machine language,
it searches the memory of the calculator very quickly for a sequence of
nibbles that you supply.  If you wanted to look for 33D4E35 (low to high
memory) starting at address #20000, the arguments to FIND would be:

	2: #53E4D336
	1: #20000

That is, the nibbles you specify must be in reverse order (high to low
memory) followed by the number of nibbles less one.  Here we are looking
for 7 nibbles (33D4E35) so we put 6 at the end of the binary integer.

The first address FIND checks will actually be #20001.
When find returns, it will display the address where the pattern was
found or it will have searched all memory and returned to #20000.
When there are several instances of the pattern in memory, you can just
keep executing FIND and it will display the successive addresses.
You can easily automate this process in another program.

begin 600 find
M2%!(4#0X+4&=+>!A(\FB<K8:_L4QDP(!`````````L7%T;L?3BI0`0``````
M``````GHT;L?Q<7!W`*1`!`C(:#/(1%'01=#81IEIU^!$&443$$3`V$9)#$0
M)8?0GP$E8;!/2U;Q"/S0!)X!V_L4!O4>-#$2ED$@$!+Z'`(Q$B1AA("<8R,K
",0#0
`
end

FIND was particularly useful for determining the location on the 48
of routines I had discovered on the 28.  Most of this code was not
rewritten so I just searched for a sequence of machine code instructions.
Since many addresses have changed on the 48, I had to be careful not to
use sequences that contained an address.  I have also used this technique
to map Eric Toonen's Syseval map onto the 48.  Sometimes I had to disassemble
the code first so I could see embedded addresses.

Rick Grevelle has done a great deal of work in exploring the HP 28 and
as part of his researches into the 48, he has created the following program
for generating the FIND program.  This will prove useful to those of you
without serial communications to your 48 or access to the uudecode program.
I'll see if I can get Rick to put together a list of 48 Syseval addresses.

From: Rick Grevelle <uunet!tamuts.tamu.edu!n242df>
Subject: HP 48 version of CFIND

CFIND [C44B]

\<<
    \<<  RCWS  20  STWS  SWAP  #0h
         OR  SWAP  STWS  A  1  +  
    \>>  10
          #1471121CFA021231h
          #15FA7651A6143174h
          #10313414C1465108h
          #FD08725103124196h
          #1564B4FB06125019h
          #BDB019E04D0FC08Fh
          #61231341EF50614Fh
          #1021CFA121020419h
          #C80846124123h
     48  STWS  #0h  OR  64  STWS
     1  8  START
          #5193h   SYSEVAL
           NEXT  #2DCCh
          #5A03h   SYSEVAL
          #5ACCh   SYSEVAL
          #1D524h  SYSEVAL
          #54AFh   SYSEVAL
          #5445h   SYSEVAL
\>>