Defender I/O Widget Replacement

This is an experimental board built as a replacement for the standard I/O board for Defender.

Very simple project goals
  • Same dimension as the original board - so it can be mounted on the metal baseplate.
  • Simple pin header for ribbon cable
  • Cocktail mode support - just for completeness
  • Fits into a small Xilinx CPLD

It also fulfilled the need that I only had one fully working defender widget board and a couple of very nicely corroded ones.

The Basic Facts

Defender uses very minimal functionality of the 6821 for it's inputs, no interrupts, no bi-directional I/O, no handshaking or anything special. Basically simple input ports with 1 output bit controlling one of two sets of multiplexed inputs. These are needed for cocktail mode support.

One additional input is needed for setting the machine to be upright or cocktail. This was jumper W1 on the original I/O board.

With the CPLD the separate multiplexers are not required, neither is  jumper W2, which on the original board forced the multiplexed inputs to always be the player 1 controls. If jumper W1 is in, upright model mode, the CPLD always passes the player 1 control inputs, so W2 is not needed.

Only the input port functions of the 6821 are simulated, reading of Port A or Port B. Also writes to the control register B,  for the CB2 line, which set of the multiplexed A or B inputs appear on the input ports.

Defender require anything more complex than this, so that's all that's implemented.

Source + PCB layouts

The replacement was coded in VHDL using Webpack ISE 9.1
It all into a Xilinx XC9536 with lots and lots of room to spare.  You could fit a rapid fire feature in there (!)

The board was developed using Eagle 4.16 and once again thanks to programmable I/O pins the layout can be coaxed to fit on a single sided board with only a few jumpers. 

Schematics + PCB layout 
  • defender_IO_proto_v1.brd
  • defender_IO_proto_v1.sch
Eagle 4.16 format


VHDL Code for XC9536  
  • def_io.vhd
  • def_io.ucf
  • defender_io.ise
Webpack ISE 9.1 project files


It's all free for non-commercial use.

Future Enhancements

None at this time, Defender's working great, I don't think anything else is needed.

It could be expanded to add the extra 2 inputs needed for the Robotron or Joust style I/O boards. There's 1 I/O spare and the /Reset input to the Xilinx could be re-purposed as the game programs setup the 6821 to a known state before reading them.


Mounted in the original holes on the metal sheet

Comparison between new and original boards

Back to the Homepage