|Re: HP 42s Feet-inch-Fractions|
Message #7 Posted by Fred Lusk on 10 Oct 2005, 12:18 a.m.,
in response to message #1 by Kelley
I sent you a personal response to your email, but here is the substance of it for the other participants in this thread.
"Kelley…Sorry for the slow reply, but I was completely tied up last week. One of my other hobbies is amateur astronomy. Last week I got our club calandar ready for the printers (it's a small wall calendar that includes astrophotos by club members, a schedule of club events, moon phases, astronomical events, etc.) and I finished two PowerPoint presentations that I gave at a star party/amateur astronomy seminar this weekend at a lodge near Sequoia National Park (topics: "Beginning Astrophotography" and "A Tour of the Night Sky"). That, and I worked all week. Thank goodness last week is over. If you want to see the calendar part of the calendar, it's at http://www.cvafresno.org/calendar/. We don't post the photos because we sell the calendars.
"Unfortunately, I haven't had time to get back to finishing the rewrite of the program. I'm actually about 75% done with it, but the last several years (yes, years) have been extremely full and I have done almost no programming, except for torturing myself converting a civil engineering program I wrote for the 42S to my 48G+. I like the end product, but I will never do THAT again. Give me keystroke RPN programming any day. However, I need to get F-I-F finished because it's bugging me, and you're not the only person who has asked about the rewrite. I use my 42S more than any other calculator and I need F-I-F on it. Right now, I use F-I-F on a 41CX emulator on my computer.
"A couple of years ago, I sent someone the instructions for converting my 41CX code to the 41C/CV instruction set (which would also work on the 42S), but that was before a hard drive crash and I don't have the email anymore. Most of my notes are boxed up right now, but from I remember, you need to do the following:
"--- Convert [0 X<>F] to [CF 0 CF 1]. The original instruction clears flags 0-7, but because the program uses flags 0 and 1 and not flags 2-7, you really only need to clear flags 0 and 1. I happend to like a clean display, so I clear all of them with this instruction rather than using a different input for X<>F to clear just flags 0 and 1.
"--- Convert the various REGMOVE commands. This will take a bit more work, but the concept is straightforward: REGMOVE moves a block of registers from one place to another based on the value in the X register. My 41CX manual isn't handy, but I remember that the parameter in X is defined as follows: aaa.bbbccc, where aaa defines the start of the FROM block of register, bbb defines the TO block of registers, and ccc defines the size of the block. Thus [11.001004 REGMOVE] at steps 47 and 48 will move the four registers starting at register 11 (i.e. R11, R12, R13, and R14) to the four registers starting at register 01 (i.e. R01, R02, R03, and R04). You can duplicate this with [RCL 11 STO 01 RCL 12 STO 02 RCL 13 STO 03 RCL 14 STO 04]. The other REGMOVE commands work in a similar fashion. Please note the constant in step 13 is stored in R09 and reused several times."