6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 4:26 am

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Wed Aug 28, 2024 6:10 pm 
Offline
User avatar

Joined: Wed Sep 29, 2010 9:19 am
Posts: 22
Location: Almeria, Spain
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:
File comment: The Durango·X computer, top view
O8060001.JPG
O8060001.JPG [ 4.02 MiB | Viewed 390 times ]

_________________
---
Carlos J. Santisteban
IES Turaniana
Roquetas de Mar, Almeria (Spain)
Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 28, 2024 7:41 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
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!


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 28, 2024 11:48 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8514
Location: Midwestern USA
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!


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 29, 2024 9:23 am 
Offline
User avatar

Joined: Wed Sep 29, 2010 9:19 am
Posts: 22
Location: Almeria, Spain
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)


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 31, 2024 10:29 am 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1043
Location: near Heidelberg, Germany
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/


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 51 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: