CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: zhulien on 03:00, 05 August 17

Title: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: zhulien on 03:00, 05 August 17
the CPC Wiki mentions the CPC Joystick Port in a couple of places as being bidirectional.  does anyone have examples of using it for I/O?
Title: Amstrad CPC Joystick Port, bidirectional?
Post by: angelcaio on 06:21, 05 August 17
Quote from: zhulien on 03:00, 05 August 17
the CPC Wiki mentions the CPC Joystick Port in a couple of places as being bidirectional.  does anyone have examples of using it for I/O?

The joystick and the audio jack connectors are adjacent in the CPC. I think that the output refers to the audio and the input to the joystick port

https://goo.gl/images/kaB1YZ

Enviado desde mi iPad utilizando Tapatalk
Title: Re: Amstrad CPC Joystick Port, bidirectional?
Post by: dragon on 07:16, 05 August 17
Quote from: zhulien on 03:00, 05 August 17
the CPC Wiki mentions the CPC Joystick Port in a couple of places as being bidirectional.  does anyone have examples of using it for I/O?


It need a loader and aditional hardware. In 1989 Codemasters made a CD with 30 games, that connect to sound jack. Unfortunly. The cpc versión, never arrive to the shops. It only exist in form of prototype.


http://www.cpcwiki.eu/index.php/Codemasters_CD
Title: Re: Amstrad CPC Joystick Port, bidirectional?
Post by: zhulien on 07:52, 05 August 17
I am wondering if there is a way to use atarivox on cpc normal joystick port. Seems everywhere says the cpc joystick ports are atari compatible (meaning compatible to what an atari joystick port does) as opposed to works with some atari joystick port peripherals namely joysticks only.
Title: Re: Amstrad CPC Joystick Port, bidirectional?
Post by: arnoldemu on 17:54, 05 August 17
Quote from: zhulien on 07:52, 05 August 17
I am wondering if there is a way to use atarivox on cpc normal joystick port. Seems everywhere says the cpc joystick ports are atari compatible (meaning compatible to what an atari joystick port does) as opposed to works with some atari joystick port peripherals namely joysticks only.
You will need to get the power from somewhere else because the joystick ports don't have power on them.

I'm not sure if the joystick ports ARE bi-directional. In fact on Plus I would say they are definitely not (because it's got the diodes).

The joysticks are connected to the AY via the keyboard matrix and the AY port can be set to output.
But i've no idea what will actually happen if you try to drive the joystick like this.

I would happily write a test for it, but I'm not going to test it ;)
Title: Re: Amstrad CPC Joystick Port, bidirectional?
Post by: gerald on 20:55, 05 August 17
Quote from: arnoldemu on 17:54, 05 August 17
You will need to get the power from somewhere else because the joystick ports don't have power on them.

I'm not sure if the joystick ports ARE bi-directional. In fact on Plus I would say they are definitely not (because it's got the diodes).

The joysticks are connected to the AY via the keyboard matrix and the AY port can be set to output.
But i've no idea what will actually happen if you try to drive the joystick like this.

Tobruk 1942 used the joystick port to connect 2 CPC for 2 player game, but I never tried this.
I am just wondering how they manage to avoid keypress screwing up the communication.
Title: Re: Amstrad CPC Joystick Port, bidirectional?
Post by: zhulien on 11:59, 24 December 20
Some examples of the AtariVOX in action:


https://www.youtube.com/watch?v=qIYoMuR-6jg


The company that makes the speech chip:


http://speakjet.com/


Post 6 here contains programming info from an Atari point of view to make it speak:


https://atariage.com/forums/topic/152167-hacking-for-atarivox/


Quoted from the start of that documentation...


"AtariVox
Pinout:

          Pin
          1        SpeakJet DATA
          2        SpeakJet READY
          3        EEPROM SDA
          4        EEPROM SCL
          5
6
          7        +5v
          8        GND
          9



SpeakJet Speech Synth

The AtariVox uses a SpeakJet chip to synthesize speech.  Speech is constructed from strings of allophones – the individual sounds that make up speech.  Refer to the SpeakJet User Manual PDF from www.speakjet.com for details of the allophone/control codes.



Communication with the SpeakJet
The SpeakJet receives speech data via asynchronous serial interface, pre-configured to operate at 19,200 baud (8n1, inverted).  The DATA line is connected to pin 1 of the 2nd joystick socket (bit 0 of SWCHA) and the READY line is connected to pin 2 (bit 1 of SWCHA).

The READY line may be read to detect whether the SpeakJet is able receive data.  If this reads 0 then the chip is not ready (i.e. the input buffer is full) and data should not be sent at this time.

The data is sent in 8n1 format (1 start bit, 8 data bits, no parity, 1 stop bit) but is inverted compared to normal RS-232.  The DATA line should be held high whilst idle (between data transmissions) either by setting the pin to input mode, or to output 1 (same thing).


To transmit a byte, each bit (1 start bit, 8 data bits and 1 stop bit) are output on the DATA line at intervals of 1/19,200th of a second.  For the Atari 2600, an interval of 62 CPU clock cycles is a close enough match.  First is the start bit, which is always 0.  Then the 8 data bits, least significant bit first.  And lastly the stop bit which is always 1 (returning the DATA line to idle).  The stop bit must be present on the DATA line for at least 62 cycles."

Title: Re: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: zhulien on 12:05, 24 December 20
Rather than using the AtariVOX on CPC, would it likely be easier to just make a Speakjet mx4 board?


https://www.youtube.com/watch?v=IbpNK3B9eB8

Title: Re: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: genesis8 on 13:37, 24 December 20
I saw this link selling the atarivox, it's an interesting device : https://www.atariage.com/store/index.php?l=product_detail&p=1045 (https://www.atariage.com/store/index.php?l=product_detail&p=1045)
For 50 euros
Title: Re: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: GUNHED on 16:01, 24 December 20
Quote from: zhulien on 12:05, 24 December 20
Rather than using the AtariVOX on CPC, would it likely be easier to just make a Speakjet mx4 board?
We already got this - but far better!  :) :) :)  Please search the forum for LambdaSpeak III.  :) :) :)
Title: Re: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: zhulien on 18:26, 24 December 20
it still has a nice sound to the AtariVOX and perhaps it can work on CPC without too much effort? any hardware is still hardware even when there is a better alternative
Title: Re: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: GUNHED on 23:00, 24 December 20
IIRC there was a modem which used the joystick port as input / output interface.
However, the Plus has (as mentioned before) diodes, so it's a CPC only thing.

Guess it's about programming PIO and PSG in both directions.
Title: Re: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?
Post by: VintageAdvantage on 23:38, 24 December 20
Quote from: zhulien on 12:05, 24 December 20Rather than using the AtariVOX on CPC, would it likely be easier to just make a Speakjet mx4 board?

Well, that already exists - it's called Speak&SID CPC and you find info here on the board.

https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amjet-anyone-interested-in-a-low-cost-speech-synthesizer/ (https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amjet-anyone-interested-in-a-low-cost-speech-synthesizer/)

https://github.com/lambdamikel/Speak-SID (https://github.com/lambdamikel/Speak-SID)
Quote from there:
This CPC expansion board offers:
Powered by SMFPacks Menu Editor Mod