Looking for William Doug Wilder


See topic. He wrote a paper about the HP41 printer, titled "HP82143A preliminary study" which is available at TOS. Would like to have the sources of the printer VASM listing with labels and permission to use these in my HP41 disassembler.


And forgot to mention: I am also looking for a list of entry points of HP-IL and timer ROMs



I haven't seen any "list" of entry points for either. The HP-IL ROM has a few subroutines suitable for external use, but I don't recall seeing many in the Time ROM. They're both mainly intended to provide user-level functionality.

AFAIK, HP didn't release any VASM listings for the 82143A. Much of the code is similar to the printer portion of the HP-IL ROM.

Edited: 6 Mar 2008, 4:58 a.m.


Hi Meindert,

As Eric Smith said above, there isn't any list, other than what's available in the PPC Journals. What I did was to use the 82162A VASM from HP to snag the labels, then painstakingly decided where they should be for the 82143A disassembly. This was a matter of looking at the code sequences for similarities. All the labels are at different locations. Lots of hair pulling! A few labels are totally "made up".

As far as permission, you don't need any, that study is not copyrighted.

The lists published in PPC are for the 62A rev 2E, the HP-IL module, the Timer 1C chip, the basic 41C VASM, and XF rev C. Note: the 62A rev 2E rom differed from the 2D rom only in that CR and LF were swapped. These were the only VASMs released by HP although Warren says that an HP VASM does exist for the 43A, I have never seen it. All the disassembly notes in that preliminary study are from my own observation and a few from the 62A VASM (digit entry stuff).

I don't have a list of labels for the 43A, haven't gotten to this yet (if ever). Any volunteers?

BTW, there is yet another cpu bug, have you seen this one?

04E C=0
09C PT=5
2D0 LD B
170 PUSH
Maybe this is common knowledge, haven't seen it published though.
HP didn't know about it, evidenced by the code @ MSGA 1C6C.
This makes a rule: "don't POP in decimal mode".


Edited: 7 Mar 2008, 4:15 a.m.



Thanks for responding. I had already extracted the listing from your paper and took the labels out to a seperate file. I assumed that this was a lot of handwork, so thanks for that. I think your paper is just as good as the VASM listings, and better readable!

I want to have labels for use with the HP41 disassembler that I have, so that any jumps are nicely represented with something that can be understood instead of an address. In some ROMs there are also jumps straight into the IL ROM, but with the VASM listings that should not be too difficult, since that are only a few locations. Also I have seen code that have jumps into the HP41 system ROMs to non-labeled locations. I would need to document these as well.

I did not know about the bug you showed, but maybe someone else knows if this is documented somewehere?



HP didn't know about it, evidenced by the code @ MSGA 1C6C.

I doubt they didn't know about it. In my copy of HP-41 ROM VASM listing there are following comments for 1C6B MSG: "!!! DOESN'T WORK IN DEC MODE !!!!!!!" and "ASSUME: HEXMODE" ... But, it is a little strange that they put SETHEX after C=STK. It doesn't make sense. Maybe the first programmer (who wrote this subroutine) didn't know about the problem and the second one didn't want to change the code - he just put a comment. So, they were aware of this behavior.

BTW, what is in C[4:7] upon the execution of C=STK in your example (I cannot test it on the real HP-41C)? I assume this is some variation of "handling hexadecimal numbers in decimal mode" undocumented feature of the Nut CPU. HP used this feature to convert numbers from HEX to DEC inside HP-41 ROM. 05E8 GENNUM is a good example ...

Edited: 7 Mar 2008, 11:20 p.m.


"!!! DOESN'T WORK IN DEC MODE !!!!!!!"

Thanks, I hadn't seen that comment, the mf disassembly i still use is my own so i guess i should read the published material before making comments like that... There is very little that HP did not know.

The result of the routine is in C and X(6-3): 1B00

The NUT cpu POP increments MSD if next to MSD is in the range A-F iff in decimal mode. Not likely to bite unexpectedly, yet possible. I don't see how this can be called a "feature". This seems to be the only Class 0 instruction whose characteristics depend upon the state of the decimal flag.

I have a question: does the C=0 RAMSEL PRFSEL bug in halfnut have a name? This one bit me only seven years ago. Also, anyone know what this bug actually does? I'm too lazy to test it.


Edited: 8 Mar 2008, 1:04 a.m.


This one is not a "feature", for sure. By "feature" I meant (undocumented, I think) handling of hexadecimal numbers in decimal mode used by HP to convert hex numbers to dec. For example, with #00B in C(X) the result of C=C+1 X is #012 and C=C-1 X then gives #011 ...

I thought maybe it has something to do with this feature, but obviously this is just a bug ...

Possibly Related Threads…
Thread Author Replies Views Last Post
  William Wickes briefly introduces using the HP 48S/SX Peter Murphy (Livermore) 11 3,178 10-28-2012, 09:46 PM
Last Post: Luiz C. Vieira (Brazil)
  What happened to William Wickes? David Hayden 9 2,402 02-23-2009, 12:36 PM
Last Post: David Hayden
  I second DougĀ“s proposal! (N.T.) Vieira, Luiz C. (Brazil) 0 680 11-16-2007, 12:28 PM
Last Post: Vieira, Luiz C. (Brazil)
  HP-85 Playing the William Tell Overture Vassilis Prevelakis 2 1,070 01-28-2007, 10:21 PM
Last Post: Vassilis Prevelakis
  William "Billy" Wickes John Kercheval 1 839 02-15-2006, 05:17 PM
Last Post: Eric Smith
  Need to contact William Drylie Iqbal 0 685 12-25-2003, 07:15 PM
Last Post: Iqbal
  Re: Call for DOUG about HP-16C Cameron 0 746 08-24-2001, 11:42 PM
Last Post: Cameron

Forum Jump: