Sunday 16 October 2022

9 way D Joystick port for RC2014 and Minstrel 4th

I have made a new card for RC2014 systems and the Minstrel 4th or Minstrel 4D.

This is a single 9 way D joystick port, compatible with the Boldfield joystick for the Jupiter Ace.

There is a single input port at a fully configurable address, this can be selected from 0x00 to 0xFF using 8 jumpers or wire links. The recommended address is 0x01, to be compatible with the Boldfield joystick.

Reading this port returns the values read from a standard Commodore / Atari style joystick with this pinout.

  • 1 = Up
  • 2 = Down
  • 3 = Left
  • 4 = Right
  • 5 = Fire 3
  • 6 = Fire 1
  • 7 = 5V
  • 8 = GND
  • 9 = Fire 2

This pinout is compatible with Atari and Commodore joysticks, ones used for Kempston ports etc. (other that Atari 7800 and Spectrum +2).

The value returned is the sum of any direction or firebuttons, e.g. up and fire = 0x01 + 0x20 = 0x21. I have used the highest two spare bits on the original interface for Fire 2 and Fire 3, should you have an after market joystick with extra fire buttons.

  • 0x01 = Up
  • 0x02 = Down
  • 0x04 = Right
  • 0x08 = Left
  • 0x10 is not used
  • 0x20 = Fire 1
  • 0x40 = Fire 2 (not on original)
  • 0x80 = Fire 3 (not on original)

A simple test program you can use to show the values returned is as follows:

When the joystick is stationary, this should return 0. And when there is movement or a fire button is pressed, it will show the value read.

Or you could use the graphical version built into the Minstrel 4D.

Also provided is a place to fit a bus pullup resistor array (see an upcoming post on the game Valkyr to see why that may be required).

This is optional, although it should do no harm if it is fitted. You can omit it if you prefer, all it is doing is pulling the eight data lines up to 5V via 10KΩ resistors.

This sets the value returned when an read is performed on an IO port or memory address which is not implemented. If you read a port that does not exist, the value returned is not predictable. On a real Jupiter Ace it is usually, but not always 0x20. On a Minstrel 4th, it is usually 0x58. With the resistor array fitted, it returns 0xFF, as required by some programs, as can be seen using the same test program as above with no joystick port installed.

This is ideal to add to a Minstrel 4th

That will give you the joystick port and bus pullups that you get on a Minstrel 4D.

You could also use it on a 4D to add a second joystick port at a different address for some future dual player game that has yet to be conceived.

Or you can add it to your ever expanding RC2014 system, if you have any space left on the backplane.

On the Minstrel 4th and 4D, the following titles support this interface:

(use Valkyr-em, or get use the updated version of Valkyr from George Beckett)

(a special version, 4D Monster Maze, will be included with the Minstrel 4D)


This is available PCB or as a kit from my SellMyRetro store.

PCB Only

As it says, this is just the PCB. You need to source the rest of the parts yourself. A full parts list and schematic will be provided in the datasheet.

PCB + Kit

The kit version includes all the parts required, including sockets and jumpers and the bus pullup array. You can omit any of all of those if you like.

So you can build a minimal or fully loaded version as required.

Minstrel 4D

The Minstrel 4D is available for preorder from The Future Was 8 bit. The parts are all here and the kits are currently being assembled to ship in the next few months.

More info in a previous post:


You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. These are often in more detail than I can fit in here and now includes access to my Patreon only Discord server for even more regular updates.