The Saturn has four general-purpose and five scratch registers that are 64 bits wide. Data in the general-purpose registers can be accessed on nibble boundaries and used for calculations, whereas the scratch registers allow only load and store operations. The 64 bits (16 nibbles) can hold BCD-formatted coded floating point numbers composed of a sign nibble, 12 mantissa digits and a 3-digit exponent stored in 2's complement format (±499). The use of BCD instead of straight binary representation is advantageous for calculators as it avoids rounding problems that occur on the binary/decimal conversion.
For optimum memory usage efficiency, the Saturn's addresses are also nibble-based. The three pointer registers (including the program counter) and address data paths are 20 bits wide, therefore the Saturn architecture can address 1 M nibbles = 512 K bytes. Beyond that size (e.g. in the 48GX), bank switching is used.
|CPU codename||Used in calculator models||Properties|
|Saturn||HP-71B, HP-18C, HP-28C||640 kHz|
|Bert||HP-10B, HP-20S, HP-21S||640 kHz, 10 KB ROM, 256 Bytes RAM, LCD driver|
|Sacajawea||HP-14B, HP-22S, HP-32S, HP-32SII||640 kHz, 16 KB ROM, 512 Bytes RAM, LCD driver|
|Lewis||HP-17B, HP-19B, HP-27S, HP-28S, HP-42S||1 MHz, 64 KB ROM, LCD driver, memory controller, IR control|
|Clarke||HP-48SX, HP-48S||2 MHz, LCD controller, memory controller, UART and IR control|
|Yorke||HP-48GX, HP-48G, HP-38G, HP-39G, HP-49G||3.68 MHz, LCD controller, memory controller, UART and IR control|
(The CPU codenames are inspired by members of the Lewis and Clark Expedition, the first United States overland expedition to the Pacific coast and back, of 1804–1806.)