Skip to content

Site map) Home > Hardware > Architecture


The Durango architecture

The Durango project attempts to make a 80s-style home computer based on readily available components: besides CPU and memory, everything else is just ordinary logic circuits (74xx series) -- no PIA, VIA, CRTC, ACIA etc.

Range

Since the Durango·X computer was designed with modularity in mind, you may choose the desired set of features, or deal with alternative models:

  • Durango·X: Fully featured computer with both HIRES and colour video modes.
  • Durango·S: No HIRES, only colour video mode (128 x 128 px, 16 colours).
  • Durango·R: No colour, just HIRES video mode (256 x 256 px, monochrome) and somewhat reduced component count.
  • Durango·C: Simplified, GAL-based version of ·X with a lot less soldering. (under development)
  • Durango Pocket: Handheld 2 MHz version, although not ~~fully~~ compatible. (under development)

Durango·X SBC

Overview

As previously mentioned, this is a 80s-style home computer made out of readily available components, with no computer-specific chips besides CPU and RAM.

Specifications

Main specs for the original (v1) version of this computer are:

  • CPU: 65C02 @ 1.536 MHz
  • ROM: on external cartridge, up to 32 KiB (more with bankswitching)
  • RAM: 32 KiB (static)
  • Expansion: parallel 8-bit bus with 16 addresses for keyboards, joysticks, storage devices...
  • Video output: RGB SCART connector for a CCIR (PAL) TV, composite greyscale, composite PAL or Sync-on-green (options available).
  • Controls: Power switch (optional), RESET button, NMI (interrupt) button.
  • Connectivity: nanoLink input (synchronous serial) for reception of data & code.
  • Footprint: 5.1" x 7", rounded corners (129.54 x 177.8 mm)

Improvements for v2

Both issues are essentially 100% compatible, but some improvements were made in v2:

  • CPU: now at 1.75 MHz with switchable turbo mode (3.5 MHz)
  • Video output: RGB SCART connector for a CCIR (PAL) TV or component video options (PAL and sync-on-green deprecated).
  • Controls: Built-in power switch, RESET button, debounced NMI button.

Otherwise, they are the same (including the footprint). v2.1 is essentially an alternative, improved routing for the v2 PCB, thus they're based on the very same schematic.

Options

Whithin the same board, you may choose from several building options:

  • Supported video modes:
    • Colour only (Durango·S)
    • HIRES only (Durango·R)
    • Both modes (Durango·X, recommended option)
  • Monitor output:
    • SCART (colour via RGB, recommended option)
    • Sync-on-green (v1) / Component video (v2+)
    • Second audio/video output
  • Composite encoding:
    • Greyscale (standard in v1)
    • Luminance (standard in v2+, recommended option)
  • PAL encoder (for composite output, v1 only, NOT recommended)
  • Piezo buzzer for audio
  • Debug port

Tip

Together with the v2.1 issue, there is an alternative PCB for EIA (NTSC) 60 Hz countries. Main differences include an 1.57 MHz clock speed (3.15 with turbo option) and a button for momentarily displaying the bottom 64 rasters, which normally cannot be displayed on a 60 Hz screen.

Warning

It is known that many modern TVs are not compatible with the 240p/288p signal supplied by Durango-X thru the Component Video input. In such cases, if a suitable YPbPr-to-HDMI converter is not available (we're researching on that), you may always use the composite video input, although in greyscale mode. Note that this will perform fine in HIRES mode.

Tip

If you can hook a PlayStation 2 thru Component video input and properly play a PS1 game on it, your TV is most likely compatible with Durango-X.

Palette

In colour mode, Durango·X uses a 16-colour fixed palette, where 2 bits are assigned to green, while the remaining two bits of each nybble represent the red and blue values in full.

IRQ generation

Durango·X has a switchable interrupt generator, working at a fixed rate of 250 Hz (4 ms period). These are not latched in any way, thus lost interrupts do not queue up.

Theory of Operation

This document deploys detailed information about the Durango·X computer operation.

Hacks

Some modifications for improved functionality:

Hardware PAUSE

This is pretty simple: the 6502's RDY line (which was intended to allow synchronisation with slow memory chips) is not used in Durango·X, and simply connected to a pull-up resistor (on RN1). But the pin itself is available in the STEP connector (J10), thus halting the CPU is as simple as grounding this pin; you might use the ground pin (labelled G) on the nearby nanoLink connector (J1). No debouncing or any additional hardware is needed, and no ill effects are to be expected.

Overclocking

While most components on Durango·X are way faster than actually needed (except the U3 SRAM, because of multiplexing), overclocking this computer is not as simple as changing the oscillator (X1) as all video timings come from this, and would be thrown off otherwise.

Tip

issue v2+ includes a TURBO jumper as a built-in overclocking feature and doesn't need anything else, as long as your CPU and RAM are fast enough to cope with it!

Alternative oscillator

v2 issue (for CCIR/PAL/50 Hz countries) is based on a 28 MHz crystal oscillator intended for perfectly square pixels; but being a relatively odd frequency, it could be difficult to source. An alternative oscillator (of a very common 25.175 MHz frequency) can be used instead, with a bit of rewiring. The newly designed EIA/NTSC/60 Hz version already uses this readily available oscillator.

PowerDurango

Durango's 65C02 CPU can be replaced with a more advanced 65C816 -- an adapter board is needed because pinout and signals aren't fully compatible. From the software side, the 65C816 is able to run 65C02 with 100% compatibility, but not the opposite.

Note

In order to get any performance improvement with the 65C816, specific native code must be used -- which won't be compatible with the regular 65C02. The computer's architecture also limits the memory map to 64 KiB, mirrored to fill the whole 16 MiB address space of the '816.

Cartridges

Since there's no ROM in Durango·X, it's essential the use of a cartridge with suitable firmware. In case you want to load software off an SD card, you'll need at least a cartridge with a suitable bootloader.

Overview & pinout

A readily available 36-pin edge connector is used for the cartridge. Most cartridge boards can be fitted inside a Commodore 64 cartridge box.

Warning

Height constraints inside the C64 cartridge preclude the use of sockets for the cartridge's ICs.

mini-cartridge

Basic cartridge to supply a ROM (8 - 64 KiB, up to 32 KiB simultaneously). It's a very small and inexpensive board but won't fit inside a C64 cartridge.

devCart

This Development Cartridge is able to supply a 16 KiB ROM, but sports 32 KiB of shadow RAM which can be loaded from the supplied SD card interface and be used to emulate ROM, for maximum convenience. This board is very tall and, once again, won't fit inside a C64 cartridge.

The so-called ShadowRAM cartridge is the same but, thanks to the use of Surface Mount Devices and a pluggable SD card reader, reduced in size, so it does actually fit inside a C64 cartridge. Otherwise, it's functionally identical to the devCart, although it allows to access up to 32 KiB of ROM.

Bankswitching

Bankswitching was a common technique in the 8-bit era, extending beyond the 64 KiB addressing limit. With bigger EPROM/EEPROM/Flash chips (128 KiB - 1 MiB) available in a still hobbyist-friendly DIP-32 package, we developed a board that fits inside a C64 cartridge and splits the ROM into 16 or 32 KiB banks which are switched by software (bank size is configurable via a jumper)

Warning

The whole cartridge space is swapped when switching banks so, in case you're switching from the ROM code itself, care must be taken.

Another bankswitching cartridge is not controlled by software, but triggers a counter from the RESET signal. Once again configurable for 16 or 32 KiB banks, allows the combination of several software titles in one single cartridge.

Universal cartridge (new)

A newly designed cartridge which allows the use of almost any EPROM/EEPROM/Flash on 24, 28 or 32-pin package, from 2 KiB to 1 MiB. It also includes options for both bankswitching and a Programmable Sound Generator like the one available as a riser card (see below), with improved audio output. Fits inside a standard C64 cartridge, as well.

Riser boards

These boards go between a regular cartridge and the Durango·X computer, passing thru all signals but adding extra functionality. As of December 2023 they are:

  • Extra sound capabilities with the SN76489A Programmable Sound Generator.
  • A breakout board for easier probing of all of the cartridge's signals.

Veracruz cartridge format

Veracruz will be a much more advanced 65C816-based computer with huge memory and built-in firmware, although extendable thru cartridges with a new 44-pin format. However, it will be possible to fit a Durango (36-pin) cartridge into Veracruz's 44-pin slot, although actual compatibility is unknown. Will physically fit inside a C64 cartridge as well.

Peripherals & Interfaces

Durango·X has some ports for peripheral connection:

This is an input port, simply connected to the NMI and IRQ interrupt lines thru discrete open collector drivers. Its main use is to form a synchronous serial port to receive code from a Raspberry Pi via its GPIO pins.

nanoLink is also the name of a communications protocol (under development) which, by adding a suitable output port, will allow data transfers between Durangos.

IOx bus

This is the main Peripheral Bus with inexpensive IDC-16 connectors, allowing daisy-chaining up to 16 devices.

Keyboard & Gamepads

The standard keyboard for Durango·X fits atop the main board, covering it and providing two gamepad ports, in either NES or Megadrive format.

Layout & matrix

This keyboard is based on the ZX Spectrum layout and matrix, and is indeed electrically compatible. However, no single-key commands are available, and it has been adapted to support Spanish characters.

Extended keyboard (under development)

An improved, separate keyboard for more comfortable typing.

Other IOx devices

Thanks to the versatility of the IOx Peripheral Bus, several devices have been developed -- with many more to come!

Allows intercommunication between Durangos.

FastSPI & I2C

Experimental board with much faster SPI for improved SD card performance. Now with an I2C port as well.

PASK

A semi-intelligent keyboard that never materialised, but did set some standards. Used for a Raspberry Pi-based keyboard emulator, might be considered as a bidirectional paralell port.

GPIO

Similar to the above, but with non-latching input. Jumper-selected pin directions.

Sidecar devices

Mechanically speaking, sidecar devices are boards that fit on Durango's left side. Electrically, is just another IOx port with a different connector (2x8 pin socket).

SD + RTC

This is essentially the FastSPI board in the sidecar form factor. The built-in I2C port allows the connection of an inexpensive Real Time Clock, particularly useful when dealing with storage devices.

Accessories

Things not necessarily computer-related, but they can account for a better experience:

Keyboard overlay

A Minstrel-inspired board with bigger, clearer silkscreen atop the keyboard.

Component Video output

Compatibility with modern TVs lacking the SCART connector!

PowerDurango adapter

This accessory allows Durango·X (or almost any 6502-based computer) the use of a much more powerful 65C816 CPU, albeit limited to the usual 64 KiB address space.