October 16th, 2016 ~ by admin

Signetics 2650: An IBM on a Chip

Signetics 2650I - Original Version from May of 1976

Signetics 2650I – Original Version from May of 1976

The Signetics 2650 processor has always been described as ‘very mini-computer like’ and for good reason, it truly is very minicomputer like in design.  It is an 8-bit processor released in July of 1975 made on an NMOS process.  The 2650 has a 15-bit address bus (the upper bit (16) is reserved for specifying indirect addressing) allowing addressing of up to 32K of memory.  It has 7 registers, R0, which is used as an accumulator, as well as 2 banks of 3 8-bit registers accessed.  The 2650 supports 8 different addressing modes, including direct, and indirect with autoincrement/decrement.  Its clearly a mini-computer design and there is a reason for that, it was based on one.

The 2650 is very closely based on the IBM 1130 mini-computer released in 1965.  Both use 15-bit addressing, many addressing modes, and a set of 3 registers (Signetics added support for 2 banks of 3,  The Signetics 2650 is often noted for its novel use of a 16-bit PSW status register, but this too is from the 1130, which used a 16-bit Device Status Register for talking with various I/O components.  So why would Signetics base a processor released in 1975 on a 1965 mini-computer?

Because the 2650 was not designed long before it was released.  J. Kessler  was hired by Signetics in 1972 in part to help design an 8-bit processor.  Kessler was hired by Jack Curtis, (Of Write Only Memory fame) from…IBM. Kessler designed the architecture very similar to the IBM 1130 and Kent Andreas did the silicon layout.  The design contains 576 bits of ROM (microcode mainly), ~250 bits of RAM (for registers, stack, etc) and about 900 gates for logic.  Clock speed was 1.25MHz (2MHz on the -1 version) on a ion implanted NMOS process, very good for 1972 (this was as fast as the fastest IBM 1130 made), but Signetics was tied up working with Dolby Labs on audio products (noise canceling etc) and didn’t have the resources (or perhaps the desire) to do both, so the 2650 was pushed back to 1975.  In 1972 the IBM 1130 it was inspired by was still being made.  If the 2650 had been released in 1972 it would have had the Intel 4004 and 8008 as competition, both of which were not easy to use, and had complex power supply and clocking requirements.  The 2650 needed a 5V supply, and a simple TTL single phase clock.

Signetics 2650AN-1 - Revised version, 1979 marked -1 as it was tested to work at 2MHz

Signetics 2650AN-1 – Revised version, 1979 marked -1 as it was tested to work at 2MHz

Signetics troubles continued with the 2650, not the chip itself, which worked well and was well supported with dev systems by Signetics, but from a marketing side.  In March of 1976 Signetics reached a second source agreement with AMS (Advanced Memory Systems Inc.) to make the 2650 and the in development revised 2650A.  AMS was already second sourcing the CMOS 1802 from RCA so the NMOS 2650 was seen as a good fit, and in the 1970’s having a reliable second source was very important.  In November of 1976, however, AMS was acquired by Intersil, who had the 6100 processor, the 2650 was deemed superfluous and AMS/Intersil chose not to make it.  Signetics tried again in 1977 with National Semiconductor.  National planned to begin making 2650 series processors in 4Q of 1977.  It is likely National never made any however, as none have ever been seen, and only a single (French) reference to the INS2650 is seen after 1978.

In 1977 Signetics released 2 new versions of the 2650.  The 2650A was a mask rework (and likely shrink) to improve yields and device operating parameters.  Speed was unchanged at 1.25MHz and 2MHz for the -1 speed grade.  Also released was the 2650B, this contained the same mask changes as well as a number of enhancements to the processor architecture itself.  Four changes were made to make the 2650 more user friendly:

  1. Pin-Out: 2650B and 2650A differ in 2 pin functions In 2650B pin 15 becomes bus enable and pin 25 becomes cycle last
  2. Instruction Set: 2 new instructions are added LDPL, and STPL (Load/Store Program Status Word Low byte). THese make handling interrupts much easier.
  3. Program Status word upper: PSU bits 3 and 4 are settable, testable user flags in the 2650B vs set at 0 for the 2650A, making the PSW register even more helpful
  4. Instruction Execution Time: LODZ, SUBZ, COMZ, STRZ, IORZ, ADDZ, ANDZ and EORZ now execute in 1 cycle instead of 2.  These may greatly enhance performance as they all are Register Zero (Accumulator) based.
Philips MAB2650A  - Philips bought Signetics in 1975 but continued to use the Signetics name into the 1990's.  THe Philips brand was typically used though on European market chips like this example from 1982

Philips MAB2650A – Philips bought Signetics in 1975 but continued to use the Signetics name into the 1990’s. The Philips brand was typically used though on European market chips like this example from 1982

Despite these changes the 2650 had limited market success.  The 2650A found its way into several video game applications and some industrial applications.  The 2650B, while a nice enhancement appears to have seen little to no adoption.  The 2650B was dropped by the mid-1980’s and Signetics (and Philips in Europe as the MAB2650) stopped actively marketing the 2650A (though still produced it) at around the same time.  Devices continued to be up until at least the early 1990’s to fill replacement needs etc, but the 2650 was essentially ‘dead’ by 1985.

Had the 2650 been released closer to when it was actually designed the story may have been a lot different.  In 1972 there was only a handful of processors, by 1975 there was dozens of types available.  Signetics tried again in the late 70’s with another mini-computer based chip, The SPC-16/10, a chip that is even less common then the 2650, but at least made it to space.

 

Tags:
,

Posted in:
CPU of the Day

22 Responses to Signetics 2650: An IBM on a Chip

  1. David Gould

    My first computer was a home brew wire wrapped board with a Signetics 2650A that I got as a sample (I was a student and had no money). I taught myself logic design and programming with that thing. As it happens, I still have it, and it’s possible that it still even works.

    I did not know about the IBM 1130 connection, I thought it had a lot of ideas from the pdp-11. It was a sweet chip, easy to interface (since I a complete newbie was able to do ti) and much nicer to program than the 8008/8080/z80. However, it had a fatal flaw, the return stack had a three bit hardware stack pointer, so only seven levels of function call (plus interrupts) could be used normally.

  2. Graham

    Also processing interrupts is clunky on the 2650A. Its a cute little CPU though, I find that I really like it, but also find myself feeling rather sorry for it – it is a CPU that is effectively a dead end in history.

    I think Signetics marketed it wrong – overly focusing on hobbyists (presumably to try and act as a catalyst) and without second sourcing they were also going to be in trouble, plus they released too late. What is not clear is if they had the actual tech to fab it in 1972 anyway, does anyone know?

  3. Johannes

    At first, thank you for the great blog!

    I have a working IBM 1800 (industrial version of 1130) and I can’t see that much common between with it and the 2650. It is like saying HP21MX is based on Honeywell H316, because both have A and B registers, ALU and some same instructions like LDA.

    Example 1130/1800 has only one accu + three XR registers which are for just indexing. All operations happens between the accu and memory. Databus was 16-bit, ALU 16/32-bit, hardware multiplication and divide. Instructions differ significantly. 1130/1800 has no paging nor stack, subroutine return address is saved to first word of the subroutine itself ( = unlimited levels ).

    Also I have my doubts was the 2650 fast as these old beasts in the real world; fastest 1130 version was 3.64Mhz and 1800 4Mhz, not 2Mhz. Furthermore these had a wider datapath, 64/128KB memory spaces, mul&div on the iron, DMA, etc…

    Clearly 1130 had some influence on the 2650’s design and philosophy, which can seen example in a “wrongly” used PSW and some other details, but I wouldn’t say it is very closely based on the 1130 😉

  4. The U.C.A. now supports Signetics 2650 – X86.FR

    […] from CPUSHACK wrote a nice article on this […]

  5. Tim

    Thanks for the info on this chip! You may be interested to know that the 2650 was used in the Bally “E” series slot machine from 1980 through 1986. The “E” series machine was a transitional device. It contained a traditional mechanical unit for spinning the reels, using the muscle power of the person pulling the handle. However, the reel position was detected by opto-couplers connected to a 2650-based controller, and the stop arm for each reel was triggered by a solenoid under CPU control. This allowed the CPU to stop each reel at a specific symbol. A portion of the program code for the 2650 controler could be modified via a socketed EPROM, which allowed the operator to alter the percentage of payout for the machine. I’ve worked on a lot of early micro-controlled coin-op equipment, and this is the only place that I’ve seen the 2650 used for this type of application.

  6. admin

    Thanks! thats indeed interesting. Interesting to see the hybrid nature of that design too. It was used in a few traditional arcade games but a slot machine is another beast.

  7. Bob Harper

    I build an extremely basic computer on a home made pcb with 256 bits of ram, (32 bytes) and toggle switches for input, plus PB for ‘STEP’ and ‘RESET’ and a toggle for ‘Run/Step’, and a row of LEDs for output (or whatever was on the data bus). Date: about mid 1975 from memory. (Actually just had to change a type where I wrote 1875, but is somebody trying to tell me something?)
    That’s why Arduino is so important to today’s would be engineers…you gotta start somewhere easy, but interesting!

  8. J. Kessler

    Thanks for the info on the Bally machines. It is interesting my CPU found use after 1972.

  9. Richard Green

    What does PIP stand for?
    It is used in PipBug and PipSim; maybe more.

  10. Jason M. Zinserling

    greetings I have a question about 2650’s ZBRR instruction. It appears I have some confusing information/discovery about how this instruction reported and how it actual function as well how some of assemblers work on the internet with is instruction. starting it report to be +/- 64 relative address but appears a 8 bit absolute address when it work when I use code WinArcadia.exe .

  11. admin

    It’s a bit of both, its a relative address but relative to byte 0 page 0, so it is always an address in the first 64 bytes or last 64 bytes of page 0.

  12. Marta

    My mom used to work at Signetics many decades ago – she was a scientist there and eventually, she and many co-workers were sickened by poor ventilation of toxic substances used to create the semi-conductors. She had to be retrained in another field. Interesting to see the company’s place in history.

  13. Jason M. Zinserling

    If you are wondering what I’m to .. I’m trying finish up a project by creating 2650.tbl file for a c32.exe assembler that does not support the 2650 currently. With that said. I discovered what appears to be problem with a one public assembler that does not appear to assemble ZBRR and ZBSR instruction correctly. I enlisted DASMx object code disassembler to try to sort out the truth about what’s how these instruction actual work. I have also using WinArcadia-bin software to simulate the Instructor 50 computer. I actual wrote assemble program that actuals resides in the zero page that uses 2 ZBRR instructions to do the magic. The program actual walks a bit back and forth on the 8 Leds port. The ZBRR appears to operand treat as a absolute address instead as a relative address as the documents says it said. When I used for DASMx object code disassembler it’s decodes

    as following: 000E : 9B 40 ” @” zbrr L1FC0.

    I’m game to provide some test source code to the admin for that person to review and comment on. I’m located 2 assembler that support 2650 beside my .tbl file. I’m wondering if there are other assemblers that support the 2650 as well. it be cool If I could used the original 2650 assembler. Any comment or thoughts.

  14. Jason M. Zinserling

    Update I was able to complete my project for cross assembler 2650.tbl file. I ended up creating a .asm file for the Signetics Instructor 50 computer’s monitor. I was able creating a byte for byte file the monitor .bin file that matched. I had track down the content for the monitor and created a .bin file to compare against. so now I have actual Signetics Instructor 50 computer’s monitor .bin file, it’s source code monitor’s .asm file and 2650.tbl file for cross assembler..

  15. Derek Andrews

    In answer to Richard Rreen’s question above, “What does PIP stand for?”, it is Programmable Integrated Processor. See my blogpost https://sig2650.wordpress.com/2021/12/04/what-was-pip/

  16. Derek Andrews

    @Jason M. Zinserling with regards to 2650 assemblers, I have been designing an IDE for games programming of the Voltmace / Interton / Acetronic etc consoles. It includes an assembler. It is written in Python and designed to run on a Rasberry Pi with an interface board to the console, but the editor and assembler will run on WIndows.

  17. Jason M. Zinserling

    Derek .. I’m wondering if you could please provide a link to your (or copy of ) IDE for games as well for python assembler that runs on Windows. I would like to try that assembler and see how it handles ZBRR and ZBSR instruction.

  18. Jason M. Zinserling

    Latest update.. I’m now the proud owner of a functional Signetics Instructor 50 computer. I was able to key in the bit walking program into the computer and it ran without any changes. That’s validates the WinArcadia-bin software version of Instructor 50 computer as well. I’m now working on expansion board for it.

  19. Jason M. Zinserling

    I locate a 2650 assembler written in Python on MicroByte Software for the 2650 web site. I ported my walk the bit program to that assembler’s
    .src file format. Was able to assemble the program and validate byte for byte code created from that assembler against my 2650 .tbl based assembler. The result was they matched byte for byte.

  20. Jay Stanley

    I was in college in 1982 (Rochester, NY) interested in electronics, and one of my friends mentioned that I could get a free CPU sample at the Signetics office downtown. Being a poor student, I mailed them, and got an invitation to come and get a free sample – they gave me a 2650A. I created a rudimentary wire-wrap board with static RAM as I remember, wrote an 2650 assembler for my PL/1 class, and attempted to write a TIL (threaded interpeted language i.e. Forth) in that assembler.

    The assembler I wrote likely is buggy, as was the TIL, and honestly I really never got the hardware working well, but my professor at the time liked it and more importantly I learned a lot.

    -jay

  21. derek

    i built and still have the electronics australia 2650 computer. it came as a construction kit from dick smith electronics.
    I wrote my first assembly code (hand assembled) on that machine.
    to this day i only write in assembly code mostly for avr chips.
    I also have the manual but no hardware from the instuctor 50

  22. J. Kessler

    I find it very interesting that after all these years people find my 2650 interesting.
    Thank you

Leave a Reply