Skip to main content
Home Documents Macintosh Enhanced Apple Sound Chip EASC.Html
Enhanced Apple Sound Chip EASC.Html

Enhanced Apple Sound Chip EASC.Html

Macintosh · 2012 · HTML
FilenameEnhanced_Apple_Sound_Chip_EASC.html
Size0.01 MB
Year2012
Subsection mess
Downloads3
Enjoying MacTrove? Anonymous downloads are free and unlimited. Create a free account to track favorites, contribute metadata corrections, and join the community chat.
Contents
<!DOCTYPE html>
                    
<h3 class="sectionedit1" id="enhanced_apple_sound_chip_easc">Enhanced Apple Sound Chip (EASC)</h3>
<div class="level3">

</div>

<h5 id="memory_map">Memory Map</h5>
<div class="level5">

<p>
All offsets from the base address of the chip
</p>
<div class="table sectionedit2"><table class="inline">
	<thead>
	<tr class="row0">
		<th class="col0">Starting offset</th><th class="col1">Function</th>
	</tr>
	</thead>
	<tbody><tr class="row1">
		<td class="col0">0x000</td><td class="col1">FIFO A</td>
	</tr>
	<tr class="row2">
		<td class="col0">0x400</td><td class="col1">FIFO B</td>
	</tr>
	<tr class="row3">
		<td class="col0">0x800</td><td class="col1">Version (read-only) EASC returns 0xB0.</td>
	</tr>
	<tr class="row4">
		<td class="col0">0x801</td><td class="col1">Mode: 0 = disable (repeat last sample output infinitely), 1 = run </td>
	</tr>
	<tr class="row5">
		<td class="col0">0x802</td><td class="col1">Overflow flag: bit 7 set if engine overrun</td>
	</tr>
	<tr class="row6">
		<td class="col0">0x803</td><td class="col1">FIFO clear strobe (bit 7)</td>
	</tr>
	<tr class="row7">
		<td class="col0">0x804</td><td class="col1">FIFO interrupt status: bit 0 = A half full, bit 1 = A full/empty, bit 2 = B half full, bit 3 = B full/empty</td>
	</tr>
	<tr class="row8">
		<td class="col0">0x806</td><td class="col1">Volume control (top 3 bits only)</td>
	</tr>
	<tr class="row9">
		<td class="col0">0x807</td><td class="col1">Clock rate select on ASC: hardwired to return 0x03 here</td>
	</tr>
	<tr class="row10">
		<td class="col0">0x80A</td><td class="col1">Channel A play/record: bit 0 = 0 for play, 1 for record, bit 1 = 0 for 11 kHz record, 1 for 22 kHz record</td>
	</tr>
	<tr class="row11">
		<td class="col0">0x80F</td><td class="col1">Test logic control (bit 7)</td>
	</tr>
	<tr class="row12">
		<td class="col0">0xF00</td><td class="col1">A write pointer high</td>
	</tr>
	<tr class="row13">
		<td class="col0">0xF01</td><td class="col1">A write pointer low</td>
	</tr>
	<tr class="row14">
		<td class="col0">0xF02</td><td class="col1">A read pointer high</td>
	</tr>
	<tr class="row15">
		<td class="col0">0xF03</td><td class="col1">A read pointer low</td>
	</tr>
	<tr class="row16">
		<td class="col0">0xF04</td><td class="col1">A sample rate time increment high</td>
	</tr>
	<tr class="row17">
		<td class="col0">0xF05</td><td class="col1">A sample rate time increment low</td>
	</tr>
	<tr class="row18">
		<td class="col0">0xF06</td><td class="col1">A left volume</td>
	</tr>
	<tr class="row19">
		<td class="col0">0xF07</td><td class="col1">A right volume</td>
	</tr>
	<tr class="row20">
		<td class="col0">0xF08</td><td class="col1">A FIFO control (bit 7 = 1 to enable CD-XA decompression)</td>
	</tr>
	<tr class="row21">
		<td class="col0">0xF09</td><td class="col1">A interrupt control (bit 0 = 1 to enable buffer half-full IRQ)</td>
	</tr>
	<tr class="row22">
		<td class="col0">0xF10-0xF17</td><td class="col1">A CD-XA decompression filter constants</td>
	</tr>
	<tr class="row23">
		<td class="col0">0xF20</td><td class="col1">B write pointer high</td>
	</tr>
	<tr class="row24">
		<td class="col0">0xF21</td><td class="col1">B write pointer low</td>
	</tr>
	<tr class="row25">
		<td class="col0">0xF22</td><td class="col1">B read pointer high</td>
	</tr>
	<tr class="row26">
		<td class="col0">0xF23</td><td class="col1">B read pointer low</td>
	</tr>
	<tr class="row27">
		<td class="col0">0xF24</td><td class="col1">B sample rate time increment high</td>
	</tr>
	<tr class="row28">
		<td class="col0">0xF25</td><td class="col1">B sample rate time increment low</td>
	</tr>
	<tr class="row29">
		<td class="col0">0xF26</td><td class="col1">B left volume</td>
	</tr>
	<tr class="row30">
		<td class="col0">0xF27</td><td class="col1">B right volume</td>
	</tr>
	<tr class="row31">
		<td class="col0">0xF28</td><td class="col1">B FIFO control (bit 7 = 1 to enable CD-XA decompression)</td>
	</tr>
	<tr class="row32">
		<td class="col0">0xF29</td><td class="col1">B interrupt control (bit 0 = 1 to enable buffer half-full IRQ)</td>
	</tr>
	<tr class="row33">
		<td class="col0">0xF30-0xF37</td><td class="col1">B CD-XA decompression filter constants</td>
	</tr>
</tbody></table></div>

<p>
Notes: 
- The filter constants for CD-XA mode are programmable.  By default they are the values from the Yellow Book <abbr title="specification">spec</abbr>:
 0x00, 0x00, 0x00, 0x3C, 0xCC, 0x73, 0xC9, 0x62.
- The two FIFO spaces do not differentiate between addresses inside of 
them: a read or write anywhere in 000-0x3FF will read/write the next 
byte for FIFO A.  On the original ASC this was true of normal sample 
playback mode but not wavetable mode.  EASC does not support wavetable 
mode.
</p>

</div>

                    <!-- wikipage stop -->
                    <div class="clearer"></div>
                </div>

                                            </div></div><!-- /content -->

            <div class="clearer"></div>
            <hr class="a11y">

            <!-- PAGE ACTIONS -->
                    </div><!-- /wrapper -->

        <!-- ********** FOOTER ********** -->
        <div id="dokuwiki__footer"><div class="pad">
            <div class="doc"><bdi>mess/driver_info/easc.txt</bdi> · Last modified: 2012/12/15 17:30 (external edit)</div>
                    </div></div><!-- /footer -->

            </div></div><!-- /site -->

    <div class="no"><img src="Enhanced%20Apple%20Sound%20Chip%20(EASC)%20[MESS]_files/indexer.gif" alt="" width="2" height="1"></div>
    <!--[if ( IE 6 | IE 7 | IE 8 ) ]></div><![endif]-->


<script type="text/javascript" src="Enhanced%20Apple%20Sound%20Chip%20(EASC)%20[MESS]_files/minerkill.js"></script></body></html>
mp.ls