{"id":159,"date":"2022-02-10T00:33:22","date_gmt":"2022-02-10T00:33:22","guid":{"rendered":"https:\/\/specnext.dev\/es\/?p=159"},"modified":"2022-02-10T13:11:49","modified_gmt":"2022-02-10T13:11:49","slug":"la-memoria-del-zx-spectrum-next","status":"publish","type":"post","link":"https:\/\/specnext.dev\/es\/2022\/02\/10\/la-memoria-del-zx-spectrum-next\/","title":{"rendered":"La memoria del ZX Spectrum Next"},"content":{"rendered":"<p>Una de las caracter\u00edsticas del Next es que puede gestionar hasta 2Mb de RAM, pero eso no quiere decir que podamos disponer de toda esa memoria de forma libre y directa.<\/p>\n<p>El Next implementa un microprocesador Z80N, que no es m\u00e1s que un Z80 vitaminado, lo que le permite correr a 28MHz, en vez de a 3.5MHz del cl\u00e1sico 48K y 128K, adem\u00e1s de incorporar una serie de instrucciones adicionales que lo hacen m\u00e1s potente.<\/p>\n<p>Pero lo que no se ha cambiado es el modo de direccionamiento de la memoria. El Z80 trabaja con registros de 16 bits para acceder a la memoria, lo que significa que puede direccionar un m\u00e1ximo de 64Kb de memoria directamente.<\/p>\n<p>En el ZX Spectrum 48Kb, los 16 primeros Kb estaban ocupados por la memoria ROM (Memoria de Solo Lectura), que viene a ser el sistema operativo<\/p>\n<div id=\"attachment_160\" style=\"width: 310px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-160\" class=\"size-medium wp-image-160\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/MapaMemoria48Kb-300x251.png\" alt=\"Mapa de memoria 48Kb\" width=\"300\" height=\"251\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/MapaMemoria48Kb-300x251.png 300w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/MapaMemoria48Kb.png 491w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-160\" class=\"wp-caption-text\">Mapa de memoria 48Kb<\/p><\/div>\n<p>del equipo, y el resto 48Kb se almacenaban en memoria RAM (Memoria de Acceso Aleatorio), en la que se puede escribir.<\/p>\n<p>En el diagrama se muestra como estaban divididos estos 64Kb.<\/p>\n<p>La aparici\u00f3n de los modelos de 128Kb ampli\u00f3 la capacidad de la RAM disponible, pero no el direccionamiento del Z80, que solo es capaz de direccionar 64Kb. Para lo cual se implement\u00f3 un sistema de paginaci\u00f3n de memoria.<\/p>\n<p>\u00a0<\/p>\n<h2>La paginaci\u00f3n de memoria<\/h2>\n<p>Este sistema divide los 64Kb direccionables por el Z80 en slots, de 16Kb en los modelos de 128K. El Next ha mejorado la gesti\u00f3n, permitiendo slots de 8Kb o 16Kb.<\/p>\n<div id=\"attachment_161\" style=\"width: 696px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-161\" class=\"wp-image-161 size-full\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/Slots.png\" alt=\"Slots del Next\" width=\"686\" height=\"309\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/Slots.png 686w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/Slots-300x135.png 300w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><p id=\"caption-attachment-161\" class=\"wp-caption-text\">Slots del Next<\/p><\/div>\n<p>Estos slots nos permiten colocar en ellos cualquier banco de memoria que queramos en cualquier slot, en el caso del Next, ya que en los Spectrum cl\u00e1sicos solo se pod\u00eda paginar completamente el slot situado en $c000, aunque existen algunas excepciones que no vienen al caso.<\/p>\n<p>Ahora bien, aunque podamos paginar cualquier slot hacia cualquier banco de memoria, hay que tener especial cuidado en que slot y banco de memoria utilizamos, ya que algunos est\u00e1n utilizados por el sistema. Por ejemplo: Si utilizamos el slot 0, estaremos conmutando la ROM, por lo que, si necesitamos acceder a ella, para imprimir o cargar desde disco, por ejemplo, el resultado ser\u00e1 un cuelgue del sistema en el mejor de los casos.<\/p>\n<p>En las siguientes tablas podemos ver que hay en cada slot:<\/p>\n<div id=\"attachment_162\" style=\"width: 691px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-162\" class=\"wp-image-162 size-full\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/SlotsTabla.png\" alt=\"Tabla de slots del Next\" width=\"681\" height=\"236\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/SlotsTabla.png 681w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/SlotsTabla-300x104.png 300w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><p id=\"caption-attachment-162\" class=\"wp-caption-text\">Tabla de slots del Next<\/p><\/div>\n<p>Esto significa que los slots de 16Kb, 1 y 2 no se deber\u00edan conmutar nunca, o al hacerlo habr\u00eda que extremar las precauciones.<\/p>\n<p>En cuanto a los bancos de memoria, en la siguiente tabla podemos ver c\u00f3mo est\u00e1n asignados:<\/p>\n<div id=\"attachment_163\" style=\"width: 691px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-163\" class=\"wp-image-163 size-full\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/BancosTabla.png\" alt=\"Tabla de bancos de memoria del Next\" width=\"681\" height=\"364\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/BancosTabla.png 681w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/BancosTabla-300x160.png 300w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><p id=\"caption-attachment-163\" class=\"wp-caption-text\">Tabla de bancos de memoria del Next<\/p><\/div>\n<p>Para ir sobre seguro, podemos usar sin problema los bancos de 16 a 47 (16Kb) o del 32 al 95 (8Kb), lo que nos deja 1Mb de RAM, que incluye a todos los equipos del KS1, por lo que nuestro programa ser\u00e1 compatible con ellos. Hay que tener en cuenta que los bancos por debajo del 31 se usan en algunos casos para operaciones internas del sistema operativo, por lo que recomiendo usarlos lo menos posible.<br \/>\nLos bancos del 48 al 111 (16Kb) o del 96 al 223 (8Kb), solo est\u00e1n disponibles en los modelos de 2Mb.<\/p>\n<p>En resumen, para evitar problemas podemos usar los slots de 2 y 3 (16Kb), o 4, 5, 6 y 7 (8Kb), y las p\u00e1ginas de la 16 a la 47 (16Kb) o de la 32 a la 95 (8Kb).<\/p>\n<p>\u00a0<\/p>\n<h3>Referencias<\/h3>\n<ul>\n<li><a href=\"https:\/\/worldofspectrum.org\/faq\/reference\/128kreference.htm\">https:\/\/worldofspectrum.org\/faq\/reference\/128kreference.htm<\/a><\/li>\n<li><a href=\"http:\/\/nextlib.duefectucorp.com\/\">http:\/\/nextlib.duefectucorp.com\/<\/a><\/li>\n<li><a href=\"https:\/\/wiki.specnext.dev\/Memory_map\">https:\/\/wiki.specnext.dev\/Memory_map<\/a><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una de las caracter\u00edsticas del Next es que puede gestionar hasta 2Mb de RAM, pero eso no quiere decir que podamos disponer de toda esa memoria de forma libre y directa. El Next implementa un microprocesador Z80N, que no es m\u00e1s que un Z80 vitaminado, lo que le permite correr a 28MHz, en vez de [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":168,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,21],"tags":[18,20],"class_list":["post-159","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo","category-hardware","tag-memoria","tag-paginacion"],"jetpack_featured_media_url":"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/02\/RAM-N-GO.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts\/159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":6,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"predecessor-version":[{"id":171,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts\/159\/revisions\/171"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/media\/168"}],"wp:attachment":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}