<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>sc68fordevelopers: /home/mandrake/rpm/BUILD/sc68-2.2.1/io68/ymemul.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <h1>/home/mandrake/rpm/BUILD/sc68-2.2.1/io68/ymemul.h</h1><a href="ymemul_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <a name="l00011"></a>00011 <span class="comment">/* Copyright (C) 1998-2003 Benjamin Gerard */</span> <a name="l00012"></a>00012 <a name="l00013"></a>00013 <span class="preprocessor">#ifndef _YM_EMUL_H_</span> <a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define _YM_EMUL_H_</span> <a name="l00015"></a>00015 <span class="preprocessor"></span> <a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="type68_8h.html" title="Type definitions.">emu68/type68.h</a>"</span> <a name="l00017"></a>00017 <a name="l00018"></a>00018 <span class="preprocessor">#ifdef __cplusplus</span> <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { <a name="l00020"></a>00020 <span class="preprocessor">#endif</span> <a name="l00021"></a>00021 <span class="preprocessor"></span> <a name="l00022"></a><a class="code" href="ymemul_8h.html#b00f805b6cc45bf3ac684788f2502c8f">00022</a> <span class="preprocessor">#define YM_BASEPERL 0 </span> <a name="l00023"></a><a class="code" href="ymemul_8h.html#412e2d11e17bbb61a23eb4d301fd8d19">00023</a> <span class="preprocessor">#define YM_BASEPERH 1 </span> <a name="l00024"></a><a class="code" href="ymemul_8h.html#b8cd42148680cd4f18e8f045bdc63f39">00024</a> <span class="preprocessor">#define YM_BASEVOL 8 </span> <a name="l00026"></a><a class="code" href="ymemul_8h.html#a90ff54bf10570acf922cf56c427e784">00026</a> <span class="preprocessor">#define YM_PERL(N) (YM_BASEPERL+(N)*2) </span> <a name="l00027"></a><a class="code" href="ymemul_8h.html#2a2a3105bb329491228da7126fcf495c">00027</a> <span class="preprocessor">#define YM_PERH(N) (YM_BASEPERH+(N)*2) </span> <a name="l00028"></a><a class="code" href="ymemul_8h.html#eb59e8ddea4713b531d80c694f896b2a">00028</a> <span class="preprocessor">#define YM_VOL(N) (YM_BASEVOL+(N)) </span> <a name="l00030"></a><a class="code" href="ymemul_8h.html#b19ec820315b550c5fdae2a3af905270">00030</a> <span class="preprocessor">#define YM_NOISE 6 </span> <a name="l00031"></a><a class="code" href="ymemul_8h.html#cac4dc367530bfc9cbbf37c52945e3c0">00031</a> <span class="preprocessor">#define YM_MIXER 7 </span> <a name="l00032"></a><a class="code" href="ymemul_8h.html#ca966b638c4b7591aa3cba417eea7266">00032</a> <span class="preprocessor">#define YM_ENVL 11 </span> <a name="l00033"></a><a class="code" href="ymemul_8h.html#357e50ad6f557148fddb148bb2781aed">00033</a> <span class="preprocessor">#define YM_ENVH 12 </span> <a name="l00034"></a><a class="code" href="ymemul_8h.html#ae22e9ae494d47da441f949bc2e7897d">00034</a> <span class="preprocessor">#define YM_ENVTYPE 13 </span> <a name="l00035"></a><a class="code" href="ymemul_8h.html#f7a60b97f36964f5c42db07801e54ffa">00035</a> <span class="preprocessor">#define YM_ENVSHAPE 13 </span> <a name="l00038"></a><a class="code" href="structym2149__t.html">00038</a> <span class="preprocessor">typedef struct</span> <a name="l00039"></a>00039 <span class="preprocessor"></span>{ <a name="l00040"></a>00040 <span class="comment">/* Internal YM register */</span> <a name="l00041"></a><a class="code" href="structym2149__t.html#d757751ef67edcb0fc8c150a4dafadb3">00041</a> <a class="code" href="type68_8h.html#ed742c436da53c1080638ce6ef7d13de" title="Must be an unsigned 8 bit integer.">u8</a> ctrl; <a name="l00042"></a><a class="code" href="structym2149__t.html#33d7586f1b5ad3507118154272d9b844">00042</a> <a class="code" href="type68_8h.html#ed742c436da53c1080638ce6ef7d13de" title="Must be an unsigned 8 bit integer.">u8</a> data[16]; <a name="l00044"></a>00044 <span class="comment">/* Envelop specific */</span> <a name="l00045"></a><a class="code" href="structym2149__t.html#1e5050376ade89ce9afad1ffe27b5941">00045</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> env_ct; <a name="l00046"></a><a class="code" href="structym2149__t.html#d7d1f57055470da7e5a5ecc450af621b">00046</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> env_cont; <a name="l00047"></a><a class="code" href="structym2149__t.html#6b21e5aa1f45ea6e7b29501fb53f3f81">00047</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> env_alt; <a name="l00048"></a><a class="code" href="structym2149__t.html#edc9452877683e96c8670d4c2afcf370">00048</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> env_bit; <a name="l00049"></a><a class="code" href="structym2149__t.html#e7640b1885538897250485d77a30883f">00049</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> env_bitstp; <a name="l00051"></a>00051 <span class="comment">/* Noise specific */</span> <a name="l00052"></a><a class="code" href="structym2149__t.html#3ea2ff6be6ec7a2d00a7f4d6fc5f46d1">00052</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> noise_gen; <a name="l00053"></a><a class="code" href="structym2149__t.html#8f580e03ffacd99d265550f6933582a5">00053</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> noise_ct; <a name="l00055"></a>00055 <span class="comment">/* Sound specific */</span> <a name="l00056"></a><a class="code" href="structym2149__t.html#25137c64e3712e883aecf62b7340f1fa">00056</a> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> voice_ctA; <a name="l00057"></a><a class="code" href="structym2149__t.html#e6c5d4ab908331fa4a9235db943d8aff">00057</a> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> voice_ctB; <a name="l00058"></a><a class="code" href="structym2149__t.html#56c4f3f911111c0767a2f3f7e2e4b0b3">00058</a> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> voice_ctC; <a name="l00059"></a><a class="code" href="structym2149__t.html#fc236d062c738012c60a778259ae9573">00059</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sq; <a name="l00060"></a>00060 } <a class="code" href="structym2149__t.html" title="YM-2149 internal data structure.">ym2149_t</a>; <a name="l00061"></a>00061 <a name="l00063"></a>00063 <span class="keyword">extern</span> <a class="code" href="structym2149__t.html" title="YM-2149 internal data structure.">ym2149_t</a> <a class="code" href="ymemul_8h.html#01437bbd37572e09fddf4dba71510828" title="YM-2149 emulator internal data.">ym</a>; <a name="l00064"></a>00064 <a name="l00081"></a>00081 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ymemul_8h.html#4ef5ab7ab450710d42acdeb124ba0ef5" title="Set/get output buffer replay frequency.">YM_sampling_rate</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> f); <a name="l00082"></a>00082 <a name="l00096"></a>00096 <span class="keywordtype">int</span> <a class="code" href="ymemul_8h.html#4c209ab3e95ea006a4f11fae3573e68f" title="Yamaha-2149 hardware reset.">YM_reset</a>(<span class="keywordtype">void</span>); <a name="l00097"></a>00097 <a name="l00112"></a>00112 <span class="keywordtype">int</span> <a class="code" href="ymemul_8h.html#49cc9c4090bf5b57f8cb29144195a2cc" title="Yamaha-2149 first one first initialization.">YM_init</a>(<span class="keywordtype">void</span>); <a name="l00113"></a>00113 <a name="l00138"></a>00138 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="ymemul_8h.html#41731ec0511613dbffc759429c64e582" title="Execute Yamaha-2149 emulation.">YM_mix</a>(<a class="code" href="type68_8h.html#f481ec429becf42a986cf4feb23036f0" title="At least 32 bit integer.">cycle68_t</a> cycle2mix); <a name="l00139"></a>00139 <a name="l00156"></a>00156 <a class="code" href="type68_8h.html#10e94b422ef0c20dcdec20d31a1f5049" title="Must be an unsigned 32 bit integer.">u32</a> *<a class="code" href="ymemul_8h.html#1d8d998a30732129b218cf24a8a62687" title="Yamaha get buffer.">YM_get_buffer</a>(<span class="keywordtype">void</span>); <a name="l00157"></a>00157 <a name="l00167"></a>00167 <span class="keywordtype">void</span> <a class="code" href="ymemul_8h.html#5cd3f770ad3c9b3d8425e6ba2008e89f" title="Change YM cycle counter base.">YM_subcycle</a>(<a class="code" href="type68_8h.html#f481ec429becf42a986cf4feb23036f0" title="At least 32 bit integer.">cycle68_t</a> subcycle); <a name="l00168"></a>00168 <a name="l00191"></a>00191 <span class="keywordtype">void</span> <a class="code" href="ymemul_8h.html#509038ccb45b3e1c6355e77170e74ffb" title="Write in YM register.">YM_writereg</a>(<a class="code" href="type68_8h.html#ed742c436da53c1080638ce6ef7d13de" title="Must be an unsigned 8 bit integer.">u8</a> reg, <a class="code" href="type68_8h.html#ed742c436da53c1080638ce6ef7d13de" title="Must be an unsigned 8 bit integer.">u8</a> v, <a class="code" href="type68_8h.html#f481ec429becf42a986cf4feb23036f0" title="At least 32 bit integer.">cycle68_t</a> cycle); <a name="l00192"></a>00192 <a name="l00206"></a>00206 <a class="code" href="type68_8h.html#ed742c436da53c1080638ce6ef7d13de" title="Must be an unsigned 8 bit integer.">u8</a> <a class="code" href="ymemul_8h.html#02d49bb881fe4c753175e11f8c2431fd" title="Read a YM-2119 register.">YM_readreg</a>(<a class="code" href="type68_8h.html#ed742c436da53c1080638ce6ef7d13de" title="Must be an unsigned 8 bit integer.">u8</a> reg, <a class="code" href="type68_8h.html#f481ec429becf42a986cf4feb23036f0" title="At least 32 bit integer.">cycle68_t</a> cycle); <a name="l00207"></a>00207 <a name="l00220"></a>00220 <span class="keywordtype">int</span> <a class="code" href="ymemul_8h.html#e55e5b635f2e7ecf0cb7407db7daa3c4" title="Get voices status.">YM_get_activevoices</a>(<span class="keywordtype">void</span>); <a name="l00221"></a>00221 <a name="l00234"></a>00234 <span class="keywordtype">void</span> <a class="code" href="ymemul_8h.html#72a81ebb78e03889d9c9b75270ec3314" title="Set voices status.">YM_set_activeVoices</a>(<span class="keywordtype">int</span> v); <a name="l00235"></a>00235 <a name="l00238"></a>00238 <span class="preprocessor">#ifdef __cplusplus</span> <a name="l00239"></a>00239 <span class="preprocessor"></span>} <a name="l00240"></a>00240 <span class="preprocessor">#endif</span> <a name="l00241"></a>00241 <span class="preprocessor"></span> <a name="l00242"></a>00242 <span class="preprocessor">#endif </span><span class="comment">/* #ifndef _YM_EMUL_H_ */</span> <a name="l00243"></a>00243 </pre></div></div> <hr size="1"><address style="text-align: right;"><small>Generated on Tue Sep 15 03:58:05 2009 for sc68fordevelopers by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>