|HP-41CX back to life using X-Function "PCLPS"|
Message #1 Posted by Karl Schneider on 1 Apr 2006, 11:11 p.m.
HP-41 owners --
(NOTE: This is not an April Fool's Day joke!)
I was able to restore my fullnut HP-41CX back to normal operation from a dysfunctional state, with the help of its built-in X-Functions command PCLPS (which is available on the X-Functions ROM for the HP-41C/CV).
Recently, I got a used 82160A HP-IL module, and plugged it into my halfnut HP-41CV with other modules installed and programming in memory, but without any device connected. The module was properly recognized; CATALOG 2 provided a directory of functions without any problems.
Then, I plugged it into Port 4 of my fullnut HP-41CX, which had three other modules -- IR Printer, Advantage, Math/Stat -- along with programs in memory. These programs started with a byte grabber and synthetic "TONE d" program, followed by a 60-register astronomy program and other short applications.
Strange things happened when executing CATALOG 2 for the second time on the 41CX (I may have tried this with and without the HP-IL enabled.) The keyboard became nonresponsive; time-function alarms sounded that I had never set; the calc failed to turn off using the "ON" button. I removed all modules and the HP-IL, but was unable to turn the unit back on with the "ON" button.
After removing the battery to discharge the capacitors and jumpering the battery terminals, I discovered that the "ON/<-" reset combination would turn the calc back on, but would not reset as it was supposed to. In fact, this was the only way to turn it back on. But, at least I could try more things...
- shift-ON turned the calc off, rather than turning the clock on. (However, CLOCK worked fine.)
- Only by removing then reinserting the batteries, followed by "ON/<-" turned the calc on. "CLX" was displayed, but not "MEMORY LOST".
- The PACK command essentially froze the calc, until turning back on by the above procedure.
- CLP commands did not complete, because PACK did not work.
The first item listed by CATALOG 1 was initially a very large (> 1000 bytes) program identified as "PRIVATE". Chipping it away line-by-line using backarrow (because CLP didn't work) showed many corrupted instructions from the astronomy program, some of which resembled synthetic instructions I never entered. The other programs remained intact.
After I had deleted as much as I could of this "franken-program", CATALOG 1 showed "01 LBL 12 632" -- 632 bytes that could not be displayed. I chipped away all the unaffected programs, but seemingly nothing could kill the rogue code, even complete discharging of the capacitors.
Finally, I decided to see if any command similar to "CLEAR PRGM" on the Voyagers was available -- something to wipe out program memory. PCLPS ("programmable clear program subsequent") did the job, removing the corrupted code and freeing the unpacked space.
The malfunctions remained, though, and I noticed that one register was still unavailable -- executing SIZE 000 yielded ".END. REG 318" in program mode, instead of ".END. REG 319". This time, however, the "ON/<-" worked as it was supposed to -- "MEMORY LOST" was displayed, and everything was back to normal.
The lesson? From now on, no synthetic-program "development" on my 41CX! I will test that and new hardware on the 41C.
Any similar experiences out there?
Edited: 2 Apr 2006, 3:04 a.m.