Hubbry Logo
Signetics 2650Signetics 2650Main
Open search
Signetics 2650
Community hub
Signetics 2650
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Signetics 2650
Signetics 2650
from Wikipedia
Signetics 2650
Signetics 2650AN
General information
Launched1975; 50 years ago (1975)
Common manufacturer
Performance
Max. CPU clock rate1.2 MHz
Data width8
Address width15
Physical specifications
Package

The Signetics 2650 was an 8-bit microprocessor introduced in July 1975.[1] According to Adam Osborne's book An Introduction to Microprocessors Vol 2: Some Real Products, it was "the most minicomputer-like" of the microprocessors available at the time. A combination of missing features and odd memory access limited its appeal, and the system saw little use in the market.

Development

[edit]
Signetics 2650 introductory ad, October 30, 1975

In 1972, Signetics' Jack Curtis[a] hired John Kessler of IBM to lead the design of a new single-chip CPU intended to compete with minicomputer systems. Kessler selected the IBM 1130 as the model for the new design. The 1130, released in 1965, was a 16-bit minicomputer that shared many design features with other minis of the era.[2]

While Kessler designed the architecture, Kent Andreas laid out the CPU using a recently developed ion implantation NMOS process. In contrast to the far more common PMOS process of the era, NMOS used less power and dissipated less heat. This allowed the chip to be run at higher speeds than PMOS CPU designs, and the first 2650's ran at the same 1.25 MHz speed as the contemporary models of the 1130.[2]

When it was designed in 1972, the 2650 was among the most advanced designs on the market, easily outperforming and out-featuring the Intel 4004 and 8008 of the same era. Despite this, the design was not released to production. At the time, Signetics was heavily involved with Dolby Laboratories, developing integrated circuits that implemented Dolby's suite of noise-reduction systems. Production of the 2650 was pushed back, and the CPU was not formally introduced until July 1975. By 1975, several new CPUs had been introduced, designed from the start to be 8-bit machines rather than mimicking an older design, and the 2650's advantages were no longer as compelling.[2]

In 1975, Philips purchased Signetics, and from that point versions of the 2650 can be found with both Signetics or Philips branding.[2]

In March 1976, Signetics reached a second-source agreement with Advanced Memory Systems (AMS). At that time, most CPU firms were very small and no one would buy a design from a company that might go bankrupt. Second-sourcing was an important guarantee that the design would remain available in this eventuality. AMS was already acting as a second-source for the RCA 1802, an advanced CMOS design. The NMOS 2650 was seen as a useful adjunct that would not directly compete with the 1802. Unfortunately, in November AMS was purchased by Intersil, who had their own Intersil 6100, a single-chip version of the PDP-8 mini. Intersil dropped production of the 2650.[2]

Signetics tried again with National Semiconductor in 1977, who planned to introduce versions in the last quarter of the year. For unknown reasons, this appears to have never happened, and only a single example of an NS version, from France, has ever been found.[2]

Signetics continued the development of the 2650, introducing two new models in 1977. The 2650A was a reworked version of the original layout intended to improve yield, and thus reduce cost. Speed remained unchanged at 1.25 MHz for the base model and 2 MHz for the -1 versions. The 2650B was based on the A, added two new instructions, and improved the performance of a number of existing instructions.[2]

Description

[edit]
Signetics 2650A chip magnified.
Signetics 2650 registers
14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position)
Main general purpose registers
  REG0
  REG1
  REG2
  REG3
Alternate general purpose registers
  REG1'
  REG2'
  REG3'
Instruction Address register
Page
Subroutine return address stack
S0
S1
S2
S2
S4
S5
S6
S7
Program Status Words
  S F II Stack Ptr PSU
  CC ID RS WC OV CM C PSL

The overall design of the 2650 was based on the IBM 1130. As such, the 2650 has a number of features that were common on 1960s minicomputers, but rarely found on newly designed microprocessors of the 1970s. Among these, for instance, were processor status bits that were used to track the status of input/output devices, which makes it simpler to write interfacing code.[2] Another mini-like feature was its use of vectored interrupts, which allowed devices to call the correct interrupt handler code by putting its memory location on the data bus and then forcing an interrupt. This avoids the need to write a centralized interrupt handler that reads additional data from the bus, determines which device driver is being invoked and then calls it; the 2650 can jump directly to the correct code, potentially stored on the device itself.

The 2650's processor registers were divided into sets, with a single global register R0 used as the accumulator, and two sets of three index registers, both named R1, R2 and R3, for a total of seven registers.[3] For clarity, the second set was sometimes referred to as R1', R2' and R3' ("prime"). At any one time, one of the two sets of indexes were visible to the CPU. Which set was visible was controlled by a bit in the status register, PSW. One could easily switch between the two sets of registers with a single instruction.[4] This allowed rapid switching of values during subroutine calls, operating system switches, or handling interrupts. Unlike the 1130, the registers were only 8-bit wide rather than 16-bit, but there were two sets in the 2650 rather than one in the 1130.[2]

Another of its mini-like features was the extensive support for indirect addressing on most instructions. Many instructions require data to be read from a location in memory, in most CPUs of the era that would be a single byte of data that is stored in memory referred to by a 16-bit location. In the 2650, the high-bit of that 16-bit location indicated indirection, meaning that the data was not located at this location in memory, but the one encoded in the remaining 15 bits of the address.[4] This style of access allowed blocks of data to be more easily accessed than in systems that provided indirection solely through special instructions or index registers. One could step through memory by incrementing the address value stored in that single location in memory. This also resulted in considerable numbers of math instructions being applied to addresses, and to improve the performance of these operations, the 2650 included a second arithmetic logic unit just for address calculations.[3]

The downside to this approach was that the high-bit was no longer part of the address, meaning the address space was only 15 bits, and the machine could access only a total of 32 KB of memory. The address space was further limited by the use of another two bits of the address to indicate the indexing mode for all logical and arithmetic (i.e. non-branch) instructions. These bits controlled functions like whether the address should be post-incremented or pre-decremented, which is extremely useful for constructing loops. But with all of these bits already accounted for, only 13 were available for addresses in these instructions, meaning only 8 KB could be addressed directly. This meant the main memory was broken up as four 8 KB blocks.[3] To access memory outside the 8 KB where the instruction was located, the data bytes being pointed to had to contain an indirect address, pointing to some other location in memory.[4] Doing so forced another memory read cycle, slowing performance.

When the 2650 was designed in 1972, these limitations on address space were not significant due to the small size and high cost of the static RAM memory typically used with these processors. At the time, machines typically contained 2 or 4 KB of RAM. But with the increasing use of dynamic RAM from the mid-1970s, machines with 8 and 16 KB of RAM, and ultimately 64 KB, became common and the addressing system on the 2650 became a significant hindrance.

The 2650 also contained an on-die call stack, rather than the more common solution that sets aside a location in memory to hold the stack. The stack pointer was held in three bits in the PSW. An on-die stack is much faster, as the data can be accessed directly without waiting for it to be read from external memory, but it also takes up room on the die and is always limited in size as a result of practical tradeoffs. In the 2650, the return address stack was eight 15-bit entries deep.[3] This allowed programs to nest subroutines to eight levels.

While there were nine different addressing modes, the lack of 16-bit registers and the 13–15-bit address space prevented widespread use. Despite this, an operating system ("2650 DOS")[5] was available, along with 8 KB and 12 KB BASIC interpreters (sold by Central Data Corporation USA), and many games of the Hunt the Wumpus style. Most programs were written in assembly language.

Uses

[edit]
PC1001 evaluation board

Signetics sold 2650-based microprocessor development boards, first the PC1001[6][7] and then its successor, the PC1500 "Adaptable Board Computer", ranging in price from A$165 to A$400. The chip by itself sold for around A$20. Several hardware construction projects and programming articles were published in magazines such as Electronics Australia and Elektor and related kits were sold by electronics stores. These factors led to its use by a number of hobbyists in many countries such as Australia, U.S.A.,[8] United Kingdom, the Netherlands[9] and Germany.[10]

Two types of video game console used the Signetics 2650 or 2650A. The first group of consoles are based on the Signetics 2636 video display controller; the Interton Video Computer 4000 (1978) and variants of the 1292 Advanced Programmable Video System (1979) belong to this group. The second group of consoles were based on the Signetics 2637 as a video display controller; Emerson Arcadia 2001 which was released in 1982 and which used a Signetics 2650 running at 0.895 MHz as a CPU belong to this group together with many other ones software-compatible (Leonardo, Hanimex MPT-03 etc.).[11]

Signetics 2650 Microprocessor Kit

At least six coin-operated video games were released in the 1970s which used the 2650 CPU: Atari's Quiz Show, Meadows Games 3D Bowling, Gypsy Juggler and Lazer Command, Cinematronics Embargo, and a 1978 clone of Space Invaders by Italian company Zaccaria called The Invaders (the original by Taito uses an Intel 8080 CPU). At least two coin-operated video games were released in the 1980s using the 2650. Hunchback, and Hunchback Olympic.

Zaccaria also released 28 pinball machines based on the 2650 CPU. Their successor company, MrGame, released four additional pinball machines using the 2650. Zaccaria seems to have licensed its design to Technoplay as well, and several more pinball machines were released using variations of Zaccaria circuit board designs.

The processor was also used in the Signetics Instructor 50, which was a small computer designed to teach the use and programming of the 2650 CPU.

The 2650 was also used in some large items of equipment such as the Tektronix 8540, a microprocessor software development system which supported various in-circuit emulator, trace memory and logic analyser cards for real-time debugging of microprocessor systems, as practiced in the 1980s. The 2650 provided the base operating system functions, data transfer, and interface to a host computer or serial computer terminal.

The processor was most suited as a microcontroller, due to its extensive I/O support:

  • Single bit i/o pins on the processor (sense/flag bits)
  • Signals to directly address two 8-bit I/O ports (control and data ports) using single byte instructions (port i/o). This circumvented the elaborate hardware other systems needed for memory-mapped I/O
  • Signals to address another 256 I/O ports using an 8-bit address and two byte instructions, again, limiting the amount of hardware (address decoding) required. Philips emphasized this use as a micro-controller with a demonstration program showing the 2650 controlling an intelligent elevator system. Also, at trade fairs they showed the 2650 controlling a miniature 'sort and stack' robot

Industrial Microcomputer System – IMS

