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

877 lines
66 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: ComSquare::Cartridge::Cartridge Class Reference</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="namespaceComSquare.html">ComSquare</a></li><li class="navelem"><a class="el" href="namespaceComSquare_1_1Cartridge.html">Cartridge</a></li><li class="navelem"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="classComSquare_1_1Cartridge_1_1Cartridge-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ComSquare::Cartridge::Cartridge Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Contains the rom's memory/instructions.
<a href="classComSquare_1_1Cartridge_1_1Cartridge.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Cartridge_8hpp_source.html">Cartridge.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ComSquare::Cartridge::Cartridge:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classComSquare_1_1Cartridge_1_1Cartridge__inherit__graph.svg" width="198" height="1227"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div class="dynheader">
Collaboration diagram for ComSquare::Cartridge::Cartridge:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classComSquare_1_1Cartridge_1_1Cartridge__coll__graph.svg" width="458" height="1346"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3cc41a4d62e006abc4a437de0a6ac49a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a3cc41a4d62e006abc4a437de0a6ac49a">Cartridge</a> ()</td></tr>
<tr class="memdesc:a3cc41a4d62e006abc4a437de0a6ac49a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default constructor that doesn't load anything. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a3cc41a4d62e006abc4a437de0a6ac49a">More...</a><br /></td></tr>
<tr class="separator:a3cc41a4d62e006abc4a437de0a6ac49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad84333cbf5cd4f265a1b9b78a39215a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#ad84333cbf5cd4f265a1b9b78a39215a7">Cartridge</a> (const std::string &amp;romPath)</td></tr>
<tr class="memdesc:ad84333cbf5cd4f265a1b9b78a39215a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a rom from it's path. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#ad84333cbf5cd4f265a1b9b78a39215a7">More...</a><br /></td></tr>
<tr class="separator:ad84333cbf5cd4f265a1b9b78a39215a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcc71509d15d39691a71af38e60d757a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#abcc71509d15d39691a71af38e60d757a">Cartridge</a> (const <a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a> &amp;)=delete</td></tr>
<tr class="memdesc:abcc71509d15d39691a71af38e60d757a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cartridge can't be copied. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#abcc71509d15d39691a71af38e60d757a">More...</a><br /></td></tr>
<tr class="separator:abcc71509d15d39691a71af38e60d757a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8feefb29cae675afa8bcceca22ed7536"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a8feefb29cae675afa8bcceca22ed7536">operator=</a> (const <a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a> &amp;)=delete</td></tr>
<tr class="memdesc:a8feefb29cae675afa8bcceca22ed7536"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cartridge can't be assigned. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a8feefb29cae675afa8bcceca22ed7536">More...</a><br /></td></tr>
<tr class="separator:a8feefb29cae675afa8bcceca22ed7536"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d9aa80562f608bb9daa33700bfe9899"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a3d9aa80562f608bb9daa33700bfe9899">~Cartridge</a> () override=default</td></tr>
<tr class="memdesc:a3d9aa80562f608bb9daa33700bfe9899"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor that free the cartridge data. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a3d9aa80562f608bb9daa33700bfe9899">More...</a><br /></td></tr>
<tr class="separator:a3d9aa80562f608bb9daa33700bfe9899"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae90b6fe4f39d4bb5d17bb6c8d5d56eed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceComSquare_1_1Cartridge.html#a9f7c1ab5add21ef146acb1edc05aa5fb">CartridgeType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#ae90b6fe4f39d4bb5d17bb6c8d5d56eed">getType</a> ()</td></tr>
<tr class="memdesc:ae90b6fe4f39d4bb5d17bb6c8d5d56eed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return current type of the cartridge. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#ae90b6fe4f39d4bb5d17bb6c8d5d56eed">More...</a><br /></td></tr>
<tr class="separator:ae90b6fe4f39d4bb5d17bb6c8d5d56eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a765f900de75ab1af9595221e754d93c7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a765f900de75ab1af9595221e754d93c7">read</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) override</td></tr>
<tr class="memdesc:a765f900de75ab1af9595221e754d93c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read from the rom. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a765f900de75ab1af9595221e754d93c7">More...</a><br /></td></tr>
<tr class="separator:a765f900de75ab1af9595221e754d93c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa30c32b23035b94f67063e06ab5759bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#aa30c32b23035b94f67063e06ab5759bc">write</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr, uint8_t data) override</td></tr>
<tr class="memdesc:aa30c32b23035b94f67063e06ab5759bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the rom. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#aa30c32b23035b94f67063e06ab5759bc">More...</a><br /></td></tr>
<tr class="separator:aa30c32b23035b94f67063e06ab5759bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a032d13ae6651e9bcb434422f31bdcd80"><td class="memItemLeft" align="right" valign="top">std::filesystem::path&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a032d13ae6651e9bcb434422f31bdcd80">getRomPath</a> () const</td></tr>
<tr class="memdesc:a032d13ae6651e9bcb434422f31bdcd80"><td class="mdescLeft">&#160;</td><td class="mdescRight">The path of the rom file. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a032d13ae6651e9bcb434422f31bdcd80">More...</a><br /></td></tr>
<tr class="separator:a032d13ae6651e9bcb434422f31bdcd80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad033c3f0cb15f5b6124dcb8ba18e95b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#ad033c3f0cb15f5b6124dcb8ba18e95b0">getSize</a> () const override</td></tr>
<tr class="memdesc:ad033c3f0cb15f5b6124dcb8ba18e95b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the rom in bytes (without the smc header). <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#ad033c3f0cb15f5b6124dcb8ba18e95b0">More...</a><br /></td></tr>
<tr class="separator:ad033c3f0cb15f5b6124dcb8ba18e95b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19204a6bc37cdeb98d0173302f94d760"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a19204a6bc37cdeb98d0173302f94d760">loadRom</a> (const std::string &amp;path)</td></tr>
<tr class="memdesc:a19204a6bc37cdeb98d0173302f94d760"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the rom at the given path. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a19204a6bc37cdeb98d0173302f94d760">More...</a><br /></td></tr>
<tr class="separator:a19204a6bc37cdeb98d0173302f94d760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classComSquare_1_1Ram_1_1Ram"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classComSquare_1_1Ram_1_1Ram')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classComSquare_1_1Ram_1_1Ram.html">ComSquare::Ram::Ram</a></td></tr>
<tr class="memitem:a71d3876ff028ef14396f93bb91df4b12 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a71d3876ff028ef14396f93bb91df4b12">Ram</a> (size_t size, <a class="el" href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">Component</a>, std::string ramName)</td></tr>
<tr class="memdesc:a71d3876ff028ef14396f93bb91df4b12 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a ram of a given size in bytes. <a href="classComSquare_1_1Ram_1_1Ram.html#a71d3876ff028ef14396f93bb91df4b12">More...</a><br /></td></tr>
<tr class="separator:a71d3876ff028ef14396f93bb91df4b12 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f15b671e6a2b4d72585fd78848fdb58 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a1f15b671e6a2b4d72585fd78848fdb58">Ram</a> (const <a class="el" href="classComSquare_1_1Ram_1_1Ram.html">Ram</a> &amp;)=delete</td></tr>
<tr class="memdesc:a1f15b671e6a2b4d72585fd78848fdb58 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">The ram can't be copied. <a href="classComSquare_1_1Ram_1_1Ram.html#a1f15b671e6a2b4d72585fd78848fdb58">More...</a><br /></td></tr>
<tr class="separator:a1f15b671e6a2b4d72585fd78848fdb58 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac27ae4f0c92ee9f14d307eea4e7f5a9f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html">Ram</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#ac27ae4f0c92ee9f14d307eea4e7f5a9f">operator=</a> (<a class="el" href="classComSquare_1_1Ram_1_1Ram.html">Ram</a> &amp;)=delete</td></tr>
<tr class="memdesc:ac27ae4f0c92ee9f14d307eea4e7f5a9f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">The ram can't be assigned. <a href="classComSquare_1_1Ram_1_1Ram.html#ac27ae4f0c92ee9f14d307eea4e7f5a9f">More...</a><br /></td></tr>
<tr class="separator:ac27ae4f0c92ee9f14d307eea4e7f5a9f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28b5b266c8ea7103eee1ac50b2acfe45 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a28b5b266c8ea7103eee1ac50b2acfe45">~Ram</a> () override=default</td></tr>
<tr class="memdesc:a28b5b266c8ea7103eee1ac50b2acfe45 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor that free the ram. <a href="classComSquare_1_1Ram_1_1Ram.html#a28b5b266c8ea7103eee1ac50b2acfe45">More...</a><br /></td></tr>
<tr class="separator:a28b5b266c8ea7103eee1ac50b2acfe45 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a873f2becaa9b63d8864bb43eaae89fc6 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a873f2becaa9b63d8864bb43eaae89fc6">read</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) override</td></tr>
<tr class="memdesc:a873f2becaa9b63d8864bb43eaae89fc6 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the component. <a href="classComSquare_1_1Ram_1_1Ram.html#a873f2becaa9b63d8864bb43eaae89fc6">More...</a><br /></td></tr>
<tr class="separator:a873f2becaa9b63d8864bb43eaae89fc6 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f42b342ebf151574c1e523719f9cf52 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a0f42b342ebf151574c1e523719f9cf52">write</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr, uint8_t data) override</td></tr>
<tr class="memdesc:a0f42b342ebf151574c1e523719f9cf52 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to this component. <a href="classComSquare_1_1Ram_1_1Ram.html#a0f42b342ebf151574c1e523719f9cf52">More...</a><br /></td></tr>
<tr class="separator:a0f42b342ebf151574c1e523719f9cf52 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5ffc8d4eb97d6a1b0650eba97234fbb inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#ac5ffc8d4eb97d6a1b0650eba97234fbb">operator[]</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr)</td></tr>
<tr class="memdesc:ac5ffc8d4eb97d6a1b0650eba97234fbb inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the data at the address given. This can be used instead of read or write. <a href="classComSquare_1_1Ram_1_1Ram.html#ac5ffc8d4eb97d6a1b0650eba97234fbb">More...</a><br /></td></tr>
<tr class="separator:ac5ffc8d4eb97d6a1b0650eba97234fbb inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5012b9c7f27a52d7973cb109ae29ef65 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a5012b9c7f27a52d7973cb109ae29ef65">operator[]</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const</td></tr>
<tr class="memdesc:a5012b9c7f27a52d7973cb109ae29ef65 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the data at the address given. This can be used instead of read or write. <a href="classComSquare_1_1Ram_1_1Ram.html#a5012b9c7f27a52d7973cb109ae29ef65">More...</a><br /></td></tr>
<tr class="separator:a5012b9c7f27a52d7973cb109ae29ef65 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71d2424b05cf638d04402db2260c71aa inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a71d2424b05cf638d04402db2260c71aa">getName</a> () const override</td></tr>
<tr class="memdesc:a71d2424b05cf638d04402db2260c71aa inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of this accessor (used for debug purpose) <a href="classComSquare_1_1Ram_1_1Ram.html#a71d2424b05cf638d04402db2260c71aa">More...</a><br /></td></tr>
<tr class="separator:a71d2424b05cf638d04402db2260c71aa inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80af60fecd948b647d590435028ecf1f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">Component</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a80af60fecd948b647d590435028ecf1f">getComponent</a> () const override</td></tr>
<tr class="memdesc:a80af60fecd948b647d590435028ecf1f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the component of this accessor (used for debug purpose) <a href="classComSquare_1_1Ram_1_1Ram.html#a80af60fecd948b647d590435028ecf1f">More...</a><br /></td></tr>
<tr class="separator:a80af60fecd948b647d590435028ecf1f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a003803dabc201990c870f5405c7e6de1 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a003803dabc201990c870f5405c7e6de1">getSize</a> () const override</td></tr>
<tr class="memdesc:a003803dabc201990c870f5405c7e6de1 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the ram in bytes. <a href="classComSquare_1_1Ram_1_1Ram.html#a003803dabc201990c870f5405c7e6de1">More...</a><br /></td></tr>
<tr class="separator:a003803dabc201990c870f5405c7e6de1 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73c5c7970f12f28444d1afcc846c61ed inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a73c5c7970f12f28444d1afcc846c61ed">setSize</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> size)</td></tr>
<tr class="memdesc:a73c5c7970f12f28444d1afcc846c61ed inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the size of this ram. <a href="classComSquare_1_1Ram_1_1Ram.html#a73c5c7970f12f28444d1afcc846c61ed">More...</a><br /></td></tr>
<tr class="separator:a73c5c7970f12f28444d1afcc846c61ed inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac43d5eb08820d5a71a29275db8c95385 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">std::span&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#ac43d5eb08820d5a71a29275db8c95385">getData</a> ()</td></tr>
<tr class="memdesc:ac43d5eb08820d5a71a29275db8c95385 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw data of the RAM. <a href="classComSquare_1_1Ram_1_1Ram.html#ac43d5eb08820d5a71a29275db8c95385">More...</a><br /></td></tr>
<tr class="separator:ac43d5eb08820d5a71a29275db8c95385 inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe07a6822ffba50e49c4c0bdc099b66f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">std::span&lt; const uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#afe07a6822ffba50e49c4c0bdc099b66f">getData</a> () const</td></tr>
<tr class="memdesc:afe07a6822ffba50e49c4c0bdc099b66f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw data of the RAM. <a href="classComSquare_1_1Ram_1_1Ram.html#afe07a6822ffba50e49c4c0bdc099b66f">More...</a><br /></td></tr>
<tr class="separator:afe07a6822ffba50e49c4c0bdc099b66f inherit pub_methods_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html">ComSquare::Memory::ARectangleMemory</a></td></tr>
<tr class="memitem:ae3d2535084fcf3d923aea4d9b0d9626e inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#ae3d2535084fcf3d923aea4d9b0d9626e">getRelativeAddress</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const override</td></tr>
<tr class="memdesc:ae3d2535084fcf3d923aea4d9b0d9626e inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate an absolute address to a relative address. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#ae3d2535084fcf3d923aea4d9b0d9626e">More...</a><br /></td></tr>
<tr class="separator:ae3d2535084fcf3d923aea4d9b0d9626e inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a182a3c6842814d052199adc24bc85ed3 inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a182a3c6842814d052199adc24bc85ed3">hasMemoryAt</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const override</td></tr>
<tr class="memdesc:a182a3c6842814d052199adc24bc85ed3 inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if this component has mapped the address. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a182a3c6842814d052199adc24bc85ed3">More...</a><br /></td></tr>
<tr class="separator:a182a3c6842814d052199adc24bc85ed3 inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf39bde614e7044e3de2ea4356abb63b inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#aaf39bde614e7044e3de2ea4356abb63b">setMemoryRegion</a> (uint8_t startBank, uint8_t endBank, uint16_t startPage, uint16_t endPage)</td></tr>
<tr class="memdesc:aaf39bde614e7044e3de2ea4356abb63b inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change starting and ending points of this mapped memory. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#aaf39bde614e7044e3de2ea4356abb63b">More...</a><br /></td></tr>
<tr class="separator:aaf39bde614e7044e3de2ea4356abb63b inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7125cd1619a07e1030c88bb849d44425 inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a7125cd1619a07e1030c88bb849d44425">getValueName</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const override</td></tr>
<tr class="memdesc:a7125cd1619a07e1030c88bb849d44425 inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the data at the address. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a7125cd1619a07e1030c88bb849d44425">More...</a><br /></td></tr>
<tr class="separator:a7125cd1619a07e1030c88bb849d44425 inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76baca93e0dbd0b43f4952295e300edc inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a76baca93e0dbd0b43f4952295e300edc">~ARectangleMemory</a> () override=default</td></tr>
<tr class="memdesc:a76baca93e0dbd0b43f4952295e300edc inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default destructor. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a76baca93e0dbd0b43f4952295e300edc">More...</a><br /></td></tr>
<tr class="separator:a76baca93e0dbd0b43f4952295e300edc inherit pub_methods_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classComSquare_1_1Memory_1_1IMemory"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classComSquare_1_1Memory_1_1IMemory')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">ComSquare::Memory::IMemory</a></td></tr>
<tr class="memitem:a0a0679f3cf924e3562d6f89a80aae069 inherit pub_methods_classComSquare_1_1Memory_1_1IMemory"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a0a0679f3cf924e3562d6f89a80aae069">~IMemory</a> ()=default</td></tr>
<tr class="memdesc:a0a0679f3cf924e3562d6f89a80aae069 inherit pub_methods_classComSquare_1_1Memory_1_1IMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">A virtual default destructor. <a href="classComSquare_1_1Memory_1_1IMemory.html#a0a0679f3cf924e3562d6f89a80aae069">More...</a><br /></td></tr>
<tr class="separator:a0a0679f3cf924e3562d6f89a80aae069 inherit pub_methods_classComSquare_1_1Memory_1_1IMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a93c463170a03e3bb59a50ba78b2c60a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComSquare_1_1Cartridge_1_1Header.html">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a93c463170a03e3bb59a50ba78b2c60a1">header</a></td></tr>
<tr class="memdesc:a93c463170a03e3bb59a50ba78b2c60a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header of the cartridge. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a93c463170a03e3bb59a50ba78b2c60a1">More...</a><br /></td></tr>
<tr class="separator:a93c463170a03e3bb59a50ba78b2c60a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a1dbd870d1ad8bfe25426cc7fd263deab"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a1dbd870d1ad8bfe25426cc7fd263deab">_loadHeader</a> ()</td></tr>
<tr class="memdesc:a1dbd870d1ad8bfe25426cc7fd263deab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the public variable header by parsing the header in the ROM. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a1dbd870d1ad8bfe25426cc7fd263deab">More...</a><br /></td></tr>
<tr class="separator:a1dbd870d1ad8bfe25426cc7fd263deab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8443e9b50e8d0ae1ac9e749042ed231f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a8443e9b50e8d0ae1ac9e749042ed231f">_isSPCFile</a> ()</td></tr>
<tr class="memdesc:a8443e9b50e8d0ae1ac9e749042ed231f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the cartridge is not a game but a SPC audio dump. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a8443e9b50e8d0ae1ac9e749042ed231f">More...</a><br /></td></tr>
<tr class="separator:a8443e9b50e8d0ae1ac9e749042ed231f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfbecf451634e5699593ac9fea940356"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#abfbecf451634e5699593ac9fea940356">_getHeaderAddress</a> ()</td></tr>
<tr class="memdesc:abfbecf451634e5699593ac9fea940356"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the address of the header. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#abfbecf451634e5699593ac9fea940356">More...</a><br /></td></tr>
<tr class="separator:abfbecf451634e5699593ac9fea940356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a669043a0708921bed0bc18c37abb1c96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComSquare_1_1Cartridge_1_1Header.html">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a669043a0708921bed0bc18c37abb1c96">_mapHeader</a> (uint32_t headerAddress)</td></tr>
<tr class="memdesc:a669043a0708921bed0bc18c37abb1c96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the memory to get a readable header. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a669043a0708921bed0bc18c37abb1c96">More...</a><br /></td></tr>
<tr class="separator:a669043a0708921bed0bc18c37abb1c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a2312babcc070998f38da5a90e4c3bb7b"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a2312babcc070998f38da5a90e4c3bb7b">getRomSize</a> (const std::string &amp;romPath)</td></tr>
<tr class="memdesc:a2312babcc070998f38da5a90e4c3bb7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a rom from it's path. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a2312babcc070998f38da5a90e4c3bb7b">More...</a><br /></td></tr>
<tr class="separator:a2312babcc070998f38da5a90e4c3bb7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ab30a61526b165b80c2953a86c59754eb"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#ab30a61526b165b80c2953a86c59754eb">_romPath</a></td></tr>
<tr class="memdesc:ab30a61526b165b80c2953a86c59754eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The path of the currently loaded rom. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#ab30a61526b165b80c2953a86c59754eb">More...</a><br /></td></tr>
<tr class="separator:ab30a61526b165b80c2953a86c59754eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a564eb98c035530b5f0efbe6c5a269377"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a564eb98c035530b5f0efbe6c5a269377">_romStart</a> = 0</td></tr>
<tr class="memdesc:a564eb98c035530b5f0efbe6c5a269377"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sometime the rom's data has an offset for a SMC header. This value indicate the start of the real rom discarding this header. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a564eb98c035530b5f0efbe6c5a269377">More...</a><br /></td></tr>
<tr class="separator:a564eb98c035530b5f0efbe6c5a269377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f7ad9feebdf5f0d9c6113be6b7cb860"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceComSquare_1_1Cartridge.html#a9f7c1ab5add21ef146acb1edc05aa5fb">CartridgeType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a3f7ad9feebdf5f0d9c6113be6b7cb860">_type</a> = <a class="el" href="namespaceComSquare_1_1Cartridge.html#a9f7c1ab5add21ef146acb1edc05aa5fbaec6411672e2aa9b8bb91d5a5f83a4997">Game</a></td></tr>
<tr class="memdesc:a3f7ad9feebdf5f0d9c6113be6b7cb860"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current type of the cartridge. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a3f7ad9feebdf5f0d9c6113be6b7cb860">More...</a><br /></td></tr>
<tr class="separator:a3f7ad9feebdf5f0d9c6113be6b7cb860"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:a20665de00ff90e80588bc84c80a364c7"><td class="memItemLeft" align="right" valign="top">static constexpr std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html#a20665de00ff90e80588bc84c80a364c7">_magicSPC</a> = &quot;SNES-SPC700 Sound File Data v0.30&quot;</td></tr>
<tr class="memdesc:a20665de00ff90e80588bc84c80a364c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Magic <a class="el" href="structComSquare_1_1Cartridge_1_1Header.html">Header</a> string of a SPC Rom. <a href="classComSquare_1_1Cartridge_1_1Cartridge.html#a20665de00ff90e80588bc84c80a364c7">More...</a><br /></td></tr>
<tr class="separator:a20665de00ff90e80588bc84c80a364c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classComSquare_1_1Ram_1_1Ram"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classComSquare_1_1Ram_1_1Ram')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classComSquare_1_1Ram_1_1Ram.html">ComSquare::Ram::Ram</a></td></tr>
<tr class="memitem:a4c4fc2604f010903a00a091e12cf0378 inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a4c4fc2604f010903a00a091e12cf0378">_data</a></td></tr>
<tr class="memdesc:a4c4fc2604f010903a00a091e12cf0378 inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">The ram. (Can be used for WRam, SRam, VRam etc) <a href="classComSquare_1_1Ram_1_1Ram.html#a4c4fc2604f010903a00a091e12cf0378">More...</a><br /></td></tr>
<tr class="separator:a4c4fc2604f010903a00a091e12cf0378 inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28a7867b95ceb57d7a97ba046e8ca14f inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">Component</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a28a7867b95ceb57d7a97ba046e8ca14f">_ramType</a></td></tr>
<tr class="memdesc:a28a7867b95ceb57d7a97ba046e8ca14f inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">An id identifying the type of memory this is (for the debugger) <a href="classComSquare_1_1Ram_1_1Ram.html#a28a7867b95ceb57d7a97ba046e8ca14f">More...</a><br /></td></tr>
<tr class="separator:a28a7867b95ceb57d7a97ba046e8ca14f inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c0780f64fe626ba63e4d123ad9eaeef inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Ram_1_1Ram.html#a3c0780f64fe626ba63e4d123ad9eaeef">_ramName</a></td></tr>
<tr class="memdesc:a3c0780f64fe626ba63e4d123ad9eaeef inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="mdescLeft">&#160;</td><td class="mdescRight">The name of this ram. <a href="classComSquare_1_1Ram_1_1Ram.html#a3c0780f64fe626ba63e4d123ad9eaeef">More...</a><br /></td></tr>
<tr class="separator:a3c0780f64fe626ba63e4d123ad9eaeef inherit pro_attribs_classComSquare_1_1Ram_1_1Ram"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html">ComSquare::Memory::ARectangleMemory</a></td></tr>
<tr class="memitem:a61cac92b775cdfa5a0f534e67b83ddf4 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a61cac92b775cdfa5a0f534e67b83ddf4">_startBank</a> = 0</td></tr>
<tr class="memdesc:a61cac92b775cdfa5a0f534e67b83ddf4 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">The first bank to map to. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a61cac92b775cdfa5a0f534e67b83ddf4">More...</a><br /></td></tr>
<tr class="separator:a61cac92b775cdfa5a0f534e67b83ddf4 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09ec93e172a976fb4b762f77dcb8b709 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a09ec93e172a976fb4b762f77dcb8b709">_endBank</a> = 0</td></tr>
<tr class="memdesc:a09ec93e172a976fb4b762f77dcb8b709 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">The last bank to map to. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a09ec93e172a976fb4b762f77dcb8b709">More...</a><br /></td></tr>
<tr class="separator:a09ec93e172a976fb4b762f77dcb8b709 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bba8f5e10bd9dfd122a84f6707a73f8 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a8bba8f5e10bd9dfd122a84f6707a73f8">_startPage</a> = 0</td></tr>
<tr class="memdesc:a8bba8f5e10bd9dfd122a84f6707a73f8 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">The first address of each bank to map. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#a8bba8f5e10bd9dfd122a84f6707a73f8">More...</a><br /></td></tr>
<tr class="separator:a8bba8f5e10bd9dfd122a84f6707a73f8 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5e3772f4f9c40f65b3e165646876110 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1ARectangleMemory.html#ac5e3772f4f9c40f65b3e165646876110">_endPage</a> = 0</td></tr>
<tr class="memdesc:ac5e3772f4f9c40f65b3e165646876110 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">The last address of each bank to map. <a href="classComSquare_1_1Memory_1_1ARectangleMemory.html#ac5e3772f4f9c40f65b3e165646876110">More...</a><br /></td></tr>
<tr class="separator:ac5e3772f4f9c40f65b3e165646876110 inherit pro_attribs_classComSquare_1_1Memory_1_1ARectangleMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Contains the rom's memory/instructions. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a3cc41a4d62e006abc4a437de0a6ac49a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cc41a4d62e006abc4a437de0a6ac49a">&#9670;&nbsp;</a></span>Cartridge() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ComSquare::Cartridge::Cartridge::Cartridge </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>A default constructor that doesn't load anything. </p>
</div>
</div>
<a id="ad84333cbf5cd4f265a1b9b78a39215a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad84333cbf5cd4f265a1b9b78a39215a7">&#9670;&nbsp;</a></span>Cartridge() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ComSquare::Cartridge::Cartridge::Cartridge </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>romPath</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Load a rom from it's path. </p>
</div>
</div>
<a id="abcc71509d15d39691a71af38e60d757a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcc71509d15d39691a71af38e60d757a">&#9670;&nbsp;</a></span>Cartridge() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ComSquare::Cartridge::Cartridge::Cartridge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The cartridge can't be copied. </p>
</div>
</div>
<a id="a3d9aa80562f608bb9daa33700bfe9899"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d9aa80562f608bb9daa33700bfe9899">&#9670;&nbsp;</a></span>~Cartridge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ComSquare::Cartridge::Cartridge::~Cartridge </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor that free the cartridge data. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abfbecf451634e5699593ac9fea940356"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfbecf451634e5699593ac9fea940356">&#9670;&nbsp;</a></span>_getHeaderAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint32_t ComSquare::Cartridge::Cartridge::_getHeaderAddress </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the address of the header. </p>
<dl class="section return"><dt>Returns</dt><dd>The address of this cartridge header. </dd></dl>
</div>
</div>
<a id="a8443e9b50e8d0ae1ac9e749042ed231f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8443e9b50e8d0ae1ac9e749042ed231f">&#9670;&nbsp;</a></span>_isSPCFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ComSquare::Cartridge::Cartridge::_isSPCFile </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if the cartridge is not a game but a SPC audio dump. </p>
</div>
</div>
<a id="a1dbd870d1ad8bfe25426cc7fd263deab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1dbd870d1ad8bfe25426cc7fd263deab">&#9670;&nbsp;</a></span>_loadHeader()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ComSquare::Cartridge::Cartridge::_loadHeader </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the public variable header by parsing the header in the ROM. </p>
<dl class="section return"><dt>Returns</dt><dd>True if this cartridge has a SCM header, false otherwise. </dd></dl>
</div>
</div>
<a id="a669043a0708921bed0bc18c37abb1c96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a669043a0708921bed0bc18c37abb1c96">&#9670;&nbsp;</a></span>_mapHeader()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structComSquare_1_1Cartridge_1_1Header.html">Header</a> ComSquare::Cartridge::Cartridge::_mapHeader </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>headerAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Parse the memory to get a readable header. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">headerAddress</td><td>The address you want to parse. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A header struct representing the data at the memory address you passed. </dd></dl>
</div>
</div>
<a id="a032d13ae6651e9bcb434422f31bdcd80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a032d13ae6651e9bcb434422f31bdcd80">&#9670;&nbsp;</a></span>getRomPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::filesystem::path ComSquare::Cartridge::Cartridge::getRomPath </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>The path of the rom file. </p>
<dl class="section return"><dt>Returns</dt><dd>The path of the currently loaded rom file. </dd></dl>
</div>
</div>
<a id="a2312babcc070998f38da5a90e4c3bb7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2312babcc070998f38da5a90e4c3bb7b">&#9670;&nbsp;</a></span>getRomSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t ComSquare::Cartridge::Cartridge::getRomSize </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>romPath</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the size of a rom from it's path. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">romPath</td><td>The path of the rom to get info from. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The size of the rom. </dd></dl>
</div>
</div>
<a id="ad033c3f0cb15f5b6124dcb8ba18e95b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad033c3f0cb15f5b6124dcb8ba18e95b0">&#9670;&nbsp;</a></span>getSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> ComSquare::Cartridge::Cartridge::getSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the size of the rom in bytes (without the smc header). </p>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a1072ab44e7389913ff67cb77ff118c8b">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="ae90b6fe4f39d4bb5d17bb6c8d5d56eed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae90b6fe4f39d4bb5d17bb6c8d5d56eed">&#9670;&nbsp;</a></span>getType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceComSquare_1_1Cartridge.html#a9f7c1ab5add21ef146acb1edc05aa5fb">CartridgeType</a> ComSquare::Cartridge::Cartridge::getType </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return current type of the cartridge. </p>
</div>
</div>
<a id="a19204a6bc37cdeb98d0173302f94d760"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19204a6bc37cdeb98d0173302f94d760">&#9670;&nbsp;</a></span>loadRom()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ComSquare::Cartridge::Cartridge::loadRom </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load the rom at the given path. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rom</td><td>The path of the rom. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classComSquare_1_1InvalidRomException.html" title="Exception thrown when someone tries to load an invalid rom.">InvalidRomException</a></td><td>If the rom is invalid, this exception is thrown. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8feefb29cae675afa8bcceca22ed7536"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8feefb29cae675afa8bcceca22ed7536">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a>&amp; ComSquare::Cartridge::Cartridge::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classComSquare_1_1Cartridge_1_1Cartridge.html">Cartridge</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The cartridge can't be assigned. </p>
</div>
</div>
<a id="a765f900de75ab1af9595221e754d93c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a765f900de75ab1af9595221e754d93c7">&#9670;&nbsp;</a></span>read()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint8_t ComSquare::Cartridge::Cartridge::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>addr</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read from the rom. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>The address to read from. The address 0x0 should refer to the first byte of the rom's memory. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classComSquare_1_1InvalidAddress.html" title="Exception thrown when trying to read/write to an invalid address.">InvalidAddress</a></td><td>will be thrown if the address is more than the size of the rom's memory. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Return the data at the address. </dd></dl>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a8459ed12c4172ee29ecdc84330f99ff7">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="aa30c32b23035b94f67063e06ab5759bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa30c32b23035b94f67063e06ab5759bc">&#9670;&nbsp;</a></span>write()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ComSquare::Cartridge::Cartridge::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write data to the rom. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>The address to write to. The address 0x0 should refer to the first byte of the rom's memory. </td></tr>
<tr><td class="paramname">data</td><td>The data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classComSquare_1_1InvalidAddress.html" title="Exception thrown when trying to read/write to an invalid address.">InvalidAddress</a></td><td>will be thrown if the address is more than the size of the rom's memory. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a449bc89798a0b86028bb0413106514d9">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a20665de00ff90e80588bc84c80a364c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20665de00ff90e80588bc84c80a364c7">&#9670;&nbsp;</a></span>_magicSPC</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr std::string_view ComSquare::Cartridge::Cartridge::_magicSPC = &quot;SNES-SPC700 Sound File Data v0.30&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Magic <a class="el" href="structComSquare_1_1Cartridge_1_1Header.html">Header</a> string of a SPC Rom. </p>
</div>
</div>
<a id="ab30a61526b165b80c2953a86c59754eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab30a61526b165b80c2953a86c59754eb">&#9670;&nbsp;</a></span>_romPath</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string ComSquare::Cartridge::Cartridge::_romPath</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The path of the currently loaded rom. </p>
</div>
</div>
<a id="a564eb98c035530b5f0efbe6c5a269377"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a564eb98c035530b5f0efbe6c5a269377">&#9670;&nbsp;</a></span>_romStart</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint16_t ComSquare::Cartridge::Cartridge::_romStart = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sometime the rom's data has an offset for a SMC header. This value indicate the start of the real rom discarding this header. </p>
</div>
</div>
<a id="a3f7ad9feebdf5f0d9c6113be6b7cb860"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f7ad9feebdf5f0d9c6113be6b7cb860">&#9670;&nbsp;</a></span>_type</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceComSquare_1_1Cartridge.html#a9f7c1ab5add21ef146acb1edc05aa5fb">CartridgeType</a> ComSquare::Cartridge::Cartridge::_type = <a class="el" href="namespaceComSquare_1_1Cartridge.html#a9f7c1ab5add21ef146acb1edc05aa5fbaec6411672e2aa9b8bb91d5a5f83a4997">Game</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Current type of the cartridge. </p>
</div>
</div>
<a id="a93c463170a03e3bb59a50ba78b2c60a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93c463170a03e3bb59a50ba78b2c60a1">&#9670;&nbsp;</a></span>header</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structComSquare_1_1Cartridge_1_1Header.html">Header</a> ComSquare::Cartridge::Cartridge::header</td>
</tr>
</table>
</div><div class="memdoc">
<p>The header of the cartridge. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>sources/Cartridge/<a class="el" href="Cartridge_8hpp_source.html">Cartridge.hpp</a></li>
<li>sources/Cartridge/<a class="el" href="Cartridge_8cpp.html">Cartridge.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- 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>