Close
0%
0%

Y Ddraig - My 68000 Computer

An expandable 68000 based computer

Similar projects worth following
Y Ddraig (Welsh for The Dragon) is my Motorola 68000 based computer.

This is a project that I have been developing in my spare time working on in my spare time over the last few years. The design was initially inspired by the Kiwi, a 68008 computer designed by Simon Ferber. The project started as a full 68000 version of the Kiwi but slowly evolved over time when trying new ideas components. Several iterations of the design were built and eventually changed before arriving at the current design.

The goal of the project is to create a computer, in the style of the 1980’s and early 1990’s computers which start almost instantly, have a basic Operating System built into the onboard ROM and maybe some form of BASIC so that software so software can be written with no external dependencies.

Specifications

  • 68000 CPU running at 10Mhz.
  • 512K EEPROM
  • 1M of Static RAM
  • 8M Dynamic RAM
  • 2 Serial ports
  • Parallel port
  • PS/2 keyboard and mouse
  • IDE interface
  • Real-time clock
  • 4 Expansion slots

A Xilinx XC95108 CPLD is used for decoding logic and as a DRAM controller. Power is supplied using a standard ATX power supply.

yddraig.pdf

PDF Schematic

Adobe Portable Document Format - 1.19 MB - 09/09/2021 at 14:21

Preview
Download

  • Expansion Bus

    Stephen Moody09/07/2021 at 15:26 0 comments

    There are 4 expansion slots on the board.

    Each slot is using a 64-pin DIN 41612 connector. The connector supply data, address and some common bus signals as well as power to each of the boards.

    There are also 2 select signals for each slot, all access for each slot is memory mapped on on the address bus.

    One is a 256-byte range that is designed for register access or control and a 1-Megabyte range for accessing data. For example, on the VGA card the control of the card if done through the registers, but if needed direct access to the VRAM can be done through the data range.

    The signals for the expansion slot are:

    • Power supplies available are +5V, +3.3V, +12V -12V, GND and a +5V Standby voltage from the ATX power supply.
    • D0 to D15 data lines.
    • A1 to A19 address lines.
    • Slot select signals CS_REG and CS_DATA.
    • 68000 Bus signals AS, LDS, UDS, R/W, RESET, VMA, VPA and E.
    • CPU clock.
    • Presence detect signal, pulled low when board is connected to bus.
    • Bus response signals.
      • IRQ - Active low interrupt for each slot (1-3, no interrupt on slot 4).
      • DTACK - Active low acknowledge for bus access.
      • BERR - Bus error can be generated for illegal access.

  • VGA Card

    Stephen Moody09/01/2021 at 18:34 0 comments

    While I’ve been working on some different expansion card designs, some previously tested but all have been redesigned using KiCAD,  so will post updates on them appropriately. One I have been working on and is now in a state I’m happy with is the VGA card.  

    The card is an FPGA based board. I’ve got a couple of boards in development that use some of the old (and fun) video chips, but I also wanted something that can be used with more modern displays.

    I needed to find a suitable FPGA to use. BGA packages are common, but I’ve never designed for one of those, and when it comes to hand soldering QFP is much easier.  For the design I picked the Spartan XC6SLX9 which is available in a QFP part. A few extra pins on the device would have been nicer but was a trade-off between using a BGA or something I could ed by hand.  

    The plan is to have a VDP that works in a similar manner to how some of the old Video chips worked. Most of the control of the video will be done through control registers and will allow setting of the screen mode, palette data and some hardware accelerated drawing functions. The board will 00also allow direct access to the Video RAM by the CPU so that data in RAM to give a bit of access on read-modify-write cycles. 

    Specifications

    • The board has 2 Megabytes of SRAM available which will be used as the Video RAM.
    • The VGA output has 4-bits per colour available giving a total of 4096 colours.
    • The video resolution is planned to be a “high-res” 640x480 mode and a “game” resolution of 320x240 which will still be output as 640x480.
    • 80x30 text mode
    • Hardware acceleration
    •     Line drawing
    •     Filled rectangles
    • Bitmap mode with text overlay

    These are still early days for the VGA card and there are more features planned. I’m also looking at a new version of the card using a Spartan-3 part which has a higher pin count. This will allow me to work around some of the limitations I encountered with the Sparten-6 and offer a higher colour depth as well.

    I created a small demonstration video for the current capabilities of the card.

View all 2 project logs

Enjoy this project?

Share

Discussions

hekkadee wrote 09/07/2021 at 16:31 point

Looks nice, great job!

But I can't stop thinking that it might have been better to have foregone on a few of the power lines in the busses and could have made the ram window larger than 1MB.

I was thinking about getting rid of one +12V line, because even with two +12V lines, the board can't deliver enough power for e.g. a harddisk. And all you might use the +12Vand -12V  for would be for UART drivers.

Basically, I would shuffle A30 to C31 (removing one +12V), C30 to A2 (removing the GND), then move everything from A22 down one row, clearing up A22 and C22. Then move C21 (E) to C22. Then C21 can become 'A20' address and A22 can become 'A21' address. And then you can access 4MB per board.

This gives you the option to create 4MB ram boards. Which is memory that you will need very much if you want to do really interesting things with your VGA screen. ;)

You could also make your VGA with a 4MB ram window. Giving you the option of maybe making it kind of 'local' ram on the VGA chip. Accessible by CPU, but with low priority, CPU might have to wait. But accessible at full speed by the FPGA/VGA, giving you the option of fast blitting. While the CPU can continue doing its things until it wants to access the video ram again (and might have to wait a bit).

No worries, I'm just brainstorming. Your design is already great, and my ideas would increase the complexity really, really fast. ;)

  Are you sure? yes | no

Stephen Moody wrote 09/08/2021 at 06:08 point

There's a few things that I could change on the expansion slots but when I came up with the design originally I didn't really know what I wanted on there and tried to keep it flexible. The original design I had for Y Ddraig was a single board computer and I changed it to add the expansion bus rather than have the graphics and sound on board.

I recently did a re-design of the PCB. I moved the design from the commercial CAD package I was using to KiCAD so it would be easier to share the CAD files. I did consider changing the pinout on the bus to extend the address range but decided against it just to keep the design simple.  If each board could access different memory ranges then some form of dynamic address mapping would be needed which would add complexity. It could be an interesting challenge though and may consider it if I ever re-design the board..

The VGA card currently has 2 Meg of ram on there but due to limitations on pin count of the FPGA I'm using I had to limit the number of address lines to the CPU. The video RAM is accessed from the CPU in pages of 128K and requires setting the active page in a register. I'm currently working on an updated version which has a part with a larger pin count so that will remove that issue.

  Are you sure? yes | no

Dan Julio wrote 09/02/2021 at 13:35 point

That's a nice build.  Would have been most the awesome 68k machine of its time (lol, I guess the FPGA helps that...).  What's the expansion bus?  Looks reminiscent of Apple's NuBus.

  Are you sure? yes | no

Stephen Moody wrote 09/03/2021 at 08:02 point

It would be nice specs for machines at the time. I'll post information on the expansion bus later, but it's fairly straight forward. It's a good way for me to try some audio and video chips of the time as well as different IO methods. I have a few expansion cards designed and will post information on them as I build them up and get them tested.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates