Retro Review: Casio CM-100 Computer Math Calculator
Company: Casio
Model: CM-100
Type: Computer Math, Boolean Algebra
Year: 1986
Power: Solar
Memory
Registers: 1
Being Green
The CM-100 is
fully ran by solar power, so make sure you have adequate light to operate the
CM-100.
Base Calculations
The CM-100 is
part of a rare genre of scientific calculator: the calculator that is dedicated
to base conversions, bit shifting and rotating, and displaying integers up to
32 bits (dwords). Perhaps the most
famous calculator of this family is the much sought after Hewlett Packard
HP-16C. On the Texas Instruments side,
there was the TI-Programmer.
There are five
modes on the CM-100:
COMP: Math Mode.
All numbers are represented in decimal with floating point
arithmetic. The parenthesis, %, √, x^2,
1/x, HMS conversions, and memory functions are the primary functions on the 2nd
and 3rd row of keys. Pressing
[ ON ] clears the calculator and sets the CM-100 to COMP mode.
Entering
numbers in degrees-minutes-seconds requires a repeated press of [ hms ].
Note: For the
BIN, OCT, DEC, HEX modes, the parenthesis and memory functions become shifted
functions, and instead of the %, √, x^2, 1/x, DMS conversions, we have BLK
(block scrolling), shifting, NOT, AND, OR, XOR, and rotation.
BIN: Binary Mode.
All integers are represented in base 2.
Pressing [BIN] converts the integer to binary.
OCT: Octary
Mode. All integers are represented in base
8. Pressing [OCT] converts the integer
to octave.
DEC: Decimal Mode.
All integers are presented in base 10.
Pressing [DEC] converts the integer to decimal.
HEX: Hexadecimal Mode. All integers are presented in base 16. Pressing [HEX] converts the integer to
hexadecimal. The keys A-F become
available. As a reminder:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Seeing Blocks
The CM-100
allows the user to set the bit sizes from 1, 4, 8, 10, 16, and 32. Since the calculator can only fit so many
digits on the screen, up to 10, the [BLK] key is to available for the user to
cycle through the blocks:
Block 4 | Block
3 | Block 2 | Block 1
Example: Display 3,723,601 in binary bits. Assuming base 32 is set (which I think is the
default). Press [BLK] to cycle through
the blocks. The decimal points indicate
which block you are viewing.
Block 1 (3 decimal points to the left)
|
.1.0.01001
|
Block 2 (2 left, 1 right)
|
.1.1010001.
|
Block 3 (1 left, 2 right)
|
.0011100.0.
|
Block 4 (3 right)
|
000000.0.0.
|
Hence,
3,723,601 in binary is 00000000 00111000 11010001 1001001.
To Sign or Not
To Sign
The CM-100 has
two modes when comes to signs:
Unsigned (no
display indicator): All integers are 0
or positive. The range is from 0 to (2^n)
-1, where n is the number of bits.
Signed (a SIGN
indicator): Integers can be positive or
negative. The first bit is the sign bit
which dictates the sign of the integer (easiest to understand in Binary
mode). The range is from -2^(n-1) to
2^(n-1) – 1.
Example: In Binary, 4 Bits:
Binary
|
Unsigned
Mode Representation
|
Signed
Mode Representation
|
1000
|
8
|
-8
|
1111
|
15
|
-1
|
Shifting Integers
It is well
known that most calculators that have base calculations include the Boolean algebra
functions NOT, AND, OR, and XOR; pretty standard. What the CM-100 adds is the shift and rotate
functions. I am going to try to explain the shifts as far I understand them –
if you have a better explanation, please comment and it will be
appreciated. I think this is best
understood in the context of Binary.
A-Shift: Arithmetic Shift Left/Right. This moves the bits left or right by 1. Any bit that “shoved” off is discarded. In Signed mode, Arithmetic Shift Right
replaces the sign bit with whatever was the previous signed bit. Otherwise, the new bit is 0.
Shift: Logical Shift Left/Right. This moves the bits left or right by 1. Any bit that “shoved” off is discarded. The replaced bit is always 0.
Rotate: The bits rotates left or right by one
digit. All bits are otherwise retained.
Arithmetic
Shift vs. Logical Shift
The only
difference is when you are working with signed integers and when the shifts are
to the right.
To illustrate,
I executed both shifts on the CM-100, in Signed and Binary modes with 4 bit
size set. Arithmetic Shift Right ([ S ]
[OCT] (A S>)), Logical Shift Right ([
S ] [AND] (Shift>)).
Starting
Integer: 0101
Arithmetic
Shift Right
|
0010
|
(Logical)
Shift Right
|
0010
|
Arithmetic
Shift Right
|
0001
|
(Logical)
Shift Right
|
0001
|
Arithmetic
Shift Right
|
0000
|
(Logical)
Shift Right
|
0000
|
Starting
Integer: 1001
Arithmetic
Shift Right
|
1100
|
(Logical)
Shift Right
|
0100
|
Arithmetic
Shift Right
|
1110
|
(Logical)
Shift Right
|
0010
|
Arithmetic
Shift Right
|
1111
|
(Logical)
Shift Right
|
0001
|
Vs. the HP-16C
New Price of a
CM-100: $20(?)
New Price of an
HP-16C: $150
Obviously, the
HP-16C was also programmable (203 bytes) and operated in RPN mode. Furthermore, the HP-16C had double arithmetic (multiplication,
division, and remainder). However, the
CM-100 has the decimal/decimal-degrees-seconds conversion and it was solar.
If you want to
have a base-dedicated calculator and you had the budget in mind, consider
buying the CM-100. I bought one through eBay
(Wolfs Big Bad Garage) for about $25. The
HP-16C would cost at least $100.
Verdict
I recommend
this model. It is convenient way to
convert between bases, work with common bit sizes, and execute computer algebra
on the CM-100. It’s well worth the
price.
Eddie
This blog is
property of Edward Shore, 2017