[edit]
Philips IMS 2650 Eurocard computer system

For a short time starting 1979, Philips sold a modular 2650 computer called the 'IMS' – Industrial Microcomputer System,[12] based on the Eurocard format in a 19" rack. It included CPU, PROM, RAM, input, output and teletype modules. This system was meant as a more intelligent programmable logic controller. For development, they later added DEBUG, DISPLAY, INTERRUPT and MODEST ((E)PROM programmer) modules.

Architecture

[edit]

The 2650 was supplied in a 40 pin plastic or ceramic DIL enclosure. An external single phase clock signal and a single 5V supply were needed.

The 2650 had many unusual features when compared to other microprocessors of the time:

  • It was a fully static NMOS 8-bit microprocessor. The static nature was unusual for the time, and meant that the processor could be halted simply by stopping the clock signal. Programmers made grateful use of this feature to "single step' through a program using a push-button switch to generate the clock pulses.
  • Unique was the 8-level 15-bit wide stack for the subroutine and interrupt return addresses which was integrated into the processor. The stack pointer used 3 bits of the upper status register. This meant subroutines and interrupts could only be nested 8 levels deep.
  • The processor had only 13 real address lines, a further 2 address lines were connected to a 2-bit 'page register', resulting in a 32 KB address space. The page register was set when an absolute (direct) branch instruction, which used a full 15-bit address, was executed. All logical and arithmetic instructions used a 13-bit address augmented by the contents of the page register, thereby limiting their scope to an 8 KB page. These 2 upper address lines were also used (multiplexed) to select the appropriate I/O port during I/O operations (Control port, Data port or Extended port).
  • Although the 2650 had only one interrupt input, this was a 'vectored' interrupt – the interrupting device needed to put a zero-relative displacement on the data bus, that would be used as the operand of a ZBSR (zero branch to subroutine relative) instruction to branch to the specified interrupt routine. Therefore, using indirect addressing, a maximum of 30 interrupt vectors could be stored in the first 64 bytes of memory. (The first three bytes were needed to hold an unconditional branch to the 'reset' routine). This vectored interrupt is also reminiscent of the PDP-11 minicomputer.

Instruction set

[edit]

Although the 2650 is basically an 8-bit microprocessor, up to three bits of the addresses were also used with the 8-bit instruction to form longer opcodes. 64 opcodes are 9-bits long, and another 32 opcodes are 11-bit. Of the remaining 128 8-bit opcodes, 124 (126 in the 2650B) are implemented, giving a total of 444 (446) instructions.

Many more instructions are available as the behavior of the standard instructions can be modified by setting or clearing status bits: WC (with or without carry) and COM (logical or arithmetic compare). This doubled the number of rotate, add, subtract and compare instructions.

The instruction set is strongly orthogonal: all logic and arithmetic instructions can use all nine addressing modes:

  • register
  • immediate
  • PC relative and PC relative indirect
  • absolute and absolute indirect
  • absolute indexed, absolute indexed with auto-increment, and absolute indexed with auto-decrement, both direct and indirect

The most significant bit of all relative and absolute addresses is used to indicate indirection.

The only exceptions are where the opcodes of meaningless operations are used for other purposes:

  • the opcode for AND register zero with register zero is used for the HALT instruction.
  • the opcode for STORE register zero into register zero is used for the NOP instruction.

Although the LODZ R0 (load register zero with register zero) instruction is supported by the Signetics assembler, its binary encoding is not allowed. The assembler substitutes the binary for the semantically equivalent instruction IORZ R0 instead.

Indexing

[edit]

With all arithmetic and logical instructions using absolute (direct) addressing, bits 14 and 13 of the address field are used to indicate the indexing mode as follows:

  • 00 no indexing
  • 01 indexing with auto increment
  • 10 indexing with auto decrement
  • 11 indexing only

When indexing is specified, the register defined in the instruction becomes the index register, and the source/destination is implicitly Register zero. For indirect indexing, Post indexing is used, i.e. the indirect address is first fetched from memory and then the index is added to it.

Branching

[edit]

Probably the most mini-computer like aspect of the 2650 is the enormous number (62) of branch (jump) instructions; all these instructions could also use indirection:

  • BIRR and BIRA: Increment register and branch if non-zero (R0, R1, R2 or R3) with relative or absolute addressing
  • BDRR and BDRA: Decrement register and branch if non-zero (R0, R1, R2 or R3) with relative or absolute addressing
  • BRNR and BRNA: branch if register non-zero (R0, R1, R2 or R3) with relative or absolute addressing
  • BCTR and BCTA: branch on condition True (zero, greater-than, less-than or unconditional) with relative or absolute addressing
  • BCFR and BCFA: branch on condition False (zero, greater-than or less-than) with relative or absolute addressing.
  • ZBRR: branch relative to address zero
  • BXA: branch indexed

Like the Intel 8080, the 2650 had instructions to conditionally branch to, and return from, a subroutine:

  • BSTR and BSTA: branch to subroutine on condition True (zero, greater-than, less-than or unconditional) with relative or absolute addressing
  • BSFR and BSFA: branch to subroutine on condition False (zero, greater-than or less-than) with relative or absolute addressing
  • BSNR and BSNA: branch to subroutine if register non-zero (R0, R1, R2 or R3) with relative or absolute addressing
  • RETC: return from subroutine on condition True (zero, greater-than, less-than or unconditional)
  • RETE: return from interrupt on condition True (zero, greater-than, less-than or unconditional)
  • ZBSR: branch to subroutine relative to address zero
  • BSXA: branch to subroutine indexed

Only the branch instructions using absolute addressing used all 15 bits of the address field as address. Using such a branch instruction was, therefore, the only way to set the two bits in the page register (controlling bits 14 and 13 of the address bus) and changing the current 8 KB page.

Versions

[edit]
  • 2650 original version with 1.25 MHz maximum clock frequency
  • 2650A improved version (minor fabrication changes to improve stability) 1.25 MHz maximum clock frequency
  • 2650A-1 as 2650A with 2 MHz maximum clock frequency
  • 2650B
  • 2650B-1 as 2650B with 2 MHz maximum clock frequency

The 2650B had the following changes and improvements over the 2650A:[13]

  • Two new signals – "Bus Enable" on pin 15 and "Cycle Last" on pin 25, which marks the instruction fetch cycle.[14]
  • Program Status Word Upper bits 3 and 4 are settable and testable user flags (unused on the 2650A).
  • Two new instructions STPL and LDPL to save and restore the lower status register from memory in order to simplify interrupt processing.
  • Single byte register R0 instructions execute faster (one cycle rather than two).

Second sources

[edit]
Philips MAB2650A

In 1975, Signetics was sold to Philips and the 2650 was later incorporated into the Philips Semiconductors line. They made a version of the 2650 called the MAB2650A. Valvo, a subsidiary of Philips, sold the 2650 in Germany. Valvo also sold the VA200 single board (Eurocard) 2650 computer with 4 KB PROM/EPROM, 1 KB RAM and four I/O ports.[15]

Other producers of licensed copies of the chip were Harris and Intersil.[citation needed]

Peripheral chips

[edit]

The 2650 came with a full complement of peripheral chips:

  • 2621 Video Encoder (PAL)
  • 2622 Video Encoder (NTSC)
  • 2636 Programmable Video Interface
  • 2637 Universal Video Interface
  • 2651 Programmable Communication Interface
  • 2652 Multi-Protocol Communications Circuit (incl. Synchronous Data Link Control (SDLC))
  • 2653 Polynomial Generator / Checker
  • 2655 Programmable Peripheral Interface
  • 2656 SMI (System memory interface)
  • 2657 Direct Memory Access
  • 2661 Enhanced Programmable Communication Interface (EPCI)
  • 2670 Display Character and Graphics Generator
  • 2671 Programmable Keyboard and Communications Controller
  • 2672 Programmable Video Timing Controller
  • 2673 Video Attributes Controller

Many of these peripheral chips were designed so they could also be used with other microprocessors, for example the datasheet of the 2672 suggests using it with an Intel 8048 microcontroller.

Philips Technical Note 083 describes how to interface the 2651 PCI to various other microprocessors, such as the 8080, 8085, Z80, 8048 and 6800

Descendants of the 2651/2661 serial communications chips are still sold as the Philips SC26 series.

2656 System Memory Interface

[edit]

The 2656 was specifically designed to augment, and interface with, the 2650 and make a 2-chip computer possible. It contained everything the 2650 lacked to make a complete computer:[16]

  • 2 KB 8-bit mask-programmed ROM program memory
  • 128 bytes 8-bit RAM memory
  • Clock generator with crystal or RC network
  • Power-on reset
  • Eight general purpose I/O pins

The I/O pins could be used as an 8-bit I/O port or programmed to generate enable signals for extra RAM, ROM or I/O ports. This was achieved by mask-programming a Programmable Logic Array in the 2656.

To develop and test the design before committing it to production, Philips sold the PC4000, a 2656 emulator board using PROMs and FPLAs to emulate the ROM and PLA in the 2656.

Notes

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
The Signetics 2650 is an 8-bit developed by Signetics and released in July 1975. Fabricated using NMOS technology on a single +5 V , it features a 15-bit address bus that supports up to 32 KB of addressing, and a dedicated M/IO control signal to distinguish access from I/O operations. Operating at a standard clock speed of 1.25 MHz, the processor was designed for general-purpose embedded applications and includes an integrated instruction decoder, control, and support for variable-length instructions of 1 to 3 bytes. The 2650's architecture draws inspiration from the 1130 , incorporating seven 8-bit general-purpose registers (with R0 serving as the accumulator), two stacks for subroutine and handling, and a 16-bit (PSW) that manages flags, , and paging. It supports eight addressing modes, including direct, indirect, indexed, and autoincrement/decrement variants, enabling efficient code execution with approximately 576 bits of internal ROM for , 250 bits of register storage, and around 900 logic gates. Later variants improved upon the original design: the 2650A (introduced in 1977) offered better manufacturing yields and compatibility, while the 2650B added instructions like load/store PSW (low byte) and enhanced PSW handling, with some versions reaching 2 MHz clock speeds. Although it faced stiff competition from processors like the and , leading to limited market adoption, the 2650 powered notable applications in industrial controls, such as Bally's "E" series slot machines, and early consoles including the Interton VC 4000, Voltmace Database, and Emerson Arcadia 2001, often paired with the Signetics 2636 . Production continued into the early 1990s primarily for legacy replacements, underscoring its niche but enduring role in embedded computing.

Development

Design Origins

The design of the Signetics 2650 originated in 1972 at Signetics, where John Kessler, recently recruited from , led the effort under the direction of Jack Curtis to create a single-chip that could rival the capabilities of systems, with layout handled by Kent Andreas. Kessler's architecture was heavily influenced by the 1130 , a 1965 word-oriented system, which he adapted to an 8-bit external bus while retaining features like a 16-bit and 15-bit addressing for the stacks to optimize performance for scientific and process control tasks. Key features such as hardware vectored interrupts and indirect ing were integrated to realize the vision of a " on a chip," enabling efficient handling of complex operations typically requiring multi-chip setups. The design prioritized NMOS fabrication for fully static operation, permitting reliable operation at arbitrarily low clock speeds with no minimum frequency. To enhance -like functionality, hardware provisions for stack-based operations—via an 8-level stack for subroutines and interrupts—and I/O paging through multiplexed lines were included from the outset. Development was delayed by Signetics' commitments to for noise-reduction IC licensing.

Production and Release

The development of the Signetics 2650 faced significant delays, originally planned for release around 1972 but postponed until 1975, as Signetics prioritized licensing and production of integrated circuits for ' noise-reduction systems to ensure financial stability. Signetics introduced the 2650 in July 1975 as its first , fabricated using NMOS technology and housed in a 40-pin (DIP). Initial production models operated at a clock speed of 1.25 MHz and featured a 15-bit address bus capable of addressing up to 32 KB of , though this space was divided into four 8 KB pages for management. Early production encountered challenges, including unexpected delays and limited availability of components like the 2650 and associated ROMs, which restricted initial market rollout despite the chip's innovative static NMOS design.

Technical Overview

General Description

The Signetics 2650 is an 8-bit microprocessor featuring an 8-bit bidirectional data bus and a 15-bit address bus, supplemented by a 1-bit I/O flag that distinguishes memory from I/O operations. This configuration enables addressing up to 32 KB of total memory space, organized into four 8 KB pages for modular access. Built using static NMOS logic, the 2650 supports variable clock speeds and halt-mode operation, facilitating debugging in embedded environments. Depending on the variant, the 2650 operates at maximum clock rates ranging from 1.2 MHz to 2 MHz, with power consumption approximately 1 W under typical conditions and a single +5 V supply requirement. It is housed in a 40-pin (DIP), and instructions execute in 6 to 12 clock cycles, balancing performance with simplicity for control applications. Among its minicomputer-inspired features, the 2650 includes an 8-level hardware stack for subroutine and interrupt handling, single-level vectored interrupts that leverage the stack for up to 8 levels of nesting, and built-in I/O paging controlled by the 16th address bit (the I/O flag). These elements enable efficient context switching and direct peripheral management without additional hardware. Designed primarily for embedded control systems and scientific computing tasks, the 2650 draws inspiration from the IBM 1130 minicomputer, incorporating similar addressing and stack mechanisms to emulate higher-level functionality on a single chip.

Architecture

The Signetics 2650 microprocessor employs an internal 16-bit datapath for address generation and status handling, while utilizing an 8-bit external bidirectional data bus to interface with memory and peripherals, enabling efficient data transfer within pin constraints. The processor includes seven 8-bit general-purpose registers (R0–R6, with bank switching for some) for data manipulation and a 16-bit program status word (PSW) managing flags, interrupts, and paging. Key registers include the 8-bit accumulator (R0) for arithmetic operations, the 15-bit program counter (P) that tracks the current instruction address, the stack pointer (S) for managing subroutine calls, and an 8-level push-down stack that stores 15-bit return addresses to support nested subroutines up to eight levels deep. These registers facilitate a register-oriented architecture, where data manipulation occurs primarily within the on-chip register file. Memory addressing in the 2650 is organized into four 8K-byte pages (pages 0-3), selected via a 2-bit page register that latches the high-order address bits (ADR13 and ADR14) during absolute branch operations and resets to zero on or reset. Indirect addressing is supported through an index register, which can be any general-purpose register, allowing modification of effective addresses by adding or subtracting its contents, extending the flexibility of access without additional hardware. A separate I/O is provided by dedicating address bit 16 as a memory/I/O select line (M/IO), where assertion of this bit directs operations to up to 256 I/O ports rather than the 32K-byte space. Interrupt handling features a single-level vectored interrupt, using an 8-bit vector fetched via the data bus to direct the processor to the appropriate service routine, with automatic pushing of the return address onto the on-chip stack to preserve context; the interrupt inhibit bit in the program status word is set to prevent nesting until explicitly cleared. The control unit uses a combination of hardwired logic and microcode for efficient instruction decoding and execution, including approximately 576 bits of internal ROM for microcode. The bus structure includes 13 dedicated output address lines (AD0-AD12) from the chip, which can be extended externally using latches to generate the full 15-bit address (including paged bits) for the 32K address space, supporting tri-state operation for multiprocessor or DMA configurations. Timing is governed by a 4-phase internal clock derived from a single-phase external input, with programmable wait states inserted via the OPACK handshake signal to accommodate slower memory or I/O devices. Additionally, its static NMOS design permits DC operation at zero clock frequency, aiding in-circuit debugging.

Instruction Set

Overview and Addressing Modes

The Signetics 2650 instruction set consists of 75 basic instructions that, when combined with addressing modes, yield numerous variants, promoting high code density through variable-length formats of 1 to 3 bytes while ensuring compatibility with programming paradigms. This design prioritizes efficient operand access and minimizes memory usage, with the first byte typically encoding the operation and mode, followed by 0 to 2 bytes for operands or addresses. The processor implements eight addressing modes—immediate, register, relative, absolute (), indirect, indexed (including auto-increment and auto-decrement variants), and stack-relative—to support versatile data manipulation without excessive instruction overhead. These modes are orthogonal for most arithmetic, logic, and load/store operations, allowing the same to adapt to different or register contexts. Hardware support from the 8-level stack and page registers enables seamless integration of relative and stack-based addressing. Immediate mode embeds an 8-bit constant directly in the instruction for quick register loading or arithmetic, as in LODI R0, #42, avoiding fetches for performance-critical constants. Direct mode specifies a full 15-bit absolute in two successive bytes, enabling straightforward access to any location in the 32 KB . Indirect mode dereferences a location or register to obtain the effective , facilitating pointer-based operations; for instance, indirect via the X register supports dynamic access like LODA R1, *X. Indexed modes compute the effective address by adding the contents of an index register (typically R3) to a base address, ideal for table lookups or loops, with post-fetch auto-increment (LODA R1, addr, R3+) or auto-decrement (LODA R1, addr, R3-) variants automatically updating the index for sequential processing. Register mode uses a register directly as the operand, streamlining operations without access. Relative mode employs an 8-bit signed displacement from the current or page base, optimizing local jumps and references within 128 bytes for compact code. Stack-relative mode offsets from the top of the hardware stack for efficient and handling. Efficiency is enhanced across modes by supporting 15-bit address resolution and operations via double-byte fetches over the 8-bit data bus, ensuring full utilization of the 32 KB without dedicated 16-bit registers. This approach balances the processor's 8-bit architecture with broader memory access needs, adding minimal cycles (typically 2 extra for indirect fetches) while maintaining execution speeds up to 1.25 MHz.

Branching and Indexing

The Signetics 2650 provides approximately 20 branching instructions, encompassing a wide array of conditional and unconditional operations for jumps, calls, and returns, which leverage the processor's integrated hardware stack for efficient subroutine handling. Conditional branches test flags such as carry, zero, and overflow, generated from arithmetic and logical operations, to direct program flow based on computational outcomes. For instance, instructions like Branch on Carry True (BCT) or Branch on Zero (BZ) enable precise , while unconditional variants such as Branch Relative (BRR) offer straightforward jumps without flag dependency. These instructions support six addressing modes, enhancing flexibility in . Relative branching employs 8-bit signed offsets, allowing displacements of up to ±128 bytes from the current , which facilitates compact code for local jumps and loops. Subroutine calls, such as Branch to Subroutine Relative (BSR), automatically push the and onto an 8-level on-chip hardware stack, preserving context for nested routines. Returns, like Return from Subroutine (RET), pop these values to restore execution, ensuring seamless resumption. This stack-based mechanism minimizes software overhead for function calls and supports up to eight levels of nesting without external intervention. Indexing capabilities augment branching with dedicated support for data manipulation in loops and structures, using the X register (register 3) for auto-increment and auto-decrement operations during indexed branches like Branch Indexed Absolute (BXA). A distinct INDEX instruction adds an 8-bit offset to the index register, enabling efficient traversal of arrays or tables with forward and for sequential or reverse access patterns. These features integrate with addressing modes like indexed absolute, allowing branches to computed locations for dynamic . Special SKIP instructions permit conditional execution of the next instruction without altering the via a full branch, ideal for short if-then constructs and reducing code size. For example, Skip on Carry (SKC) tests the and skips the subsequent instruction if set, streamlining simple tests. Branching also integrates with the system, where handling uses the hardware stack for automatic context save and restore, enabling prompt returns from interrupt service routines while masking further interrupts until explicitly re-enabled.

Variants and Manufacturing

Versions

The Signetics 2650, introduced in July 1975, operated at a clock speed of 1.25 MHz using NMOS technology and provided a basic feature set including seven 8-bit registers, an 8-level stack, and support for 32 KB of addressing, though early production faced challenges with yields. In 1977, Signetics released the 2650A, a redesigned variant with a smaller die size achieved through mask rework and shrinkage, which improved yields and operating parameters while maintaining the 1.25 MHz speed and core architecture of the original; this version found widespread use in systems. The 2650 powered Bally's "E" series slot machines produced from 1980 to 1986. The 2650A-1 was a speed-binned variant of the 2650A, capable of operating at 2 MHz, though it achieved lower yields due to the higher requirements. By 1977, the 2650B introduced enhancements over the 2650A, including two new instructions (LDPL for loading the lower byte and STPL for storing it) to simplify handling, user-settable and testable flags in bits 3 and 4 of the , and faster execution (reduced to one cycle) for seven existing instructions such as LODZ; it also added new control signals with "Bus Enable" on pin 15 and "Cycle Last" on pin 25, while retaining compatibility with prior versions. The 2650B-1 offered a 2 MHz clock speed for the enhanced B architecture but remained rare, as production occurred toward the end of the line and adoption was limited overall for the B series by the mid-. Second sourcing by extended the availability of these variants into the 1980s and beyond.

Second Sources

Following the 1975 acquisition of Signetics by , the company integrated the 2650 into its semiconductor lineup and produced fully compatible versions, such as the MAB2650A, which retained the original pinout and electrical specifications for seamless interchangeability. Philips extended production and availability of these equivalents into the 1980s, supporting ongoing demand in legacy systems. As a European subsidiary of , Valvo manufactured 2650A and 2650B variants primarily for the regional market, maintaining full compatibility with Signetics originals while leveraging local production facilities. held a license to produce the original 2650 but no known production occurred. planned a similar second-source arrangement in 1977 but ultimately canceled the initiative. Across these second sources, compatibility was preserved through adherence to the standard pinout and electrical characteristics, though select variants incorporated minor timing adjustments to improve reliability in demanding environments.

Supporting Hardware

Peripheral Chips

The Signetics 2650 was supported by a family of peripheral integrated circuits designed to handle operations, serial and parallel communications, and video display generation, all fabricated using the same NMOS process for compatible timing and interfacing. These chips interfaced directly with the 2650's bus architecture, supporting both polled and interrupt-driven modes to extend system capabilities in applications. The 2651 Programmable Communications Interface (PCI) served as a universal synchronous/asynchronous receiver-transmitter (USART) for serial data communications, supporting protocols such as and custom formats including BISYNC. It handled 5- to 8-bit characters with odd/even/no parity, break and insertion/deletion, and 16 programmable rates ranging from 50 to 19,200 (or up to 1 Mbps with external clocking), operating in full- or half-duplex modes with internal/external synchronization. The chip featured double-buffered transmit/receive registers, SYN/DLE detection for BISYNC, and direct compatibility with the 2650 via memory-mapped or I/O addressing, using a 28-pin DIP package at 5V supply. An enhanced variant, the 2661 Enhanced Programmable Communications Interface (EPCI), built on the 2651 design with added features for advanced serial protocols, including an integrated baud rate generator supporting 16 selectable rates and modes for , remote , and transparent data transmission. It provided automatic SYN sequence adjustment, DLE stuffing/stripping, and improved BISYNC compatibility, while maintaining pin compatibility with the 2651 in a 28-pin DIP package for seamless upgrades in 2650-based systems. The 2655 Programmable Peripheral Interface (PPI) enabled parallel I/O operations with three independent 8-bit ports (24 lines total), configurable as inputs, outputs, or strobed I/O with handshaking signals for controlled data transfer. Each port supported modes for simple I/O, bidirectional data transfer, or interrupt-on-change detection, interfacing directly to the 2650 bus for polled or interrupt-driven control in applications requiring multiple peripheral connections, housed in a 40-pin DIP at 5V. For video applications, the 2621 and 2622 Universal Sync Generators (USG) provided timing and control signals for television display generation, with the 2621 optimized for PAL format (3.55 MHz clock) and the 2622 for (3.579545 MHz clock). Each generated horizontal/vertical sync, composite blanking, and color burst flags to support character and graphics rendering in terminals or games, interfacing with video RAM and the 2650 for microprocessor-controlled displays in 24-pin DIP packages. The 2636 Programmable Video Interface (PVI) and its successor, the 2637 Universal Video Interface (UVI), acted as video controllers for RAM-based displays in game systems and terminals, supporting and object-oriented . The 2636 managed up to four movable objects with 80 programmable images, background tiling, and sound generation via an 8-color palette and 37-byte scratchpad RAM, while the 2637 added character generation (40 alphanumeric/64 graphics per row, 13-26 rows) with similar object handling and capabilities, both using 40-pin DIPs clocked at video rates for direct 2650 integration. Additional support chips included 2650-compatible timers and (DMA) controllers such as the 2653 Polynomial Generator Checker (PGC), which facilitated high-speed checks (CRC-16/12, LRC-8) alongside DMA interfaces for efficient transfers in communication systems, all sharing the NMOS process to ensure timing synchronization with the 2650 core.

2656 System Memory Interface

The Signetics 2656 System Memory Interface (SMI) serves as a dedicated companion chip to the , providing integrated support for and expansion through address decoding and banking capabilities. Packaged in a 40-pin (DIP) and operating from a single +5 V supply, the 2656 incorporates 2 KB of mask-programmed (ROM), 128 bytes of (RAM), an 8-bit programmable (I/O) port, and an internal configurable via crystal, RC network, or external input. This design enables a minimal two-chip configuration while facilitating connection to the 2650's 8-bit bidirectional data bus (DB0–DB7) and 15-bit address bus (A0–A14), using control signals such as processor request (PREQ), memory/I/O select (M/IO), and read/write (R/W). Central to the 2656's role in memory expansion is its Programmable Gate Array (PGA), a mask-programmable that decodes up to 18 and control inputs to generate chip enable (CE) outputs for external devices, allowing seamless integration of additional ROM and RAM beyond the on-chip resources. This automatic decoding supports flexible mapping of blocks within the 2650's 32 KB , with provisions for banking to extend effective capacity; in advanced configurations, a 4-bit bank select mechanism—leveraged via the I/O port or decoded outputs—enables addressing up to 512 KB by switching between multiple 32 KB banks externally. The chip integrates directly with the 2650's internal page register, which handles the upper two bits for four 8 KB pages, ensuring coordinated paging and indirect addressing without additional . The PGA prioritizes RAM access over ROM in overlapping regions and supports modes for ROM/RAM mapping, where base are customized during fabrication to fit specific . Additional features enhance reliability and performance in memory-intensive applications, including wait-state generation through programmable clock divisors (1, 2, 3, or 4) to synchronize slower external accesses with the 2650's cycle timing. The 8 multi-purpose pins (X0–X7) can emulate I/O ports or serve as select lines and chip selects, configurable through a Function Select array to minimize external components like TTL buffers or decoders. For multi-board systems, the 2656 includes tri-state bus drivers on the address and data lines, providing robust for shared buses and enabling scalable setups such as the Industrial Microcomputer System (IMS), where it handles across distributed modules. Power-on reset circuitry initializes the RAM and clock, ensuring stable operation up to 4 MHz clock rates with a maximum current draw of 150 mA.
Pin GroupPinsFunction
Data Bus1–5, 38–40 (DB0–DB7)Bidirectional 8-bit data transfer with the 2650.
Address Bus18–32 (A0–A14)Input for 15-bit addressing; tri-state outputs for driving external .
Control15 (M/IO), 14 (R/W), 16 (PREQ), 17 (WRP)Interface signals for /I/O distinction, read/write control, processor request, and write pulse.
Multi-Purpose I/O6–9, 34–37 (X0–X7)Configurable as I/O ports, chip enables, or bank selects.
Clock/Reset10 (CLOCK), 11 (CK1/RST), 12 (CK2)Clock output, reset, and timing element connections.
Power/Ground13 (GND), 33 (VCC)Ground and +5 V supply.

Applications

Early Uses and Systems

The Signetics 2650 found early adoption in consumer video gaming applications, serving as the primary processor in both arcade cabinets and home consoles during the late 1970s and early 1980s. In arcade systems, it powered games from manufacturers like Zaccaria, including their 1978 adaptation of Taito's , where the CPU handled game logic and coordinated with custom hardware for sprite rendering and . Bally Midway also utilized the 2650 in titles such as Lazarian (1982), a licensed vertical shooter that benefited from the processor's efficient handling for real-time enemy movements and scoring. These implementations often paired the 2650 with Signetics' 2636 video display generator to produce colorful, animated graphics on CRT monitors. Home console developers similarly leveraged the 2650's capabilities for affordable gaming hardware. The Interton VC 4000, released in 1978, used the 2650A processor paired with the 2636 video controller for cartridge-based . The Voltmace Database, a 1977 computer, also employed the 2650 in its architecture for video gaming. The Emerson Arcadia 2001, released in 1982, employed the 2650 (or its 2650A variant) running at 3.58 MHz to drive a library of over 30 cartridge-based , including shooters and sports titles, with support for 8-color graphics at a resolution of 208x108 pixels. This system's architecture emphasized the 2650's strengths in memory-mapped I/O for controller inputs and video output, making it a competitive entry in the second-generation console market despite its short lifespan. Among hobbyists, the 2650 inspired educational and experimental projects, starting with Signetics' own Instructor 50 system introduced in 1978 as a fully assembled, low-cost training platform. The Instructor 50 included 256 bytes of RAM, a keyboard, LED displays, and tape storage interface, allowing users to learn assembly programming and hardware interfacing through included tutorials and monitor software like PIPBUG. This kit fostered early homebrew efforts, such as the Electronics Australia 2650 project published in 1978, which guided enthusiasts in building single-board systems with expanded memory and peripherals for custom controllers and simple applications. The 2650 also appeared in embedded consumer devices like machines, where its deep stack (up to 32 levels) enabled efficient state machine designs for scoring, lighting, and control. Zaccaria integrated the processor into over two dozen models from the late 1970s onward, including Locomotion (1980), marking a shift from electromechanical to digital controls in arcade entertainment. Additionally, the CPU powered Bally's "E" series slot machines in industrial controls. Its unique register-file architecture, however, limited broader adoption in calculators and other instruments, as developers favored more conventional 8-bit processors like the 8080 or 6502 for standardized toolchains.

Industrial Microcomputer System (IMS)

The Industrial Microcomputer System (IMS) was introduced in 1979 as a modular, Eurocard-based family of industrial computers designed for European manufacturing and automation environments, with the Signetics 2650 serving as the core CPU on a dedicated module interfaced via a bus. The system's components included a CPU board equipped with the 2650A or 2650B processor, integrated RAM, and the 2656 system memory interface chip for handling memory banking; additional PROM and RAM expansion modules; parallel and serial I/O interface cards; and dedicated units to support rack-mounted configurations. This architecture enabled multiprocessor setups through access on the , compatibility with real-time operating systems for deterministic control tasks, and deployment in applications such as programmable logic controllers (PLCs) and industrial systems. The IMS offered advantages in standardization and expandability for European industry standards, facilitating scalable systems up to several hundred kilobytes of addressable , though it was phased out in the mid-1980s with the rise of more powerful 16-bit architectures.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.