The Museum of HP Calculators

HP Forum Archive 13

[ Return to Index | Top of Index ]

Woodstock ACT Instruction Set
Message #1 Posted by Michael F. Coyle on 30 May 2003, 1:57 a.m.

I've been delving into my new HP-21. I'm looking at the instructions coming from the ROM and it's clear that there are new instructions, not present in the older 2-chip microprocessor used in the older machines.

Has anyone worked out the instruction set for these machines? I'd like to do a ROM dump someday (some year?) but there seems to be very little information on the internals of Woodstock and Spice calculators. The earlier machines are well-documented due to the patent disclosures (the HP-45 patent and code listing is my favorite bedtime reading these days) and the HP-41 and later machines seem to be well-understood too.

Any solid information, or pointers to same, would be appreciated.

- Michael

      
Re: Woodstock ACT Instruction Set
Message #2 Posted by Renato on 30 May 2003, 12:51 p.m.,
in response to message #1 by Michael F. Coyle

Michael, I have no additional information, but can you describe your procedure, setup and instruments for delving into the HP-21 ? If I can, I will try to do it myself.

Renato

            
Re: Woodstock ACT Instruction Set
Message #3 Posted by Michael F. Coyle on 31 May 2003, 12:00 a.m.,
in response to message #2 by Renato

Hi Renato,

First, let me describe how I've spent the last three weeks.

I bought an HP-21 on eBay and received it May 10. I spent a couple of days playing with it and charging up some batteries. I then took it all apart and hooked it up to my test equipment. It's been that way ever since.

I have the HP-21 schematic that's been floating around here for a while. I've been using an oscillscope to look at the various signals coming off the chips and I've produced a detailed timing diagram (similar to what's in the HP-97 servide manual but more detailed).

The most interesting signal is the one that carries addresses and data to and from the ROM. I can look at the signals and read some of the bits but the instructions don't match up well to the Classic instructions, as far as I can tell. In particular, addresses have been widened to 10 bits from 8 and some instructions, branches at least, take two words in memory.

My 'scope has analog storage and delayed sweep, so I can sometimes trigger on a repetitive instruction sequence and read off all the addresses and data; it's pretty tedious though. Here's an example of what I have: the idle loop (waiting for a key to be pressed) is apparently a single instruction, two words long:

Addr  Data       My Interpretation
----  ----       -----------------
 254  1111011100 (Probably: If no key pressed, goto...)
 255  0011111110 (254)

SYNC is asserted during the data read-in at location 254 but not at 255, as we'd expect from a two-word instruction. (By the way, the bits are presented on the bus LSB first; I've reversed the back to their "right" order in the example.)

I'll throw in the other piece of code I have information for: the other part of the idle loop, which runs after your function has been executed but while your finger is still holding down the button. (In other words, it's waiting for you to lift your finger so that it can resume the scan listed above.)

Addr  Data       My Interpretation
----  ----       -----------------
 246  1111001100 (Old CPU: 15->p)
 247  0010111100 ???
 248  0110010000 (Old CPU: Select ROM 3)
 249  1011101100 (Old CPU: If p # 11)
 250  0011111000 (248)
 251  1111010100 (Probably: If key still down, goto...)
 252  0011110110 (246)

The instructions listed as "Old CPU" are probably wrong for the ACT. What actually happens is that the instructions at 246 and 247 initialize a loop, probably a debounce delay. The instructions from 248 to 250 are executed 7 times in the loop. (The delay would be about 7 ms.) After the loop, there is probably a test that says, if the key is still being held down, then jump back up to 246 and do another delay. If the key was lifted, the CPU presumably executes a one-word instruction at location 253 (I haven't seen that one yet), then waits in the one-instruction loop at 254 and 255.

I've stopped looking at the moment because this is about as far as I can get get with the equipment and knowledge I have. I could build a special piece of hardware to automatically grab the addresses and data on the bus but without better information on the instruction set and opcodes, there's not much point.

If any of the HP engineers who worked on these chips or calculators are lurking on this Forum, now would be a good time to speak out!

Comments, etc. always welcome.

- Michael

                  
HPJournal on Woodstock
Message #4 Posted by Renato on 1 June 2003, 12:50 a.m.,
in response to message #3 by Michael F. Coyle

Michael, HP designers spoke out in HP Journal, November 1975. Ive quoted a part of one article below. There is a full article describing woddstock architeture and design. Ive got a PDF of the HPJ issue on the PPC CD ROM set.

Best regards,

Renato

Quote:
Design Details

Several improvements in the instruction set of the HP-21-family microprocessor made life much easier for the microprogrammer. Three of the most useful improvements were 12-bit subroutine addresses, the digits-to-ROM-address instruction and the data register instructions.

In the HP-35 microprocessor, the microinstruction address was only 8 bits long. Each 256-word ROM would turn itself on or off as ROM-select instructions dictated. There was only one level of subroutine and the return address had only eight bits. The HP-21 microprocessor uses a twelve-bit address. A given ROM responds only when it sees an address it contains. Subroutines can be located in different ROMs and easily return to the correct next instruction. The new processor can save two twelve-bit subroutine return address. Two levels make it possible for one subroutine to call another.


                        
Re: HPJournal on Woodstock
Message #5 Posted by Ellis Easley on 1 June 2003, 2:22 p.m.,
in response to message #4 by Renato

That article is also available here online:

http://www.hpmuseum.org/journals/wooda.htm

Also another article from the same year about Woodstocks:

http://www.hpmuseum.org/journals/woodb.htm

This article is mostly about the hardware design and has some paragraphs about each chip.

                              
Re: HPJournal on Woodstock
Message #6 Posted by Michael F. Coyle on 1 June 2003, 3:13 p.m.,
in response to message #5 by Ellis Easley

Renato, Ellis,

Thanks for the pointers to the articles. Interesting stuff!

- Michael

                                    
hp22 patent info
Message #7 Posted by Ellis Easley on 1 June 2003, 6:13 p.m.,
in response to message #6 by Michael F. Coyle

Mike Sebastion's (Calculator Forensics) website has a page of links to calculator patents. This description is among them:

4055757 HP-22 Financial calculator with annuity begin/end period switch.

Maybe it contains some details you are looking for. He has cleverly hidden the addresses of the individual pages of his site, but if you go to:

http://calcinfo.com/

and click on "Calculator Related Patents", you will see the list. He doesn't have the patents, just links to the United States Patent and Trademark Office.

                                          
Re: hp22 patent info
Message #8 Posted by Michael F. Coyle on 1 June 2003, 11:36 p.m.,
in response to message #7 by Ellis Easley

Hi Ellis,

The patents were interesting; they even included small bits of source code. I've printed them up and will read them tomorrow.

Some of the other patents were interesting, especially 3955074, which is four pages long and covers just the gold key! I wonder how much money was spent doing that!

Thanks.

- Michael

                                    
Re: HPJournal on Woodstock
Message #9 Posted by Ellis Easley on 1 June 2003, 7:51 p.m.,
in response to message #6 by Michael F. Coyle

I just noticed another item in Mike's list of HP patents:

3987290 Engineering notation

According to the HP Journal articles that Renato found, engineering notation was an innovation on the HP25.

                                          
Re: HPJournal on Woodstock
Message #10 Posted by David Smith on 3 June 2003, 4:15 p.m.,
in response to message #9 by Ellis Easley

A a damn fine innovation at that... once you use it, you never go back to SCI.

      
Re: Woodstock ACT Instruction Set
Message #11 Posted by David Smith on 30 May 2003, 4:38 p.m.,
in response to message #1 by Michael F. Coyle

You can learn quite a bit about the woodstock architecture from the HP97 service manual on the HPMUSEUM CDROMs.

            
Re: Woodstock ACT Instruction Set
Message #12 Posted by Michael F. Coyle on 30 May 2003, 10:56 p.m.,
in response to message #11 by David Smith

Hi David,

Thanks for the tip. I just read the manual. I did get some good info from it, like some signal names, but alas, no information about the ACT instruction set itself. Oh well.

I did also find some good info in some lecture notes for a talk given by Tony Duell.

I'm still looking.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall