RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » SDC_One - a contemporary computer with a a real, classic CPU
SDC_One - a contemporary computer with a a real, classic CPU [message #4206] Tue, 30 January 2018 00:18 Go to next message
gbm is currently offline  gbm
Messages: 19
Registered: January 2018
Junior Member
I'd like to present my design of a retrocomputer.

A real, usable computer should have an LED, a button, a terminal and some mass storage. A good, old/style computer should also provide for hardware/level debugging single-stepping through bus cycles, memory and I/O display and editing and memory loading independently from CPU (remember those panels with lamps and switches?Wink.

SDC_One is a software-defined computer based on a real, classic CPU. Other than the CPU, the rest of SDC_One memory, peripherals and glue logic, is implemented with a single Cortex-M4 based microcontroller. The goal of the project was to build a computer which could be used for teaching the basics of computer's operation, hence it provides extensive hardware-level monitoring by single-stepping through bus transfers and instructions, hardware breakpoints, data injection during bus transfers, etc. The peripheral set implemented in SDC_One, including a simple GPIO, console interface and mass storage (diskette emulated in the MCU's Flash) makes it possible to run a real vintage OS, like CP/M.
The computer connects to a PC with a USB cable, providing the power supply and presenting two virtual serial ports to the PC; one is used as hardware monitor interface, the other as target computer's console. A .HEX file may be loaded to the target's memory by dropping it onto the hardware monitor terminal window.

SDC_One consists of an STM Nucleo-L476 board and the daughterboard sitting on top of it, containing the target CPU. The daughterboard contains only the CPU and, an USB connector and some passive components, so the equivalent computer may be easily built with a breadboard instead of daughterboard PCB.
Currently there are four variants of SDC_One, using 8085, Z80CPU, MC68008 and 65C02. The target has 64 KiB RAM and achieves the execution speed of about 400000 bus transfers per second. Z80 and 8085 variants run CPM/80, and MC68008 successfully booted CP/M-68k.
Considering the cost of components and ease of assembly, I suspect that SDC_One may be the most affordable and easiest to assemble retrocomputer.

If anyone is interested, I am ready to share schematics, PCB designs and L476 firmware (currently in binary form only, sources in future).

Also, there is work-in-progress on two other models:
The SDC_Zero cannot run an OS due to it's limited (16KiB) RAM, uses the breadboard and has a total cost of < $6 (sorry, no GPIO other than a single LED and no mass storage at this price, just an option of 48KiB ROM filling the rest of address space).
SDC_68k is a project of an MC68000/010-based computer of the footprint equal to that of MC68000 DIL64 socket, with 256 KiB RAM available to the CPU. No Nucleo board this time.
Both models have the same hardware monitoring capabilities as SDC_One.
  • Attachment: P1040196.JPG
    (Size: 1.62MB, Downloaded 278 times)

[Updated on: Tue, 30 January 2018 00:21]

Report message to a moderator

Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4207 is a reply to message #4206] Tue, 30 January 2018 04:23 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 408
Registered: March 2017
Location: New Mexico, USA
Senior Member
I'm interested in hearing more about SDC_One. I think the idea of having an universal platform to host various microprocessors and assist with software development and debug is a great idea. I did not see voltage translators on the adapter card, does STM Nucleo-L476 have 5V-tolerant I/O?
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4218 is a reply to message #4207] Tue, 30 January 2018 13:28 Go to previous messageGo to next message
gbm is currently offline  gbm
Messages: 19
Registered: January 2018
Junior Member
Almost all the pins of L476 are truly 5V-tolerant. Actually, there is only one non-5V pin used for one address line - this may be handled with a Schottky diode and a pullup resistor. I have no problems running 5 V NMOS and CMOS CPUs with L476. CMOS W65C02S and OKI (only) 80C85 are officially specified for 3 V operation. CMOS Z80CPU, officially 5V only, works reliably at 3.3 V with 5 MHz clock.
All the SDC_One daughterboards (except for 5V-only MC68008) are designed for 5/3.3 volt operation - there is a jumper for setting the power voltage.
Also, all the CPUs used so far have TTL-compatible input levels, so they easily accept 3.3 V output levels. Z80CPU clock input may be handled with L476 output set to open drain and 1k5 pullup resistor. There is a place on the PCBs for level-translation gates for clock signal, but so far they were not required. I currently work on 8080 board, on which some logic level translators will be necessary.

[Updated on: Tue, 30 January 2018 13:31]

Report message to a moderator

Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4229 is a reply to message #4218] Wed, 31 January 2018 11:27 Go to previous messageGo to next message
tingo is currently offline  tingo
Messages: 74
Registered: February 2017
Location: Oslo, Norway
Member
I'm interested in knowing more. Having a CP/M-68k that "small" would be cool.

Torfinn
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4247 is a reply to message #4229] Thu, 01 February 2018 14:32 Go to previous messageGo to next message
gbm is currently offline  gbm
Messages: 19
Registered: January 2018
Junior Member
MC68008 daughterboard on Nucleo-L476 and another one on Nucleo-L496. The MC68008 board is slightly bigger than the ones with DIL40 CPUs. Also, due to increased number of signals, the RGB LED is connected to an extra connector that may be controlled only by Nucleo-144 board (the bigger one).
The last picture shows MC68008 reset sequence viewed with hardware monitor. Each line contains cycle type id (Supervisor Program Read), adddress and data.
index.php?t=getfile&id=816&private=0
I have finished the design of SDC_68k standalone PCB, having exactly the size of a DIL64 socket. Before ordering the PCB. I need to check the operation of the circuit with Nucleo-144 and a breadboard with MC68000.

[Updated on: Thu, 01 February 2018 14:39]

Report message to a moderator

Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4250 is a reply to message #4247] Fri, 02 February 2018 10:12 Go to previous messageGo to next message
yoda is currently offline  yoda
Messages: 125
Registered: October 2015
Location: Cedar Rapids, IA
Senior Member
Why not use the MC68008 in a PLCC package - would make the board more compact?
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4251 is a reply to message #4250] Fri, 02 February 2018 11:50 Go to previous messageGo to next message
gbm is currently offline  gbm
Messages: 19
Registered: January 2018
Junior Member
Kidding?! A vintage computer with a PLCC processor? Never! ;)
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4252 is a reply to message #4251] Fri, 02 February 2018 12:21 Go to previous messageGo to next message
rhkoolstar is currently offline  rhkoolstar
Messages: 252
Registered: October 2015
Senior Member
Ever looked at a macintosh SE/30? (1989)
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4253 is a reply to message #4252] Fri, 02 February 2018 12:29 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 408
Registered: March 2017
Location: New Mexico, USA
Senior Member
This is from my 680x0 collection. 68000 in LCC package, date code 1983. Very hard to find
index.php?t=getfile&id=817&private=0
index.php?t=getfile&id=818&private=0
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #4280 is a reply to message #4251] Sun, 04 February 2018 14:35 Go to previous messageGo to next message
yoda is currently offline  yoda
Messages: 125
Registered: October 2015
Location: Cedar Rapids, IA
Senior Member
Seems like an oxymoron to me. Using modern components for everything else and PLCC is much older than the other components you are using. Oh well, each to his own
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #5825 is a reply to message #4280] Sun, 13 January 2019 12:56 Go to previous messageGo to next message
gbm is currently offline  gbm
Messages: 19
Registered: January 2018
Junior Member
Update:
Six versions of SDC_One have been finished so far:
Z80CPU, 80C85, MC68008, 65C02, W65C816S and the newest one - 8080 All the "80" family versions run TinyBASIC annd CP/M-80, 65xx versions run OSI BASIC.

8080 version contains 8080, 8224 and HCT245 level translator - 8228 was not necessary, as the bus cycle info is decoded by STM32.

Two pictures are atached:
SDC_One 8080 with Polish 8080 and 8224 clones
index.php?t=getfile&id=1227&private=0

Another one with nice Intel 8080 dated 7726
index.php?t=getfile&id=1228&private=0

I have also completed SDC_Zero - a simple SDC with 80C85 or 65C02 using a BluePill board and a common 830-points breadboard, which may be assembled in 30 minutes and costs approx. 7 USD.
  • Attachment: P1050024s.jpg
    (Size: 300.20KB, Downloaded 327 times)
  • Attachment: P1050027s.jpg
    (Size: 250.03KB, Downloaded 328 times)

[Updated on: Sun, 13 January 2019 13:03]

Report message to a moderator

Re: SDC_One - a contemporary computer with a a real, classic CPU [message #5830 is a reply to message #5825] Mon, 14 January 2019 23:50 Go to previous messageGo to next message
b1ackmai1er is currently offline  b1ackmai1er
Messages: 224
Registered: November 2017
Senior Member
Nice implementation - thanks for sharing.

The STM platform looks very affordable:

Some links for others to look at:

https://www.digikey.com/product-detail/en/stmicroelectronics /NUCLEO-L476RG/497-15881-ND/5347711

https://www.st.com/en/evaluation-tools/nucleo-l476rg.html



Re: SDC_One - a contemporary computer with a a real, classic CPU [message #5850 is a reply to message #5830] Sun, 20 January 2019 06:35 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 203
Registered: October 2015
Senior Member
Interesting.

What sort of actual performance do you get with the ARM doing all the work. I know people got PIC driven 6502's up to about 1MHz but what happens when everything is off an ARM
instead ?

Re: SDC_One - a contemporary computer with a a real, classic CPU [message #5853 is a reply to message #4206] Sun, 20 January 2019 15:31 Go to previous messageGo to next message
gbm is currently offline  gbm
Messages: 19
Registered: January 2018
Junior Member
Currently I get 480 kcycles/s with 6502 and ca. 300 kcycles/s with 8080. I plan to redesign the target engine firmware to get better performance. I don't know about the timing of PIC-based stuff, but unless it's PIC32 I guess that's impossible to simulate the microcomputer memory with PIC at 1 MHz. In order to transfer the data, the uC must detect/clock the cycle start, read the address from uP, verify that it's a memory address, output the data, detect (or clock) end of cycle and reverse the bus - 6 actions, each requiring few instructions.

There is no RAM chip in SDC; maybe if the uC is used only for IO and timing, with uP accessing the external RAM, like in Propeddle, that level of performance is possible. SDC implements the whole circuitry of a computer in STM32 firmware, which requires significant work but makes the hardware design and assembly a simple as possible. It took me about 3 hours to assemble and check the 8080 board and 4 hrs to port the SDC firmware to the 8080 target CPU.

SDC was not designed for performance, but rather for monitoring the CPU operation in detail (bus cycle or instruction stepping with bus cycle info display, disassembly and breakpoints). I use it for teaching the basics of computer operation. Still, the performance is not bad. Smile
Re: SDC_One - a contemporary computer with a a real, classic CPU [message #5854 is a reply to message #5853] Sun, 20 January 2019 15:38 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 203
Registered: October 2015
Senior Member
PIC18F - but with real RAM and the PIC just driving CS and pretending to be the I/O
http://forum.6502.org/viewtopic.php?f=1&t=2854

Re: SDC_One - a contemporary computer with a a real, classic CPU [message #5856 is a reply to message #5854] Sun, 20 January 2019 15:46 Go to previous message
etchedpixels is currently offline  etchedpixels
Messages: 203
Registered: October 2015
Senior Member
On the performance side I agree - 300KHz is plenty enough to run real code and see it happen as well as being able to poke at things and show people all the fun stuff like the 6502 extra memory accesses.
Previous Topic: Mini MC14500 board
Next Topic: Zilog eZ80 bits and pieces


Current Time: Sun Jul 21 13:12:50 PDT 2019

Total time taken to generate the page: 0.01215 seconds