Signetics 2650
The Signetics 2650 was an 8-bit microprocessor introduced in mid-1975. 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. Signetics became better known as a second-source supplier for the MOS 6502.
Description
The chip contained seven 8-bit general-purpose registers, although only four were visible at any time. It was limited to a 15-bit address space, since the upper bit of a 16-bit memory reference was reserved to indicate that the indirect memory addressing mode was to be used. 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 instructions. This divided the address space into four 8 KB 'pages', only the current could be addressed directly, the others only by indirect addressing.While there were nine different addressing modes, the lack of any 16-bit registers and the 13–15-bit address space prevented widespread use. Despite this, an operating system was available, along with 8 KB and 12 KB BASIC interpreters, and many games of the Hunt the Wumpus style. Most programs were written in assembly language.
Uses
sold development boards e.g. the PC1001 and 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., United Kingdom, the Netherlands and Germany.Two types of video game console used the Signetics 2650 or 2650A. The first group of consoles are based on the video display controller 2636 Programmable Video Interface; the 1292 Advanced Programmable Video System and the closely related Interton Video Computer 4000 belong to this group. Those were released in Germany in 1976 and 1978 respectively. 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 3.58 MHz as a CPU belong to this group together with many other ones software-compatible.
At least five coin-operated video games were released in the 1970s which used the 2650 CPU Atari Quiz Show, Meadows Games 3D Bowling, Meadows Games Gypsy Juggler, Cinematronics Embargo, and a version of Taito Space Invaders.
At least two coin-operated video games were released in the 1980's using the 2650. Hunchback, and Hunchback Olympic.
The processor was also used in the Signetics Instructor 50, which was a small computer designed to teach the use and programming of the Signetics 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
- Signals to directly address two 8-bit I/O ports using single byte instructions. 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 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
Architecture
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 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 to select the appropriate I/O port during I/O operations.
- 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 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.. This vectored interrupt is also reminiscent of the PDP-11 minicomputer.
Instruction set
Many more instructions are available as the behavior of the standard instructions can be modified by setting or clearing status bits: WC and COM. 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 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.
Indexing
With all arithmetic and logical instructions using absolute 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
Branching
Probably the most mini-computer like aspect of the 2650 is the enormous number of branch instructions; all these instructions could also use indirection:- BIRR and BIRA: Increment register and branch if non-zero with relative or absolute addressing
- BDRR and BDRA: Decrement register and branch if non-zero with relative or absolute addressing
- BRNR and BRNA: branch if register non-zero with relative or absolute addressing
- BCTR and BCTA: branch on condition True with relative or absolute addressing
- BCFR and BCFA: branch on condition False with relative or absolute addressing.
- ZBRR: branch relative to address zero
- BXA: branch indexed
- BSTR and BSTA: branch to subroutine on condition True with relative or absolute addressing
- BSFR and BSFA: branch to subroutine on condition False with relative or absolute addressing
- BSNR and BSNA: branch to subroutine if register non-zero with relative or absolute addressing
- RETC: return from subroutine on condition True
- RETE: return from interrupt on condition True
- ZBSR: branch to subroutine relative to address zero
- BSXA: branch to subroutine indexed
Versions
- 2650 original version with 1.25 MHz maximum clock frequency
- 2650A improved version 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
- Two new signals "Bus Enable" on pin 15 and "Cycle Last" on pin 25.
- Program Status Word Upper bits 3 and 4 are setable and testable user flags.
- Two new instructions to save and restore the lower status register in order to simplify interrupt processing.
- Single byte register R0 instructions execute faster.
Second sources
Other producers of licensed copies of the chip were Harris and Intersil.
Peripheral chips
The 2650 came with a full complement of peripheral chips:- 2621 Video Encoder
- 2622 Video Encoder
- 2636 Programmable Video Interface
- 2637 Universal Video Interface
- 2651 Programmable Communication Interface
- 2652 Multi-Protocol Communications Circuit
- 2653 Polynomial Generator / Checker
- 2655 Programmable Peripheral Interface
- 2656 SMI
- 2657 Direct Memory Access
- 2661 Enhanced Programmable Communication Interface
- 2670 Display Character and Graphics Generator
- 2671 Programmable Keyboard and Communications Controller
- 2672 Programmable Video Timing Controller
- 2673 Video Attributes Controller
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 Interface2650PC-4000 memory interface emulator using PROM's and FPLA's
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:- 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
To develop and test the design before committing it to production, Philips sold the PC4000, a 2656 emulator board using PROM'S and FPLA's to emulate the ROM and PLA in the 2656.