• Please review our updated Terms and Rules here

Signetics 2650 IcePi Prototype

cfbsoftware

New Member
Joined
Apr 5, 2020
Messages
8
The prototype of S2650 IcePi, my Signetics 2650 / Raspberry Pi RP2350 ICE combo, worked for the first time today. The RP2350 generates the 1 MHz clock and the S2650 (a 1970's 8-bit CPU) 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.
S2650IcePi-1.jpg
There are two USB / RS232 adapter boards on this prototype. One communicates directly with the 2650 SENSE and FLAG serial IO with a modified version of Pipbug 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.

S2650IcePi.jpg
S2650 IcePi is an RP2350B application 100% coded in Oberon using our Astrobe IDE. 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 S2650 IcePi. This came in very useful during development.
 
Elsewhere I have been asked about the availability of source code. I am planning to release the full source of S2650 IcePi sometime this year. In the meantime here is a sneak peek of the main Oberon loop that does all of the work in S2650 IcePi. It generates less than 200 bytes of Arm code:

S2650Execute.jpg


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:

AddrCalc.jpg
 
Back
Top