<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wikiti.brandonw.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wikiti.brandonw.net/index.php?action=history&amp;feed=atom&amp;title=86%3APorts%3A04</id>
		<title>86:Ports:04 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wikiti.brandonw.net/index.php?action=history&amp;feed=atom&amp;title=86%3APorts%3A04"/>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=86:Ports:04&amp;action=history"/>
		<updated>2026-04-06T04:05:54Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=86:Ports:04&amp;diff=11824&amp;oldid=prev</id>
		<title>Zeroko: Created page with &quot;04 - LCD Control LCD Control == Synopsis == '''Port Number:''' 04h  '''Function:''' LCD Control, Memory Access C...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=86:Ports:04&amp;diff=11824&amp;oldid=prev"/>
				<updated>2021-09-20T12:36:09Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php?title=Category:86:Ports:By_Address&quot; title=&quot;Category:86:Ports:By Address&quot;&gt;04 - LCD Control&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:86:Ports:By_Name&quot; title=&quot;Category:86:Ports:By Name&quot;&gt;LCD Control&lt;/a&gt; == Synopsis == &amp;#039;&amp;#039;&amp;#039;Port Number:&amp;#039;&amp;#039;&amp;#039; 04h  &amp;#039;&amp;#039;&amp;#039;Function:&amp;#039;&amp;#039;&amp;#039; LCD Control, Memory Access C...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:86:Ports:By_Address|04 - LCD Control]] [[Category:86:Ports:By_Name|LCD Control]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 04h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' LCD Control, Memory Access Control&lt;br /&gt;
&lt;br /&gt;
This port controls the [[86:LCD_Controller|LCD controller]] &amp;amp; access to RAM &amp;amp; ROM.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
Because this port is write-only, its read behavior is the same as [[86:Memory_Mapping#Unused_Banks|Unused Banks]].&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* Bit 0: Set 0 to enable CPU access to RAM. Set 1 to disable CPU access to RAM, in which case RAM behaves like an unused bank. [[86:LCD_Controller#DMA|DMA]] is still able to read from RAM normally when this bit is 1.&lt;br /&gt;
* Bit 1-2: Number of rows per logical frame. This also affects the LCD interrupt speed.&lt;br /&gt;
** 00: 16 rows &amp;amp; 4X interrupt speed.&lt;br /&gt;
** 01: 32 rows &amp;amp; 2X interrupt speed.&lt;br /&gt;
** 10: 48 rows &amp;amp; 4/3X interrupt speed.&lt;br /&gt;
** 11: 64 rows &amp;amp; normal interrupt speed.&lt;br /&gt;
* Bit 3-4: Number of columns per row to obtain via DMA.&lt;br /&gt;
** 00: 80 columns.&lt;br /&gt;
** 01: 96 columns (used by the TI-81).&lt;br /&gt;
** 10: 128 columns (used by the TI-85 &amp;amp; TI-86).&lt;br /&gt;
** 11: 160 columns (used by the PS-6600).&lt;br /&gt;
* Bit 5: Set 0 to use slower DMA (about 6 cycles per byte). Set 1 to use faster DMA (about 2 cycles per byte).&lt;br /&gt;
* Bit 6: Set 0 to enable writing to flash ROM. Set 1 to disable writing to flash ROM. On mass-production TI-86es, a missing AND gate results in the ROM behaving as if it were an unused bank if this is set to 0.&lt;br /&gt;
* Bit 7: Apparently unused.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
* The OS sets this port to 56h when the calculator is operating normally, &amp;amp; it uses 57h when the CPU is reset &amp;amp; when turning off. This appears to be intended either to save power or to protect the contents of RAM from accidental modification when the main batteries are low or are being changed.&lt;br /&gt;
* Setting fewer than 64 rows causes vertical repetition. It also makes the image darker.&lt;br /&gt;
* Setting fewer than 128 columns per row results in horizontal repetition in a pattern explained by [[86:LCD_Controller#DMA|DMA]].&lt;br /&gt;
* The OS uses the slower DMA mode. It is unknown whether the faster mode works on all calculators. The numbers of CPU cycles per byte are approximate because the LCD controller uses a separate clock from the CPU clock.&lt;br /&gt;
* Disabling access to RAM from within RAM is not recommended.&lt;br /&gt;
* Disabling access to ROM while the OS interrupt service routine is enabled is not recommended.&lt;/div&gt;</summary>
		<author><name>Zeroko</name></author>	</entry>

	</feed>