SERIE CLONICOS DEL SPECTRUM ROMs modificadas del +2 La ROM +2c Existen hasta donde se, dos ROMs que sirven como reemplazo a la original del Spectrum +2, ambas llamadas +2c, una por A. Owen y otra por NamCo. I - Version de A. Owen A continuacion mi traduccion del texto originalmente en ingles, que el mismo autor incluyo con su ROM. " ZX Spectrum Plus 2C -------------------- ROM no oficial de Andrew Owen Nota: esta no debe ser confundida con la ROM +2C de NamCo. Copyrights ---------- El BASIC Sinclair tiene copyright (c)1982-87 de Amstrad plc. Este software es distribuido con el permiso de Amstrad plc. Amstrad plc. Registered in England No. 955321. Registered Office: Brentwood House, 169 Kings Road, Brentwood, Essex CM14 4EF, England Visite el website de Amstrad en http://www.amstrad.com Se puede distribuir este software de forma libre y gratuits siempre que no sea modificada y este acompa~ada de este fichero de texto. Disclaimer (Descargo de responsabilidad) ---------- El author no acepta la responsabilidad por cualquier da~o causado de algun modo por medio de este software - ningun software esta libre de fallos (si bien es probable que tenga menos fallos que las ROMs que estan siendo usadas justo ahora). Introduccion ------------ Primero fue el ZX Spectrum {16k y 48k}, despues vino el ZX Spectrum Plus, y si Sinclair hubiese {podido} continuado con la convencion de nombres de APPLE, el sigte. {modelo} tal vez hubiese sido llamado ZX Spectrum SE. Excepto que eso no es lo que paso al final. Algo de Historia antigua (pueden saltarse esta parte) ------------------------ El ZX Spectrum originalmente fue llamado ZX82, al modo de sus predecesores, el ZX80 y el ZX81. El nombre {finalmente dado de} Spectrum resulto del hecho de que este era el primer computador a color de Sinclair. La ROM fue escrita por Steven Vickers de Nine Tiles, que tambien habia trabajado en los ZX80 y ZX81. Sinclair lanzo su maquina antes de que la ROM estuviera terminada, lo cual explica muchos de los fallos (bugs) y el gran area vacia al final de la ROM. Nine Tiles continuo trabajando en la ROM despues de su lanzamiento, pero para entonces ya se habian vendido muchas unidades. Sinclair y Nine Tiles rompieron {su asociacion} de forma acrimoniosa y Steven Vickers se dedico a escribir la ROM para el Jupiter Ace. Debido a esto es que cuando el 128K fue creado en 1985, la ROM tuvo que ser escrita de modo interno {por parte de Investronica}. Los programadores usaron la ROM original como la base de su trabajo per el desensamblado de Sinclair era algo inseguro e incompleto - ellos terminaron usando el desensamblado de Logan y O'Hara. El editor fue escrito usando una red de maquinas VAX corriendo CP/M y al final de la ROM uno puede ver las iniciales de todos los que trabajaron en el proyecto. Considerando la falta de conocimiento sobre la ROM original, el hecho de que cada programador estaba trabajando con solo una parte de la ROM sin poseer una vision general, y los limites de la tecnologia disponible, hay que darles credito a los programadores ya que lograron hacer que funcione tan bien. El original 128k fue lanzado en Espa~a sin los menus ahora tan familiares. Todo eso fue a~adido en la version inglesa que le siguio. Desafortunadamente, el numero de bugs tambien se incremento. {Viendolo por} el lado positivo, eso significa que dificilmente un software para 128 que dependa de una version especifica de la ROM del editor, puede muy bien correr bien tanto en un modelo espa~ol o britanico del 128k asi como las subsecuentes maquinas de Amstrad. Pero eso {resulta} no ser cierto con el software mas anterior. La fiabilidad (compatibilidad) habia sido un problema con los primeros Spectrum, debido a eso un programa de prueba de fábrica fue a~adido en el poco espacio libre en la ROM original. Lamentablemente algunos programas que usaban este espacio como tabla de interrupciones eran ahora incompatibles. Poco despues del lanzamiento del 128k britanico, las dificultades financieras forzaron a Sinclair a vender el Spectrum a su rival Amstrad. El editor del inmediatamente lanzado +2, fue recompilado con una red de PCWs. El codigo de prueba de cintas fue removido y el mensaje de copyright fue cambiado pero esto movió una gran parte del código más atrás en la ROM y hay un trozo de espacio vacío al final de la ROM. In 1987, Cliff Lawson lidero un equipo de programadores, incluyendo a algunos que habian trabajado en el original 128k, para crear el +3. Lawson escribio el sistema operatinvo PLUS3DOS mientras los demas expandian el editor en dos ROMs. El codigo fue movido totalmente de lugar pero todos los bugs se terminaron quedando y nuevos bugs fueron apareciendo. Eso no era realmente culpa de los programadores ya que ellos no sabian de la existencia de muchos de esos bugs en primer lugar y ademas estaban tratando de a~adir soporte para el PLUS3DOS al editor del 128k coh incluso una muy peque~o porcion de notas sobre como se suponia que debia funcioanr todo. Los cambios en la sintaxis dio como resultado que el +3 terminara negandose a correr algunos programas del 128k y los cambios en el hardware provocaron incluso que muchos progamas anteriores del 128k ya no se ejecutasen. Algunos de los problemas de hardware se solucionaron en el +3B y uno o dos bugs fueron corregidos en el +2A, el cual fue el ultimo Spectrum. ROMs alternas ------------- ZX Spectrum +4/48 Fue mi primer intento de crear una nueva ROM para el Spectrum. En ese momento era la ROM con menos bugs que ademas tenia un tokenisador y un monitor a~adido. Mas tarde descubri que tenia muchos otros bugs. ZX Spectrum 48D Alla por el 2000 logre corregir todos los bugs excepto uno de la ROM original. Desafortunadamente los corregi en la version 128k de la ROM del BASIC debido a que estuve tratando de depurar al 128 tambien. Despues de que complete la ROM me di cuenta de que el codigo extra en la ROM BASIC 128 era innecesario. Ahora tenia que extraer todos los parches y empezarlo todo desde cero. Debido a eso fue que nunca hice publica esta ROM. ZX Spectrum Plus 2C Con una version libre de fallos de la ROM original completa, trate de hacer lo mismo con la ROM 128. Eventualmente me di cuenta de que era imposible - el codigo estaba demaiado fragmentado. Le a~adi soporte para TR-DOS de Pentagon. Limpie tantos fallos como pude y reemplaze el BASIC con el de la ROM original. Luego la instale en mi +2 (el cual habia modificado para usar un monitor de Amstrad en estereo). Y esta es la ROM que les estoy presentado aqui. ZX Spectrum +3e Garry Lancaster mejoro las ROMs del +3 con soporte IDE. Tuve un numero de conversaciones via email con Garry sobre las formas de mejorar las ROMs del Spectrum y el quemo una EPROM con el +2C para mi. Queria incluir soporte IDE para mi sigte. proyecto pero ya no quise limitarme al acceso en 8-bits. ZX Spectrum SE Si queremos una ROM, razonablemente libre de fallos, muy estable y 100% retro compatible, no podria irnos del todo mal con la Plus 2C. Pero yo aun queria corregir todos los fallos, Y eso es lo que esta ROM va a hacer una vez salga al publico. El soporte para nuevo hardware del ZX Spectrum SE sera tomado en cuenta por sobre todo. Bugs coregidos en el Editor 128k -------------------------------- La ROM 1 es la ROM original y sin modificar del Basic 48, con el gran numero de instrucciones FF. Esto mantiene la compatibilidad. En la ROM 0 he usado todo el espacio disponible para corregir tantos bugs como pude en el editor 128. Tengo codigo para corregir incluso mas fallos en el Editor 128 pero debido a que la ROM BASIC es la ROM original sin modificar, ya no tuve donde poner todos esos parches. A continuacion mi lista de cambios que pude hacer: 0064 - habilitadas las llamadas NMI con la ROM 0 paginada El fallo en el NMI de la ROM 1 no ha sido corregido. Si no hay un valor fijado, resetea la maquina del modo usual (por razones de compatibilidad), pero si hay un valor se hara la llamada incluso si la ROM 0 esta paginada. 01C3 - corregido el bug en NEW Habia valores escritos en direcciones erroneas haciendo que muchos programas para 48K se cuelguen en el modo 128K. Deberian funcionar ahora. 0240 - corregido el bug de incompatibilidad en 48k Cambiando tres instrucciones a NOP permite que la ROM original del 48k sin nmodificar, sea usada en lugar de la ROM 1. Cuando el comando SPECTRUM es tipeado en el BASIC 128, obtenemos 100% de compatibilidad con todos los programas escritos para un 48K edicion 3 y posteriores. 032C - Reemplazo de HALT por NOP Puede causar un cuelgue en algunas pocas circunstancias inusuales. 034B - corregido el bug ERROR NUMBER No puedo recordar que es lo que esto hacia, pero es un arreglo simple. 048A - corregido el bug del mensaje de error faltante En el original 128k (el espa~ol, sin los menus) existe un mensaje {extra de} "p, Parameter error". Su ausencia en la version britanica y subsecuentes 128s, causa que la maquina se cuelgue en algunas circunstancias. 0B96 - corregido el bug de PLAY "O256" Este valor no deberia ser aceptado por PLAY, pero si en otros micros. 2199 - corregido el bug DFSZ Un fallo menor. 26F1 - corregido el bug de tecla pulsada El click de tecla pulsada se supone que suena igual en 48k y 128k, pero un error en la ROM 128 significa que busca en el lugar equivocadoel valor por encontrar. 2D4A - corregido el bug de ALT CURSOR COLUMN Este fallo podia causar cuelgues. 2DA1 - corregido el bug del modo de edicion en la zona baja Puede causar cuelgues. 3012 - corregido el bug de DELETE WORD (borrar palabra) Un fallo menor. 335E - corregido el bug de RET NC un fallo menor. 3474 - corregido el bug de LINE 0 Aparece ahora, aunque no había espacio para una solucion para evitar que llene la pantalla. 36CC - menu centrado (36F1, 3770, 37CE, 37EE) Odiaba el hecho de que el menu estuviese algo a la izquierda para alinear con el mensaje de copyright ya que este mensaje solo aparece una vez. 37F6 - esquema de color cambiado (3864) Prefiero las barras del titulo en azul en vez del negro. Es mucho mas descansador para los ojos. Tambien te ayuda a saber que estas usando mi ROM. 3857 - BASIC 48k en el modo USR 0 Cuando corro una demo, no quiero estar yendo al Basic 128 para tipear USR 0. Ahora ya no tengo que hacerlo. Todo lo que corra en modo 48k deben de correr en modo USR 0. En caso de que eso no pase, aun se puede ir al modo 48 usando el comando SPECTRUM dese el Basic 128. 3966 - corregido RENUMBER ya no recuerdo que es lo que sucedia antes. 3BE9 - Agregado TR-DOS / removido el Tape Tester Ahora que hay una opcion TR-DOS en el menu, esto solo resetea la maquina a menos que exista un interfaz Beta Disk conectado al puerto de expansion o la emulacion de TR-DOS este activada. 3DDE - corregido el fallo "IF n1