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.
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.
|