This version has the exp(ln(2.02)) bug and a few other bugs as well;
see the errata list
from HP. The three ROM chips included in this dump have part
numbers 1818-0006, 1818-0017, and 1818-0020.

Below is a chip photograph of one of the three HP-35 ROMs. The array contains 2560 bits.

Here is a 128-bit portion of the ROM array (8 rows by 16 columns); the
contacts representing individual bits are visible. The light source
is from the right. A contact (dimple) represents a "1" bit, and no
contact represents "0"; so reading in raster order, the bits go
"000010011010...". The contacts are about 10 microns (0.0004 inch)
on a side, enormous compared with modern versions, about 2000
of which would fit inside each one.

Reorganizing the raw bit array into a list of machine code
instructions requires knowledge of how the address bits decode the
array. After some trial and error, and staring at the decoder and mux
transistors on the side of the chip, this recipe seems to do the
trick:

Here is a revised casmsim distribution containing the full 768 words
of HP-35 code (as hp35.asm) and modifications to xio.c for an X Window
System simulation of the HP-35 keyboard and display. Just type "make
; ./hp35" (ignore the warnings when assembling the hp-35 code, which
is raw from the disassembler below). All three simulators (HP-35,
HP-45, and HP-55) seem to be fully working, with the exception of the
HP-55 program and timer modes, for which I don't know how to emulate
the selector switch.