<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.madrisx.org:80/index.php?action=history&amp;feed=atom&amp;title=R800</id>
	<title>R800 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.madrisx.org:80/index.php?action=history&amp;feed=atom&amp;title=R800"/>
	<link rel="alternate" type="text/html" href="http://wiki.madrisx.org:80/index.php?title=R800&amp;action=history"/>
	<updated>2026-05-01T01:22:49Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>http://wiki.madrisx.org:80/index.php?title=R800&amp;diff=4873&amp;oldid=prev</id>
		<title>Museo8bits en 13:41 7 ene 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki.madrisx.org:80/index.php?title=R800&amp;diff=4873&amp;oldid=prev"/>
		<updated>2008-01-07T13:41:25Z</updated>

		<summary type="html">&lt;p&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;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 15:41 7 ene 2008&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-l1&quot;&gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&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;[[Imagen:R800 01.jpg|right|thumb|250px|[[Microprocesador]] [[RISC]] R800 ]]&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;[[Imagen:R800 01.jpg|right|thumb|250px|[[Microprocesador]] [[RISC]] R800 ]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;El &#039;&#039;&#039;R800&#039;&#039;&#039; es la [[CPU]] principal de los [[ordenador doméstico|ordenadores domésticos]] [[MSX Turbo-R]] (tienen además como CPU secundaria un [[Zilog Z80]]A). &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fué &lt;/del&gt;diseñado por [[ASCII Corporation]] de [[Japón]], con el objetivo de tener la CPU más rápida posible, pero que mantuviera la [[compatibilidad]] con el [[hardware]] y [[software]] de los [[MSX]] existentes (basados en el [[Zilog Z80]]).&lt;/div&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;El &#039;&#039;&#039;R800&#039;&#039;&#039; es la [[CPU]] principal de los [[ordenador doméstico|ordenadores domésticos]] [[MSX Turbo-R]] (tienen además como CPU secundaria un [[Zilog Z80]]A). &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fue &lt;/ins&gt;diseñado por [[ASCII Corporation]] de [[Japón]], con el objetivo de tener la CPU más rápida posible, pero que mantuviera la [[compatibilidad]] con el [[hardware]] y [[software]] de los [[MSX]] existentes (basados en el [[Zilog Z80]]).&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Para preservar la compatiblidad con el viejo software MSX, el R800 utiliza un superconjunto del [[conjunto de instrucciones]] del Z80. Además de todos los [[opcode]]s del Z80, se le añaden dos nuevas &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;intrucciones &lt;/del&gt;de multiplicación, &#039;&#039;&#039;MULUB&#039;&#039;&#039; ([[8 bits]]), y &#039;&#039;&#039;MULUW&#039;&#039;&#039; ([[16 bits]]). Además, muchas de las &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;intrucciones &lt;/del&gt;no documentadas del Z80 se convierten en oficiales, lo que incluye todos los opcodes que usan IX e IY como registros de 8 bits (IXh, IXl, IYh, IYl).&lt;/div&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;Para preservar la compatiblidad con el viejo software MSX, el R800 utiliza un superconjunto del [[conjunto de instrucciones]] del Z80. Además de todos los [[opcode]]s del Z80, se le añaden dos nuevas &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;instrucciones &lt;/ins&gt;de multiplicación, &#039;&#039;&#039;MULUB&#039;&#039;&#039; ([[8 bits]]), y &#039;&#039;&#039;MULUW&#039;&#039;&#039; ([[16 bits]]). Además, muchas de las &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;instrucciones &lt;/ins&gt;no documentadas del Z80 se convierten en oficiales, lo que incluye todos los opcodes que usan IX e IY como registros de 8 bits (IXh, IXl, IYh, IYl).&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Puesto que el R800 no está basado directamente en el Z80, sino en la familia del [[Zilog Z800]], le faltan varias otras &#039;&#039;prestaciones no documentadas&#039;&#039; del Z80. Por ejemplo, la bandera indocumentada representada por los bits 3 y 5 del registro F no asume los mismos valores que en un Z80 (siendo la causa de fallar en los test [[ZEXALL]]) y el opcode indocumentado llamado &#039;&#039;&#039;SLL&#039;&#039;&#039; es reemplazado &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pr orto &lt;/del&gt;opcode indocumentado llamado &#039;&#039;&#039;TST&#039;&#039;&#039;.&lt;/div&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;Puesto que el R800 no está basado directamente en el Z80, sino en la familia del [[Zilog Z800]], le faltan varias otras &#039;&#039;prestaciones no documentadas&#039;&#039; del Z80. Por ejemplo, la bandera indocumentada representada por los bits 3 y 5 del registro F no asume los mismos valores que en un Z80 (siendo la causa de fallar en los test [[ZEXALL]]) y el opcode indocumentado llamado &#039;&#039;&#039;SLL&#039;&#039;&#039; es reemplazado &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;por otro &lt;/ins&gt;opcode indocumentado llamado &#039;&#039;&#039;TST&#039;&#039;&#039;.&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En la parte hardware, se realizan cambios radicales. La [[ULA]] interna de 8 bits del Z80 es reemplazada por una nueva de 16 bits. Opcodes como &#039;&#039;&#039;ADD HL, BC&#039;&#039;&#039;, que anteriormente ocupaban 11 ciclos de reloj, pasan a durar sólo un ciclo en determinadas condiciones. La [[frecuencia de reloj]] máxima se incrementa a 7,16 [[MHz]], el doble que los 3,57 MHz del Z80 usado en los MSX. El [[bus de datos]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;permance &lt;/del&gt;de 8 bits para mantener la compatibilidad con el viejo hardware.&lt;/div&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;En la parte hardware, se realizan cambios radicales. La [[ULA]] interna de 8 bits del Z80 es reemplazada por una nueva de 16 bits. Opcodes como &#039;&#039;&#039;ADD HL, BC&#039;&#039;&#039;, que anteriormente ocupaban 11 ciclos de reloj, pasan a durar sólo un ciclo en determinadas condiciones. La [[frecuencia de reloj]] máxima se incrementa a 7,16 [[MHz]], el doble que los 3,57 MHz del Z80 usado en los MSX. El [[bus de datos]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;permanece &lt;/ins&gt;de 8 bits para mantener la compatibilidad con el viejo hardware.&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;Además se hicieron cambios en el modo en que la CPU trata los opcodes. El Z80 original usa 4 ciclos para tratar una instrucción simple como &amp;#039;&amp;#039;&amp;#039;OR A&amp;#039;&amp;#039;&amp;#039;, además de emplear un estado de espera adicional debido a la arquitectura MSX. Si revisamos el tratamiento del Z80 en un ambiente MSX comprenderemos mejor al R800:&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;Además se hicieron cambios en el modo en que la CPU trata los opcodes. El Z80 original usa 4 ciclos para tratar una instrucción simple como &amp;#039;&amp;#039;&amp;#039;OR A&amp;#039;&amp;#039;&amp;#039;, además de emplear un estado de espera adicional debido a la arquitectura MSX. Si revisamos el tratamiento del Z80 en un ambiente MSX comprenderemos mejor al R800:&lt;/div&gt;&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-l16&quot;&gt;Línea 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 16:&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;*Z80, ciclo 5: refresco, parte 2&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;*Z80, ciclo 5: refresco, parte 2&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Puesto que muchas implementaciones del MSX usan memoria [[RAM]] dispuesta en bloques de 256×256 bytes, se necesitan dos ciclos para componer la dirección a leer. El R800 evita esto recordando el último estado conocido de los 8 [[bit]]s más altos. Si la siguiente instrucción está en el mismo bloque de 256 [[byte]]s, los 8 bits superiores no se direccionan, ahorrando un ciclo. Sin embargo en el Z80, los ciclos de refresco destruyen la información de los bits altos por lo que es &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neceasrio &lt;/del&gt;un trabajo adicional.&lt;/div&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;Puesto que muchas implementaciones del MSX usan memoria [[RAM]] dispuesta en bloques de 256×256 bytes, se necesitan dos ciclos para componer la dirección a leer. El R800 evita esto recordando el último estado conocido de los 8 [[bit]]s más altos. Si la siguiente instrucción está en el mismo bloque de 256 [[byte]]s, los 8 bits superiores no se direccionan, ahorrando un ciclo. Sin embargo en el Z80, los ciclos de refresco destruyen la información de los bits altos por lo que es &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;necesario &lt;/ins&gt;un trabajo adicional.&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La solución implementada en el R800 es refrescar bloques enteros de RAM, en lugar de refrescar una línea de RAM por instrucción publicada. Cada 30 us (microsegundos), la CPU se detiene por 4us,y este tiempo es usado para refrescar un bloque de la RAM. Puesto que no hay refresco entre el direccionamiento de dos instrucciones, y el estado de espera (waitstate) es removido debido a los chips de RAM más rápidos, las &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;intrucciones &lt;/del&gt;simples son tratadas usando sólo un ciclo de reloj. Este ciclo sería el ciclo 2 del ejemplo anterior del Z80; el ciclo 1 deviene en opcional y sólo es utilizado cuando el programa cruza un límite de 256 bytes.&lt;/div&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;La solución implementada en el R800 es refrescar bloques enteros de RAM, en lugar de refrescar una línea de RAM por instrucción publicada. Cada 30 us (microsegundos), la CPU se detiene por 4us, y este tiempo es usado para refrescar un bloque de la RAM. Puesto que no hay refresco entre el direccionamiento de dos instrucciones, y el estado de espera (waitstate) es removido debido a los chips de RAM más rápidos, las &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;instrucciones &lt;/ins&gt;simples son tratadas usando sólo un ciclo de reloj. Este ciclo sería el ciclo 2 del ejemplo anterior del Z80; el ciclo 1 deviene en opcional y sólo es utilizado cuando el programa cruza un límite de 256 bytes.&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Todo esto se aplica a la RAM rápida usada en los MSX Turbo-R. El hardware externo, conectado por los slots de cartuchos, utiliza tiempos similares a los del Z80. Ni siquiera la [[ROM]] interna de los Turbo-R es suficientemente rápida para este esquema, por lo que su utilizan chips adicionales para copiar la ROM en RAM, para hacer que se ejecute más &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rapidamente&lt;/del&gt;.&lt;/div&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;Todo esto se aplica a la RAM rápida usada en los MSX Turbo-R. El hardware externo, conectado por los slots de cartuchos, utiliza tiempos similares a los del Z80. Ni siquiera la [[ROM]] interna de los Turbo-R es suficientemente rápida para este esquema, por lo que su utilizan chips adicionales para copiar la ROM en RAM, para hacer que se ejecute más &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rápidamente&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;&amp;lt;!---&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;&amp;lt;!---&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;{{zilog}}&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;{{zilog}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Enlaces a Wikipedia ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*{{w|en|R800}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*{{w|es|R800}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*{{w|ja|R800}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;---&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;---&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 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;[[Categoría:Microprocesadores]]&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;[[Categoría:Microprocesadores]]&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;[[Categoría:MSX]]&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;[[Categoría:MSX]]&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;[[en:R800]]&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;[[es:R800]]&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;[[ja:R800]]&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;[[nl:ASCII R800]]&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;[[ru:ASCII R800]]&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;[[ko:ASCII R800]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Museo8bits</name></author>
	</entry>
	<entry>
		<id>http://wiki.madrisx.org:80/index.php?title=R800&amp;diff=1853&amp;oldid=prev</id>
		<title>Museo8bits en 20:17 3 sep 2006</title>
		<link rel="alternate" type="text/html" href="http://wiki.madrisx.org:80/index.php?title=R800&amp;diff=1853&amp;oldid=prev"/>
		<updated>2006-09-03T20:17:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Imagen:R800 01.jpg|right|thumb|250px|[[Microprocesador]] [[RISC]] R800 ]]&lt;br /&gt;
El &amp;#039;&amp;#039;&amp;#039;R800&amp;#039;&amp;#039;&amp;#039; es la [[CPU]] principal de los [[ordenador doméstico|ordenadores domésticos]] [[MSX Turbo-R]] (tienen además como CPU secundaria un [[Zilog Z80]]A). Fué diseñado por [[ASCII Corporation]] de [[Japón]], con el objetivo de tener la CPU más rápida posible, pero que mantuviera la [[compatibilidad]] con el [[hardware]] y [[software]] de los [[MSX]] existentes (basados en el [[Zilog Z80]]).&lt;br /&gt;
&lt;br /&gt;
Para preservar la compatiblidad con el viejo software MSX, el R800 utiliza un superconjunto del [[conjunto de instrucciones]] del Z80. Además de todos los [[opcode]]s del Z80, se le añaden dos nuevas intrucciones de multiplicación, &amp;#039;&amp;#039;&amp;#039;MULUB&amp;#039;&amp;#039;&amp;#039; ([[8 bits]]), y &amp;#039;&amp;#039;&amp;#039;MULUW&amp;#039;&amp;#039;&amp;#039; ([[16 bits]]). Además, muchas de las intrucciones no documentadas del Z80 se convierten en oficiales, lo que incluye todos los opcodes que usan IX e IY como registros de 8 bits (IXh, IXl, IYh, IYl).&lt;br /&gt;
&lt;br /&gt;
Puesto que el R800 no está basado directamente en el Z80, sino en la familia del [[Zilog Z800]], le faltan varias otras &amp;#039;&amp;#039;prestaciones no documentadas&amp;#039;&amp;#039; del Z80. Por ejemplo, la bandera indocumentada representada por los bits 3 y 5 del registro F no asume los mismos valores que en un Z80 (siendo la causa de fallar en los test [[ZEXALL]]) y el opcode indocumentado llamado &amp;#039;&amp;#039;&amp;#039;SLL&amp;#039;&amp;#039;&amp;#039; es reemplazado pr orto opcode indocumentado llamado &amp;#039;&amp;#039;&amp;#039;TST&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
En la parte hardware, se realizan cambios radicales. La [[ULA]] interna de 8 bits del Z80 es reemplazada por una nueva de 16 bits. Opcodes como &amp;#039;&amp;#039;&amp;#039;ADD HL, BC&amp;#039;&amp;#039;&amp;#039;, que anteriormente ocupaban 11 ciclos de reloj, pasan a durar sólo un ciclo en determinadas condiciones. La [[frecuencia de reloj]] máxima se incrementa a 7,16 [[MHz]], el doble que los 3,57 MHz del Z80 usado en los MSX. El [[bus de datos]] permance de 8 bits para mantener la compatibilidad con el viejo hardware.&lt;br /&gt;
&lt;br /&gt;
Además se hicieron cambios en el modo en que la CPU trata los opcodes. El Z80 original usa 4 ciclos para tratar una instrucción simple como &amp;#039;&amp;#039;&amp;#039;OR A&amp;#039;&amp;#039;&amp;#039;, además de emplear un estado de espera adicional debido a la arquitectura MSX. Si revisamos el tratamiento del Z80 en un ambiente MSX comprenderemos mejor al R800:&lt;br /&gt;
&lt;br /&gt;
*Z80, ciclo 1: se establecen los 8 bits superiores de una dirección&lt;br /&gt;
*Z80, ciclo 2: se establecen los 8 bits inferiores de una dirección&lt;br /&gt;
*Z80, ciclo 3: estado de espera (waitstate)&lt;br /&gt;
*Z80, ciclo 4: refresco, parte 1&lt;br /&gt;
*Z80, ciclo 5: refresco, parte 2&lt;br /&gt;
&lt;br /&gt;
Puesto que muchas implementaciones del MSX usan memoria [[RAM]] dispuesta en bloques de 256×256 bytes, se necesitan dos ciclos para componer la dirección a leer. El R800 evita esto recordando el último estado conocido de los 8 [[bit]]s más altos. Si la siguiente instrucción está en el mismo bloque de 256 [[byte]]s, los 8 bits superiores no se direccionan, ahorrando un ciclo. Sin embargo en el Z80, los ciclos de refresco destruyen la información de los bits altos por lo que es neceasrio un trabajo adicional.&lt;br /&gt;
&lt;br /&gt;
La solución implementada en el R800 es refrescar bloques enteros de RAM, en lugar de refrescar una línea de RAM por instrucción publicada. Cada 30 us (microsegundos), la CPU se detiene por 4us,y este tiempo es usado para refrescar un bloque de la RAM. Puesto que no hay refresco entre el direccionamiento de dos instrucciones, y el estado de espera (waitstate) es removido debido a los chips de RAM más rápidos, las intrucciones simples son tratadas usando sólo un ciclo de reloj. Este ciclo sería el ciclo 2 del ejemplo anterior del Z80; el ciclo 1 deviene en opcional y sólo es utilizado cuando el programa cruza un límite de 256 bytes.&lt;br /&gt;
&lt;br /&gt;
Todo esto se aplica a la RAM rápida usada en los MSX Turbo-R. El hardware externo, conectado por los slots de cartuchos, utiliza tiempos similares a los del Z80. Ni siquiera la [[ROM]] interna de los Turbo-R es suficientemente rápida para este esquema, por lo que su utilizan chips adicionales para copiar la ROM en RAM, para hacer que se ejecute más rapidamente.&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
{{zilog}}&lt;br /&gt;
== Enlaces a Wikipedia ==&lt;br /&gt;
*{{w|en|R800}}&lt;br /&gt;
*{{w|es|R800}}&lt;br /&gt;
*{{w|ja|R800}}&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Microprocesadores]]&lt;br /&gt;
[[Categoría:MSX]]&lt;/div&gt;</summary>
		<author><name>Museo8bits</name></author>
	</entry>
</feed>