Wednesday, February 15, 2017

Retro Review: Casio CM-100 Computer Math Calculator

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.


If you want to take a look at the manual, check out this link (scroll to the bottom):  http://casio.ledudu.com/pockets.asp?type=1300&lg=eng


Eddie

This blog is property of Edward Shore, 2017

TI 30Xa Algorithm: Acceleration, Velocity, Speed

TI 30Xa Algorithm: Acceleration, Velocity, Speed Introduction and Algorithm Given the acceleration (α), initial velocity (v0), and...