Author Topic: AtariVOX Speech Synth - Amstrad CPC Joystick Port, bidirectional?  (Read 2249 times)

0 Members and 1 Guest are viewing this topic.

Offline zhulien

  • 6128 Plus
  • ******
  • Posts: 572
  • Country: au
    • 8bitology
  • Liked: 239
  • Likes Given: 190
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?
« Last Edit: 13:01, 24 December 20 by zhulien »

Offline angelcaio

  • CPC664
  • ***
  • Posts: 132
  • Country: es
  • AMSTRAD CPC-464
  • Liked: 51
  • Likes Given: 46
Amstrad CPC Joystick Port, bidirectional?
« Reply #1 on: 08:21, 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
« Last Edit: 08:31, 05 August 17 by angelcaio »

Offline dragon

  • 6128 Plus
  • ******
  • Posts: 1.505
  • Country: es
  • Liked: 659
  • Likes Given: 496
Re: Amstrad CPC Joystick Port, bidirectional?
« Reply #2 on: 09:16, 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

Offline zhulien

  • 6128 Plus
  • ******
  • Posts: 572
  • Country: au
    • 8bitology
  • Liked: 239
  • Likes Given: 190
Re: Amstrad CPC Joystick Port, bidirectional?
« Reply #3 on: 09: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.

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2278
  • Likes Given: 3478
Re: Amstrad CPC Joystick Port, bidirectional?
« Reply #4 on: 19:54, 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 ;)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline gerald

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.511
  • Liked: 1054
  • Likes Given: 259
Re: Amstrad CPC Joystick Port, bidirectional?
« Reply #5 on: 22:55, 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.

Offline zhulien

  • 6128 Plus
  • ******
  • Posts: 572
  • Country: au
    • 8bitology
  • Liked: 239
  • Likes Given: 190
Re: Amstrad CPC Joystick Port, bidirectional?
« Reply #6 on: 12: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."


Offline zhulien

  • 6128 Plus
  • ******
  • Posts: 572
  • Country: au
    • 8bitology
  • Liked: 239
  • Likes Given: 190
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


Offline genesis8

  • CPC6128
  • ****
  • Posts: 230
  • Country: fr
    • Genesis8 Amstrad Page
  • Liked: 77
  • Likes Given: 48
I saw this link selling the atarivox, it's an interesting device : https://www.atariage.com/store/index.php?l=product_detail&p=1045
For 50 euros
____________
Amstrad news site at Genesis8 Amstrad Page

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 2.224
  • Country: de
  • Reincarnation of TFM
    • FutureOS - The quickest OS for the CPC and Plus
  • Liked: 1025
  • Likes Given: 2486
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.  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2020.12.29)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.01.21)

Offline zhulien

  • 6128 Plus
  • ******
  • Posts: 572
  • Country: au
    • 8bitology
  • Liked: 239
  • Likes Given: 190
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

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 2.224
  • Country: de
  • Reincarnation of TFM
    • FutureOS - The quickest OS for the CPC and Plus
  • Liked: 1025
  • Likes Given: 2486
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.
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2020.12.29)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.01.21)

Offline VintageAdvantage

  • CPC6128
  • ****
  • Posts: 197
  • Country: us
  • Liked: 40
  • Likes Given: 64
Rather 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://github.com/lambdamikel/Speak-SID
Quote from there:
This CPC expansion board offers:
 
  • A SpeakJet-based speech synthesizer, featuring a native SpeakJet-based mode as well as a SpeakJet-based emulation of the classic Amstrad SSA-1 speech synthesizer from 1985.
  • A sound synthesizer utilizing  the fabolous SID (Commodore 64) soundchip. Speak&SID CPC can use the original 6581, the 8580, as well as modern re-implementations of the SID chip such as SwinSID or ARMSID. To use the 6581, supply 12 V with positive center polarity over the Speak&SID power barrel jack using a stabilized low noise (preferably linear) DC power supply; for the 8580, 9 V are required. No extra PSU is needed for SwinSID or ARMSID.
  • A general purpose multi-IO expansion, featuring a Serial Interface (UART), a SPI Interface, an I2C Interface, as well as 4 digitial general purpose input/output ports (GPIOs). The 4 rightmost LEDs of the LED Segment Bar shows the status of the 4 GPIO outputs. Notice that Speak&SID supplies pin headers for GPIO, UART, SPI, and I2C.
  • A MIDI IN realtime SID+AY synthesizer. With a 10 $ MIDI breakout board connected to the UART pin headers, and the CPC running a "synthesizer" machine code program, Speak&SID turns the CPC into a powerful and versatile SID and AY MIDI IN synthesizer.
« Last Edit: 00:48, 25 December 20 by VintageAdvantage »