DATAMATH  CALCULATOR  MUSEUM

General Instrument GI 250 Product Family

Features

Pico Electronics Ltd. of Glenrothes, Scotland was formed in 1970 by four former General Instrument (GI) engineers to realize their vision of a "single-chip calculator circuit" that they couldn’t pitch successfully to their former managers. It was no other than the CEO of GI providing the Pico Electronics team with startup capital under an extremely smart deal: If the design idea works out as envisioned, Pico Electronics would grant General Instrument the exclusive rights to manufacture and sell the chips on a global base.

The Pico Electronics team was very experienced with developing Chipsets used with electronic calculators, typically using between four and six chips with "hard-coded" logic for the different building blocks. These designs provided almost no flexibility for even minor modifications of the feature set of an electronic calculator and each design used its own set of photomasks for manufacturing. The newly formed Pico Electronics team came up with the idea for a "software-defined" calculator architecture, similar to larger computer systems and using ROM (Read-Only Memory) for its program, shift-register based data memory (SAM, Serial Access Memory), and a small, embedded RISC (Reduced Instruction Set Computer) CPU (Central Processing Unit) for the algorithm. It took the engineers at Pico Electronics only one year between starting their company and sending the first design out to GI for manufacturing and it worked almost perfectly on the first run. While Pico Electronics was fixing some design bugs, General Instrument started in June 1971 quietly some marketing activities for their first single-chip calculator circuit, simply named GI 250 and making its way into the odd Litton Royal Digital III calculator with its unusual 4-digit display and stylus-based keyboard.

Pico Electronics made some interesting design choices with the development of the PICO1 chip, both with the user interface and the embedded calculating logic, but certainly with the implementation of the calculator circuit.

User Interface:

No CE key, pressing a number key after the C key clears the whole calculator while pressing a function key after the C key clears the last entry
Number input is right-to-left, no leading zero suppression. Entering more than 8 digits doesn’t affect the display but the numbers are still registered
Number output is left-to-right, no leading zero suppression
A missing decimal point is indicating that the numbers are outside of ±1.0 * 10-7 to ±9.9999999 * 107 but still within ±1.0 * 10-20 to ±9.9999999 * 1079

Calculating Logic:

Numbers are stored with an eight-digit mantissa and a two-digit exponent, with '00' to '99' interpreted as 10-20 to 1079
There is no detection of an exponent roll-over from 1079 to 10-20 or vice versa
The Constant Function operated in two modes, with either one number/different functions or one function/different numbers
A division by Zero is not detected and crashes the algorithm, leading to an endless "counting loop" that can be only interrupted with the C key

Logic Implementation:

The PICO1 chip is using a "microcomputer-type" architecture with a CPU, ROM, SAM and glue logic
The CPU is a RISC (Reduced Instruction Set Computer) design with its instruction words between 27 and 63 bits wide
The program in the ROM with its 72 instructions is not sorted by the program flow but the length of the respective instruction words, allowing a more compact, non-rectangular layout of the transistor array
The keyboard interface uses 18 or 19 individual, non-multiplexed keys connected to both dedicated inputs and the display outputs (digits and segments) and read between outputting the numbers
The design of the PICO1 (76250 aka GI 250) uses only four digit outputs for a 4-digit display and an additional toggle key selects between the upper or lower four digits of the 8-digit display register
With the PICO11 (76251 aka GI 251), the upper and lower four digits of the 8-digit display register are automatically toggled, and two additional output signals control an external demultiplexer for an 8-digit display
The PICO1/PICO11 chips lacks a Power-on Clear function for both the registers and program counter, leading to unexpected results if the C key is not pressed before each calculation

Sorting the program of the RISC CPU by the length of its instruction word instead its program flow resulted physically in a compact layout but added to each instruction word two so-called "Next Address NA1 and NA2" fields. The Next Address NA1 field is holding the 7-bit program address if the 'Test' of the instruction is negative while the NA2 field is holding the 7-bit program address in case of a positive 'Test' result. Consequently is the layout of the ROM providing a rectangular area of 72 Words * 14 Bits next to its address decoder.

Learn more about the Logic Implementation of the PICO1 chip, Richard from the German Richi's Lab site did an in-depth examination of the silicon die retrieved from a General Instrument C-550 and even comparing it with the original GI 250 and later GI GI 251F designs.

Despite its commercial availability about three months before Texas Instruments’ groundbreaking TMS0100 Product Family, had the original PICO1 chip only modest success and as of today we know with the Litton Royal Digital III and Digital IV calculators only two early design wins. In 1972, the revised GI 251F made its way into the Litton Royal Digital V and Monroe 20 calculators. After renaming the GI 251F in a marketing campaign to C-500, the PICO1 started to take off with multiple design wins, most notably the Commodore US 1 and various Iain Jones International, Litton Royal, Sanyo, Unisonic and Universal Data Machine calculators.

