Signetics 2650 IcePi Prototype

General discussions about working with the Astrobe IDE and programming the Raspberry Pi RP2040 and the Pi Pico board.
Post Reply
cfbsoftware
Site Admin
Posts: 536
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Signetics 2650 IcePi Prototype

Post by cfbsoftware » Tue May 13, 2025 11:21 am

The prototype of S2650 IcePi, my Signetics S2650 / Raspberry Pi RP2350 ICE combo retrocomputing project, worked for the first time today. The RP2350 generates the 1 MHz clock and the S2650 (an 8-bit MCU from the 1970's) executes the code. The Signetics Monitor ROM, Pipbug (or other ROM code) and the user's application are loaded into RAM on the RP2350 which then services the OPREQ signals from the 2650.

Image

The RP2350B board I used is the Olimex Pico2-XL. Being able to access up to 48 GPIO pins came in very useful. There are two USB / RS232 adapter boards on this prototype. One communicates directly with the 2650 SENSE and FLAG serial IO running at 4800 Baud. The application shown is the game of Othello (a.k.a. Reversi) which I wrote in 2650 assembler back in the 1980's

Image

S2650 IcePi is an RP2350B application 100% coded in Oberon using Astrobe of course. The second USB / RS232 adapters connects to RX/TX on the RP2350 to communicate via the Astrobe terminal. The opportunities for tracing and debugging in realtime are endless as all of the data and address traffic to / from the 2650 is intercepted by S2650 IcePi. This came in very useful during development.

cfbsoftware
Site Admin
Posts: 536
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Re: Signetics 2650 IcePi Prototype

Post by cfbsoftware » Wed May 14, 2025 10:54 pm

The main Oberon loop that does all of the work in S2650 IcePi generates less than 200 bytes of Arm code:

Image

The 2650 Address pins A0..A12 are connected directly to pins GPIO45..GPIO33 on the Olimex PICO2-XL board. As far as the PCB board design layout is concerned these are, very conveniently, contiguous pins on both devices. Unfortunately, they are mapped in reverse order. The Arm Reverse Bit (RBIT) instruction, comes to the rescue here. The line of code that does the mapping is shown here with the very compact and efficient code that the Astrobe compiler generates:

Image

Post Reply