ZX80 Joystick Interface
-
- Posts: 77
- Joined: Sat Aug 18, 2012 12:44 am
- Location: Somerset-West, South-Africa
- Contact:
ZX80 Joystick Interface
Can someone suggest a joystick interface for the zx80 that is Kempston compatible? I have a ZX80 replica I built from a kit and it works great. I made a small game controller with pushbuttons and soldered it to the cursor keys. It worked but wasn't particularly elegant. The wires also picked up RF noise so the machine would freeze or crash sometimes. I removed it and all is stable now.
I have a 16K RAM pack (built from plans by Grant Searle) plugged into the expansion port so whatever I add must co-exist with the RAM somehow. I know there is the ZXpand, but it is kinda expensive and I'd prefer something I can build myself. It's more fun that way. I need technical details on how the Kempston (or any joystick) actually talk to the ZX80.
I also found this design which looks promising:
https://8bit.yarek.pl/upgrade/zx.z80joy/index.html
but will it co-exist with the RAM pack? Also will the following work on a ZX80?
Any suggestions would be welcome. You can check out my little machine here:
http://www.myprius.co.za/ZX80.htm
Thanks
I have a 16K RAM pack (built from plans by Grant Searle) plugged into the expansion port so whatever I add must co-exist with the RAM somehow. I know there is the ZXpand, but it is kinda expensive and I'd prefer something I can build myself. It's more fun that way. I need technical details on how the Kempston (or any joystick) actually talk to the ZX80.
I also found this design which looks promising:
https://8bit.yarek.pl/upgrade/zx.z80joy/index.html
but will it co-exist with the RAM pack? Also will the following work on a ZX80?
Any suggestions would be welcome. You can check out my little machine here:
http://www.myprius.co.za/ZX80.htm
Thanks
ZX80/ZX81/ZX Spectrum
- 1024MAK
- Posts: 5118
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: ZX80 Joystick Interface
Search this forum for more information on the Kempston joystick interface.
However, here is a short summary:
Link to image
The address decoding can be changed for the above circuit if required and is simple to do (unlike the designs using individual logic gates).
As Kempston joystick interfaces work on a ZX81, I see no reason why one would not work on a ZX80. The only problem I see, is that nearly all, if not all commercially available Kempston joystick interfaces did not have a through port for the expansion edge-connector... But this is not an issue if you are making your own.
The problems you had when you had a joystick connected up to the keyboard matrix may be solved by buffering the address line signals via transistors.
Mark
However, here is a short summary:
- It was developed by Kempston for use with the Sinclair ZX Spectrum computer (the rubber key model).
- Minimal address decoding is used.
- To keep costs low, the first ones used a ZX81 type edge-connector.
- The type that uses a ZX81 type edge-connector will work with ZX81 computers.
- Kempston produced many models, and other companies produced ‘compatible’ joystick interfaces.
- To read the state of the joystick, use the Z80 machine code instruction IN A,(1F) where 1F is the address in hex (31 in decimal).
Link to image
The address decoding can be changed for the above circuit if required and is simple to do (unlike the designs using individual logic gates).
As Kempston joystick interfaces work on a ZX81, I see no reason why one would not work on a ZX80. The only problem I see, is that nearly all, if not all commercially available Kempston joystick interfaces did not have a through port for the expansion edge-connector... But this is not an issue if you are making your own.
The problems you had when you had a joystick connected up to the keyboard matrix may be solved by buffering the address line signals via transistors.
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
Re: ZX80 Joystick Interface
But if no software on the ZX80 supports the Kempston interface, it would be better to make an interface that maps to the keyboard keys. Otherwise you have no use for the Kempston interface on a ZX80
Re: ZX80 Joystick Interface
Or without components (Memotech keyboard like):
VTR GAME CARD:La manette de jeu branchée sur les lignes d'adresseA8',A9',A11',A12' et A14'.
Les touches du clavier étaient donc directement activées en parallèle.
« 2 » manette vers le Haut. (A11')
« Z » manette vers le Bas.(A8')
« S » manette vers le Gauche.(A9')
« L » manette vers le Droite.(A14')
« 9 » bouton de tir dela manette.(A12')
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: ZX80 Joystick Interface
Carte Manette de jeu programmable VTR :
http://zx81.ordi5.free.fr/vtr/pdf/Manet ... mmable.pdf
From Dim75.
http://zx81.ordi5.free.fr/vtr/pdf/Manet ... mmable.pdf
From Dim75.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
- 1024MAK
- Posts: 5118
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: ZX80 Joystick Interface
No original software will support a Kempston interface. Some games where Paul Farrow has done some work on them, do now support a Kempston interface, e.g. Kong and Pacman.
Mind, joystick support (of any joystick interface) on any ZX80 or indeed ZX81 original game is rare anyway.
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
Re: ZX80 Joystick Interface
Hi,
A little question.
On the Wiring diagram, the IRQ $13 is used… But only the address DATA bit #5 (10000) is decoded !
It must be IRQ AND $10 … !
And all address using the #5 bit on : xxx1xxxx.
Not only the $13 value.
A little question.
On the Wiring diagram, the IRQ $13 is used… But only the address DATA bit #5 (10000) is decoded !
It must be IRQ AND $10 … !
And all address using the #5 bit on : xxx1xxxx.
Not only the $13 value.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
- 1024MAK
- Posts: 5118
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: ZX80 Joystick Interface
For the design where only address line A5 is used, yes, it will respond to any address where A5 is low.
So it will respond to I/O address 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 etc...
The idea behind the ZX computers with regards to the I/O addresses was just to use a single address line to select an I/O device or address, with the I/O device responding when the address line is logic low (logic zero). Normal I/O uses address lines A0 to A7, so that then gives you eight I/O devices. Thus no extra chips are needed for full address decoding, resulting in a cost saving.
If the I/O address is 255 (0xFF) no device should respond. Of course with the ZX80 and ZX81 it is not as simple as this. But this works fine with the ZX Spectrum. And the Kempston joystick interface was designed for this machine.
Now the question is why did they pick 31 (0x1F) instead of 223 (0xDF)? But I suspect the answer to this is lost in time...
However with the Spectrum, very soon all the available I/O addresses had been used, so if you can physically connect many devices/expansions, there will malfunctions due to more than one device responding due to the partial address decoding.
Mark
So it will respond to I/O address 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 etc...
The idea behind the ZX computers with regards to the I/O addresses was just to use a single address line to select an I/O device or address, with the I/O device responding when the address line is logic low (logic zero). Normal I/O uses address lines A0 to A7, so that then gives you eight I/O devices. Thus no extra chips are needed for full address decoding, resulting in a cost saving.
If the I/O address is 255 (0xFF) no device should respond. Of course with the ZX80 and ZX81 it is not as simple as this. But this works fine with the ZX Spectrum. And the Kempston joystick interface was designed for this machine.
Now the question is why did they pick 31 (0x1F) instead of 223 (0xDF)? But I suspect the answer to this is lost in time...
However with the Spectrum, very soon all the available I/O addresses had been used, so if you can physically connect many devices/expansions, there will malfunctions due to more than one device responding due to the partial address decoding.
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
-
- Posts: 77
- Joined: Sat Aug 18, 2012 12:44 am
- Location: Somerset-West, South-Africa
- Contact:
Re: ZX80 Joystick Interface
Can someone suggest a program to verify a Kempston Joystick is working? I saw the code somewhere, but now I cannot find it again. It used the assembler commands to check the value of a register as you press buttons.
ZX80/ZX81/ZX Spectrum