PDA

Просмотр полной версии : SPRINTER 2000 and kempston joystick



VELESOFT
03.11.2010, 20:52
Info about connection kempston joystick connector on Sprinter 2000 are corrected. My previous documentation contain bugs. Here is all OK (tested on real hardware):

PINHEAD ON SPRINTER'S BOARD:
http://velesoft.speccy.cz/sprinter/sprinter2000/sprinter2000-joy-tape-connector.jpg

NEW CONNECTOR CANON 9 FOR KEMPSTON JOYSTICK:
http://velesoft.speccy.cz/kmouse/km-doc/kempston_mouse_turbo_interface/canon9.gif

Kempston joystick connection in my SPRINTER:
pin 4 on pinhead (joy_vcc) --> joystick connector pin 7
pin 5 on pinhead (joy_right) --> joystick connector pin 4
pin 6 on pinhead (joy_left) --> joystick connector pin 3
pin 7 on pinhead (joy_down) --> joystick connector pin 2
pin 8 on pinhead (joy_up) --> joystick connector pin 1
pin 9 on pinhead (joy_fire) --> joystick connector pin 6
pin10 on pinhead (gnd) --> joystick connector pin 8

(Signal joy_vcc is in Sprinter 2000 connect via resistor 150 Ohm to +5V and can be used for joystick with autofire)

Info on my webpage also updated:
http://velesoft.speccy.cz/sprinter-cz.htm

---------- Post added at 15:52 ---------- Previous post was at 15:50 ----------

KEMPSTON JOYSTICK compatibility

Sprinter 2000 support kempston joystick connection.

Hardware of Sprinter use 15th port for Kempston. Sprinter translate it to port 31.

IN A,(31) - can be used for joy reading

IN A,(15) - can be used for joy reading

LD BC,15 + IN A,(C) - can be used for joy reading

LD BC,31 + IN A,(C) - return always value 0 !!! ( all insctructions IN X,(C) will read value 0 if register C = 31 )

DATA VALUE FROM JOYSTICK PORT:
D0- joy RIGHT
D1- joy LEFT
D2- joy DOWN
D3- joy UP
D4- joy FIRE 1
D5- always 0
D6- always 0
D7- after reset return 1 but after first tr-dos activation (jump to #3D00-#3DFF in 48rom) return will 0 (I don't know why..)
(all signals is active in log.1)

Result:
- Sprinter's hardware can't use real port 31 for kempston. Internally is used port 15 and from this port is kempston state always readable. If Sprinter detect instruction IN A,(31) then change port value to 15. Only instruction IN ?,(C) can't be translated and CPU read value 0.
- Kempston joystick controll in some games will not work (in game is used instruction IN ?,(C) for read joy state). This software cen be fixed via rewriting joystick port in BC register to adress 15 or replace instruction IN A,(C) with IN A,(31).

If exist any problematic game/software, please send me it and I will fix joystick controll for best compatibility with Sprinter 2000 computer.