The original PICO1 design was used between 1971 and 1974 in four generations of General Instrument single-chip calculator circuits:

1971: GEN1 GI 250 (76250) and GI 251/251F (76251) – 4-digit display or 4-digit multiplexed 8-digit display, 25 Volt
1972: GEN1 C-500 (76251) – 4-digit multiplexed 8-digit display, 25 Volt
1973: GEN2 C-550 - 4-digit multiplexed 8-digit display, 15 Volt
1973: GEN3 C-560/C-570 - 8-digit display, 15 Volt
1974: GEN4 CZL-550 – 8-digit display, leading zero suppression, integrated segment drivers, 15 Volt

General Instrument launched the 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
GI 250 Litton Royal Digital III [+][−][=] 2-2-2-2 8 4
Toggle Key
Float
10-20-1079
None Constant Number
Constant Function
S1 of 13
S1 of 13
   
GI 251 Litton Royal Digital IV [+][−][=] 2-2-2-2 8 4 + 4
Alternating
Float
10-20-1079
None Constant Number
Constant Function
S1 of 13
S1 of 13
   
GI 251F Litton Royal Digital V
Litton Monroe 20
[+][−][=] 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
C-550
Rebranded GI 251F
Low-voltage Process
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 + 2/3 Control
8 Segments
VFD Digit Drivers
VFD Segment Drivers
Inputs 18/19 Keyboard Direct Keyboard Inputs

Revisions

Revision Products First Prototypes Comments
GI 250 Rev E Litton Royal Digital III June 1971 Mask: E 1971 PICO1 76250
GI 251 Rev E Litton Royal Digital IV June 1971 Mask: E 1971 76250 PICO11 76251
GI 251 Rev F Litton Royal Digital V
Litton Monroe 20
Nov. 1971 Mask: F 1971 76250 PICO11 76251
Renamed in 1972 to C-500

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.

250:

Capacity: Up to 8 digits positive and 7 digits negative with 4-digit display and [↔] key
Logic: Algebraic Chain Logic with Constant
   [C] [2] [x] [3] [+] [4] [x] [5] [=] → '50.00', [↔] → '0.0.0.0.'
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] → '0001', [2] [3] [4] [5] [6] [7] [8] [9] [0] → '5678', [↔] → '1234', [:] [1] [0] [0] [0] [=] → '1234', [↔] → '567.8'
   [C] [0] [.] → '0000.', [0] [0] [0] [0] [0] [0] [0] [1] [2] [3] → '0.1.2.3.', [↔] → '0.000', [x] → '0.000', [1] [0] [0] [0] → '1000', [=] → '0.000', [↔] → '0.1.2.3.'
Decimal Point: Last entered decimal point is used
   [C] [1] [.] [2] [.] [3] → '012.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.000'
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.000'; [C] [1] [+] [2] [C] [+] [3] [=] → '4.000'
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.00'; [C] [0] [−] [2] [x] [−] [3] [=] → '-5.00'
Number Display: Left-justified number display without trailing-zero suppression
   [C] [1] [.] [2] [3] [x] [1] [0] [0] [=] → '123.0', [↔] → '0.0.0.0.'
   [C] [1] [.] [2] [3] [:] [1] [0] [0] [=] → '0.012', [↔] → '3.0.0.0.'
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] [=] → '1523', [↔] → '9902', [:] [1] [0] [0] [0] [=] → '1523, [↔] → '99.02'
   [C] [1] [2] [3] [4] [5] [0] [0] [0] [x] [1] [2] [3] [4] [5] [0] [0] [0] [=] → '1523', [↔] → '9902', [:] [1] [0] [0] [0] [=] → '1523', [:] [1] [0] [0] 0] [=] → '1523', [:] [1] [0] [0] [0] [=] → '1523, [↔] → '99.02'
Calculating Underflow: An underflow shows '0.000', [↔] → '0.0.0.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.000', [↔] → '0.0.0.0.', [x] [1] [0] [0] [0] [=] → '0.000', [↔] → 0.0.1.4.', [x] [1] [0] [0] [0] [=] → '0.001', [x] [1] [0] [0] [0] [=] → '1.428', [↔] → '5.7.1.4.'
Divide By Zero: A division of a positive or negative number by zero results in an erratic (endless counting) 4 digits (positive) or 4 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.666'
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.000', [1] [x] → '3.000', [1] [:] → '0.333', [1] [+] → '4.000', [1] [−] → '-2.00',
   [C] [3] [x] [K] → '3.000', [2] [=] → '6.000', [3] [=] → '9.000', [=] → '9.000'
   [C] [3] [:] [K] → '3.000', [2] [=] → '0.666', [3] [=] → '1.000', [=] → '0.333'
   [C] [3] [+] [K] → '3.000', [2] [=] → '5.000', [3] [=] → '6.000', [=] → '9.000'
   [C] [3] [−] [K] → '3.000', [2] [=] → '1.000', [3] [=] → '0.000', [=] → '-3.00'
