DATAMATH  CALCULATOR  MUSEUM

General Instrument C-550 Product Family

• Features

General Instrument's C-500 single-chip calculator circuit, tracing back to the famous PICO1 chips GI 250 and GI 251 was soon followed with the C-550 after converting the original 25-Volt PMOS process to a revised 15-Volt PMOS process. Transitioning from the C-500 design to the C-550 was straightforward, GI could reuse its original mask set and needed to change only some process parameters during the various manufacturing steps of the silicon chips. We identified the five masks used with GI's original PMOS process:

• Mask 1 - Diffusion Mask
• Mask 2 - Gate Oxide Mask
• Mask 3 - Contact-Window Mask
• Mask 4 - Metallization Mask
• Mask 5 - Pad Opening Mask

Looking closely on the die of the C-500 chip reveals Mask Revision G, all five Masks have a small 'G' assigned. While researching the later C-550 chip, we noticed some Interton PC-2008 calculators manufactured in or around January 1973 using a TMR 012 labeled chip while later versions of the PC-2008 are using with the same printed circuit board (PCB) a C-550 labeled chip. Interestingly are the C-550 chips using a traditional date code on the package while the TMR 012 uses a 5-character batch code. Richard, curator of the German Richi's Lab site, analyzed a C-550G labeled chip used with the Sinclair Executive and it uses the 5-character batch code instead of the 4-digit date code, too. Analyzing the differently marked chips, their chip revisions and manufacturing dates of calculators using them, suggests a 2-step approach during the transitioning process:

• C-500 (VDD = -25 V), Feb. 1972 - Mask Set G G G G G
• TMR 012, C-500G (VDD = -15 V), Dec. 1972 - Mask Set G G G G G
• C-550 (VDD = -15 V), Apr. 1972 - Mask Set G G G G L

The final iteration is suggesting for Mask 5 (Pad Opening Mask) Revision L, most likely a hint to the "low-voltage" specification of the C-550. We couldn't find any differences in the Pad Openings of the original C-500 chips and the C-550 chips and from a technical point of view, changes of Mask 5 wouldn't change the operating specifications of the design. We rather assume that the character "G" could be easily changed to "L" on the rubylith.

To reduce the component count associated with the multiplexed digit outputs of the original PICO1 design, General Instrument introduced with the C-560 and C-570 series two variations with eight digit outputs; while ITT offered with the B6249 a companion chip for the C-550, integrating the demultiplexer and digit drivers into an economical 18-pin package.

The C-550 was soon complimented with the CZ-550 supporting "trailing zero suppression" to reduce current consumption of the calculator.

General Instruments' last – and most successful – improvement of the original PICO1 design was introduced with the CZL-550 in 1974, supporting not only "trailing zero suppression" to reduced current consumption of the calculator but integrating segment drivers for the seven-segment LED display.

GI launched their C-593 and CF-593 chips in Summer 1973, boldly advertised as "socket-compatible" with Texas Instruments' TMS0803 and TMS0855, respectively and leading to the very successful C/CF-580, C/CF-590 and C/CF-680 Series of single-chip calculator circuits. General Instrument’s final calculator chip development was the C-680D/C-1680D series, integrating not only the segment drivers for LED displays, but also the digit drivers and hence allowing "true single-chip calculator designs".

QUICK-LINK to General Instrument Calculator Integrated Circuits.

• Family Members and Applications

Type Calculators Keyboard Constant
(M-D-A-S)
Digits
Math
Digits
Display
Fixed DP Rounding Special
Functions
Seg./Dig.
Blanking
(6,7,9)
Font
Entry
Overflow
Calculating
Overflow
C-550 Interton PC 2008 (Version 2) [+][−][=] 2-2-2-2 8 4 + 4
Alternating
Float
10-20-1079
None Constant Number
Constant Function
S1 of 13
S1 of 13
   
CZ-550 calfax 800CD [+][−][=] 2-2-2-2 8 4 + 4
Alternating
Float
10-20-1079
None Constant Number
Constant Function
S1 of 13
S1 of 13
   

• Architecture

  Description Comments
Architecture Single-chip Calculator First Generation RISC Architecture
Category Register Processor  
Related C-500
TMR 012
CZL-550
High-voltage Process
Customer PN
Integrated LED Segment Drivers
ROM Size 3,146 Bits 72 Words * 27 to 63 Bits
RAM Size 141 Bits 3 Registers * 44 Bits (11 Digits)
1 Register * 9 bits
Outputs 4 Digits + 3 Control
8 Segments
Standard Digit Drivers
Standard Segment Drivers
Inputs 18 Keyboard Direct Keyboard Inputs

• Revisions

Revision Products First Prototypes Comments
GI 251 Rev G
(C-550)
Sinclair Exceutive Dec. 1972 Mask: G 1972 PICO1 76251
GI 251 Rev GL
(C-550)
Interton PC 2008 (V2) Apr. 1973 Mask: G 1972 PICO1
tbd
(CZ-550)
calfax 800CD Jun. 1973  

• Calculator Logic Implementation

Don't miss the "Picolator" on the German Richi's Lab site, an Emulator for General Instrument's C-550 single-chip calculator circuit - still using the PICO1 program code from the original GI 250 chip.

C-550:

Capacity: Up to 8 digits positive and 7 digits negative
Logic: Algebraic Chain Logic with Constant
   [C] [2] [x] [3] [+] [4] [x] [5] [=] → '50.000000'
Number Entry: Right-justified number entry without leading-zero suppression, entering up to 79 digits before the decimal point or 19 digits after the decimal point is registered but in the display ignored
   [C] [1] → '00000001', [2] [3] [4] [5] [6] [7] [8] [9] [0] → '12345678', [:] [1] [0] [0] [0] [=] → '1234567.8'
   [C] [0] [.] → '00000000.', [0] [0] [0] [0] [0] [0] [0] [1] [2] [3] → '0.0000123', [x] → '0.0000000', [1] [0] [0] [0] → '00001000', [=] → '0.0000123'
Decimal Point: Last entered decimal point is used
   [C] [1] [.] [2] [.] [3] → '0000012.3'
Fixed Decimal Point: Fixed decimal point arithmetic is not supported
Decimal Alignment: Decimal alignment is supported for additions and subtractions
   [C] [0] [.] [4] [5] [+] [0] [.] [5] [5] [=] → '1.0000000'
Clear: No automatic power-up clear implemented. [C] key before entering a number clears the whole calculator, [C] key before entering a function clears last entry of a number
   [C] [1] [+] [2] [C] [3] [=] → '3.0000000'; [C] [1] [+] [2] [C] [+] [3] [=] → '4.0000000'
Change Sign: Not supported. When performing multiplication or division, a negative value can only be assigned to the first number by pressing the [C] [0] [−] key before entering the number
   [C] [0] [−] [2] [x] [3] [=] → '-6.000000'; [C] [0] [−] [2] [x] [−] [3] [=] → '-5.000000'
Number Display: Left-justified number display without trailing-zero suppression
   [C] [1] [.] [2] [3] [x] [1] [0] [0] [=] → '123.00000'
   [C] [1] [.] [2] [3] [:] [1] [0] [0] [=] → '0.0123000'
Negative Numbers: Negative numbers are shown with '-' in the leftmost position
Calculating Overflow: An overflow shows the result without the decimal point for numbers up to ±9.9999999 * 1079 with the 8 (for positive and negative numbers) significant digits preserved
   [C] [1] [2] [3] [4] [5] [x] [1] [2] [3] [4] [5] [=] → '15239902', [:] [1] [0] [0] [0] [=] → '152399.02'
   [C] [1] [2] [3] [4] [5] [0] [0] [0] [x] [1] [2] [3] [4] [5] [0] [0] [0] [=] → '15239902', [:] [1] [0] [0] [0] [=] → '15239902', [:] [1] [0] [0] 0] [=] → '15239902', [:] [1] [0] [0] [0] [=] → '152399.02'
Calculating Underflow: An underflow shows '0.0000000' for numbers down to ±1.0 * 10-20 with the 8 (for positive and negative numbers) significant digits preserved
   [C] [0] [.] [0] [0] [0] [1] [:] [7] [0] [0] [0] [0] [=] → '0.0000000', [x] [1] [0] [0] [0] [=] → '0.0000014', [x] [1] [0] [0] [0] [=] → '0.0014285', [x] [1] [0] [0] [0] [=] → '1.4285714'
Divide By Zero: A division of a positive or negative number by zero results in an erratic (endless counting) 8 digits (positive) or 7 digits (negative) display with all decimal points lit and is only recoverable using the [C] key
   [C] [1] [:] [0] [=] → '?.?.?.?.?.?.?.?.'; [C] [0] [−] [1] [:] [0] [=] → '.?.?.?.?.?.?.?.'
Timeout: Not supported
Rounding: Rounding of displayed calculating results is not supported
   [C] [2] [0] [:] [3] [=] → '6.6666666'
Constant: Constant function can be enabled in two different modes (Constant Number or Constant Function) with a dedicated key for multiplication, division, addition and subtraction
   [C] [3] [=] [K] → '3.0000000', [1] [x] → '3.0000000', [1] [:] → '0.3333333', [1] [+] → '4.0000000', [1] [−] → '-2.000000',
   [C] [3] [x] [K] → '3.0000000', [2] [=] → '6.0000000', [3] [=] → '9.0000000', [=] → '9.0000000'
   [C] [3] [:] [K] → '3.0000000', [2] [=] → '0.6666666', [3] [=] → '1.0000000', [=] → '0.3333333'
   [C] [3] [+] [K] → '3.0000000', [2] [=] → '5.0000000', [3] [=] → '6.0000000', [=] → '9.0000000'
   [C] [3] [−] [K] → '3.0000000', [2] [=] → '1.0000000', [3] [=] → '0.0000000', [=] → '-3.000000'
Reciprocal Function: The reciprocal function is implemented using the [:] key directly followed by the [K] and [=] keys
   [C] [4] [:] [K] [=] [=] → '0.2500000'

Known Calculator Logic Bugs:

Exponent Rollover Bug: Calculations are allowed for numbers between  ±1.0 * 10-20 and  ±9.9999999 * 1079. Smaller numbers result in an exponents rollover to a large number and vice versa
   [C] [0] [.] [0] [0] [0] [0] [0] [0] [1] [x] [K] → '0.0000001', [1] [.] [2] [3] [=] → '0.0000001' (1.23 * 10-7), [=] → '0.0000000' (1.23 * 10-14), [=] → '12300000' (1.23 * 10-21 # 1.23 * 1079), eleven times [=] → '123.00000' (1.23 * 102)

CZ-550:

Capacity: Up to 8 digits positive and 7 digits negative
Logic: Algebraic Chain Logic with Constant
   [C] [2] [x] [3] [+] [4] [x] [5] [=] → '50.       '
Number Entry: Right-justified number entry without leading-zero suppression, entering up to 79 digits before the decimal point or 19 digits after the decimal point is registered but in the display ignored
   [C] [1] → '00000001', [2] [3] [4] [5] [6] [7] [8] [9] [0] → '12345678', [:] [1] [0] [0] [0] [=] → '1234567.8'
   [C] [0] [.] → '00000000.', [0] [0] [0] [0] [0] [0] [0] [1] [2] [3] → '0.0000123', [x] → '0.0000000', [1] [0] [0] [0] → '00001000', [=] → '0.0000123'
Decimal Point: Last entered decimal point is used
   [C] [1] [.] [2] [.] [3] → '0000012.3'
Fixed Decimal Point: Fixed decimal point arithmetic is not supported
Decimal Alignment: Decimal alignment is supported for additions and subtractions
   [C] [0] [.] [4] [5] [+] [0] [.] [5] [5] [=] → '1.0000000'
Clear: No automatic power-up clear implemented. [C] key before entering a number clears the whole calculator, [C] key before entering a function clears last entry of a number
   [C] [1] [+] [2] [C] [3] [=] → '3.       '; [C] [1] [+] [2] [C] [+] [3] [=] → '4.       '
Change Sign: Not supported. When performing multiplication or division, a negative value can only be assigned to the first number by pressing the [C] [0] [−] key before entering the number
   [C] [0] [−] [2] [x] [3] [=] → '-6.       '; [C] [0] [−] [2] [x] [−] [3] [=] → '-5.      '
Number Display: Left-justified number display with trailing-zero suppression
   [C] [1] [.] [2] [3] [x] [1] [0] [0] [=] → '123.     '
   [C] [1] [.] [2] [3] [:] [1] [0] [0] [=] → '0.0123   '
Negative Numbers: Negative numbers are shown with '-' in the leftmost position
Calculating Overflow: An overflow shows the result without the decimal point for numbers up to ±9.9999999 * 1079 with the 8 (for positive and negative numbers) significant digits preserved
   [C] [1] [2] [3] [4] [5] [x] [1] [2] [3] [4] [5] [=] → '15239902', [:] [1] [0] [0] [0] [=] → '152399.02'
   [C] [1] [2] [3] [4] [5] [0] [0] [0] [x] [1] [2] [3] [4] [5] [0] [0] [0] [=] → '15239902', [:] [1] [0] [0] [0] [=] → '15239902', [:] [1] [0] [0] 0] [=] → '15239902', [:] [1] [0] [0] [0] [=] → '152399.02'
Calculating Underflow: An underflow shows '0.       ' for numbers down to ±1.0 * 10-20 with the 8 (for positive and negative numbers) significant digits preserved
   [C] [0] [.] [0] [0] [0] [1] [:] [7] [0] [0] [0] [0] [=] → '0.       ', [x] [1] [0] [0] [0] [=] → '0.0000014', [x] [1] [0] [0] [0] [=] → '0.0014285', [x] [1] [0] [0] [0] [=] → '1.4285714'
Divide By Zero: A division of a positive or negative number by zero results in an erratic (endless counting) 8 digits (positive) or 7 digits (negative) display with all decimal points lit and is only recoverable using the [C] key
   [C] [1] [:] [0] [=] → '?.?.?.?.?.?.?.?.'; [C] [0] [−] [1] [:] [0] [=] → '.?.?.?.?.?.?.?.'
Timeout: Not supported
Rounding: Rounding of displayed calculating results is not supported
   [C] [2] [0] [:] [3] [=] → '6.6666666'
Constant: Constant function can be enabled in two different modes (Constant Number or Constant Function) with a dedicated key for multiplication, division, addition and subtraction
   [C] [3] [=] [K] → '3.       ', [1] [x] → '3.       ', [1] [:] → '0.3333333', [1] [+] → '4.       ', [1] [−] → '-2.      ',
   [C] [3] [x] [K] → '3.       ', [2] [=] → '6.       ', [3] [=] → '9.       ', [=] → '9.       '
   [C] [3] [:] [K] → '3.       ', [2] [=] → '0.6666666', [3] [=] → '1.       ', [=] → '0.3333333'
   [C] [3] [+] [K] → '3.       ', [2] [=] → '5.       ', [3] [=] → '6.       ', [=] → '9.       '
   [C] [3] [−] [K] → '3.       ', [2] [=] → '1.       ', [3] [=] → '0.       ', [=] → '-3.      '
Reciprocal Function: The reciprocal function is implemented using the [:] key directly followed by the [K] and [=] keys
   [C] [4] [:] [K] [=] [=] → '0.25     '

