DivIDE and joystick interface

edited June 2010 in Hardware
Which joystick interface works with the DivIDE and ZX 48K?

I have TurboRAM but it works not correct or blocks DivIDE. Multiface One works with the joystick part but Multiface One not. I mean it is not possible to save games.

I'll use DivIDE with Fatware 0.12.


Micky
Post edited by -Micky on
«1

Comments

  • edited April 2010
    I have the K-Mouse turbo interface and I know it works (it has been tested):

    http://velesoft.speccy.cz/kmturbo2008-cz.htm

    Besides using it as a Kempston or Fuller joystick interface, you can also connect any USB or PS/2 mouse to it. Velesoft has modified several games so they can be played with a mouse. You can download them fro his website.

    If you're interested in buying one, check this out:

    http://www.benophetinternet.nl/hobby/

    I've seen the 48K Speccy with a DivIDE + K-Mouse interface + Keyboard interface and the whole thing works! :)
  • edited April 2010
    zxbruno wrote: »
    I have the K-Mouse turbo interface and I know it works (it has been tested):

    http://velesoft.speccy.cz/kmturbo2008-cz.htm

    Besides using it as a Kempston or Fuller joystick interface, you can also connect any USB or PS/2 mouse to it. Velesoft has modified several games so they can be played with a mouse. You can download them fro his website.

    If you're interested in buying one, check this out:

    http://www.benophetinternet.nl/hobby/

    I've seen the 48K Speccy with a DivIDE + K-Mouse interface + Keyboard interface and the whole thing works! :)


    Hello ZX Bruno. I have been having a similar problem to -Micky.

    I have a 48K spectrum with Divide+, a Zaxon AY module, and various joystick interfaces, none of which work properly. Will this work with Divide + and Zaxon AY module attached?

    My own interface prevents Divide from starting up. Some that have been loaned to me only work in FATware and prevent ResiDOS from starting up. There is one that allows ResiDOS to start up, but the character behaves unpredictably.
  • edited April 2010
    Kempstone and Interface 2 (without ROM) should work ok.
    I do not see point of conflict with DIVIDE.
    Sometimes power is an issue - if you connect too much
    to edge, voltage will go down.
  • edited April 2010
    kpuchatek wrote: »
    Kempstone and Interface 2 (without ROM) should work ok.
    I do not see point of conflict with DIVIDE.
    Sometimes power is an issue - if you connect too much
    to edge, voltage will go down.

    It doesn't work straight onto Divide+ edge connector, or from AY module plugged onto Divide + as well. The AY is compatible with teh Divide+ though.
  • edited April 2010
    Kempston+AY+DIVide = works, tested.
    Interface2+... - I need to build, but should work, it is just another keyboard.

    Michal
  • edited April 2010
    kpuchatek wrote: »
    Kempston+AY+DIVide = works, tested.
    Interface2+... - I need to build, but should work, it is just another keyboard.

    Michal

    It does on mine, but only in FATWare, it prevents ResiDOS from opening up, either by the OUT statement or the series of POKEs. I also need it to work in ResiDOS. All interfaces work fine when just connected to the Spectrum.
  • edited April 2010
    There seems to be differences with the Kempston interfaces - Alien 8 has one which does not work at all with DivIDE Plus, and another which works with games loaded through FATware, but not ones loaded through ResiDOS.

    The issue seems to be that not all Kempston's fully decode the signal!

    (I am sure Alien will correct me if I have the details wrong here).
    Supporting Sinclairs since 1986 !

    www.rwapsoftware.co.uk
    www.sellmyretro.com
  • edited April 2010
    Some KEMPSTON JOYSTICK interfaces use different ports adressation (uncomplette). If you fix this adressation (block IORQ if A5=1) then all kempston interfaces will work with divide. If any kempston interface not work with divide then is problem in kempston interface adressation. See on PCB adress lines from ZX bus. To interface must be connect signals IORQ, RD and A5. If A5 absent then must be added.
  • edited April 2010
    rwap wrote: »
    There seems to be differences with the Kempston interfaces - Alien 8 has one which does not work at all with DivIDE Plus, and another which works with games loaded through FATware, but not ones loaded through ResiDOS.

    The issue seems to be that not all Kempston's fully decode the signal!

    (I am sure Alien will correct me if I have the details wrong here).

    RWAP has it pretty much right here, it depends upon interpretation of a Kempston interface. I have an unbranded Kempston Compatible which prevents the DivIDE + from booting up on almost every occasion, on the rare occasion it does manage to boot up the system crashes more or less straight after.

    I have also been loaned another which is an actual Kempston branded interface. This one works perfectly in FATware, but it prevents ResiDOS from starting.

    A Dove interface allows ResiDOS to start, but it is unpredictable in FATware and ResiDOS.

    There is another unbranded interface (different from the first one) which allows DivIDE to start, but the character goes berserk, also it does not allow ResiDOS to start.

    So do we mean Kempston branded, or Kempston Compatible? I was wondering if surgery to my unbranded interface may help, as it has considerably more pins than any of the others, but when I opened it up it shows only 7 are connected, which is presumably power (+Ve and -Ve, together with up, down, left. right, and fire), so that wouldn't seem to make any difference. I think I have to keep on trying.

    All interfaces work OK plugged straight into my Spectrum, and it makes no difference whatsoever as to how they work if they are plugged straight onto DivIDE+ or onto the AY Module which is plugged onto DivIDE+.

    All help gratefully received.
  • edited April 2010
    velesoft wrote: »
    Some KEMPSTON JOYSTICK interfaces use different ports adressation (uncomplette). If you fix this adressation (block IORQ if A5=1) then all kempston interfaces will work with divide. If any kempston interface not work with divide then is problem in kempston interface adressation. See on PCB adress lines from ZX bus. To interface must be connect signals IORQ, RD and A5. If A5 absent then must be added.

    Thanks for the help velesoft, unfortunately I'm not sure what this means. I'm not as technically minded as some, is it possible to explain in lay man's terms?
  • edited April 2010
    Alien 8 wrote: »
    Thanks for the help velesoft, unfortunately I'm not sure what this means. I'm not as technically minded as some, is it possible to explain in lay man's terms?

    Open case of your interface and see which pins is connect (see wire from pin to any chip on board).

    Please sign this pins on picture and make list of used pins:

    zx-interface-connector.jpg

    For example - signal L22 (lower row, pin 22) must be connect on all kempston joystick interfaces. If no, then use incorrect ports adressation and can be fixed (very easy, I help you)
  • edited April 2010
    velesoft wrote: »
    Open case of your interface and see which pins is connect (see wire from pin to any chip on board).

    Please sign this pins on picture and make list of used pins:

    zx-interface-connector.jpg

    For example - signal L22 (lower row, pin 22) must be connect on all kempston joystick interfaces. If no, then use incorrect ports adressation and can be fixed (very easy, I help you)

    Thanks velesoft. I just checked the thread before going to bed. I will open the interface tomorrow and let you know. Many thanks for all your help.
  • edited April 2010
    velesoft wrote: »
    Open case of your interface and see which pins is connect (see wire from pin to any chip on board).

    Please sign this pins on picture and make list of used pins:

    zx-interface-connector.jpg

    For example - signal L22 (lower row, pin 22) must be connect on all kempston joystick interfaces. If no, then use incorrect ports adressation and can be fixed (very easy, I help you)

    Hello Velesoft,

    I have opened the interface.

    The pins connected are L3, L5 (and L6 is joined to it by solder), U5, U6, U7, U10, U11, L22, U16

    If it is any help, the interface is unbranded, but has A - 103C printed on the circuit board. This is the interface which works perfectly in the back of the 48K Spectrum, but when connected to DivIDE + it prevents it from starting up.

    Many thanks for your continued help.
  • edited April 2010
    Alien 8 wrote: »
    Hello Velesoft,

    I have opened the interface.

    The pins connected are L3, L5 (and L6 is joined to it by solder), U5, U6, U7, U10, U11, L22, U16

    If it is any help, the interface is unbranded, but has A - 103C printed on the circuit board. This is the interface which works perfectly in the back of the 48K Spectrum, but when connected to DivIDE + it prevents it from starting up.

    Many thanks for your continued help.

    Hmm, this is bad design....

    Interface use signals D0-D4 for LEFT,RIGHT,UP,DOWN,FIRE buttons. It's OK. Next is signals IORQ and A5 for decode kempston joystick port. It's also correct. But absent connected signal RD (U17) !!!! This is hardware bug. If CPU write any value to port 31 then interface return on data bus joystick state and will data collision between CPU and INTERFACE. Same bug contain original KEMPSTON MOUSE interface.

    Divide interface use also adress line A5 but must be in log.1 state !!! (= Divide ports must work with all kempston joystick ports = any kempston iinterface with used adress line A5 must work correct !!!

    Can you send me photo of interface ? You connect as first to ZX your kempston interface and as next Divide interface ? If divide not work parallel with this kemp.interface then can be bug in uncomplette connector (some signals absent) for connect divide interface.
  • edited April 2010
    velesoft wrote: »
    Hmm, this is bad design....

    Interface use signals D0-D4 for LEFT,RIGHT,UP,DOWN,FIRE buttons. It's OK. Next is signals IORQ and A5 for decode kempston joystick port. It's also correct. But absent connected signal RD (U17) !!!! This is hardware bug. If CPU write any value to port 31 then interface return on data bus joystick state and will data collision between CPU and INTERFACE. Same bug contain original KEMPSTON MOUSE interface.

    Divide interface use also adress line A5 but must be in log.1 state !!! (= Divide ports must work with all kempston joystick ports = any kempston iinterface with used adress line A5 must work correct !!!

    Can you send me photo of interface ? You connect as first to ZX your kempston interface and as next Divide interface ? If divide not work parallel with this kemp.interface then can be bug in uncomplette connector (some signals absent) for connect divide interface.

    Velesoft, I have sent some photos of the interface by email.
  • edited April 2010
    I have ofter seen so called Kempston IFs without /RD. This is not a bug that accidently crept in, but an issue of money-making by saving one chip. Expand the decoding, now the interface is open!
  • edited April 2010
    velesoft wrote: »
    But absent connected signal RD (U17) !!!! This is hardware bug. If CPU write any value to port 31 then interface return on data bus joystick state and will data collision between CPU and INTERFACE.

    This is indeed very bad! :-o
    Divide interface use also adress line A5 but must be in log.1 state !!! (= Divide ports must work with all kempston joystick ports = any kempston iinterface with used adress line A5 must work correct !!!

    This is true for the standard Divide, but Alien8 has a divIDE+ which uses MB02+ compatible paging - this is write-only on port 23, ie with A5=0.

    So there will be a clash with ResiDOS, which uses the MB02+ paging register. Normal divIDE firmwares should be unaffected, but any firmware selector at startup must also be using MB02+ paging (including manual firmware selection by POKEs/USR) and so will clash with the joystick interface as well.
  • edited April 2010
    glancaster wrote: »
    This is indeed very bad! :-o

    Thankyou for your input glancaster. This is the interface that came with the spectrum when I bought it from ebay, it is unbranded, and so I didn't know what sort of interface it was. I only used it for the first time earlier this year, when I got some Ultimate games. It worked fine just with the Spectrum, and seesm to be a Kempston Compatible, as that is what I always select.


    This is true for the standard Divide, but Alien8 has a divIDE+ which uses MB02+ compatible paging - this is write-only on port 23, ie with A5=0.

    This is only 1 interface though. I have 3 on loan from RWAP, the best of which is a Kempston branded one and works in FATware only.
    So there will be a clash with ResiDOS, which uses the MB02+ paging register. Normal divIDE firmwares should be unaffected, but any firmware selector at startup must also be using MB02+ paging (including manual firmware selection by POKEs/USR) and so will clash with the joystick interface as well.

    Does this mean that it is impossible to use a joystick with ResiDOS? Presumably the firmware selector would not help? I found it a little surprising that my snapshots of Alien 8 and Knight Lore display corrupted graphics if loaded from FATware, but work perfectly from ResiDOS. It would also be a pity not to be able to use the joystick with all the .tzx files.

    Thankyou for all your help, hopefully a solution may be found.
  • edited April 2010
    Alien 8 wrote: »
    Does this mean that it is impossible to use a joystick with ResiDOS?

    No, you have a couple of options for using a joystick:
    1. Find a Kempston-compatible interface which has the /RD line connected; this should work fine. I can't help much with which production interfaces were wired like this, however - perhaps somebody more knowledgable can?
    2. Use a different type of joystick interface, such as AGF/Protek, Interface II or a programmable type.
    Presumably the firmware selector would not help?

    No, the firmware selector itself will suffer from the same hardware clash that affects ResiDOS on the divIDE+.
    I found it a little surprising that my snapshots of Alien 8 and Knight Lore display corrupted graphics if loaded from FATware, but work perfectly from ResiDOS.

    All snapshot loading on a Spectrum requires a small amount of memory to be corrupted on loading. Normally a "safe" place is the screen, which is probably why FATware corrupts this.

    ResiDOS tries to keep the amount of corrupted memory to an absolute minimum and uses the stack. This is slightly less safe than the screen, but keeps the screen looking nice and causes no problems in most cases (if there *is* a problem with a certain snapshot, you can force the screen to be used with a command like %snapload+ "snapshot.z80" - the + indicates to use screen memory instead of the stack).
  • edited April 2010
    glancaster wrote: »
    No, you have a couple of options for using a joystick:
    1. Find a Kempston-compatible interface which has the /RD line connected; this should work fine. I can't help much with which production interfaces were wired like this, however - perhaps somebody more knowledgable can?
    2. Use a different type of joystick interface, such as AGF/Protek, Interface II or a programmable type.

    OK, thanks glancaster. A Kempston would be my preferred type, as that seems to be the most universal.


    No, the firmware selector itself will suffer from the same hardware clash that affects ResiDOS on the divIDE+.

    That's what I thought.


    All snapshot loading on a Spectrum requires a small amount of memory to be corrupted on loading. Normally a "safe" place is the screen, which is probably why FATware corrupts this.

    ResiDOS tries to keep the amount of corrupted memory to an absolute minimum and uses the stack. This is slightly less safe than the screen, but keeps the screen looking nice and causes no problems in most cases (if there *is* a problem with a certain snapshot, you can force the screen to be used with a command like %snapload+ "snapshot.z80" - the + indicates to use screen memory instead of the stack).

    OK, thanks for explaining that, it helps.
  • edited April 2010
    This KEMPSTON INTERFACE work incorrect with DIVIDE PLUS. Exist three ways for using kemp.joystick with DIVIDE PLUS:

    a) buy other KEMPSTON INTERFACE with better port decoding

    b) fix this incorrect KEMPSTON INTERFACE (easy)

    c) reflash firmware in DIVIDE PLUS (install to DIVIDE ROM my BIOS)
    http://velesoft.speccy.cz/zx/divide/divide-bios.htm
    This bios not access to DIVIDE PLUS port 23 and use only standard divide ports.
  • edited April 2010
    velesoft wrote: »
    This KEMPSTON INTERFACE work incorrect with DIVIDE PLUS. Exist three ways for using kemp.joystick with DIVIDE PLUS:

    a) buy other KEMPSTON INTERFACE with better port decoding

    b) fix this incorrect KEMPSTON INTERFACE (easy)

    c) reflash firmware in DIVIDE PLUS (install to DIVIDE ROM my BIOS)
    http://velesoft.speccy.cz/zx/divide/divide-bios.htm
    This bios not access to DIVIDE PLUS port 23 and use only standard divide ports.

    Thanks velesoft. Did you get my email with the pictures of the interface?

    Option B seems to be the best (if I knew how). Option A would also be good, if I knew which one to buy.

    Not sure about option C, I would be worried about losing access to ResiDOS etc.

    Thanks for your help. Would you know how to fix the dud joystick interface?
  • edited April 2010
    Alien 8 wrote: »
    Thanks velesoft. Did you get my email with the pictures of the interface?

    No.
    Option B seems to be the best (if I knew how). Option A would also be good, if I knew which one to buy.
    Yes. But I need show foto of PCB (both sides - hi res)
    Not sure about option C, I would be worried about losing access to ResiDOS etc.
    Yes, residos can be install only if you disconnect you KEMP.INTERFACE. But you can also use ESXDOS, it's similas as RESIDOS and support access to FAT32 and enable rewrite all extra commands (for example is possible use ".t game.tap" for open TAP file. Or ".s game.sna" for load snapshot). Possibility use also short commands is perfect feature for fast work with system).
    Thanks for your help. Would you know how to fix the dud joystick interface?
    1) break on PCB wire from pin U16
    2) add new chip 74LS32:
    - connect signal U16 from ZX bus connector to pin 1 of 74LS32
    - connect signal U17 from ZX bus connector to pin 2 of 74LS32
    - connect pin 3 of 74LS32 to breaked wire (not to pin U16)
    - pin 7 of 74LS32 connect to signal L5
    - pin 14 of 74LS32 connect to signal L3

    This way add RD signal to joystick port decoder.
    74LS32
    Quad 2-input OR gates. 
        +---+--+---+             +---+---*---+
     1A |1  +--+ 14| VCC         | A | B | Y |       Y = A+B
     1B |2       13| 4B          +===+===*===+
     1Y |3       12| 4A          | 0 | 0 | 0 |
     2A |4       11| 4Y          | 0 | 1 | 1 |
     2B |5       10| 3B          | 1 | 0 | 1 |
     2Y |6        9| 3A          | 1 | 1 | 1 |
    GND |7        8| 3Y          +---+---*---+
        +----------+
    

    Or exist next ways, but I need show photos of components on PCB
  • edited April 2010
    velesoft wrote: »
    No.


    Yes. But I need show foto of PCB (both sides - hi res)


    Yes, residos can be install only if you disconnect you KEMP.INTERFACE. But you can also use ESXDOS, it's similas as RESIDOS and support access to FAT32 and enable rewrite all extra commands (for example is possible use ".t game.tap" for open TAP file. Or ".s game.sna" for load snapshot). Possibility use also short commands is perfect feature for fast work with system).


    1) break on PCB wire from pin U16
    2) add new chip 74LS32:
    - connect signal U16 from ZX bus connector to pin 1 of 74LS32
    - connect signal U17 from ZX bus connector to pin 2 of 74LS32
    - connect pin 3 of 74LS32 to breaked wire (not to pin U16)
    - pin 7 of 74LS32 connect to signal L5
    - pin 14 of 74LS32 connect to signal L3

    This way add RD signal to joystick port decoder.
    74LS32
    Quad 2-input OR gates. 
        +---+--+---+             +---+---*---+
     1A |1  +--+ 14| VCC         | A | B | Y |       Y = A+B
     1B |2       13| 4B          +===+===*===+
     1Y |3       12| 4A          | 0 | 0 | 0 |
     2A |4       11| 4Y          | 0 | 1 | 1 |
     2B |5       10| 3B          | 1 | 0 | 1 |
     2Y |6        9| 3A          | 1 | 1 | 1 |
    GND |7        8| 3Y          +---+---*---+
        +----------+
    

    Or exist next ways, but I need show photos of components on PCB

    OK, I will try again with the photos tomorrow. I have sent you the text on the chip.

    So if I did the modification to the dud joystick, I can use ResiDOS?
  • edited April 2010
    Alien 8 wrote: »
    So if I did the modification to the dud joystick, I can use ResiDOS?

    Yes. After modification this will work as correct kempston interface.
  • edited April 2010
    This is modification for your KEMPSTON INTERFACE.

    1) interrupt red wire
    2) add two diodes and one resistor

    kempston-fix1.jpg

    Next variant with chip 74LS32 coming soon...
  • edited April 2010
    velesoft wrote: »
    This is modification for your KEMPSTON INTERFACE

    kempston-fix1.jpg

    OK, that is pretty amazing velesoft, thanks for all your help. I am going to forward this to my father in law, who understands electronics much better than I do, to see if he can do the modification.

    The Red is where we make the cuts I assume?

    Many thanks.
  • edited April 2010
    Alien 8 wrote: »
    The Red is where we make the cuts I assume?

    Yes. Cut wire in this red position:

    kempston-fix1-detail.jpg
  • edited April 2010
    velesoft wrote: »
    This is modification for your KEMPSTON INTERFACE.

    1) interrupt red wire
    2) add two diodes and one resistor


    Next variant with chip 74LS32 coming soon...

    Is there likely to be any difference in performance between the two modifications?
  • edited April 2010
    velesoft wrote: »
    Next variant with chip 74LS32 coming soon...

    And this is same modification with chip 74LS32:

    kempston-fix2.jpg
Sign In or Register to comment.