Reciprocal Function: The reciprocal function is implemented using the [:] key directly followed by the [K] and [=] keys
   [C] [4] [:] [K] [=] [=] → '0.250'

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.000', [↔] → '0.0.0.1.', [1] [.] [2] [3] [=] → '0.000', [↔] → '0.0.0.1.' (1.23 * 10-7), [=] → '0.000' (1.23 * 10-14), [=] → '1230', [↔] → '0000' (1.23 * 10-21 # 1.23 * 1079), eleven times [=] → '123.0', [↔] → '0.0.0.0.' (1.23 * 102)

251F:

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)

Technical Specifications

Item Min Typ Max Unit Comments
VSS   0   V   
VDD   -25.0   V   
IDD   10.0   mA REXT = 100k Ohm, Segment- and
Digit-Driver Load 100 kOhm to VGG
VOUT -30 -25 0.3 V VFD Output Voltage through 100k Ohm Resistors
VIN -30 -25 0.3 V Input Voltage through 100k Ohm Resistors
ION1 (Digit)   -3.0   mA VOT = -2.0 V
ION2 (Digit)   -6.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 REXT = 100k Ohm to VDD

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

Applications Information

KEYBOARD AND DISPLAY SCANNING

The GI 250 uses a keyboard scanning matrix with all of its 19 keys connected directly to a corresponding pin, while the common signal is connected to a dedicated Keyboard Enable pin. Seven of the 19 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 GI 250 is blanking the display completely before each Display Scanning Cycle while reading the keyboard.

The GI 250 is using four shared Digit Driver Output pins D15, D26, D37, and D48 to display either the lower four Digits D1 to D4 or the higher four Digits D5 to D8 of its 8-digit Output register. Scanning of the 4-digit display is performed in D15 → D48 direction with the 'Lower Digits Enable" pin always activated.

The GI 251 with its 8-digit display driving capability drops the 'Toggle' key for an additional 'Upper Digits Enable' pin, 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 GI 251 is outputting the lower and higher digit groups in an alternating pattern with Display Scanning Cycle and blanking the display completely before each Display Scanning Cycle while reading the keyboard.

INTER-DIGIT BLANKING

The GI 250 and GI 251 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 GI 250 and GI 251 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 GI 250 and a GI 251 (Mask Revision F) and measured an output resistance of around 600 Ohm at an Output Voltage of -3.0 V.

Note: GI 250 left thumbnail and GI 251F right thumbnail.

SEGMENT DRIVERS

The GI 250 and GI 251 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 GI 250 and a GI 251 (Mask Revision F) and measured an output resistance of 1,000 Ohm at an Output Voltage of -3.0 V.

Note: GI 250 left thumbnail and GI 251F right thumbnail.

DCM-50A Platform Compatibility

The Datamath Calculator Museum DCM-50A (PLAYGROUND) supports the Characterization of the GI 250 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 GI 250 and GI 251 single-chip calculator circuits.

Technology

The GI 250 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 GI 250/GI 251 is approximately 165 mils * 160 mils / 4.2 mm * 4.1 mm.

Packaging

The GI 250 and GI 251 are using a standard 0.6” wide 24-pin CDIP (Ceramic Dual In-line Package with a 0.1” / 2.54 mm lead pitch).

Pin Configuration GI 250

 

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 I Key [T]
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. 

Pin Configuration GI 251

 

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 GI 250 Product Family consist of 18 or 19 keys or contacts connected between the Keyboard-Enable output pin and 18 or 19 pins of the 24-pin Integrated Circuit package.

The GI 250 scans all 19 keys at the beginning 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 4-digit display is performed in D15 → D48 direction at a rate of about 830 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) = 1.2 ms @ CK=100 kHz

GI 250

  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
KC 22 K
KT 21
KA/D48 17 +
KS/D37 16
KM/D26 18 ×
KD/D15B 19 ÷
KEQ 15 =

GI 251/251F

  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
KC 22 K
KA/D48 17 +
KS/D37 16
KM/D26 18 ×
KD/D15B 19 ÷
KEQ 15 =

Display

Calculators based on the GI 250 make use of 4-digit low-voltage VFDs (Vacuum Fluorescent Displays). Calculators based on the GI 251/251F make use of either 8-digit low-voltage VFDs or 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, July 5, 2025. No reprints without written permission.