Files
ComSquare/DMA_8hpp_source.html
AnonymusRaccoon d33b0ab52d Deploying the doc
2021-07-13 21:32:24 +00:00

227 lines
40 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ComSquare: sources/CPU/DMA/DMA.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ComSquare
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_08d237fc27d4ecd563f71c5d52f2fecc.html">sources</a></li><li class="navelem"><a class="el" href="dir_a65246f7a5288ee65248a0302198d58d.html">CPU</a></li><li class="navelem"><a class="el" href="dir_a27aee9ec8c7af1c7285a99fc42da75a.html">DMA</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DMA.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="DMA_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Created by anonymus-raccoon on 5/26/20.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MemoryBus_8hpp.html">Memory/MemoryBus.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Ints_8hpp.html">Models/Ints.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifdef DEBUGGER_ENABLED</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="RegisterViewer_8hpp.html">Debugger/RegisterViewer.hpp</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceComSquare_1_1CPU.html">ComSquare::CPU</a></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html"> 19</a></span>&#160; <span class="keyword">class </span><a class="code" href="classComSquare_1_1CPU_1_1DMA.html">DMA</a></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39"> 23</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39">DMAMode</a></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a86a0bca9633a504c13a142e8732d0654"> 26</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a86a0bca9633a504c13a142e8732d0654">OneToOne</a> = 0b000,</div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a4436f697495cdfb191337a6d4419a555"> 28</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a4436f697495cdfb191337a6d4419a555">TwoToTwo</a> = 0b001,</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39aadedb5cc6298170f2ac0714399db9a66"> 30</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39aadedb5cc6298170f2ac0714399db9a66">TwoToOne</a> = 0b010,</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39ae8326b4f06978a369f0f2f7174aa447e"> 32</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39ae8326b4f06978a369f0f2f7174aa447e">FourToTwo</a> = 0b011,</div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a7d518b3bb843763d2587653192708e6d"> 34</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a7d518b3bb843763d2587653192708e6d">FourToFour</a> = 0b100,</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a8b5fc9672d91f39e13f35269e5191db0"> 36</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a8b5fc9672d91f39e13f35269e5191db0">TwoToTwoBis</a> = 0b101,</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a5f0f9487ca32fb33306fb0a60622b775"> 38</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a5f0f9487ca32fb33306fb0a60622b775">TwoToOneBis</a> = 0b110,</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39ae110f671ea0a774b3d0219cb199e65eb"> 40</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39ae110f671ea0a774b3d0219cb199e65eb">FourToTwoBis</a> = 0b111</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; };</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06c"> 43</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06c">Direction</a></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06cac68d0326695de61779072fe85f0bbed1"> 45</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06cac68d0326695de61779072fe85f0bbed1">AtoB</a>,</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06ca90d173a67b57daa0e8cc0e395f691182"> 46</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06ca90d173a67b57daa0e8cc0e395f691182">BtoA</a></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; };</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#af77e48f1a5875defee964724e556a7b4">_writeOneByte</a>(<a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> aAddress, <a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> bAddress);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; [[nodiscard]] <span class="keywordtype">int</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a36b2d5c22ea29a65637e250b95558227">_getModeOffset</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">union</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a3c922413f610803ff3775367023b78b4"> 61</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39">DMAMode</a> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a3c922413f610803ff3775367023b78b4">mode</a> : 3;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a3f6e8413e03d475a303a9685e9107bdb"> 63</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a3f6e8413e03d475a303a9685e9107bdb">fixed</a> : 1;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#addb890a9a0331e2c00e291a93346801e"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#addb890a9a0331e2c00e291a93346801e">increment</a> : 1;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a3fdcb50a9a2fa0e8c6b572cd7799f2ad"> 67</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a3fdcb50a9a2fa0e8c6b572cd7799f2ad">_</a> : 2;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a0b3074ccfd02bf29ede00d79ef78792e"> 69</a></span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06c">Direction</a> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a0b3074ccfd02bf29ede00d79ef78792e">direction</a> : 1;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; };</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a1ea72efaa83b0bb7862f6cc5fd08c69c"> 71</a></span>&#160; uint8_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a1ea72efaa83b0bb7862f6cc5fd08c69c">raw</a>;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a8cfd7983eca6c568f75fb243196a39d5">_controlRegister</a> {};</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#aec13e71fb0f68dcaa7b34b1cba600995"> 75</a></span>&#160; uint8_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#aec13e71fb0f68dcaa7b34b1cba600995">_port</a> {};</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">union</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#abc28baf74b33a1ab53c3773c84ed9c57"> 80</a></span>&#160; uint8_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#abc28baf74b33a1ab53c3773c84ed9c57">bytes</a>[3];</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a26eb7d20d948f133c086de1ca849de68"> 82</a></span>&#160; uint16_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a26eb7d20d948f133c086de1ca849de68">page</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a84708ba0a5589a8ca73ed6284d570c04"> 83</a></span>&#160; uint8_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a84708ba0a5589a8ca73ed6284d570c04">bank</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a9d6db87d17373060c5247858adc8d60d"> 85</a></span>&#160; <a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a9d6db87d17373060c5247858adc8d60d">raw</a> : 24;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; } <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a07adc4917067ddecea619a77fb2910f0">_aAddress</a> {};</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">union</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint8_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#abc28baf74b33a1ab53c3773c84ed9c57">bytes</a>[2];</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#af747887faadea7055e7d074612614bc9"> 92</a></span>&#160; uint16_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#af747887faadea7055e7d074612614bc9">raw</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; } <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a590b393a8dd0cb07b436af0b65f9fb30">_count</a> {};</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a57b5deee11bcf984d7e2821cfb22b2f8"> 96</a></span>&#160; <a class="code" href="classComSquare_1_1Memory_1_1IMemoryBus.html">Memory::IMemoryBus</a> &amp;<a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a57b5deee11bcf984d7e2821cfb22b2f8">_bus</a>;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a41a3d98b718c3098b7a0858b50d6fd6e"> 100</a></span>&#160; [[nodiscard]] <span class="keyword">inline</span> <a class="code" href="classComSquare_1_1Memory_1_1IMemoryBus.html">Memory::IMemoryBus</a> &amp;<a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a41a3d98b718c3098b7a0858b50d6fd6e">getBus</a>()</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a57b5deee11bcf984d7e2821cfb22b2f8">_bus</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a3f583dff51b42ad8e50bb54fcd14a451">setBus</a>(<a class="code" href="classComSquare_1_1Memory_1_1IMemoryBus.html">Memory::IMemoryBus</a> &amp;bus);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classComSquare_1_1CPU_1_1DMA.html#a92fbb57324fbdf99e9d97a304c4f2083"> 109</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a92fbb57324fbdf99e9d97a304c4f2083">enabled</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; [[nodiscard]] uint8_t <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#ac15ec6b4981e6097e268a9b65be29a4f">read</a>(uint8_t addr) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a83cc22ce83580854ca78088362a2de9d">write</a>(uint8_t addr, uint8_t data);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a33579bc6e0052d0be73a17a32eb8262e">run</a>(<span class="keywordtype">unsigned</span> cycles);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a8a9151c3b6318eea50d556ca5eff985a">DMA</a>(<a class="code" href="classComSquare_1_1Memory_1_1IMemoryBus.html">Memory::IMemoryBus</a> &amp;bus);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a8a9151c3b6318eea50d556ca5eff985a">DMA</a>(<span class="keyword">const</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html">DMA</a> &amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html">DMA</a> &amp;<a class="code" href="classComSquare_1_1CPU_1_1DMA.html#aca7d4c5b094154f83f1a62e98b5d6a34">operator=</a>(<span class="keyword">const</span> <a class="code" href="classComSquare_1_1CPU_1_1DMA.html">DMA</a> &amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classComSquare_1_1CPU_1_1DMA.html#a65aa5e884fa822949d5b7c34b7cec98e">~DMA</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#ifdef DEBUGGER_ENABLED</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">friend</span> <a class="code" href="classComSquare_1_1Debugger_1_1RegisterViewer.html">Debugger::RegisterViewer</a>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}<span class="comment">// namespace ComSquare::CPU</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a65aa5e884fa822949d5b7c34b7cec98e"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a65aa5e884fa822949d5b7c34b7cec98e">ComSquare::CPU::DMA::~DMA</a></div><div class="ttdeci">~DMA()=default</div><div class="ttdoc">A default destructor.</div></div>
<div class="ttc" id="aclassComSquare_1_1Debugger_1_1RegisterViewer_html"><div class="ttname"><a href="classComSquare_1_1Debugger_1_1RegisterViewer.html">ComSquare::Debugger::RegisterViewer</a></div><div class="ttdef"><b>Definition:</b> RegisterViewer.hpp:49</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a3f6e8413e03d475a303a9685e9107bdb"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a3f6e8413e03d475a303a9685e9107bdb">ComSquare::CPU::DMA::fixed</a></div><div class="ttdeci">bool fixed</div><div class="ttdoc">If this flag is set, no increment/decrement will be done.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:63</div></div>
<div class="ttc" id="aMemoryBus_8hpp_html"><div class="ttname"><a href="MemoryBus_8hpp.html">MemoryBus.hpp</a></div></div>
<div class="ttc" id="aInts_8hpp_html"><div class="ttname"><a href="Ints_8hpp.html">Ints.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a3fdcb50a9a2fa0e8c6b572cd7799f2ad"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a3fdcb50a9a2fa0e8c6b572cd7799f2ad">ComSquare::CPU::DMA::_</a></div><div class="ttdeci">bool _</div><div class="ttdoc">Two unused bites.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:67</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_af747887faadea7055e7d074612614bc9"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#af747887faadea7055e7d074612614bc9">ComSquare::CPU::DMA::raw</a></div><div class="ttdeci">uint16_t raw</div><div class="ttdef"><b>Definition:</b> DMA.hpp:92</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a26eb7d20d948f133c086de1ca849de68"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a26eb7d20d948f133c086de1ca849de68">ComSquare::CPU::DMA::page</a></div><div class="ttdeci">uint16_t page</div><div class="ttdef"><b>Definition:</b> DMA.hpp:82</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39a7d518b3bb843763d2587653192708e6d"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a7d518b3bb843763d2587653192708e6d">ComSquare::CPU::DMA::FourToFour</a></div><div class="ttdeci">@ FourToFour</div><div class="ttdoc">4 byte is transferred to 4 register (write once)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:34</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a0b3074ccfd02bf29ede00d79ef78792e"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a0b3074ccfd02bf29ede00d79ef78792e">ComSquare::CPU::DMA::direction</a></div><div class="ttdeci">Direction direction</div><div class="ttdoc">The direction of the transfer.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:69</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a34f471a48a9062c44e0260b3686ba06ca90d173a67b57daa0e8cc0e395f691182"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06ca90d173a67b57daa0e8cc0e395f691182">ComSquare::CPU::DMA::BtoA</a></div><div class="ttdeci">@ BtoA</div><div class="ttdef"><b>Definition:</b> DMA.hpp:46</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39aadedb5cc6298170f2ac0714399db9a66"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39aadedb5cc6298170f2ac0714399db9a66">ComSquare::CPU::DMA::TwoToOne</a></div><div class="ttdeci">@ TwoToOne</div><div class="ttdoc">2 byte is transferred to 1 register (write twice)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:30</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39">ComSquare::CPU::DMA::DMAMode</a></div><div class="ttdeci">DMAMode</div><div class="ttdoc">The first three bytes of the DMA's control register. Used to tell how many bytes/registers there is.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:23</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a92fbb57324fbdf99e9d97a304c4f2083"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a92fbb57324fbdf99e9d97a304c4f2083">ComSquare::CPU::DMA::enabled</a></div><div class="ttdeci">bool enabled</div><div class="ttdoc">Is this channel set to run?</div><div class="ttdef"><b>Definition:</b> DMA.hpp:109</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_addb890a9a0331e2c00e291a93346801e"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#addb890a9a0331e2c00e291a93346801e">ComSquare::CPU::DMA::increment</a></div><div class="ttdeci">bool increment</div><div class="ttdoc">if this flag is 0: increment. Else: decrement. (The A address)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:65</div></div>
<div class="ttc" id="anamespaceComSquare_1_1CPU_html"><div class="ttname"><a href="namespaceComSquare_1_1CPU.html">ComSquare::CPU</a></div><div class="ttdef"><b>Definition:</b> AddressingModes.cpp:8</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a3c922413f610803ff3775367023b78b4"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a3c922413f610803ff3775367023b78b4">ComSquare::CPU::DMA::mode</a></div><div class="ttdeci">DMAMode mode</div><div class="ttdoc">DMA's mode: how many bytes/registers there is, how many writes...</div><div class="ttdef"><b>Definition:</b> DMA.hpp:61</div></div>
<div class="ttc" id="aInts_8hpp_html_a89f009aaf5d1964a000f44f09fa0bcf8"><div class="ttname"><a href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a></div><div class="ttdeci">unsigned uint24_t</div><div class="ttdef"><b>Definition:</b> Ints.hpp:10</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a34f471a48a9062c44e0260b3686ba06c"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06c">ComSquare::CPU::DMA::Direction</a></div><div class="ttdeci">Direction</div><div class="ttdef"><b>Definition:</b> DMA.hpp:43</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_aca7d4c5b094154f83f1a62e98b5d6a34"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#aca7d4c5b094154f83f1a62e98b5d6a34">ComSquare::CPU::DMA::operator=</a></div><div class="ttdeci">DMA &amp; operator=(const DMA &amp;)=delete</div><div class="ttdoc">A DMA is not assignable.</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_af77e48f1a5875defee964724e556a7b4"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#af77e48f1a5875defee964724e556a7b4">ComSquare::CPU::DMA::_writeOneByte</a></div><div class="ttdeci">unsigned _writeOneByte(uint24_t aAddress, uint24_t bAddress)</div><div class="ttdoc">Write one byte using the A address, the port and the _direction. Handle special cases where no write ...</div><div class="ttdef"><b>Definition:</b> DMA.cpp:71</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html">ComSquare::CPU::DMA</a></div><div class="ttdoc">Class handling all DMA/HDMA transfers (Direct Memory Access or H-Blank Direct Memory Access)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:19</div></div>
<div class="ttc" id="aclassComSquare_1_1Memory_1_1IMemoryBus_html"><div class="ttname"><a href="classComSquare_1_1Memory_1_1IMemoryBus.html">ComSquare::Memory::IMemoryBus</a></div><div class="ttdoc">The memory bus is the component responsible of mapping addresses to components address and transmitti...</div><div class="ttdef"><b>Definition:</b> IMemoryBus.hpp:19</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a9d6db87d17373060c5247858adc8d60d"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a9d6db87d17373060c5247858adc8d60d">ComSquare::CPU::DMA::raw</a></div><div class="ttdeci">uint24_t raw</div><div class="ttdef"><b>Definition:</b> DMA.hpp:85</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_ac15ec6b4981e6097e268a9b65be29a4f"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#ac15ec6b4981e6097e268a9b65be29a4f">ComSquare::CPU::DMA::read</a></div><div class="ttdeci">uint8_t read(uint8_t addr) const</div><div class="ttdoc">Bus helper to read from this channel.</div><div class="ttdef"><b>Definition:</b> DMA.cpp:20</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a36b2d5c22ea29a65637e250b95558227"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a36b2d5c22ea29a65637e250b95558227">ComSquare::CPU::DMA::_getModeOffset</a></div><div class="ttdeci">int _getModeOffset(int index) const</div><div class="ttdoc">Get an offset corresponding to the current DMAMode and the index of the currently transferred byte.</div><div class="ttdef"><b>Definition:</b> DMA.cpp:112</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a57b5deee11bcf984d7e2821cfb22b2f8"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a57b5deee11bcf984d7e2821cfb22b2f8">ComSquare::CPU::DMA::_bus</a></div><div class="ttdeci">Memory::IMemoryBus &amp; _bus</div><div class="ttdoc">The memory bus to use for read/write.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:96</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a590b393a8dd0cb07b436af0b65f9fb30"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a590b393a8dd0cb07b436af0b65f9fb30">ComSquare::CPU::DMA::_count</a></div><div class="ttdeci">union ComSquare::CPU::DMA::@40 _count</div><div class="ttdoc">The number of bytes to be transferred.</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_abc28baf74b33a1ab53c3773c84ed9c57"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#abc28baf74b33a1ab53c3773c84ed9c57">ComSquare::CPU::DMA::bytes</a></div><div class="ttdeci">uint8_t bytes[3]</div><div class="ttdef"><b>Definition:</b> DMA.hpp:80</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a84708ba0a5589a8ca73ed6284d570c04"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a84708ba0a5589a8ca73ed6284d570c04">ComSquare::CPU::DMA::bank</a></div><div class="ttdeci">uint8_t bank</div><div class="ttdef"><b>Definition:</b> DMA.hpp:83</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39a8b5fc9672d91f39e13f35269e5191db0"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a8b5fc9672d91f39e13f35269e5191db0">ComSquare::CPU::DMA::TwoToTwoBis</a></div><div class="ttdeci">@ TwoToTwoBis</div><div class="ttdoc">Exactly the same as TwoToTwo (not implemented on the SNES so this fallbacks)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:36</div></div>
<div class="ttc" id="aRegisterViewer_8hpp_html"><div class="ttname"><a href="RegisterViewer_8hpp.html">RegisterViewer.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a3f583dff51b42ad8e50bb54fcd14a451"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a3f583dff51b42ad8e50bb54fcd14a451">ComSquare::CPU::DMA::setBus</a></div><div class="ttdeci">void setBus(Memory::IMemoryBus &amp;bus)</div><div class="ttdoc">Set the memory bus used by this CPU.</div><div class="ttdef"><b>Definition:</b> DMA.cpp:15</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39ae8326b4f06978a369f0f2f7174aa447e"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39ae8326b4f06978a369f0f2f7174aa447e">ComSquare::CPU::DMA::FourToTwo</a></div><div class="ttdeci">@ FourToTwo</div><div class="ttdoc">4 byte is transferred to 2 register (write twice)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:32</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a34f471a48a9062c44e0260b3686ba06cac68d0326695de61779072fe85f0bbed1"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a34f471a48a9062c44e0260b3686ba06cac68d0326695de61779072fe85f0bbed1">ComSquare::CPU::DMA::AtoB</a></div><div class="ttdeci">@ AtoB</div><div class="ttdef"><b>Definition:</b> DMA.hpp:45</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39a4436f697495cdfb191337a6d4419a555"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a4436f697495cdfb191337a6d4419a555">ComSquare::CPU::DMA::TwoToTwo</a></div><div class="ttdeci">@ TwoToTwo</div><div class="ttdoc">2 byte is transferred to 2 register (write once)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:28</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a33579bc6e0052d0be73a17a32eb8262e"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a33579bc6e0052d0be73a17a32eb8262e">ComSquare::CPU::DMA::run</a></div><div class="ttdeci">unsigned run(unsigned cycles)</div><div class="ttdoc">Run the DMA for x cycles.</div><div class="ttdef"><b>Definition:</b> DMA.cpp:96</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_aec13e71fb0f68dcaa7b34b1cba600995"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#aec13e71fb0f68dcaa7b34b1cba600995">ComSquare::CPU::DMA::_port</a></div><div class="ttdeci">uint8_t _port</div><div class="ttdoc">If this is 'xx', the register accessed will be $21xx.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:75</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a41a3d98b718c3098b7a0858b50d6fd6e"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a41a3d98b718c3098b7a0858b50d6fd6e">ComSquare::CPU::DMA::getBus</a></div><div class="ttdeci">Memory::IMemoryBus &amp; getBus()</div><div class="ttdoc">Get the memory bus used by this CPU.</div><div class="ttdef"><b>Definition:</b> DMA.hpp:100</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a8cfd7983eca6c568f75fb243196a39d5"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a8cfd7983eca6c568f75fb243196a39d5">ComSquare::CPU::DMA::_controlRegister</a></div><div class="ttdeci">union ComSquare::CPU::DMA::@38 _controlRegister</div><div class="ttdoc">DMA Control register (various information about the transfer)</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a1ea72efaa83b0bb7862f6cc5fd08c69c"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a1ea72efaa83b0bb7862f6cc5fd08c69c">ComSquare::CPU::DMA::raw</a></div><div class="ttdeci">uint8_t raw</div><div class="ttdef"><b>Definition:</b> DMA.hpp:71</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39a5f0f9487ca32fb33306fb0a60622b775"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a5f0f9487ca32fb33306fb0a60622b775">ComSquare::CPU::DMA::TwoToOneBis</a></div><div class="ttdeci">@ TwoToOneBis</div><div class="ttdoc">Exactly the same as TwoToOne (not implemented on the SNES so this fallbacks)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:38</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a8a9151c3b6318eea50d556ca5eff985a"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a8a9151c3b6318eea50d556ca5eff985a">ComSquare::CPU::DMA::DMA</a></div><div class="ttdeci">DMA(Memory::IMemoryBus &amp;bus)</div><div class="ttdoc">Create a DMA channel with a given bus.</div><div class="ttdef"><b>Definition:</b> DMA.cpp:10</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a07adc4917067ddecea619a77fb2910f0"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a07adc4917067ddecea619a77fb2910f0">ComSquare::CPU::DMA::_aAddress</a></div><div class="ttdeci">union ComSquare::CPU::DMA::@39 _aAddress</div><div class="ttdoc">The absolute long address of the data from the A bus.</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a83cc22ce83580854ca78088362a2de9d"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a83cc22ce83580854ca78088362a2de9d">ComSquare::CPU::DMA::write</a></div><div class="ttdeci">void write(uint8_t addr, uint8_t data)</div><div class="ttdoc">Bus helper to write to this channel.</div><div class="ttdef"><b>Definition:</b> DMA.cpp:42</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39a86a0bca9633a504c13a142e8732d0654"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39a86a0bca9633a504c13a142e8732d0654">ComSquare::CPU::DMA::OneToOne</a></div><div class="ttdeci">@ OneToOne</div><div class="ttdoc">1 byte is transferred to 1 register (write once)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:26</div></div>
<div class="ttc" id="aclassComSquare_1_1CPU_1_1DMA_html_a09db4b625719ea8c624bc77a6ffcba39ae110f671ea0a774b3d0219cb199e65eb"><div class="ttname"><a href="classComSquare_1_1CPU_1_1DMA.html#a09db4b625719ea8c624bc77a6ffcba39ae110f671ea0a774b3d0219cb199e65eb">ComSquare::CPU::DMA::FourToTwoBis</a></div><div class="ttdeci">@ FourToTwoBis</div><div class="ttdoc">Exactly the same as FourToTwo (not implemented on the SNES so this fallbacks)</div><div class="ttdef"><b>Definition:</b> DMA.hpp:40</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>