Retro Review: Casio CM100 Computer Math Calculator
Company: Casio
Model: CM100
Type: Computer Math, Boolean Algebra
Year: 1986
Power: Solar
Memory
Registers: 1
Being Green
The CM100 is
fully ran by solar power, so make sure you have adequate light to operate the
CM100.
Base Calculations
The CM100 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
HP16C. On the Texas Instruments side,
there was the TIProgrammer.
There are five
modes on the CM100:
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 2^{nd}
and 3^{rd} row of keys. Pressing
[ ON ] clears the calculator and sets the CM100 to COMP mode.
Entering
numbers in degreesminutesseconds 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 AF become
available. As a reminder:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Seeing Blocks
The CM100
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 CM100 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^(n1) to
2^(n1) – 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 CM100 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.
AShift: 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 CM100, 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 HP16C
New Price of a
CM100: $20(?)
New Price of an
HP16C: $150
Obviously, the
HP16C was also programmable (203 bytes) and operated in RPN mode. Furthermore, the HP16C had double arithmetic (multiplication,
division, and remainder). However, the
CM100 has the decimal/decimaldegreesseconds conversion and it was solar.
If you want to
have a basededicated calculator and you had the budget in mind, consider
buying the CM100. I bought one through eBay
(Wolfs Big Bad Garage) for about $25. The
HP16C 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 CM100. It’s well worth the
price.
Eddie
This blog is
property of Edward Shore, 2017