6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Apr 27, 2024 9:11 pm

All times are UTC




Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: MARC-4 rev.d Gaming SBC
PostPosted: Wed Apr 01, 2020 9:16 am 
Offline

Joined: Wed Sep 11, 2013 8:43 pm
Posts: 207
Location: The Netherlands
Attachment:
01 20191103_121916.jpg
01 20191103_121916.jpg [ 2.06 MiB | Viewed 5846 times ]

Attachment:
02 20191103_114540.jpg
02 20191103_114540.jpg [ 2.02 MiB | Viewed 5846 times ]

Attachment:
03 20191103_114923.jpg
03 20191103_114923.jpg [ 2.33 MiB | Viewed 5846 times ]

Attachment:
04 300front.jpg
04 300front.jpg [ 1.57 MiB | Viewed 5846 times ]

Attachment:
05 1.png
05 1.png [ 100.09 KiB | Viewed 5846 times ]

Attachment:
06 20181220_210428.jpg
06 20181220_210428.jpg [ 2.75 MiB | Viewed 5846 times ]

Attachment:
07 20191103_113904.jpg
07 20191103_113904.jpg [ 2 MiB | Viewed 5846 times ]

Attachment:
08 20191103_113945.jpg
08 20191103_113945.jpg [ 2.21 MiB | Viewed 5846 times ]

Attachment:
09 20191103_114100.jpg
09 20191103_114100.jpg [ 2.49 MiB | Viewed 5846 times ]

Attachment:
10 20181220_193358.jpg
10 20181220_193358.jpg [ 946.71 KiB | Viewed 5846 times ]

Attachment:
11 20181220_210128.jpg
11 20181220_210128.jpg [ 1.34 MiB | Viewed 5846 times ]

Attachment:
12 20181122_124636.jpg
12 20181122_124636.jpg [ 1.47 MiB | Viewed 5846 times ]

Attachment:
13 20181122_122301.jpg
13 20181122_122301.jpg [ 4.43 MiB | Viewed 5846 times ]

_________________
Marco


Last edited by lordbubsy on Wed Apr 01, 2020 9:20 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 01, 2020 9:18 am 
Offline

Joined: Wed Sep 11, 2013 8:43 pm
Posts: 207
Location: The Netherlands
OK folks, I hope I have a project here to distract you from reality. :P

Ten years ago I started gaining up on electronics and joined Forum64. Seven years ago I joined this forum with the intention of creating my own (gaming) computer with hopefully better specifications than the Commodore 64.

After various attempts creating a working gaming computer, with mixed results, I stopped etching my own PCB’s and started using a PCB manufacturer. First I made some smaller PCB’s, mainly for the Commodore 64 to gather some experience.

Using the standard capabilities of ALLPCB, and currently JLCPCB: 2-layer, 12mil drill for vias, 7mil traces opened a whole new world for me. So I went on and designed a SBC with everything on one PCB. Send it off and got a big white PCB in return. It was a joy to solder and except for some bodge wires it worked first time. MARC-4 rev.d is my current revision with a second VIA and an FPGASID.

MARC-4 is now running at 8, 4, 2 or 1MHz variable speed. CPU, RAM, VIA, SPI and DUART do run at 10MHz. but I’ve settled for a maximum of 8MHz to accommodate the other needed frequencies.

As video and sound are mostly the most time critical components on our beloved 8-bit computers, I’m using two FPGA solutions, the F18A and the FPGASID. I went for clock stretching and speed manual alterations using software. For video I have to set the clock speed to 4MHz and for sound I have to set the clock speed to 2MHz. This is done with bits 0 and 1 in register $BFFF. The 500kHz for MIDI was also easily available from the 8MHz. Bits 2 in register $BFFF alters the location of the FPGASID to the Commodore 64’s location $D400. This way I can play SID music from the C64 on MARC-4. Bits 3 and 4 in register $BFFF controls the Power LED and the SHIFT LOCK LED.

My design goals and restrictions are: 5V components, DC-DC converter where needed, through hole technology, using a CPLD for logic, ROMless, and as I mentioned, it has to be a gaming computer.

MARC-4 has the following features [IC’s]:
• 8/16-bit CPU, 1-8MHz Clock [W65C816S]
• 1MiB RAM [2 X AS 6C4008-55PCN]
• 16KiB ROM [ATMEGA 1284P-PU]
• LOGIC: [Xilinx XC95108-7PC84C]
• VIA: [2 X W65C22S]
• DUART: [SC26C92]
• 65SPI: [XC9572PC44] by Daryl Rictor
• F18A: FPGA based TMS9918A by Matthew Hagerty
• FPGASID: FPGA based dual SID by Andreas Beermann
• Roland CM-300: GM/GS MIDI sound module
• Mechanical keyboard
• Joystick port
• Paddle port
• TTL serial port
• Roland compatible MIDI in/out ports
• SPI Real Time Clock with Temperature sensor [DS3234]
• SPI to IDE-Compact Flash interface by Daryl Rictor
• 6 free SPI ports
• Two expansion ports


With 16-bit instructions, 8MHz and 1MiB RAM, this has become a real dream gaming computer. It has 60Hz raster interrupt synced to the display which allows a lot of things to change in one frame. The joystick interface has two buttons like the AMIGA instead of one. It’s also possible to connect two paddles to the FPGASID, which have no jitter like on the Commodore 64. The FPGASID has 6 voices (stereo) instead of 3 voices (mono). The MIDI interface provides for MIDI music by connecting any multi timbral MIDI synthesizer. One downside is that the MIDI interface is just UART based, it’s not an intelligent MIDI interface, which means that the amount of notes may not be too dense / complex.

The keyboard and its interface was a lot of work and I’m pretty proud of how it turned out. It’s a mechanical keyboard and I removed the controller chip from it. I figured out the scan matrix and made a new controller with an AVR. It uses only one VIA port with hardware handshake. Its software debounced and receives 8-bit make and break scan codes via an interrupt routine.

I tested every interface on MARC-4 except for MIDI-in. I have a lot of test routines, EH-BASIC and an ML monitor, but that’s all.

_________________
Marco


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 01, 2020 11:04 am 
Offline

Joined: Thu Mar 03, 2011 5:56 pm
Posts: 277
That's absolutely beautiful!


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 01, 2020 8:52 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8428
Location: Southern California
Nice packaging is quite a challenge, and to have done such a nice job is quite an accomplishment.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 01, 2020 10:48 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
GARTHWILSON wrote:
Nice packaging is quite a challenge, and to have done such a nice job is quite an accomplishment.

All the more impressive considering the serious medical problems Marco has had to grapple with in the last several years.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 01, 2020 10:49 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
lordbubsy wrote:
OK folks, I hope I have a project here to distract you from reality. :P

In a word: fabulous! Glad to read you're feeling well enough to get back on your projects.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Thu Apr 02, 2020 8:51 am 
Offline

Joined: Wed Sep 11, 2013 8:43 pm
Posts: 207
Location: The Netherlands
Thanks for the nice compliments. I finished this project a while back. Programing for it would be a logical next step, but I also feel the urge to simplify and improve on the hardware.

_________________
Marco


Top
 Profile  
Reply with quote  
PostPosted: Thu Apr 02, 2020 4:58 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1681
Location: Sacramento, CA
That looks really cool Marco - nice job!

Daryl

_________________
Please visit my website -> https://sbc.rictor.org/


Top
 Profile  
Reply with quote  
PostPosted: Sat Apr 11, 2020 3:30 pm 
Offline

Joined: Mon Aug 05, 2013 10:43 pm
Posts: 258
Location: Southampton, UK
Hello Marco,

This is awesome! One question: did you write the code in the keyboard controller? Would love to compare notes on my controller. Very, very impressed that you reverse engineered the keyboard connections as well.

My keyboard controller: https://github.com/aslak3/keyboardcontroller

Lawrence

_________________
8 bit fun and games: https://www.aslak.net/


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 15, 2020 9:38 am 
Offline

Joined: Wed Sep 11, 2013 8:43 pm
Posts: 207
Location: The Netherlands
Hi Lawrence,

Yes, I’ve written the AVR code in ATMEL Studio. Every 1/100 of a second the routine scans the matrix. It provides a press scan code or a release scan code. It generates an interrupt for the VIA on key changes.

I think the code is not very nice, but it works for me. :)

Attachment:
keyboard24.c [9.34 KiB]
Downloaded 96 times

_________________
Marco


Top
 Profile  
Reply with quote  
PostPosted: Sun May 03, 2020 10:05 pm 
Offline

Joined: Sun May 03, 2020 9:55 pm
Posts: 7
The wooden end plates remind me of the Minimoog. Very very nice work.


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 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: