The Durango-X 65C02 retro-inspired computer

For discussing the 65xx hardware itself or electronics projects.
Post Reply
User avatar
zuiko21
Posts: 22
Joined: 29 Sep 2010
Location: Almeria, Spain
Contact:

The Durango-X 65C02 retro-inspired computer

Post by zuiko21 »

Hi all,

After so many years of research, and with the help of this group and its superb resources, I managed to design my own fully fledged 65C02 computer! Durango·X pays homage to the home computers of the early eighties (like my ZX Spectrum) but with all the knowledge that we, as a society, have acquired along the years.

First of all... even if it's a bit embarrasing, there's a web page describing the project: https://durangoretro.com but be warned that it's a complete mess, although at least is something :oops: . This was initially a personal project but, with the support of my local makespace La Jaquería, I got some more "partners in crime" for the Durango Computer Team.

The main goals for this particular project were:
  • *Reasonably simple to design, understand and build
  • *Reasonably capable, with video output and some room for expansion
  • *Besides CPU and memory, all made from 74-series ICs
So, after some post-pandemic breadboard experiments with 6502s, I decided to go all the way... at first, it was made on nine breadboards with hundreds of dangling wires, but it worked -- eventually! Obviously, I learned A LOT in the process and made tons of mistakes, but that's the fun of it, isn't it? :wink: I even managed to transport it from home to the makespace and, most important, make it work again :shock: . This was around November 2021.

But, like I teach my students, "the hardware, without software, is an useless bunch of chips". Swapping an EPROM under a bridge of fragile jumper wires was scary, to put it mildy... so I quickly developed nanoBoot, a "zero-hardware" solution to transfer software from a Raspberry Pi, by using the NMI line as clock, and IRQ as data. Not the fastest way (found it reliable up to a little more than 1 KiB per second) but it made software development MUCH easier.

Finally, I decided to learn KiCAD and, with patience, designed a proper PCB for it... so by Dec. 23rd 2022 I had my computer "solidly" built. :D It has a sandwich construction, where a crude keyboard lays in another (previously designed) PCB atop the motherboard, which also provides an interface for two gamepads :wink:

Main specs are:
  • *65C02 at 1.536 MHz (current v2 goes up to 3.5 MHz)
  • *32K static RAM
  • *No ROM on board, uses cartridge slot with extra lines for extra features, like bankswitching or dedicated sound chips
  • *40-key matrix keyboard and two gamepad ports (either NES or Atari style)
  • *8-bit expansion bus (up to 16 devices)
  • *1-bit sound, software controlled
  • *Connects to a regular TV, ideally via SCART
  • *Two video modes, software-switchable: 256x256 pixels, monochrome or 128x128, 16-colour (all bitmapped, no text modes)
About the software developed for it, there's a bootloader which can load software from a most convenient SD card. I have also ported EhBASIC adding support for LOAD/SAVE with the SD card, and also specific commands for graphics and sound...

...and, of course, games :wink: . Some classics have been ported (Pong, Breakout; Space Invaders and Pac-Man is in the making...), some other are originals (Witch). Most of the games are made by the team, in both assembly and C. Latest addition is Columns, interestingly allowing two simultaneous players.

But this is obviously a work in progress: we keep working and learning...

So, I hope to keep you informed about the progress of this (already enjoyable) project. See you soon!
Attachments
The Durango·X computer, top view
The Durango·X computer, top view
---
Carlos J. Santisteban
IES Turaniana
Roquetas de Mar, Almeria (Spain)
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

Re: The Durango-X 65C02 retro-inspired computer

Post by BigEd »

That's great! Having the support of local people (whether from a makespace or otherwise) is a great thing if you can arrange it. I like the sound of the nanoBoot!
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: The Durango-X 65C02 retro-inspired computer

Post by BigDumbDinosaur »

zuiko21 wrote:
After so many years of research, and with the help of this group and its superb resources, I managed to design my own fully fledged 65C02 computer!

In looking at your keyboard, I see you’ve got some “keys” marked for accented characters, ¿, ¡, etc., as well as the usual QWERTY symbols  How do you get from one to the other while typing?
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
zuiko21
Posts: 22
Joined: 29 Sep 2010
Location: Almeria, Spain
Contact:

Re: The Durango-X 65C02 retro-inspired computer

Post by zuiko21 »

BigEd wrote:
That's great! Having the support of local people (whether from a makespace or otherwise) is a great thing if you can arrange it.
It definitely is. This project has definitely become MUCH bigger thanks to the many ideas supplied by team members.
Quote:
I like the sound of the nanoBoot!
Well, the funny thing is that you can actually hear the nanoBoot transfers in action! There's a jumper on the board which connects the data line to the buzzer (via a transistor buffer, of course) for debugging purposes -- gives some peace of mind to "hear" the data coming in, much like the sounds of a cassette tape interface...

The nice thing about nanoBoot is that it's pretty much universal: if your CPU has at least two interrupt levels (the 8080 being the most notable exception) with signals driven by open-collector (as usual), you're good to go! And timing is not critical: as long as you don't exceed the receiver's bandwidth, you can go as slow as you want...

For the transmitter end, I'm using a Raspberry Pi for convenience, as it is powerful enough to run the whole development toolset in an edit-assemble-transmit loop (quite similar to the edit-compile-execute of "modern" software development) but anything with at least two controlled output pins would suffice: an Arduino, the 6522 VIA's shift register or even another Durango with a suitable output interface (pretty simple).
BigDumbDinosaur wrote:
In looking at your keyboard, I see you’ve got some “keys” marked for accented characters, ¿, ¡, etc., as well as the usual QWERTY symbols  How do you get from one to the other while typing?
Since it has two modifier keys (SHIFT and ALT), I'm following the modern convention: the symbol you get while pressing SHIFT is on top of the "key", while for the symbol at the right you use ALT. Of course, letters (accented or not) appear in lowercase by default, and uppercase when using SHIFT (no CAPS LOCK equivalent, though)

The keyboard layout is based on the ZX Spectrum, so it's almost second-nature to me... In fact, the matrix is electrically compatible. There are some differences, though, for the Spanish characters (not a thing in computers back then...) and some modern-ish functions. BTW: there's no CONTROL direct modifier key, but it is simulated via a "CONTROL-mode", which is entered by pressing SHIFT+9, then the next key (no other modifiers allowed) is generated as a control code. Common control codes, however, have direct key combos, like BREAK, which is SHIFT+SPACE and generates the usual CONTROL+C.

In any case, this is all handled by the 65C02 in software, so it could be easily adapted to any desired behaviour.

Many thanks for your interest. See you soon,
---
Carlos J. Santisteban
IES Turaniana
Roquetas de Mar, Almeria (Spain)
fachat
Posts: 1123
Joined: 05 Jul 2005
Location: near Heidelberg, Germany
Contact:

Re: The Durango-X 65C02 retro-inspired computer

Post by fachat »

Congratulations, great work!

I like the nanoboot approach- very inventive!

André
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/
Post Reply