Known Calculator Logic Bugs:

Exponent Rollover Bug: Calculations are allowed for numbers between  ±1.0 * 10-20 and  ±9.9999999 * 1079. Smaller numbers result in an exponents rollover to a large number and vice versa
   [C] [0] [.] [0] [0] [0] [0] [0] [0] [1] [x] [K] → '0.0000001', [1] [.] [2] [3] [=] → '0.0000001' (1.23 * 10-7), [=] → '0.       ' (1.23 * 10-14), [=] → '12300000' (1.23 * 10-21 # 1.23 * 1079), eleven times [=] → '123.     ' (1.23 * 102)

• Technical Specifications

Item Min Typ Max Unit Comments
VSS   0   V   
VDD   -15.0   V   
IDD   8.0   mA REXT = 100k Ohm, Segment- and
Digit-Driver Load 100k Ohm to VDD
VOUT -18 -15 0.3 V VFD Output Voltage through 100k Ohm Resistors
VIN -18 -15 0.3 V Input Voltage through 100k Ohm Resistors
ION1 (Digit)   -4.0   mA VOT = -2.0 V
ION2 (Digit)   -7.5   mA VOT = -4.0 V
ION1 (Segment)   -2.0   mA VOT = -2.0 V
ION2 (Segment)   -4.0   mA VOT = -4.0 V
CK   100   kHz  

Note: The provided Technical Specifications are based on actual measurements on a limited number of devices.

• Applications Information

KEYBOARD AND DISPLAY SCANNING

The C-550 and CZ-550 are using a keyboard scanning matrix with all of its 18 keys connected directly to a corresponding pin, while the common signal is connected to a dedicated Keyboard Enable pin. Six of the 18 keys are using dedicated Key Input pins, four are shared with the Digit Outputs and eight are shared with the Segment Outputs. To allow for the use of the Digit and Segment Output pins as Key Input pins, the C-550 and CZ-550 are blanking the display completely before each Display Scanning Cycle while reading the keyboard.

The C-550 and CZ-550 are using two dedicated 'Lower Digits Enable' and 'Upper Digits Enable' pins, signaling if the lower four Digits D1 to D4 or the higher four Digits D5 to D8 are output on the shared D15, D26, D37, and D48 pins. The C-550 and CZ-550 are outputting the lower and higher digit groups with each Display Scanning Cycle in an alternating pattern and blanking the display completely while reading the keyboard.

INTER-DIGIT BLANKING

The C-550 and CZ-550 single-chip calculator circuits are blanking their Digit and Segment Outputs for one of thirteen State Times at the beginning of each of the four Digit Times. During the Keyboard Time, the Digit and Segment Outputs are blanked for eight State Times.

DIGIT DRIVERS

The C-550 and CZ-550 single-chip calculator circuits are manufactured in a PMOS process and its Digit Scanning Outputs are high-side PMOS transistors, an activated digit corresponds to a logical 1. We characterized here at the Datamath Calculator Museum the Digit Driver Output pin D15 of both a C-550 and CZ-550 (Mask Revision G and tbd) and measured an output resistance of around 600 Ohm at an Output Voltage of -3.0 V.

Note: C-550 left thumbnail and CZ-550 right thumbnail.

SEGMENT DRIVERS

The C-550 and CZ-550 single-chip calculator circuits are manufactured in a PMOS process and its Segment Outputs are high-side PMOS transistors, an activated segment corresponds to a logical 1. We characterized here at the Datamath Calculator Museum the Segment Driver Output pin SB of both a C-550 and CZ-550 (Mask Revision G and tbd) and measured an output resistance of 1,000 Ohm at an Output Voltage of -3.0 V.

Note: C-550 left thumbnail and CZ-550 right thumbnail.

• DCM-50A Platform Compatibility

The Datamath Calculator Museum DCM-50A (PLAYGROUND) supports the Characterization of the C-550 Product Family single-chip calculator circuits using the DCM-50A Playground C-500 Family Adapter mounted on top of the DCM-50A PG Frame Carrier and connected to the DCM50A Playground KBD102 Keyboard. The optional DCM-50A Playground Digilent I/O Extender supports Characterization and Reverse-engineering of C-550 and CZ-550 single-chip calculator circuits.

• Technology

The C-550 Product Family was manufactured in a 12 um metal gate PMOS process (metal width = 0.45 mil / 12.0 um, metal spacing = 0.35 mil / 9.0 um, diffusion width = 0.35 mil / 9.0 um, diffusion spacing = 0.30 mil / 7.5 um).

The die size of the C-550/CZ-550 is approximately 165 mils * 160 mils / 4.2 mm * 4.1 mm.

• Packaging

The C-550 and CZ-550 are using a standard 0.6” wide 24-pin CDIP (Ceramic Dual In-line Package with a 0.1” / 2.54 mm lead pitch) or 24-pin DIP (Dual In-line Package with a 0.1” / 2.54 mm lead pitch).

• Pin Configuration

 

Pin IO Function Pin IO Function
1 V Common Voltage VSS 24 O Lower Digits Enable
2 V Negative Voltage VDD 23 O Keyboard Enable
3 I Key [9] 22 I Key [K]
4 I Key [6] 21 O Upper Digits Enable
5 I Key [4] 20 I Key [C]
6 IO Key [8], Segment E 19 IO Key [χ], Digits 1&5
7 IO Key [7], Segment D 18 IO Key [Χ], Digits 2&6
8 IO Key [5], Segment C 17 IO Key [+], Digits 4&8
9 IO Key [1], Segment F 16 IO Key [−], Digits 3&7
10 IO Key [2], Segment G 15 I Key [=]
11 IO Key [3], Segment A 14 IO Key [.], Segment DP
12 IO Key [0], Segment B 13 I Clock
The Segment drivers A-G and DP (Decimal Point) are connected to the display in the pictured way. 

• Keyboard Scan-Matrix

The keyboards of all calculators based on the C-550 Product Family consist of 18 keys or contacts connected between the Keyboard-Enable output pin and 18 pins of the 24-pin Integrated Circuit package. Please notice that the [C] and [CE] keys of the Interton PC 2008 calculator are hardwired on the Keyboard-PCB together and act as a single [C] key.

The C-550 and CZ-550 are scanning all 18 keys at the beginning and the middle of each display scanning cycle, indicated with a short pulse on its Keyboard-Enable output pin while briefly disabling all of its segments and digit output drivers.

Scanning of the 8-digit display is performed in two 4-digit groups in D15 → D48 direction at a rate of about 420 Hz:

• State Time = 2 Clocks = 0.020 ms @ CK=100 kHz
• Keyboard Time = 8 States = 0.160 ms @ CK=100 kHz
• Digit Time = 13 States = 0.260 ms @ CK=100 kHz
• Scan Time = Keyboard Time + 4 Digit Times (D15 to D48) + Keyboard Time + 4 Digit Times (D15 to D48) = 2.4 ms @ CK=100 kHz

C-550/CZ-550

  Pin# KB_EN
K0/SB 12 0
K1/SF 9 1
K2/SG 10 2
K3/SA 11 3
K4 5 4
K5/SC 8 5
K6 4 6
K7/SD 7 7
K8/SE 6 8
K9 3 9
KP/SDP 14 .
KC 20 C
KK 22 K
KA/D48 17 +
KS/D37 16
KM/D26 18 ×
KD/D15B 19 ÷
KEQ 15 =

• Display

Calculators based on the C-550 Product Family make use of 8-digit LED (Light-Emitting-Diode) Displays with common cathode architecture. 

horizontal rule

If you have additions to the above datasheet please email: joerg@datamath.org.

© Joerg Woerner, October 22, 2025. No reprints without written permission.