Jump to content

Photo

n00b here - ST sound chip AY-3-8910 ?

Atari ST AY-3-8910

4 replies to this topic

#1 happy_comrade OFFLINE  

happy_comrade

    Space Invader

  • 10 posts

Posted Sat Feb 18, 2012 6:49 AM

Hi folks
can I ask ST users, how much hardware access do you have to the AY-3-8910 sound chip(s) inside the ST hardware?
if you use C for instance can you read & write to registers to control this IC, etc.?
I am thinking of doing some synth type experiments with this chip and I am wondering about how much control the ST gives you over this IC
(Help a n00b understand; I might be phrasing this questions incorrectly, I'm basically wanting to experiment with this IC & I am wondering if the ST is a good front end for doing so...)
thanks!
-HC

#2 NightSprinter OFFLINE  

NightSprinter

    Stargunner

  • 1,936 posts
  • Location:Orlando, FL

Posted Sat Feb 18, 2012 7:43 AM

I'm no programmer, but the YM-2419 used in the ST is more or less Yamaha's variant of the chip. http://www.msx.org/f...9-and-ay-3-8910 Has a little bit of extra info on the differences between Yamaha's and General Instruments' chips.

#3 moulinaie OFFLINE  

moulinaie

    Moonsweeper

  • 300 posts
  • Location:France, Burgundy

Posted Sat Feb 18, 2012 7:54 AM

Hi folks
can I ask ST users, how much hardware access do you have to the AY-3-8910 sound chip(s) inside the ST hardware?
if you use C for instance can you read & write to registers to control this IC, etc.?


Hello,

there are two system calls DOSOUND() and GIACCESS() available in every respectable language and even in the ugly "C" you're talking about.
DOSOUND() for a series of commands (more or less like a MIDI string, even if it's not MIDI at all, with freq, attenuation etc... to be processed by the system without your intervention)
GIACCESS() to talk directly to the Yamaha registers.

You should read the Atari compendium, Appendix I, everything is detailed. The compendium is available as a PDF file.

Guillaume.

#4 simonsunnyboy OFFLINE  

simonsunnyboy

    Chopper Commander

  • 157 posts
  • Location:Friedrichshafen, Germany

Posted Sat Feb 18, 2012 7:58 AM

You have full access to all chip registers. They are accessed with memory mapped I/O ports as follows:

===========#==#=======#===============================================#=====
----------------------|YM2149/AY-3-8910 Sound Chip				    |-----
===========#==#=======#===============================================#=====
$FFFF8800.B|R-|PSG_SEL|Read Data									  |
		   |-W|	   |Register Select							    |
$FFFF8802.B|rW|PSG_DAT|Write Data									 |
		   |  |	   | PSG Register 14 - Port A		    %RICDPBAS |
		   |  |	   | Reset IDE 0:no,1:reset (slow down)---+||||||| |F
		   |  |	   | Internal Speaker 0:on,1:off-----------+|||||| |F
		   |  |	   | Centronics Strobe----------------------+||||| |
		   |  |	   | Reset DSP 0:no,1:reset------------------+|||| |F
		   |  |	   | Printer Select In------------------------+||| |
		   |  |	   | Drive B select 0:on,1:off-----------------+|| |
		   |  |	   | Drive A select 0:on,1:off------------------+| |
		   |  |	   | Side select 0:side1,1:side0-----------------+ |
		   |  |	   | PSG Register 15 - Port B		    %xxxxxxxx |
		   |  |	   | Centronics Data Port-----------------++++++++ |
With clever use of interrupts (maxymiser tracker!), very decent music is possible. Basically you select the YM register with the upper register.
And then you write data to this YM register with the second ST address.

Write $01 to YM register $05 would mean

move.b #$05,$ffff8800 ; select Ym register $05
move.b #$01,$ffff8802 ; write $01 to this

Edited by simonsunnyboy, Sat Feb 18, 2012 7:58 AM.


#5 happy_comrade OFFLINE  

happy_comrade

    Space Invader

  • Topic Starter
  • 10 posts

Posted Sat Feb 18, 2012 11:47 AM

thanks everyone, this is good info

Edited by happy_comrade, Sat Feb 18, 2012 11:47 AM.






Also tagged with one or more of these keywords: Atari ST, AY-3-8910

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users