The following warnings occurred:
Warning [2] Undefined array key 5596 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5597 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5598 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5613 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5614 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5616 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5617 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5618 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5619 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5620 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5619 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5620 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 5618 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





Woodstock Design: Why so many problem 27's?



#11

I've been doing a bunch of investigative work into why so many 27's seem to be giving users problems. It turns out that the 27 uses a different technology than the 21, 22 and 25 do. (I'll get the to 25C and 29C later).

The 21, 22, 25 all share a common power supply that outputs +6.5 volts and -12.5 volts from the 2.5 volt batteries. The 27 uses a very simply and cleverly modified power supply to output +6.5 volts, +12.5 volts and -3.3 volts. The +12.5 volt supply sharply contrasts to the -12.5 volt supply in the other Woodstocks. The -12.5 volt supply in the earlier calculators suggests that they use PMOS technology, while to +12.5 volts in the 27 suggests NMOS technology.

At the time the 27 was being developed NMOS was coming into favor with LSI IC manufactures because it could switch faster then PMOS. My guess is that HP decided to get its feet wet with NMOS in the design of the 27. Unfortunately, I'm not sure that the IC manufactures were very far along the learning curve in using NMOS and didn't produce very long-term reliable chips for HP. Also, unfortunately the use of NMOS verses PMOS makes using a chip swap approach to fixing 27 difficult because one has to get the chips from another 27 -- not a cheaper alternative calculator. (Actually, one of the two display/keyboard driver chips is the same as the older 21/22/25.)

Interestingly the 25C is identical to the 25 but uses an even more advanced technology, CMOS, but just for the RAM chips (it uses 2 instead of the one in the 25). The 29C is an entirely different calculator internally. It seems to use CMOS for the processor as well as the memory, uses several 8-pin ROMS (like the Spice series) instead of the one 16-pin ROM in the other Woodstocks and has a completely redesigned power supply. The CMOS processor is the reason why these machines (and the 19C) remember their stack when switched off.

All of the above was gathered by looking at the internals of these machines and making some measurements. So I might be somewhat off -- or even very far off -- in some of my conclusions and assumptions. If anyone has some more knowledge about the Woodstocks I'd love to learn about it.


#12

Katie,

I can't comment on the HP-27 because I never had one (interesting observation about that P-MOS/N-MOS issue!) but I'd like to comment on the fragility issue and also on the differences between various 25/25C/29C models.

I believe that the main reason for the fragility is the fact that when batteries are not properly inserted with the charger plugged in, the machine is exposed to excessive voltage. This doesn't even need to be the user's fault; the tin battery contacts become corroded over time and less conducting, so it's entirely possible that even with an installed battery, overvoltage conditions occur. This thing is even worse in continuous memory models, where the RAM chips receive the battery voltage directly, even when the machine is off; if the batteries are not present, the chips get the full unregulated 10+ Volts that comes out of the charger.

On the 25C: I have seen 25C's with both one and two RAM chips. The two-chip model has RAMs with HP part number 1820-1843, whereas the one-chip model uses 1820-1886. (2x43=86, is that just a coincidence?) The only other difference between the two is a 100 kOhm resistor connecting pins 8 and 14 of the RAM chip in the single-RAM model. Without that 100k resistor, RAM contents are erased/corrupted when the machine is powered down.

Most interesting to us tinkerers is my finding that the double RAM chip appears to be pin-compatible with the RAM chips from the HP-19C/29C, part number 5061-0469. At least that's how I managed to repair a 25C recently, and it is working fine! (Incidentally, it was a 2 RAM chip model, which I repaired with a single HP-29C RAM chip and by adding that 100k resistor.)

As for the HP-29C power supply, I've seen two variants there as well; one was on the main circuit board like in 25Cs, and it was essentially the same as the 25C power supply. The other is the newer (?), "piggyback" version.

By the way, I also found that there are several pin-compatible variants of the display drivers that have different HP part numbers.


Viktor


#13

Viktor,

I agree that the battery design of the Woodstocks leaves much to be desired and is the cause for the early death of many of them. Your RAM swaps occured to me too, but so far all my "C" machines are working fine (knock wood...) What I thought would be an interesting experiment is to put mutiple ROM whips in a single Woodstock with some switching mechanism to choose which one you want. Maybe a hybrid of a 22 and a 25 machine to make a sort-of programmable 27-like machine. Andrew Burg mentions something similar that he did with "classic" machines in passing in his excellent 35/45 peice. Has anyone tried this on a Woodstock?


#14

Katie,

I haven't experimented with swapping ROM chips between different Woodstocks; I'm happy enough when I manage to get them working in the first place!


Viktor

#15

A good deduction! There's a little information at:

http://www.hpmuseum.org/tech20.htm


#16

It might have been a good deduction, but I would have got there a lot sooner had I bothered to read your technology page. I'll go back to working on my next project now...using something round to help move things around on the ground!


#17

Hey I can think of a lot of uses for that round ground mover idea! When's the IPO?

If you get the time, it would be great if you could collect your entire Woodstock repair experience together into a posting in the articles forum. There's a lot of good information spread over a bunch of posts.

#18

In first place let me say Thank you! for all these details about Woodstocks. Many years ago, I tried to learn more about them, with little luck.

Just to add a detail: At least some, if not all, HP 29C lose some of their memory registers when turned off, as a standard feature, so stated on the manuals.

As the 25C keeps the memories, but lose the stack. I assumed that the 25C just replaced the PMOS RAM on the regular 25 with a CMOS chip, hence losing the stack because it was placed on the CPU. And the CPU, being the same chip than in the HP 21, only has the normal stack and one storage location.

The HP 25 memory should have 16 x 56 bit regsiters, which amounts to 8 56 bit memories + 49 1-byte program steps + Last X. These are the registers that the 25C preserves.

My assumption was that the 29C had some volatile registers, and some CMOS (non-volatile); but the stack was "phantomed" on part of the non-volatile memory by software means, so to give the impression of a non-volatile stack. The actual stack is, of course, on the CPU.

(A disgression: That last sentence makes me remember that the TI 9900 was the only 16 bit processor at its time which kept its registers and accumulators in RAM and not on-chip. Context switching was a breeze on such processor!)

Is it possible from your observations, to deduce if the volatile / non-volatile assignment is so, or if my "assumptions" are wrong?

I also suspected that the 16 x 56 bir CMOS RAM used on the 25C and 29C may be a close relative to the 16 x 56 bit CMOS RAM used on the first HP 41C and memory modules, before the advent of a 64 x 56 bit CMOS RAM for the HP 41 CV and Quad RAM.

On the HP 41C (not CV) there were five of those 16 x 56 CMOS RAM chips: four made the 64 register user memory, which could be extended up to 320 registers with four memory modules (64 registers each) or one Quad module (256 registers). The fifth internal CMOS RAM was used for Alpha, Flags, and internal housekeeping.

As many of these ideas came from limited experiments made some 20 years ago, I may well be "off the road", indeed!


#19

Just checked the HP 29C page at this Museum. The 29C had 30 memories and 98 program steps. Only 16 memories, the X register and the program space are preserved; the rest of the stack and the 14 extra memories are lost when power is off...

That suggests two CMOS RAM chips, each 16 x 56 bit (twice the HP 25C) for 98 1-byte steps and 17 or 18 memories. (I don't know if the Last X or the program counter are preserved...) And... Where are located the 14 volatile memories?


#20

Andrés,

From my experiments with 25/25C machines I can tell you that the LastX register is also implemented on a RAM chip (if you remove the RAMs, LastX doesn't work). The two-RAM variant of the 25/25C uses one RAM chip for the 49 program steps and the LastX register, and the other RAM chip for the 8 numbered registers.

In the case of the 19C/29C, there are 16 numbered registers with contents that are saved, which is one double-size RAM chip; plus 98 program steps, which is the equivalent of 14 registers, on the other RAM chip. That leaves two registers worth of RAM space free. My guess, then, is that one continues to be used as the LastX register (incidentally, its contents are not preserved) whereas the other is used as backup storage for the X register.

As for the 14 volatile registers, they are either on the CPU, or in one of the 8-pin RAM/ROM chips. My guess would be the CPU, but I could be wrong. I have an HP-29C with most chips in sockets, so maybe I'll do an experiment with it, but not now... I rather not mess with a machine that's working properly!


Viktor


Possibly Related Threads…
Thread Author Replies Views Last Post
  Usefulness of Woodstock Cs without their C Matt Agajanian 5 2,667 12-10-2013, 02:05 PM
Last Post: Geoff Quickfall
  HP-80 History, Design and Interesting Facts BShoring 1 1,306 11-30-2013, 08:50 AM
Last Post: Xavier A. (Brazil)
  Woodstock, Classic & Spices for iPhone Matt Agajanian 8 2,767 07-10-2013, 06:10 PM
Last Post: BShoring
  Update of Emu28 to v1.27 Christoph Giesselink 4 1,692 05-02-2013, 04:36 AM
Last Post: Mike (Stgt)
  AME Design Port Extender for the HP41 Dane Spillers 2 1,326 03-14-2013, 07:58 PM
Last Post: dane spillers
  12C in 14 Masterpieces of Gadget Design Egan Ford 10 3,184 07-31-2012, 10:18 PM
Last Post: Palmer O. Hanson, Jr.
  HP-28--better design? Matt Agajanian 7 2,402 06-27-2012, 09:27 AM
Last Post: David Tellet
  A Woodstock 67 Matt Agajanian 4 1,994 05-20-2012, 10:57 PM
Last Post: Mike Morrow
  Disassemble Battery Pack 82028B (woodstock) Jacques Karensky 0 1,110 05-19-2012, 03:39 AM
Last Post: Jacques Karensky
  Woodstock/Spice Keyboard Cleaning Revisited Matt Agajanian 0 1,018 05-12-2012, 03:43 PM
Last Post: Matt Agajanian

Forum Jump: