<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://f256wiki.wildbitscomputing.com/index.php?action=history&amp;feed=atom&amp;title=Use_the_OPL3_YMF262</id>
	<title>Use the OPL3 YMF262 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://f256wiki.wildbitscomputing.com/index.php?action=history&amp;feed=atom&amp;title=Use_the_OPL3_YMF262"/>
	<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;action=history"/>
	<updated>2026-04-16T14:42:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38289&amp;oldid=prev</id>
		<title>1BitFeverDreams: new channel wide registers and operator wide registers, and the mapping for all 18 channels when using operator wide regs</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38289&amp;oldid=prev"/>
		<updated>2025-11-25T06:24:59Z</updated>

		<summary type="html">&lt;p&gt;new channel wide registers and operator wide registers, and the mapping for all 18 channels when using operator wide regs&lt;/p&gt;
&lt;a href=&quot;https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;amp;diff=38289&amp;amp;oldid=38204&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38204&amp;oldid=prev</id>
		<title>1BitFeverDreams: /* The YMF262 is inside the FPGA of some machines */</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38204&amp;oldid=prev"/>
		<updated>2025-08-24T15:39:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The YMF262 is inside the FPGA of some machines&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:39, 24 August 2025&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-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;The F256 machines, except the F256Jr., have in their Beatrix FPGA a YMF262 capable of Yamaha OPL3 that uses up to 36 operators. You can also use it in compatible OPL2 that uses a subset of up to 18 operators&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;The F256 machines, except the F256Jr., have in their Beatrix FPGA a YMF262 capable of Yamaha OPL3 that uses up to 36 operators. You can also use it in compatible OPL2 that uses a subset of up to 18 operators&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;=== F256 registers for 6502, 65816, 6809(?) cores ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;!-- diff cache key f256wikiDB:diff:1.41:old-38203:rev-38204:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38203&amp;oldid=prev</id>
		<title>1BitFeverDreams: /* The YMF262 is inside the FPGA of some machines */ examples</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38203&amp;oldid=prev"/>
		<updated>2025-08-24T15:39:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The YMF262 is inside the FPGA of some machines: &lt;/span&gt; examples&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:39, 24 August 2025&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-l21&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;|Register for addressing ports 0x100 to 0x1FF&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;|Register for addressing ports 0x100 to 0x1FF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;===== Usage: =====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;When targetting a port in the 0x000 - 0x0FF range, send the port byte to 0xD580, then its data byte to 0x581.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;When targetting a port in the 0x100 - 0x1FF range, send the port byte &#039;&#039;masked with 0x0FF to 0xD582,&#039;&#039; then its data byte to 0xD581&#039;&#039;.&#039;&#039; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Example 1: to star the chip using port 0x01, send 0x01 to 0xD580, then 0x01 to 0xD581.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Example 2: to enable OPL3 using port 0x105, send 0x05 to 0xD582, then 0x01 to 0xD581.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;=== Chip wide ports ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;=== Chip wide ports ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key f256wikiDB:diff:1.41:old-38202:rev-38203:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38202&amp;oldid=prev</id>
		<title>1BitFeverDreams: Created page with &quot;== The YMF262 is inside the FPGA of some machines ==  The F256 machines, except the F256Jr., have in their Beatrix FPGA a YMF262 capable of Yamaha OPL3 that uses up to 36 operators. You can also use it in compatible OPL2 that uses a subset of up to 18 operators&lt;br&gt;  {| class=&quot;wikitable&quot; |+ !Register Name !Address !Description |- |OPL_ADDR_L |0xD580  |Register for addressing ports 0x000 to 0x0FF |- |OPL_DATA |0xD581  |Data register for all ports |- |OPL_ADDR_H |0xD582  |R...&quot;</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_OPL3_YMF262&amp;diff=38202&amp;oldid=prev"/>
		<updated>2025-08-24T15:34:35Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== The YMF262 is inside the FPGA of some machines ==  The F256 machines, except the F256Jr., have in their Beatrix FPGA a YMF262 capable of Yamaha OPL3 that uses up to 36 operators. You can also use it in compatible OPL2 that uses a subset of up to 18 operators&amp;lt;br&amp;gt;  {| class=&amp;quot;wikitable&amp;quot; |+ !Register Name !Address !Description |- |OPL_ADDR_L |0xD580  |Register for addressing ports 0x000 to 0x0FF |- |OPL_DATA |0xD581  |Data register for all ports |- |OPL_ADDR_H |0xD582  |R...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== The YMF262 is inside the FPGA of some machines ==&lt;br /&gt;
&lt;br /&gt;
The F256 machines, except the F256Jr., have in their Beatrix FPGA a YMF262 capable of Yamaha OPL3 that uses up to 36 operators. You can also use it in compatible OPL2 that uses a subset of up to 18 operators&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!Address&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|OPL_ADDR_L&lt;br /&gt;
|0xD580 &lt;br /&gt;
|Register for addressing ports 0x000 to 0x0FF&lt;br /&gt;
|-&lt;br /&gt;
|OPL_DATA&lt;br /&gt;
|0xD581 &lt;br /&gt;
|Data register for all ports&lt;br /&gt;
|-&lt;br /&gt;
|OPL_ADDR_H&lt;br /&gt;
|0xD582 &lt;br /&gt;
|Register for addressing ports 0x100 to 0x1FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chip wide ports ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Port Name&lt;br /&gt;
!Port Address&lt;br /&gt;
!Description&lt;br /&gt;
!B7&lt;br /&gt;
!B6&lt;br /&gt;
!B5&lt;br /&gt;
!B4&lt;br /&gt;
!B3&lt;br /&gt;
!B2&lt;br /&gt;
!B1&lt;br /&gt;
!B0&lt;br /&gt;
|-&lt;br /&gt;
|Test Register / Waveform Select Enable&lt;br /&gt;
|0x01&lt;br /&gt;
|Must be used to &amp;quot;start the chip&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Test Register&lt;br /&gt;
| Wave Select Enable&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | Test Register&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Set all Test Register bits to 0 to start the chip. B5 clear = all sine waves B5 set= enables wave choices in 0xE0-F5&lt;br /&gt;
|-&lt;br /&gt;
|Timer 1 Count&lt;br /&gt;
|0x02&lt;br /&gt;
|8bit timer with resolution of 80 us. &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | If overflow occurs, status register is set and preset value is loaded&lt;br /&gt;
|-&lt;br /&gt;
!Port Name&lt;br /&gt;
!Port Address&lt;br /&gt;
!Description&lt;br /&gt;
!B7&lt;br /&gt;
!B6&lt;br /&gt;
!B5&lt;br /&gt;
!B4&lt;br /&gt;
!B3&lt;br /&gt;
!B2&lt;br /&gt;
!B1&lt;br /&gt;
!B0&lt;br /&gt;
|-&lt;br /&gt;
|Timer 2 Count&lt;br /&gt;
|0x03&lt;br /&gt;
|8bit timer with resolution of 320 us. &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | If overflow occurs, status register is set and preset value is loaded&lt;br /&gt;
|-&lt;br /&gt;
|IRQ-Reset/Mask/Start&lt;br /&gt;
|0x04&lt;br /&gt;
|Timer controls &lt;br /&gt;
|Reset&lt;br /&gt;
|T1Mask&lt;br /&gt;
|T2Mask&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|T2Start&lt;br /&gt;
|T1Start&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | B7 resets and IRQ flags status reg and ignore all others when this is set&amp;lt;br&amp;gt;&lt;br /&gt;
B6 timer 1 mask. status reg is not affected in overflow&amp;lt;br&amp;gt;&lt;br /&gt;
B5 timer 2 mask. same for timer2&amp;lt;br&amp;gt;&lt;br /&gt;
B1 Timer 2 start. timer on/off&amp;lt;br&amp;gt;&lt;br /&gt;
B0 Timer 1 start, same&lt;br /&gt;
|-&lt;br /&gt;
!Port Name&lt;br /&gt;
!Port Address&lt;br /&gt;
!Description&lt;br /&gt;
!B7&lt;br /&gt;
!B6&lt;br /&gt;
!B5&lt;br /&gt;
!B4&lt;br /&gt;
!B3&lt;br /&gt;
!B2&lt;br /&gt;
!B1&lt;br /&gt;
!B0&lt;br /&gt;
|-&lt;br /&gt;
|Four-Operator Enable&lt;br /&gt;
|0x104&lt;br /&gt;
| Sets up four-operator channels&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| ChB&lt;br /&gt;
| ChA&lt;br /&gt;
| Ch9&lt;br /&gt;
| Ch2&lt;br /&gt;
| Ch1&lt;br /&gt;
| Ch0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | When fully set 0, 18 two-operator pairs are formed. When non-zero, four-operators are formed at specific locations&amp;lt;br&amp;gt;&lt;br /&gt;
B5: channels 11-14 (decimal) are grouped&amp;lt;br&amp;gt;&lt;br /&gt;
B4: channels 10-13&amp;lt;br&amp;gt;&lt;br /&gt;
B3: channels 9-12&amp;lt;br&amp;gt;&lt;br /&gt;
B2: channels 2-5&amp;lt;br&amp;gt;&lt;br /&gt;
B1: channels 1-4&amp;lt;br&amp;gt;&lt;br /&gt;
B0: channels 0-3&lt;br /&gt;
|-&lt;br /&gt;
|OPL3 Mode Enable&lt;br /&gt;
|0x105&lt;br /&gt;
| enables OPL3 extensions&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| Enable&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | set B0 to enable 36 operators, 4-OP synth, 8 waveforms, stereo output. When cleared, OPL2 is enabled.&lt;br /&gt;
|-&lt;br /&gt;
!Port Name&lt;br /&gt;
!Port Address&lt;br /&gt;
!Description&lt;br /&gt;
!B7&lt;br /&gt;
!B6&lt;br /&gt;
!B5&lt;br /&gt;
!B4&lt;br /&gt;
!B3&lt;br /&gt;
!B2&lt;br /&gt;
!B1&lt;br /&gt;
!B0&lt;br /&gt;
|-&lt;br /&gt;
|Tremolo/Vibrato/Percussion&lt;br /&gt;
|0xBD&lt;br /&gt;
| Bits 0-4 are treated as key-on/key-offs.&lt;br /&gt;
| Tre&lt;br /&gt;
| Vib&lt;br /&gt;
| Per&lt;br /&gt;
| BassDrum&lt;br /&gt;
| SnareDrum&lt;br /&gt;
| Tom-Tom&lt;br /&gt;
| Cymbal&lt;br /&gt;
| Hi-Hat&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | B7 and B6 set = more present effect. &amp;lt;br&amp;gt;&lt;br /&gt;
When using B0-B4, key-on in channels 6,7,8 and their fnums have to be cleared! Their ADSR must be appropriate&amp;lt;br&amp;gt;&lt;br /&gt;
This register is only used in OPL2 lower half, it does not affect higher half OPL3.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Channel wide ports ===&lt;br /&gt;
&lt;br /&gt;
to be continued&lt;br /&gt;
&lt;br /&gt;
=== Operator wide ports ===&lt;br /&gt;
&lt;br /&gt;
to be continued&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
</feed>