Mouse or joystick switch for Amiga
Mouse or joystick switch for Amiga: Here is an interesting circuit for 041 all Amiga owners who object to having to disconnect the mouse every time a second joystick is required for a video game. The switch is all-electronic and can be connected permanently to the joystick-1 port on the Amiga. Extremely simple to build from a minimum of components, the circuit detects automatically when the joystick or the mouse is used. The mouse supplied with the Amiga computer supplies four signals, apart from the two button signals. Signals H and HQ (or V and VQ) indicate the direction, and X0 and X1 the speed (see Fig. 2).
Tie joystick supplies similar signals, although it must be noted that joystick ..activity is simpler to detect than mouse activity. The joystick is active whenever one of the four direction signals goes low By contrast, mouse activity can only be detected by comparing the current state of the H and V lines with the previous state. The mouse is active when these states are different. Hence, a bistable and a clock would be required to implement an activity detector. Here, a much simpler solution has been found by making use of the propagation delay of the logic functions contained in the GAL. In practice, the actual delay is uncritical, so that even the slowest GALs can be used—a few nanoseconds are sufficient for a reliable mouse activity detector. The left-hand mouse button is combined with the button on the joystick via diode D1. Pull-up resistors are fitted with the joystick and mouse inputs to prevent non-defined signals when one of these devices is not connected. Those of you with access to a GAL programmer can use the source listing in
*IDENTIFICATION
ELEKTOR ;
*TYPIC GAL1 6V8 ;
*PINS
M1=2, M2=3, M3=4, M4=5, J1=9 , J2=8, J3=7,
J4= 6, Q2 . T=12, Q3 . T=13 Q4 . T=14
HOUT . T=15, VOUT . T=16, SWM . T=17, DIF . T=18,
Q1 . T=19
*BOOLEAN EQUATIONS
SWM = /DIF & SWM & J1 & J2 & J3 & J4
+ DIF;
Q1 = SWM & M1
+ / SWM & J1;
Q2 = SWM & M2
+ / SWM & J2;
Q3 = SWM & M3
+ / SWM & J3;
Q4 = SWM & M4
+ / SWM & J4;
VOUT = M1;
HOUT = M2;
DIF = /VOUT & M1
+ /M1 & VOUT
+ /HOUT & M2
+ /M2 & HOUT;
*END
Fig. 3 to produce a JEDEC file and program their own device. If you do not’ have a GAL programmer, you may like to that IC1 is available ready-programmed from Elektor Electronics (Publishing).
Parts list
Resistors:
RI = array, 8×3.3 kΩ
Semiconductors:
Di = 1N4148
Integrated circuits:
ICI = GAL 16V8 (ESS6003)
Miscellaneous:
K1, K2 = 9-way male sub-D connector, angled, for PCB mounting
K3 = 9-way, female sub-D connector, angled, for PCB mounting
PCB Ref. 914078