<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tauwasser.eu/index.php?action=history&amp;feed=atom&amp;title=MMM01</id>
	<title>MMM01 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tauwasser.eu/index.php?action=history&amp;feed=atom&amp;title=MMM01"/>
	<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;action=history"/>
	<updated>2026-05-25T05:12:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=151&amp;oldid=prev</id>
		<title>Tauwasser: /* Separate MBC1 Mode #WE */ -- --&gt; mdash</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=151&amp;oldid=prev"/>
		<updated>2019-09-15T14:54:28Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Separate MBC1 Mode #WE: &lt;/span&gt; -- --&amp;gt; mdash&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:54, 15 September 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l228&quot; &gt;Line 228:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 228:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Separate MBC1 Mode #WE ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Separate MBC1 Mode #WE ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The MBC1 Mode #WE stands out as being separated from mapping logic. Instead, if its #WE is not deasserted, it can be freely written even in mapped mode. However, the address line multiplexing for 16&amp;amp;nbsp;Mbit and 4&amp;amp;nbsp;Mbit does not switch with the mode setting &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-- &lt;/del&gt;which given a fixed ROM/SRAM wiring on the cartridge &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-- &lt;/del&gt;would need to be done in order for a hypothetical 16&amp;amp;nbsp;Mbit/256&amp;amp;nbsp;kBit mode to be feasible.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The MBC1 Mode #WE stands out as being separated from mapping logic. Instead, if its #WE is not deasserted, it can be freely written even in mapped mode. However, the address line multiplexing for 16&amp;amp;nbsp;Mbit and 4&amp;amp;nbsp;Mbit does not switch with the mode setting&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;amp;mdash;&lt;/ins&gt;which given a fixed ROM/SRAM wiring on the cartridge&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;amp;mdash;&lt;/ins&gt;would need to be done in order for a hypothetical 16&amp;amp;nbsp;Mbit/256&amp;amp;nbsp;kBit mode to be feasible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Behavior =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Behavior =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key tw_eu_mw-mw_:diff::1.12:old-150:rev-151 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=150&amp;oldid=prev</id>
		<title>Tauwasser: /* SRAM Enable/Disable */ sp</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=150&amp;oldid=prev"/>
		<updated>2019-09-15T14:53:22Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;SRAM Enable/Disable: &lt;/span&gt; sp&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:53, 15 September 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l222&quot; &gt;Line 222:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 222:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== SRAM Enable/Disable ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== SRAM Enable/Disable ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most glaringly missing feature of MMM01 is an option to disable SRAM access for individual games. The Unknown bit in [[#Mode Register]] does not provide for this either. The only commercial cartridge containing MMM01 and SRAM is Momotarou Collection 2 and it tries to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sacrifices &lt;/del&gt;one SRAM bank to make sure that one game has no chance of deleting the other's save file. However, the PCB only has one 64 KiB SRAM and the RAM address lines are all unconnected.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most glaringly missing feature of MMM01 is an option to disable SRAM access for individual games. The Unknown bit in [[#Mode Register]] does not provide for this either. The only commercial cartridge containing MMM01 and SRAM is Momotarou Collection 2 and it tries to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sacrifice &lt;/ins&gt;one SRAM bank to make sure that one game has no chance of deleting the other's save file. However, the PCB only has one 64 KiB SRAM and the RAM address lines are all unconnected.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Having to spend 64&amp;amp;nbsp;kBit to ''disable'' SRAM access seems like a waste considering a simple OR-gate could have stopped SRAM access.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Having to spend 64&amp;amp;nbsp;kBit to ''disable'' SRAM access seems like a waste considering a simple OR-gate could have stopped SRAM access.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key tw_eu_mw-mw_:diff::1.12:old-148:rev-150 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=148&amp;oldid=prev</id>
		<title>Tauwasser: /* SRAM Enable/Disable */ clarify</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=148&amp;oldid=prev"/>
		<updated>2019-05-01T19:28:45Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;SRAM Enable/Disable: &lt;/span&gt; clarify&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:28, 1 May 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l222&quot; &gt;Line 222:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 222:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== SRAM Enable/Disable ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== SRAM Enable/Disable ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most glaringly missing feature of MMM01 is an option to disable SRAM access for individual games. The Unknown bit in [[#Mode Register]] does not provide for this either. The only commercial cartridge containing MMM01 and SRAM is Momotarou Collection 2 and it sacrifices one &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;RAM &lt;/del&gt;bank to make sure that one game has no chance of deleting the other's save file.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most glaringly missing feature of MMM01 is an option to disable SRAM access for individual games. The Unknown bit in [[#Mode Register]] does not provide for this either. The only commercial cartridge containing MMM01 and SRAM is Momotarou Collection 2 and it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tries to &lt;/ins&gt;sacrifices one &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;SRAM &lt;/ins&gt;bank to make sure that one game has no chance of deleting the other's save file&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. However, the PCB only has one 64 KiB SRAM and the RAM address lines are all unconnected&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Having to spend 64&amp;amp;nbsp;kBit to ''disable'' SRAM access seems like a waste considering a simple OR-gate could have stopped SRAM access.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Having to spend 64&amp;amp;nbsp;kBit to ''disable'' SRAM access seems like a waste considering a simple OR-gate could have stopped SRAM access.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=144&amp;oldid=prev</id>
		<title>Tauwasser: correct pin 16 number</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=144&amp;oldid=prev"/>
		<updated>2019-05-01T16:05:24Z</updated>

		<summary type="html">&lt;p&gt;correct pin 16 number&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 16:05, 1 May 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l53&quot; &gt;Line 53:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 53:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Address Bus&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Address Bus&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;15&lt;/del&gt;, 29, 27, 21&amp;amp;ndash;17, 22&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;16&lt;/ins&gt;, 29, 27, 21&amp;amp;ndash;17, 22&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|RA22&amp;amp;ndash;RA14&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|RA22&amp;amp;ndash;RA14&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|O&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|O&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key tw_eu_mw-mw_:diff::1.12:old-141:rev-144 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=141&amp;oldid=prev</id>
		<title>Tauwasser: /* Modes of Operation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=141&amp;oldid=prev"/>
		<updated>2018-08-30T18:31:06Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Modes of Operation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:31, 30 August 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot; &gt;Line 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 164:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nintendo's MMM01 has two modes of operation ''mapped'' and ''unmapped''. It defaults to ''unmapped'' after reset.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nintendo's MMM01 has two modes of operation ''mapped'' and ''unmapped''. It defaults to ''unmapped'' after reset.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In ''unmapped'' state, the upper ROM address lines RA22..RA15 are all forced to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/del&gt;1&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/del&gt;, meaning the ROM entry point will be in ROM bank 0x1FE with the only other accessible ROM bank being 0x1FF.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In ''unmapped'' state, the upper ROM address lines RA22..RA15 are all forced to 1, meaning the ROM entry point will be in ROM bank 0x1FE with the only other accessible ROM bank being 0x1FF.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is used to lock write access to the upper bits of the known [[MBC1]] registers after base ROM and RAM banks and masks have been set up.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is used to lock write access to the upper bits of the known [[MBC1]] registers after base ROM and RAM banks and masks have been set up.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key tw_eu_mw-mw_:diff::1.12:old-140:rev-141 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=140&amp;oldid=prev</id>
		<title>Tauwasser: /* Modes of Operation */ add more info about unmapped state</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=140&amp;oldid=prev"/>
		<updated>2018-08-30T18:30:42Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Modes of Operation: &lt;/span&gt; add more info about unmapped state&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:30, 30 August 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l163&quot; &gt;Line 163:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 163:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nintendo's MMM01 has two modes of operation ''mapped'' and ''unmapped''. It defaults to ''unmapped'' after reset.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nintendo's MMM01 has two modes of operation ''mapped'' and ''unmapped''. It defaults to ''unmapped'' after reset.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In ''unmapped'' state, the upper ROM address lines RA22..RA15 are all forced to '1', meaning the ROM entry point will be in ROM bank 0x1FE with the only other accessible ROM bank being 0x1FF.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is used to lock write access to the upper bits of the known [[MBC1]] registers after base ROM and RAM banks and masks have been set up.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is used to lock write access to the upper bits of the known [[MBC1]] registers after base ROM and RAM banks and masks have been set up.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key tw_eu_mw-mw_:diff::1.12:old-112:rev-140 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=112&amp;oldid=prev</id>
		<title>Tauwasser: add mmm01 information</title>
		<link rel="alternate" type="text/html" href="https://wiki.tauwasser.eu/index.php?title=MMM01&amp;diff=112&amp;oldid=prev"/>
		<updated>2017-06-23T17:56:18Z</updated>

		<summary type="html">&lt;p&gt;add mmm01 information&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
Nintendo's MMM01 can be used to address up to 64&amp;amp;nbsp;Mbit of ROM and 1&amp;amp;nbsp;Mbit of SRAM depending on the mode MMM01 is set to.&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
&lt;br /&gt;
[[Image:MMM01 Pinout.png|center|x500px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable pintable&amp;quot; style=&amp;quot;margin:1em auto; width: 66%;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width: 10%;&amp;quot; | Pin No.&lt;br /&gt;
!style=&amp;quot;width: 20%;&amp;quot; | Name&lt;br /&gt;
!style=&amp;quot;width: 10%;&amp;quot; | Type&lt;br /&gt;
!style=&amp;quot;width: 60%;&amp;quot; | Comment&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|VCC&lt;br /&gt;
|PWR&lt;br /&gt;
|5V supply&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|GND&lt;br /&gt;
|PWR&lt;br /&gt;
|Ground supply&lt;br /&gt;
|-&lt;br /&gt;
|5&amp;amp;ndash;11&lt;br /&gt;
|D6&amp;amp;ndash;D0&lt;br /&gt;
|I&lt;br /&gt;
|Data Bus&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|{{Overline|RD}}&lt;br /&gt;
|I&lt;br /&gt;
|Low-Active Read Enable&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|{{Overline|WR}}&lt;br /&gt;
|I&lt;br /&gt;
|Low-Active Write Enable&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|{{Overline|CS}}&lt;br /&gt;
|I&lt;br /&gt;
|Low-Active Chip Select&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|{{Overline|RESET}}&lt;br /&gt;
|I&lt;br /&gt;
|Low-Active Asynchronous Reset&lt;br /&gt;
|-&lt;br /&gt;
|13&amp;amp;ndash;15&lt;br /&gt;
|A15&amp;amp;ndash;A13&lt;br /&gt;
|I&lt;br /&gt;
|Address Bus&lt;br /&gt;
|-&lt;br /&gt;
|15, 29, 27, 21&amp;amp;ndash;17, 22&lt;br /&gt;
|RA22&amp;amp;ndash;RA14&lt;br /&gt;
|O&lt;br /&gt;
|Upper ROM Address Lines&lt;br /&gt;
|-&lt;br /&gt;
|26&amp;amp;ndash;23&lt;br /&gt;
|AA16&amp;amp;ndash;AA13&lt;br /&gt;
|O&lt;br /&gt;
|Upper RAM Address Lines&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|{{Overline|ROM_CS}}&lt;br /&gt;
|O&lt;br /&gt;
|Low-Active ROM Chip Select&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|{{Overline|RAM_CS}}&lt;br /&gt;
|O&lt;br /&gt;
|Low-Active RAM Chip Select&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|RAM_CS&lt;br /&gt;
|O&lt;br /&gt;
|High-Active RAM Chip Select&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footprint: QFP80P900X900-32&lt;br /&gt;
&lt;br /&gt;
Remarks: All I/O pins are protected via diodes to VCC/GND. D6..D0, A15..A13, {{Overline|RD}}, {{Overline|WR}}, {{Overline|CS}} are internally pulled down with ~50&amp;amp;nbsp;kΩ&lt;br /&gt;
&lt;br /&gt;
{{clear|both}}&lt;br /&gt;
&lt;br /&gt;
= Registers =&lt;br /&gt;
&lt;br /&gt;
Write-Accessible Registers:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;0x0000-0x1FFF&amp;lt;/tt&amp;gt;: RAM Enable register&lt;br /&gt;
* &amp;lt;tt&amp;gt;0x2000-0x3FFF&amp;lt;/tt&amp;gt;: ROM Bank register&lt;br /&gt;
* &amp;lt;tt&amp;gt;0x4000-0x5FFF&amp;lt;/tt&amp;gt;: RAM Bank register&lt;br /&gt;
* &amp;lt;tt&amp;gt;0x6000-0x7FFF&amp;lt;/tt&amp;gt;: Mode register&lt;br /&gt;
&lt;br /&gt;
== RAM Enable Register ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XX D6 D5 D4 D3 D2 D1 D0    0x00 @ reset&lt;br /&gt;
    | \___/ \_________/&lt;br /&gt;
    |   |        \-------- RAM Enable&lt;br /&gt;
    |   \----------------- Ram Bank #WE AA14..AA13&lt;br /&gt;
    \--------------------- Map Enable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''RAM Enable''': A value of 0x0A enables SRAM access, all other values disable SRAM access.&lt;br /&gt;
* '''RAM Bank #WE''': Low-Active Write-Enable lines for the two least-significant RAM bank bits in [[#RAM Bank Register]]. Can only be written when '''Map Enable''' is reset.&lt;br /&gt;
* '''Map Enable''': Setting this bit will disable write access to special register bits and disable the forced ROM Address line masking. Can only be written when '''Map Enable''' is reset.&lt;br /&gt;
&lt;br /&gt;
== ROM Bank Register ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XX D6 D5 D4 D3 D2 D1 D0    0x00 @ reset&lt;br /&gt;
   \___/ \____________/&lt;br /&gt;
     |           \-------- ROM Bank RA18..RA14&lt;br /&gt;
     \-------------------- ROM Bank RA20..RA19&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''ROM Bank RA18..RA14''': These bits select the lower ROM address lines. The written value is zero-adjusted before output on RA18&amp;amp;ndash;RA14 based only on bits not masked by ROM Bank #WE/Mask RA18..RA15 in [[#Mode Register]].&lt;br /&gt;
* '''ROM Bank RA20..RA19''': These bits select the middle ROM address lines '''or''' the lower RAM address lines depending on the multiplex setting in the [[#Mode Register]]. Can only be written when '''Map Enable''' in [[#RAM Enable Register]] is reset.&lt;br /&gt;
&lt;br /&gt;
== RAM Bank Register ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XX D6 D5 D4 D3 D2 D1 D0    0x00 @ reset&lt;br /&gt;
    | \___/ \___/ \___/&lt;br /&gt;
    |   |     |     \----- RAM Bank AA14..AA13&lt;br /&gt;
    |   |     \----------- RAM Bank AA16..AA15&lt;br /&gt;
    |   \----------------- ROM Bank RA22..RA21&lt;br /&gt;
    \--------------------- MBC1 Mode #WE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''RAM Bank AA14..AA13''': These bits select the middle ROM address lines '''or''' the lower RAM address lines depending on the multiplex setting in the [[#Mode Register]]. The MBC1 mode settings still apply, see [[#Mode Register]].&lt;br /&gt;
* '''RAM Bank AA16..AA15''': These bits select the upper RAM address lines. Can only be written when '''Map Enable''' in [[#RAM Enable Register]] is reset.&lt;br /&gt;
* '''ROM Bank RA22..RA21''': These bits select the upper ROM address lines. Can only be written when '''Map Enable''' in [[#RAM Enable Register]] is reset.&lt;br /&gt;
* '''MBC1 Mode #WE''': Low-Active Write Enable for MBC1 Mode in [[#Mode Register]]. Can only be written when '''Map Enable''' in [[#RAM Enable Register]] is reset.&lt;br /&gt;
&lt;br /&gt;
== Mode Register ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XX D6 D5 D4 D3 D2 D1 D0    0x00 @ reset&lt;br /&gt;
    | \_________/  |  |&lt;br /&gt;
    |      |       |  \--- MBC1 Mode&lt;br /&gt;
    |      |       \------ Unknown&lt;br /&gt;
    |      \-------------- ROM Bank #WE/Mask RA18..RA15&lt;br /&gt;
    \--------------------- Multiplexer for AA14..AA13 and RA20..RA19&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''MBC1 Mode''': Selects the MBC1 operating mode. 0 for 16&amp;amp;nbsp;Mbit/64&amp;amp;nbsp;kbit mode and 1 for 4&amp;amp;nbsp;MBit/256&amp;amp;nbsp;kbit. Can only be written when '''MBC1 Mode #WE''' in [[#RAM Bank Register]] is reset.&lt;br /&gt;
* '''Unknown''': Setting or resetting this bit had no observable effect.&lt;br /&gt;
* '''ROM Bank #WE/Mask RA18..RA15''': Low-Active Write-Enable for RA18..RA15 in [[#ROM Bank Register]] as well as mask for zero-adjusting RA18..RA15. Can only be written when '''Map Enable''' in [[#RAM Enable Register]] is reset.&lt;br /&gt;
* '''Multiplexer''': The multiplexer will switch the bits output to pins AA14..AA13 and RA20..RA19. Barring MBC1 Mode logic: when reset, pins will be driven from register contents; when set, pins will be driven from the other register, i.e. RA20..RA19 will be driven by [[#RAM Bank Register]] and AA14..AA13 will be driven by [[#ROM Bank Register]]. Can only be written when '''Map Enable''' in [[#RAM Enable Register]] is reset.&lt;br /&gt;
&lt;br /&gt;
= Operation =&lt;br /&gt;
&lt;br /&gt;
Operating the MMM01 can be quite complex and the register contents are not straightforward. This section will detail the programming model and give example configurations.&lt;br /&gt;
&lt;br /&gt;
== Modes of Operation ==&lt;br /&gt;
&lt;br /&gt;
Nintendo's MMM01 has two modes of operation ''mapped'' and ''unmapped''. It defaults to ''unmapped'' after reset.&lt;br /&gt;
&lt;br /&gt;
This is used to lock write access to the upper bits of the known [[MBC1]] registers after base ROM and RAM banks and masks have been set up.&lt;br /&gt;
&lt;br /&gt;
The only way to ''unmap'' the mapper after ''mapping'' is to reset it.&lt;br /&gt;
&lt;br /&gt;
== Programming Model ==&lt;br /&gt;
&lt;br /&gt;
All registers are live, e.g. Setting the RAM Bank #WE bits and subsequently writing to RAM Bank AA14..AA13 won't work -- no matter if in ''mapped'' of ''unmapped'' state. Therefore, there is a certain order in which registers are optimally written:&lt;br /&gt;
&lt;br /&gt;
# ROM Bank Register&lt;br /&gt;
# Mode Register&lt;br /&gt;
# RAM Register&lt;br /&gt;
# RAM Enable&lt;br /&gt;
&lt;br /&gt;
Not all of Nintendo's games that use MMM01 keep with this order. However, due to the individual games' sizes and use of RAM banks, this isn't noticeable when the games don't misbehave.&lt;br /&gt;
&lt;br /&gt;
Most Rom Address line changes cannot be observed in ''unmapped'' mode due to the mapper starting at ROM bank 0x1FE and 0x1FF (depending on A14) until ''mapped''.&lt;br /&gt;
&lt;br /&gt;
== Map MBC1 Mode 0: 16&amp;amp;nbsp;Mbit/64&amp;amp;nbsp;kBit ==&lt;br /&gt;
&lt;br /&gt;
* R0: AA #WE = &amp;quot;00&amp;quot;&lt;br /&gt;
* R1: RA20..RA19 = fix --&amp;gt; SRAM AA14..AA13 muxed&lt;br /&gt;
* R2: AA16..AA15, RA22..RA21 = fix, MBC Mode #WE = &amp;quot;1&amp;quot;&lt;br /&gt;
* R3: RA #WE = &amp;quot;0000&amp;quot;, Mode = &amp;quot;0&amp;quot;, Mux = &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map MBC1 Mode 1: 4&amp;amp;nbsp;Mbit/64&amp;amp;nbsp;kBit (common) ==&lt;br /&gt;
&lt;br /&gt;
* R0: AA #WE = &amp;quot;11&amp;quot;&lt;br /&gt;
* R1: RA20..RA19 = fix&lt;br /&gt;
* R2: AA16..AA13, RA22..RA21 = fix, MBC Mode #WE = &amp;quot;1&amp;quot;&lt;br /&gt;
* R3: RA #WE = &amp;quot;0000&amp;quot;, Mode = &amp;quot;1&amp;quot;, Mux = &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Map MBC1 Mode 1: 4&amp;amp;nbsp;Mbit/64&amp;amp;nbsp;kBit (uncommon) ==&lt;br /&gt;
&lt;br /&gt;
* R0: AA #WE = &amp;quot;11&amp;quot;&lt;br /&gt;
* R1: RA20..RA19 = fix --&amp;gt; SRAM AA14..AA13 muxed&lt;br /&gt;
* R2: AA16..AA13, RA22..RA21 = fix, MBC Mode #WE = &amp;quot;1&amp;quot;&lt;br /&gt;
* R3: RA #WE = &amp;quot;0000&amp;quot;, Mode = &amp;quot;1&amp;quot;, Mux = &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is probably not the intended use case.&lt;br /&gt;
&lt;br /&gt;
== Map MBC1 Mode 1: 4&amp;amp;nbsp;Mbit/256&amp;amp;nbsp;kBit ==&lt;br /&gt;
&lt;br /&gt;
* R0: AA #WE = &amp;quot;00&amp;quot;&lt;br /&gt;
* R1: RA20..RA19 = fix&lt;br /&gt;
* R2: AA16..AA15, RA22..RA21 = fix, MBC Mode #WE = &amp;quot;1&amp;quot;&lt;br /&gt;
* R3: RA #WE = &amp;quot;0000&amp;quot;, Mode = &amp;quot;1&amp;quot;, Mux = &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
== Unknown Bit ==&lt;br /&gt;
&lt;br /&gt;
There is an Unknown bit in [[#Mode Register]] whose use -- if any -- could not be determined through testing. It is definitely not ROM Bank RA14 #WE as RA14 can be written at all times -- hence there cannot be a single bank mapped to both regions. It might be part of ROM Bank RA14 Mask and an Engineer might have missed that the zero-adjustment logic means that this bit is not necessary.&lt;br /&gt;
&lt;br /&gt;
== SRAM Enable/Disable ==&lt;br /&gt;
&lt;br /&gt;
The most glaringly missing feature of MMM01 is an option to disable SRAM access for individual games. The Unknown bit in [[#Mode Register]] does not provide for this either. The only commercial cartridge containing MMM01 and SRAM is Momotarou Collection 2 and it sacrifices one RAM bank to make sure that one game has no chance of deleting the other's save file.&lt;br /&gt;
&lt;br /&gt;
Having to spend 64&amp;amp;nbsp;kBit to ''disable'' SRAM access seems like a waste considering a simple OR-gate could have stopped SRAM access.&lt;br /&gt;
&lt;br /&gt;
== Separate MBC1 Mode #WE ==&lt;br /&gt;
&lt;br /&gt;
The MBC1 Mode #WE stands out as being separated from mapping logic. Instead, if its #WE is not deasserted, it can be freely written even in mapped mode. However, the address line multiplexing for 16&amp;amp;nbsp;Mbit and 4&amp;amp;nbsp;Mbit does not switch with the mode setting -- which given a fixed ROM/SRAM wiring on the cartridge -- would need to be done in order for a hypothetical 16&amp;amp;nbsp;Mbit/256&amp;amp;nbsp;kBit mode to be feasible.&lt;br /&gt;
&lt;br /&gt;
= Behavior =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vhdl&amp;quot;&amp;gt;&lt;br /&gt;
library IEEE;&lt;br /&gt;
use IEEE.std_logic_1164.all;&lt;br /&gt;
&lt;br /&gt;
entity MMM01 is&lt;br /&gt;
	Port(&lt;br /&gt;
		RESET_N  : in  std_logic;&lt;br /&gt;
		RD_N     : in  std_logic;&lt;br /&gt;
		WR_N     : in  std_logic;&lt;br /&gt;
		CS_N     : in  std_logic;&lt;br /&gt;
		A        : in  std_logic_vector(15 downto 13);&lt;br /&gt;
		D        : in  std_logic_vector(6 downto 0);&lt;br /&gt;
		RA       : out std_logic_vector(22 downto 14);&lt;br /&gt;
		AA       : out std_logic_vector(16 downto 13);&lt;br /&gt;
		ROM_CS_N : out std_logic;&lt;br /&gt;
		RAM_CS_N : out std_logic;&lt;br /&gt;
		RAM_CS   : out std_logic&lt;br /&gt;
	);&lt;br /&gt;
end entity MMM01;&lt;br /&gt;
&lt;br /&gt;
architecture Behavioral of MMM01 is&lt;br /&gt;
&lt;br /&gt;
signal ram_enable_r    : std_logic_vector(3 downto 0);&lt;br /&gt;
signal ram_bank_we_n_r : std_logic_vector(1 downto 0);&lt;br /&gt;
signal latch_r         : std_logic_vector(0 downto 0);&lt;br /&gt;
signal rom_bank_r      : std_logic_vector(8 downto 0);&lt;br /&gt;
signal ram_bank_r      : std_logic_vector(3 downto 0);&lt;br /&gt;
signal mode_we_n_r     : std_logic_vector(6 downto 6);&lt;br /&gt;
signal mode_r          : std_logic_vector(0 downto 0);&lt;br /&gt;
signal rom_bank_we_n_r : std_logic_vector(4 downto 1);&lt;br /&gt;
signal mux_r           : std_logic_vector(0 downto 0);&lt;br /&gt;
&lt;br /&gt;
signal ra_int          : std_logic_vector(4 downto 0);&lt;br /&gt;
signal aa_int          : std_logic_vector(1 downto 0);&lt;br /&gt;
&lt;br /&gt;
signal ra_lo           : std_logic_vector(4 downto 0);&lt;br /&gt;
signal ra_mask         : std_logic_vector(4 downto 0);&lt;br /&gt;
&lt;br /&gt;
signal ram_enable_r_clk : std_logic;&lt;br /&gt;
signal rom_bank_r_clk   : std_logic;&lt;br /&gt;
signal ram_bank_r_clk   : std_logic;&lt;br /&gt;
signal mode_r_clk       : std_logic;&lt;br /&gt;
&lt;br /&gt;
alias rom_bank_r_lo : std_logic_vector(4 downto 0) is rom_bank_r(4 downto 0);&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
-- Signal Assignments&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
ROM_CS_N &amp;lt;= '0' when (A(15) = '0' and RD_N = '0') else&lt;br /&gt;
            '1';&lt;br /&gt;
&lt;br /&gt;
RAM_CS_N &amp;lt;= '0' when (CS_N = '0' and A(14) = '0' and ram_enable_r = x&amp;quot;A&amp;quot;) else&lt;br /&gt;
            '1';&lt;br /&gt;
RAM_CS &amp;lt;= not RAM_CS_N;&lt;br /&gt;
&lt;br /&gt;
ra_lo &amp;lt;= &amp;quot;11110&amp;quot; when (latch_r = &amp;quot;0&amp;quot;) else&lt;br /&gt;
         rom_bank_r_lo;&lt;br /&gt;
&lt;br /&gt;
ra_mask &amp;lt;= &amp;quot;11110&amp;quot; when (latch_r = &amp;quot;0&amp;quot;) else&lt;br /&gt;
           rom_bank_we_n_r &amp;amp; &amp;quot;0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
ra_int &amp;lt;= &amp;quot;00000&amp;quot; when (A(14) = '0') else&lt;br /&gt;
          ra_lo   when ((ra_lo and not(ra_mask)) /= &amp;quot;00000&amp;quot;) else&lt;br /&gt;
          &amp;quot;00001&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
aa_int &amp;lt;= &amp;quot;00&amp;quot; when (A(14) = '0' and mode_r = &amp;quot;0&amp;quot;) else&lt;br /&gt;
          ram_bank_r(1 downto 0);&lt;br /&gt;
&lt;br /&gt;
AA(16 downto 15) &amp;lt;= ram_bank_r(3 downto 2);&lt;br /&gt;
AA(14 downto 13) &amp;lt;= aa_int when (mux_r = &amp;quot;0&amp;quot;) else&lt;br /&gt;
                    rom_bank_r(6 downto 5);&lt;br /&gt;
&lt;br /&gt;
RA(22 downto 21) &amp;lt;= &amp;quot;11&amp;quot; when (latch_r = &amp;quot;0&amp;quot;) else&lt;br /&gt;
                    rom_bank_r(8 downto 7);&lt;br /&gt;
&lt;br /&gt;
RA(20 downto 19) &amp;lt;= &amp;quot;11&amp;quot;   when (latch_r = &amp;quot;0&amp;quot;) else&lt;br /&gt;
                    aa_int when (mux_r = &amp;quot;1&amp;quot;) else&lt;br /&gt;
                    rom_bank_r(6 downto 5);&lt;br /&gt;
&lt;br /&gt;
RA(18 downto 14) &amp;lt;= (ra_lo and ra_mask) or (ra_int and not(ra_mask));&lt;br /&gt;
&lt;br /&gt;
ram_enable_r_clk &amp;lt;= '0' when (A = &amp;quot;000&amp;quot; and WR_N = '0') else&lt;br /&gt;
                    '1';&lt;br /&gt;
&lt;br /&gt;
rom_bank_r_clk &amp;lt;= '0' when (A = &amp;quot;001&amp;quot; and WR_N = '0') else&lt;br /&gt;
                  '1';&lt;br /&gt;
&lt;br /&gt;
ram_bank_r_clk &amp;lt;= '0' when (A = &amp;quot;010&amp;quot; and WR_N = '0') else&lt;br /&gt;
                  '1';&lt;br /&gt;
&lt;br /&gt;
mode_r_clk &amp;lt;= '0' when (A = &amp;quot;011&amp;quot; and WR_N = '0') else&lt;br /&gt;
              '1';&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
-- Registers&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
ram_enable_p : process (&lt;br /&gt;
	RESET_N,&lt;br /&gt;
	ram_enable_r_clk&lt;br /&gt;
	)&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
	if (RESET_N = '0') then&lt;br /&gt;
&lt;br /&gt;
		ram_enable_r &amp;lt;= x&amp;quot;0&amp;quot;;&lt;br /&gt;
		ram_bank_we_n_r &amp;lt;= &amp;quot;00&amp;quot;;&lt;br /&gt;
		latch_r &amp;lt;= &amp;quot;0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	elsif (rising_edge(ram_enable_r_clk)) then&lt;br /&gt;
&lt;br /&gt;
		ram_enable_r &amp;lt;= D(3 downto 0);&lt;br /&gt;
		&lt;br /&gt;
		if (latch_r = &amp;quot;0&amp;quot;) then&lt;br /&gt;
			ram_bank_we_n_r &amp;lt;= D(5 downto 4);&lt;br /&gt;
			latch_r &amp;lt;= D(6 downto 6);&lt;br /&gt;
		end if;&lt;br /&gt;
&lt;br /&gt;
	end if;&lt;br /&gt;
&lt;br /&gt;
end process ram_enable_p;&lt;br /&gt;
&lt;br /&gt;
rom_bank_p : process (&lt;br /&gt;
	RESET_N,&lt;br /&gt;
	rom_bank_r_clk&lt;br /&gt;
	)&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
	if (RESET_N = '0') then&lt;br /&gt;
		&lt;br /&gt;
		rom_bank_r(6 downto 0) &amp;lt;= &amp;quot;0000000&amp;quot;;&lt;br /&gt;
		&lt;br /&gt;
	elsif (rising_edge(rom_bank_r_clk)) then&lt;br /&gt;
		&lt;br /&gt;
		rom_bank_r(0) &amp;lt;= D(0);&lt;br /&gt;
		&lt;br /&gt;
		for i in rom_bank_we_n_r'range loop&lt;br /&gt;
			if (rom_bank_we_n_r(i) = '0') then&lt;br /&gt;
				rom_bank_r_lo(i) &amp;lt;= D(i);&lt;br /&gt;
			end if;&lt;br /&gt;
		end loop;&lt;br /&gt;
		&lt;br /&gt;
		if (latch_r = &amp;quot;0&amp;quot;) then&lt;br /&gt;
			rom_bank_r(6 downto 5) &amp;lt;= D(6 downto 5);&lt;br /&gt;
		end if;&lt;br /&gt;
&lt;br /&gt;
	end if;&lt;br /&gt;
&lt;br /&gt;
end process rom_bank_p;&lt;br /&gt;
&lt;br /&gt;
ram_bank_p : process (&lt;br /&gt;
	RESET_N,&lt;br /&gt;
	ram_bank_r_clk&lt;br /&gt;
	)&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
	if (RESET_N = '0') then&lt;br /&gt;
&lt;br /&gt;
		ram_bank_r &amp;lt;= &amp;quot;0000&amp;quot;;&lt;br /&gt;
		rom_bank_r(8 downto 7) &amp;lt;= &amp;quot;00&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	elsif (rising_edge(ram_bank_r_clk)) then&lt;br /&gt;
&lt;br /&gt;
		for i in ram_bank_we_n_r'range loop&lt;br /&gt;
			if (ram_bank_we_n_r(i) = '0') then&lt;br /&gt;
				ram_bank_r(i) &amp;lt;= D(i);&lt;br /&gt;
			end if;&lt;br /&gt;
		end loop;&lt;br /&gt;
		&lt;br /&gt;
		if (latch_r = &amp;quot;0&amp;quot;) then&lt;br /&gt;
			ram_bank_r(3 downto 2) &amp;lt;= D(3 downto 2);&lt;br /&gt;
			rom_bank_r(8 downto 7) &amp;lt;= D(5 downto 4);&lt;br /&gt;
			mode_we_n_r &amp;lt;= D(6 downto 6);&lt;br /&gt;
		end if;&lt;br /&gt;
	end if;&lt;br /&gt;
&lt;br /&gt;
end process ram_bank_p;&lt;br /&gt;
&lt;br /&gt;
mode_p : process (&lt;br /&gt;
	RESET_N,&lt;br /&gt;
	mode_r_clk&lt;br /&gt;
	)&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
	if (RESET_N = '0') then&lt;br /&gt;
&lt;br /&gt;
		mode_r &amp;lt;= &amp;quot;0&amp;quot;;&lt;br /&gt;
		rom_bank_we_n_r &amp;lt;= &amp;quot;0000&amp;quot;;&lt;br /&gt;
		mux_r &amp;lt;= &amp;quot;0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	elsif (rising_edge(mode_r_clk)) then&lt;br /&gt;
&lt;br /&gt;
		for i in mode_we_n_r'range loop&lt;br /&gt;
			if (mode_we_n_r(i) = '0') then&lt;br /&gt;
				mode_r(i) &amp;lt;= D(i);&lt;br /&gt;
			end if;&lt;br /&gt;
		end loop;&lt;br /&gt;
		&lt;br /&gt;
		if (latch_r = &amp;quot;1&amp;quot;) then&lt;br /&gt;
			rom_bank_we_n_r &amp;lt;= D(5 downto 2);&lt;br /&gt;
			mux_r &amp;lt;= D(6 downto 6);&lt;br /&gt;
		end if;&lt;br /&gt;
&lt;br /&gt;
	end if;&lt;br /&gt;
&lt;br /&gt;
end process mode_p;&lt;br /&gt;
&lt;br /&gt;
end architecture Behavioral;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:DMG]]&lt;/div&gt;</summary>
		<author><name>Tauwasser</name></author>
		
	</entry>
</feed>