Serie clonicos del Spectrum PLUS 4 A continuacion mi traduccion del texto original en ingles sobre la ROM plus4: I - Todo sobre el +4 " La plus4.rom tiene copyright (c)1982-2000 Amstrad plc y es distribuida con su amable permiso. Quiero agradecerle a Cliff Lawson y a Amstrad por hacer posible este proyecto, Philip Kendall por su pagina de la ROM del Spectrum, Ian Collier por documentar los cambios que hizo a la ROM y darme consejo adicional, Dr Ian Logan y Dr Frank O'Hara por su valioso "Complete Spectrum ROM Disassembly", y a quien sea que me vendio dicho libro y a los contribuyenes a comp.sys.sinclair por haberme entretenido e informado constantemente. -Andrew Owen, 24-2-2000 Introduciendo al Spectrum +4. ---------------------------- Recuerdo cuando APPLE prometio a sus clientes una nueva computadora por $99. A lo que se referian era que ellos esperaban que su nuevo sistema operativo podria cambiar la experiencia de sus usuarios tan profundamente que haria que todos sintieran como si tuviesen una nueva maquina. Bueno pues, ahora ustedes podran tener toda una nueva Spectrum GRATIS! Cual es la idea detras de esto? ------------------------------- Tome al original 48K como mi punto de partida y lo altere al grado donde creo que ya no hay mas sitio para mejoras sin agregarle un hardware extra. Ahora si alguien quiere construir una maquina nueva al menos ya tiene algo por donde empezar. Cuan compatible es? ------------------- La ROM Spectrum +4 es muy similar a la del 48k, por lo que deberia ser 90% compatible o mejor con el codigo de maquina. Los programas BASIC tal vez requieran de modificaciones minimas pero aparte de eso deberian entonces correr sin problemas. Cuales son los cambios? ----------------------- Hay tantos cambios que es imposible sumarisarlos todos. Solamente los cambios mas importantes han sido detallados (aqui) con la excepcion de la nueva rutina NMI que es auto explicada. EL TECLADO El teclado ha sido completamente redisegnado, basandome en el estandar internacional ingles, para hacerlo mas rapido de usar y mas facil recordar en donde estan las teclas. Esto es hecho posible al reemplazar todo el sistema de entrada del teclado. Todas las funciones de SHIFT en las teclas numericas son retenidas, al igual que las funciones de atributos con EXTEND y SHIFT-EXTEND. Pero alli es donde las similitudes con el viejo teclado terminan. Todas, salvo unos pocos simbolos son accedidos presionando SYMBOL y la tecla relevante, mientras el resto es accedido usando EXTEND. Presionando ya sea SHIFT o SYMBOL en modo EXTEND dara el mismo resultado como si SYMBOL shift solo hubiera sido pulsado. Ademas, de los caracteres mostrados a continuacion, los 16 graficos pre definidos son accesibles usando SYMBOL o EXTEND y las teclas Q-R y A-F. --------------------------------------- | ! | @ | £ | $ | % | ^ | & | * | ( | ) | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ---------------------------------------- | | | | | | | { | } | : | " | | | | | | | | [ | ] | ; | ' | | Q | W | E | R | T | Y | U | I | O | P | --------------------------------------- | | | | | | | | | _ | + | | | | | |(c)| | \ | - | = | | A | S | D | F | G | H | J | K | L | ----------------------------------- | ~ | | | | ? | < | > | | # | | | | / | , | . | | Z | X | C | V | B | N | M | --------------------------- SYMBOL = los simbolos de abajo EXTEND = los simbolos y atributos en las teclas numericas SHIFT = las mayusculas y funciones en las teclas num. EL EDITOR DEL BASIC El cambio mas notable es que ahora todos los comandos deben ser tipeados plenamente. Las instrucciones son convertidas a tokens automaticamente apenas se pulsa ENTER. Es tambien posible usar los cursores para moverse arriba y abajo mientras se edita una linea. Las instrucciones se pueden tipear ya sea en mayusculas o en minusculas. Los espacios no son requeridos entre comandos como DEF FN o tras un comando a menos de que el argumento empiece con una letra. COMANDOS BASIC CAT - cuando se tipea sin parametros, va al monitor incorporado. PLOT, DRAW y CIRCLE - han sido modificados para usar toda la pantalla. ERASE "i" - borra las variables extras del Interface 1, canales extendidos y similares sin afecar al programa BASIC en memoria. GO SUB, GO TO y CONTINUE - han sido reemplazados por GOSUB, GOTO, y CONT, para replicar a otros interpretes BASIC. MOVE - puede ser usado para mover datos en la memoria. Por ejemplo, el comando MOVE "r0,6144","r16384" copia los primeros 6144 bytes de la ROM al area de la memoria de la pantalla. COPY - ha sido reemplazado por el comando FREE el cua reporta el monto de memoria libre por debajo de la RAMTOP. EL PROGRAMA MONITOR El Spectrum +4 posee un monitor incorporado que puede ser accedido con el comando CAT o presionando SYMBOL, SPACE y B mientras las interrupciones esten habilitadas. Los sigtes. comandos son los disponibles: B Retorna al BASIC (de ser posible) D muestra los numeros hexadecimales a notacion decimal G Ejecuta una subrutina en la direccion G (RET regresa al monitor) H muestra los numeros decimales a notacion hex. M Hex y ASCII son volcados de la direccion dada (SPACE para salir) R Ve y/o cambia los registros: AF, BC, DE, HL, IX y SP S Parcha la memoria desde una direccion dada usando hex editor (SPACE para salir del editor) BUGS CORREGIDOS Se ha hecho el esfuerzo de corregir todos los bugs mencionados en "The Complete Spectrum Rom Disassembly" y unos otros pocos ademas que son: corregido un bug en CLOSE #. ejm.: CLOSE #4 corregido el avance (CHR$ 9). ejm. PRINT "A";CHR$ 9;"B" corregido el retroceso (CHR$ 8). ejm. PRINT AT 0,0;CHR$ 8;"A" corregido el STR$. ejm. PRINT "BUG"+STR$ 0.5 corregido el de division. ejm. IF 1/2<>0. 5 THEN PRINT "BUG" corregido el -65536. ejm. PRINT INT -65536 corregido SCREEN$. ejm. IF "X"=SCREEN$ (0,0) THEN PRINT "BUG" corregido el "scroll?". Trate de pulsar True Video al verlo. corregido el error de verificacion sintactica. corregido el doble almacenaimiento en 257Dh. Resuelto el K-MODE. ya que no existe el modo 'K'. Resuelto el error de buffer de impresora. ya no hay mas COPY. Resuelto el NMI. ahora hay una rutina diferente. corregido el fallo de "bloquear si las interrupciones están deshabilitadas en el informe de error" NOTA LEGAL PARA LOS CURIOSOS Solo para asegurarme de que estaba "100% okay" hacer esto, escribi a Cliff Lawson de Amstrad el 23/02/00. He aqui el resultado: yo: se que esta okay en principio distribuir ROMs modificadas de Spectrum mientras el mensaje de copyright no se cambie. Pero, justo termine de hacer una muy enorme revision a la ROM y me gustaria usar un mensaje diferente. CL: bueno, no puedes realmente asociar un nombre tal como "+4" con "Amstrad Consumer Electronics" porque lo haria parecer como si fuese un desarrollo "oficial". yo: Podria esto ser aceptable? AMSTRAD CONSUMER ELECTRONICS PLC (C)1982-2000 unofficial +4 48K CL: Yup, suena OK, pero debes de comprender que la compagnia solo se llamo "Amstrad Consumer Electronics" por unos pocos agnos a comienzos hasta mediados los 80 y entonces el nombre paso a ser acortado a "Amstrad plc" asi que es un poco "desactualizado" usarlo, pero supongo que eso probablemente describe tambien al "Spectrum"! :-) yo: iportaria si te menciono en el "readme" (leame) solo para que nadie me acuse de violar el copyright? CL: No hay problema. Visite el website de Amstrad: "http://www.amstrad.com" Amstrad plc. Registered in England No. 955321 Oficina Registrada: Brentwood House, 169 Kings Road, Brentwood, Essex CM14 4EF, England " Y hasta ahi el texto ofrecido por el autor del +4. Ahora paso a... II - MIS APRECIACIONES Aparentemente no hay mas info al respecto que el README que he traducido. Tanto la ROM como el texto ya mencionado pueden ser encontrados en la internet, principalmente en la web SPECCY4EVER actualmente alojada en SPECCY.ORG. Una vez descargado, la pruebo con mi emulador preferido, el REAL Spectrum. Tras ejecutarla, tal como dice su autor, aparece en la pantalla el mensaje: AMSTRAD CONSUMER ELECTRONICS PLC (C)1982-2000 unofficial +4 48K en letras con tinta blanca y fondo y borde negros. Debido a que no tiene modo K, tras pulsar una tecla el mensaje desaparece y en su lugar tenemos el cursor L parpadeante. Si se pulsa CAPS LOCK tenemos el cursor C indicando el modo mayusculas, con EXTEND pasamos a modo E y con GRAPH al modo G. En este ulltimo modo si aparecen las palabras reservadas RND, INKEY$, PI, FN y POINT al pulsar las teclas de la V a la Z. Todos los comandos previamente mencionados funcionan tal cual. Ahora... tras probarlos uno por uno cada comando, noto lo sigte.: excepto el uso de la pantalla completa por parte de PLOT, DRAW y CIRCLE, o el uso de GOTO, GOSUB y CONT, asi como quitar COPY para reemplazarlo por FREE... los comandos CAT, ERASE y MOVE asi como el Monitor incorporado, estan presentes en las ROMs 80lec y 528k de Jiri Lamac. MOVE incluso acepta la sintaxis "d" en lugar de "r" pero ambas aparentemente hacen lo mismo ya que no hay ninguna RAM extra, asi que operan con la unica RAM de 48k. Sin embargo, si se usa esta ROM en reemplazo de la 80lec, MOVE puede acceder a la RAM extra con lo que es plenamente compatible con dicha ROM LEC. Pero en el caso del 528k no accederia mas que a un solo banco D cuando este ultimo puede accesar hasta 15 bancos de la A a la G. Practicamente usa sus mismas rutinas de hecho. Otra cosa que el autor tampoco menciona es que su ROM +4 tiene la posibilidad de abreviar todos los comandos al estilo LEC, como por ejemplo: G. por GOTO o pr. por PRINT y asi sucesivamente. Tampoco es mencionado que se puede acceder a minusculas con SHIFT estando en modo C; O que se puede acceder tambien aL MONITOR si se presiona SYMBOL + SPACE + B. FORMAT "k" resulta que si existe en el +4, y hace que aparezca en pantalla el cursor K, pero solo permite acceder a las sentencias propias del modo K o que se accesan directamente sin SYMBOL ni nada, por lo que no se puede obtener STOP con un solo boton como es usual o DEFFN en modo E, por ejemplo, y todo eso debido a las modificaciones hechas al teclado. Sistemas de disco. En el caso de los sistemas de datos, es plenamente compatible con el ZX Microdrive. Al igual que las ROM LEC, acepta tambien al Wafadrive, Opus Discovery, Speccy-Dos, Disciple y +D. En el caso de Beta128, no puede volver con RETURN del Trdos al Basic, debido a que no acepta RETURN tipeado letra a letra, pero si lo hace con los demas comandos. Eso no pasa con el Trdos 505 checo modificado. En el caso del Didaktik D80, no permite el catálogo de disco con CAT y algunos pocos comandos, asi que a menos que sepa lo que contiene el disco, no puedo cargar nada con LOAD* incluso si esta orden funciona correctamente. Otro sistema de disco con el que si es plenamente compatible, al igual que las ROM LEC, es el TIMEX FDD. Compatibilidad con programas Si bien varios juegos comerciales pueden ser compatibles con esta ROM, no asi aquellos programas que requieren de una configuracion de teclas muy especifica para su funcionamiento, como es el caso de Logo Sinclair, que requiere de EXTEND para replicar la tecla CONTROL. Asi que en el +4 no funciona algo tan simple como ^C o ^Q a menos que el programa circunvencione ese fallo como es el caso del CP/M del 528k lec. Otro programa que requiere del modo tipico de tipear del Spectrum que tampoco funciona correctamente es el Basic extendido de Manuel Arana y muchos otras extensiones al Basic sufren de lo mismo. En cambio, es posible que Betabasic o Megabasic no tengan ese problema, debido a que ambos permiten tipear todo letra a letra. Un caso aparte son los emuladores como por ejemplo el SP2zx81, ya que este tiene su propia configuracion del teclado, ignorando asi al dilema que genera la distribucion de las teclas del propio +4. Lo unico exclusivo del +4 es el uso de FREE en reemplazo de COPY y la nueva reconfiguracion del teclado que elimina el modo K y el modo convencional del Spectrum de obtener los comandos y funciones del Basic, aparte de algunos bugs corregidos extras. En suma, eso es todo lo que he podido probar con el +4 y aunque el autor no lo diga, su ROM esta definitivamente basada en la ROM LEC de Lamac, es decir que mas que un clon del 48k, lo es del 80k lec, siendo el +4 del 2000 y el 80k del 87. Y bueno pues, ahi lo dejo... (c)2023 zx_if1@hotmail.com