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