WP-34S

Serial number 4CY13708XN, made in China, software version 3.0 2672
Accessories Pouch
Quick reference: "hp 30b business profesional" (Spanish, French, German, 40 pages, 1st edition, July 2009)
Keyboard overlay for the top four rows with programming functions.
Sticky labels for the WP-34S functions of all keys.
Condition Bought new
Repairs, Comments Applying the sticky labels was a fairly simple process.
Acquired 20.3.2012
.
Type, Precision, Input mode Scientific, 12 BCD digits, exponent 499, Algebraic and Reverse Polish Notation
Programmable Yes
Performance Index 250
CPU & Memory Atmel AT91SAM7L128 30 MHz processor. Permanent memory.
On the picture of the unit's back side you can see below the batteries the small connector for the serial cable used to flash the Atmel CPU. Looks identical to the HP-15C Limited Edition connector.
4 or 8 stack levels, 112 registers and flags, 31-byte alpha register for text, 925 program steps in RAM, several thousand byte flash memory, plus local registers.
Program-local registers - this has neven been available in any calclator before!
Display Two row display: On top left side a 43x6 dot matrix, on the right side various annunciators.
On the bottom 12 digit 7 segment black&white LCD mantissa plus 3 digit exponent.
Special features Countless numbers! It largely features the same operations as the HP-42S plus additional capabilities. According to the WP-34S manual the HP-42S manual is a good starting point to learn about the 34S.
Software written by Paul Dale (Australia) and Walter Bonin (Germany) and others.
Original Pricing, Production Around 100 Euro in 2012, produced since 2011 (according to the manual the development started at the end of 2008, beta test phase began mid 2011).
Batteries 2x large button sized cells, 3V
Dimensions Length 15cm, Width 7.7cm, Height 1.7cm
Local Links (restricted) V3.1 manual: 3.0 Owner's Manual (PDF, 211 pages, dated 1.12.2012 on server)
V3.0 manual: 3.0 Owner's Manual (PDF, 118 pages)
Beginner's Guide (PDF, "Draft 2.06821~ Firmware: 34S 3.1 2932", 187 page - quite a lot for a beginner's guide!)
Command Aliases (PDF)
External Links WP-34S Hompage on sourceforge.net.
WP-34S files on sourceForge.net.
WP-34S on Wiki.
WP-34S on the TheCalculatorStore.
Forensic Result9.00000000003 (9 + 2.9361e-11)
Comment The hardware of this cool device is a HP-30b (or HP-20b). However, a group of enthusiastic programmers has rewritten the unit's operating software to become a versatile scientific calculator! Obviousely, the normal button labels won't match the abilities of the new software. Consequently, the unit is sold with a reflashed ROM plus a set of sticky labels. This is absolutely awesome!! It is named after the famous HP-34C calculator.
The software is an OpenSource project and whoever is interested can check out the C code from SourceForge using subversion.

  • It seems that stepping very quickly thru a program crashes the unit! In this case the only thing that can be done is to press the reset button thru the small pinhole on the back of the calculator (remove battery cover). All memory will be lost.
  • A similar thing occured when I repeatedly issued the "FILL" command.
NotesThe installed firmware version can be queried per "VERS" command in the X.FCN menu.
The installed version as of 2/2013 is "3.0 2672"
The operation and programming scheme of the WP-34S is closely related to the HP-42.
Storage registers:
  • Using the SSIZE4 and SSIZE8 commands in the MODE menu you can switch between a 4-level and 8-level stack.
  • The stack registers are named X, Y, Z, T plus A, B, C, D if in 8-level mode.
  • L is the last-x register.
  • In complex mode additional registers I, J, K are used where I becomes the "last-y" register (the imaginary part of a complex number stored in x & y).
  • The stack registers occupy numbered registers 100 .. 111 in the following order: X Y Z T A B C D L I J K.
  • The "g SHOW" commnd can be used to see register contents.
  • The REGS? command in the TEST menu shows the number of global registers (usually 100). The REGS command in the MODE menu controls the number of global registers. There can be at most 100. Reducing the number of globel registers frees memory which can be used for local registers or program data.
  • See also "Local Storage Registers" further down.
  • Summation registers are separately allocated and are not accessible by STO/RCL.
  • Register numbers can be as high as 255 (provided the memory map setup has been setup accordingly).
Storage register access:
  • By two-digit number, eg "STO 15".
  • By the letter of one of the stack registers mentioned above, eg "STO ENTER P" where pressing the ENTER key enables alpha-mode. 
  • Using indirect addressing. Eg "STO -> 13" stores X in the register indexed by register 13. 
  • To access local registers use eg "STO .05".
  • Programs must start with a global alphanumeric label, eg "P1". To enable alpha-numeric mode for LBL, STO, RCL, XEQ and other commands press the ENTER key after the command.
  • The built-in TICKS counter does not seem to return consistent results. That is, depending on what the calculator is doing to runs at different speeds. According to the manual only a built-in quartz will make the timer reliable.
  • ALLn shows values without trailing zeros (similar to FIX, SCI, ENG).
  • The calculator supports integer math for every base 2 ... 16. Bases 2, 8, 10 and 16 are directly accessible from the keyboard. Switch back to floating point mode per "f H.d" (on the RCL key).
  • On the keyboard green underlined names indicate menus. Use the arrow up & down keys to navigate thru a menu. Press a letter key to quickly jump to a menu entry starting with this letter. Press EXIT to exit the menu without action. Press ENTER to execute the command shown.
  • CAT lists all available programs in RAM (labelled RAM) or flash (labelled LIB).
  • BATT shows the battery voltage, VERS the software version, WHO the names of the software authors (all commands in the X.FCN menu).
Program-local storage To my knowledge the WP-34S is the first calculator every which supports "program local storage".
  • The command "LocR" in the P.FCN menu allocates a number of registers which are accessible only from within the program. "LocR?" in the TEST menu shows the number of local registers.
  • "PopLR" in the P.FCN menu releases the local registers.
  • Local registers are accessed using a dot notation, eg "STO .03". Obviousely, the local registers of nested program subroutines occupy different registers in global memory space. The first registers allocated start from 112. Note that with indirect addressing you can reach these registers as well.
  • Note that a "RTN" instruction will also release local registers.
Function return values
Another new feature never seen before in a calculator:
  • A regular RTN will continue operation at the instruction after the XEQ.
  • The newly introduced RTN+1 will continue operation at the second instruction after the calling XEQ.
  • This effectively allows to use the XEQ command similar to a test instruction which skips the next operation when "false".
Program used to
determine the
performance index
001 LBL 'A'
002 10
004 STO 00
005 LBL 01
006 1
007 +
008 4.567E-4
016 -
017 70
019 +
020 69
022 -
023 7
024 x
025 11
027 /
028 RCL 00
029 1
030 -
031 STO 00
032 x<>0?
033 GTO 01
034 Rv
035 log
036 sin
037 sqrt
038 sqrt
039 RTN
Wrapper with count in reg 3:

040 LBL 'B'
041 XEQ 'A'
042 RCL 03
043 1
044 -
045 STO 03
046 x<>0?
047 GTO 'B'
048 RTN
With 100 loops specified in register 3 the program runs for 13.6 seconds.
The performance index calculates to 34 * 100 / 13.6 = 250

Flashing the ROM
The latest version of the ZIP file (NC-wp34s_V3-3311.zip as of 3/2013) contains a subdirectory named "real". "calc_full.bin" is the data to program into the calculator, see README there.
I thought, I had bought the special USB-programming cable and updated the software. But I guess this just isn't true.
Flashing Instructions.
.
Back To Contents