A Woodstock/Spice hardware design mystery solved


Ever since I've been working on reverse-engineering the Woodstock/Spice era hardware for use in simulators (such as my Nonpareil), and figured out how the bank-switching works on Spice (and probably on Woodstock, though I haven't yet confirmed that), I've wondered how the multiple ROM chips all make sure they agree on the bank, and how they're forced to start in bank 0 at power-up. The mystery is that there is no reset signal going to the ROM chips (or ROM/RAM chips).

In theory it would be possible for the chips to each have their own internal power-up-reset logic, but in practice this would increase chip area and might not reliably get them all reset properly. Using 1970s technology, this would have required external RC components. It would have made even less sense for HP to put those in for each ROM than just to bus a reset signal from the ACT to the ROMs. But they didn't do either.

Studying a logic analyzer trace, I think I now know the answer. Each word cycle consists of 56 bit cycles, which are defined by the two-phase clock pulses. The various chips have to know when a word cycle begins, and they do that by watching the SYNC line, which is generated by the ACT. The SYNC line is low most of the time, but goes high for ten bit cycles of each word. Those are the ten cycles in which a ROM instruction is read out. Each chip on the bus other than the ACT has an internal counter that tracks the current bit time, and it uses the SYNC line to initialize that.

There are some two-word instructions, and the ACT does not raise the SYNC line while fetching the second word, so the counters in the chips are designed to "ride through" the missing SYNC period. They also know that they shouldn't try to interpret the ROM words bits that are read out when SYNC is not present as an instruction, because it's really a branch target.

I've captured a lot of logic analyzer traces in the past, but tonight I captured one from an HP-97 during initial power-up, and I think I now understand how the system-wide reset is implemented. At powerup, the ACT starts generating the clocks, and it holds the SYNC line low for about four milliseconds to allow various things in the system to stabilize. Then it starts generating narrow SYNC pulses once per clock. It generates about 30 of those, with somewhat variable width, then starts holding SYNC high. It keeps SYNC high for about 22 ms. Finally, it lowers SYNC, then begins pulsing it at the usual rate (10 bit times high out of every 56, except for the second word of two-word instructions).

So it appears that the ROMs and other "peripheral chips" are designed to reset themselves if they seen SYNC high for more than ten bits consecutively. Quite a clever solution to having a hardware reset without any extra pins.

I think the narrow SYNC pulses before the 22 ms high time are probably just an artifact of the ACT implementation; the ACT likely is not yet fully initialized yet. I doubt that any of the other chips notice these pulses at all, because they happen after the phase 2 pulse, rather than staying high throughout the phase 2 pulse.



Hi, Eric;

what can't a brainy guy do with a logic analyzer, digital field restricted answers? Thanks for sharing your observations with us all. BTW, your post, by itself, is not only enlightenning, it is also a very good reading!


Luiz (Brazil)


Hi Eric!

Tnx a lot - reads like the story of succes of Howard Carter and Lord Carnavon. Pls continue, I like that kind of adventures.

Is this finding the reason for your latest work on Nonpareil? Im still not able to run neither Woodstocks nor any of the Spice serie under Cygwin.



Is this finding the reason for your latest work on Nonpareil?

No. Just trying to reverse-engineer how the Topcat, Sting, and Hawkeye models work.

Im still not able to run neither Woodstocks nor any of the Spice serie under Cygwin.

If Classic and 41C run OK, it's strange that Woodstock and Spice won't.


Sorry - does not work either. In two weeks a Linux specialist will help me.



I had to write some utilities to get logic analyzer traces from my HP 16500B into a useful form, and one of them might be useful to anyone else that's working on old calculators using old HP (or Agilent) logic analyzers.

When you transfer the captured data from the analyzer (over Ethernet, serial, or IEEE-488), you get separate ASCII text files for each signal. I wrote the program la2vcd to convert those files into a VCD file which should work with any VCD waveform viewer application; I use GTKWave.


Hi, Eric;

again, thanks for the valuable contribution. Although I don't own a logic analyzer myself, I'm aware of what some HP models (and other brands) offer as helping aids, like programming and customization. Well, knowing what they are capable of doing is not exactly being able to do what you've done. Congratulations! This is something to be proud of!

Best regards.

Luiz (Brazil)

Possibly Related Threads...
Thread Author Replies Views Last Post
  Usefulness of Woodstock Cs without their C Matt Agajanian 5 1,757 12-10-2013, 02:05 PM
Last Post: Geoff Quickfall
  HP-80 History, Design and Interesting Facts BShoring 1 877 11-30-2013, 08:50 AM
Last Post: Xavier A. (Brazil)
  Another Prime mystery - templates don't work anymore Michael de Estrada 2 926 11-02-2013, 11:34 AM
Last Post: Michael de Estrada
  Dedicated HP calculator programming-hardware-bug website? Geoff Quickfall 12 1,889 10-12-2013, 11:34 PM
Last Post: Les Koller
  CLASSIC/SPICE KEY LEGENDS Mike T. 2 999 08-21-2013, 04:53 PM
Last Post: Mike T.
  HP Prime (DVT Prototype) Hardware Details Adrien Bertrand 7 1,947 08-10-2013, 12:04 PM
Last Post: Eric Smith
  Woodstock, Classic & Spices for iPhone Matt Agajanian 8 2,034 07-10-2013, 06:10 PM
Last Post: BShoring
  [wp34s] Minor Issue with Stopwatch on real hardware RalfGeiger 3 1,236 04-16-2013, 04:12 PM
Last Post: Eric Smith
  HP Spice Legacy in the former CCCP (MK-61) Mike Morrow 17 3,241 04-07-2013, 08:25 PM
Last Post: db (martinez, ca.)
  HP 10s+ hardware Mic 1 748 04-07-2013, 07:52 PM
Last Post: Eddie W. Shore

Forum Jump: