happy_comrade Posted February 18, 2012 Share Posted February 18, 2012 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 Quote Link to comment Share on other sites More sharing options...
NightSprinter Posted February 18, 2012 Share Posted February 18, 2012 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/forum/msx-talk/hardware/difference-between-ym2149-and-ay-3-8910 Has a little bit of extra info on the differences between Yamaha's and General Instruments' chips. Quote Link to comment Share on other sites More sharing options...
moulinaie Posted February 18, 2012 Share Posted February 18, 2012 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. Quote Link to comment Share on other sites More sharing options...
simonsunnyboy Posted February 18, 2012 Share Posted February 18, 2012 (edited) 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 February 18, 2012 by simonsunnyboy Quote Link to comment Share on other sites More sharing options...
happy_comrade Posted February 18, 2012 Author Share Posted February 18, 2012 (edited) thanks everyone, this is good info Edited February 18, 2012 by happy_comrade Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.