Native mode of trig functions?
|
10-12-2024, 02:58 AM
Post: #15
|
|||
|
|||
RE: Native mode of trig functions?
(10-11-2024 01:56 PM)dm319 Wrote:(10-11-2024 12:31 AM)brouhaha Wrote: I'll describe the algorithm specifically with regard to the HP-15C implementation, based on my own reverse-engineering work.Very impressed you can figure that out from the ROM! I've spent a LOT of time working through disassembly listings, originally just to turn the disassemblies of various calculator ROMs back into an approximation of source code, but later to actually develop an understanding of how various parts of it actually work. At one time HP actually asked ME for the HP 12C source code, but I've actually never had the actual source code for any of the Voyager or Spice models, nor for most of the pre-Saturn models. Fortunately HP did not long after that manage to recover the 12C source code, though one of their engineers has said that the source code for the Voyager (and earlier) calculators is basically unusable. My interpretation is that they don't want to hack on Nut assembly code any more than absolutely necessary for simulation in the ARM-based Voyager hardware. I don't think that's an unreasonable position; only some of us Nut-jobs are willing to do it. :-) Quote:If I ever get that ROM out of the Rogue One I know who to ask. It's probably written in C compiled to 6502 (or 6502-like) machine code, and might be more difficult to extract useful knowledge from than Nut code, but I'd definitely be interested to look it over. I have reverse-engineered a lot of 6502 code over the years, but none that was compiled from a high-level language like C. The 6502 is rather ill-suited to C, so I expect the result to be rather convoluted, if the compiler is actually any good. If the compiler doesn't optimize well, it might contain a huge amount of boilerplate, which might actually make reverse-engineering easier. Quote:PS Do you happen to know how the TVM functions are calculated on the 12c? I'm curious as to the formula and method used for the solve-for-i. As are we all! Of course, that's the 12C's "secret sauce", so while HP has described aspects of the algorithm in general terms, they have not published any of the details. While I have reverse-engineered some of the 12C code, I have not had time to really investigate the actual interest computation, which of course is the most complicated code it contains. I think it may be easier to do such reverse-engineering initially from the 37E. As far as I'm aware, the 12C algorithm is very close to the one the 37E, 38E, and 38C use, and the 37E only has 2.5 Kwords of instructions to decipher, vs. 6 Kwords in the 12C. Also, the first 1K of the 37E ROM, in the 1820-2122 Spice CPU chip, is shared with the 38E, and the next 0.5K is nearly identical between the two. |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 2 Guest(s)