Serie clonicos del Spectrum Todo sobre las ROMs Turbo (c)RaK 48 TURBO - 90 y 91 A continuacion mi traduccion del texto original en ingles que es lo unico que he podido encontrar en Internet sobre las ROMs turbo: Parte 1 "(c) 1990 Sinclair Research Ltd" " Unas pocas palabras sobre la ROM "Turbo-90" Quizas en terminos de conocimiento de parte de nuestros usuarios, la ROM Turbo-90 es la cosa mas controversial que hay. Hemos recibido ya miles de cartas de parte de los lectores que estan prestos a compartir sus secretos y han decidido desde hace tiempo que no representa ningun secreto para nadie. Por otro lado, la cantidad de cartas dedicadas a esta ROM recientemente se ha incremenado bastante, el motivo principal lo vemos en palabras como: "Querido INF0RK0M! He logrado descubrir mientras trabajaba con la TURB0-90 ROM algo... (yo abri..., yo me encontre con..., Etc. P.)". Tal como podran ver, no todo aqui es tan simple, si hoy, en 1994, muchos de nuestros colegas no tienen aun toda la info necesaria, pero se han sentido forzados a descubrir esta ROM por ellos mismos. Para ellos, hemos publicado un review de las capacidades de esta ROM, el cual fue preparado por nuestro corresponsal de Vorkuta Sudakov, Mikhail Stanislavovich. © Sudakov M.S., Vorkuta, 1994. La version de 1990 de la ROM TURBO para ZX-Spectrum retiene todas las funcionalidades de la version estandar de la ROM de 1982 del Spectrum, pero a~adiendole un numero de presentaciones unicas que son descritas a continuacion: 1. En "Turbo-90", presionar la tecla RESET no significa una completa inicializacion del sistema. Incluso si se tipease RANDOMIZE USR 0 como comando directo, el sistema no se resetea, sino que mas bien se para, y los atributos estandares (BORDER 0; FLASH 0; BRIGHT 0; PAPER 7; INK 0) seran usados para tda la pantalla. Algunas variables del sistema tambien son inicializadas, la pantalla es limpiada, y el mensaje inicial "©1990 Sinclair Research Ltd" saldra en la linea de servicio. La verdad es que de este modo no todos los programas podran ser detenidos - a veces se congelara o reseteara. Existen 4 formas de lograr un reset de sistema completo. El primero es presionando RESET seguido del comando NEW. El segundo es presionando y reteniendo el boton RESET por cerca de dos segundos, y entonces soltarlo. Eso hace que se lleve a cabo un reset completo. El tercero es presionar CAPS SHIFT al mismo tiempo que RESET. CAPS SHIFT debera ser soltada al ultimo. El cuarto es usar el monitor incorporado, pero del cual hablaremos mas tarde. 2. La carga y descarga de doble aceleracion es llevada a cabo mediante los mismos comandos de siempre (LOAD, SAVE). Para que el sistema se ponga en modo TURBO, hay que tipear el simbolo "-" (SS + J). Para la inversa es "+" (SS + K). Es posible incluso rescribir programas que usen el procedimiento en C.M. 1366 u otros a doble velocidad sin tener problemas. Pero, con muchos cargadores no estandares en modo turbo, los programas no cargaran. Los comandos de control "-" y "+" pueden tambien ser incluidos dentro de lineas Basic, y se ejecutaran de modo normal (esto se aplica tambien a otros comandos del Turbo-90). Hay tambien dos comandos mas asociados a la cinta magnetofonica. El comando "(" (SS + 8) activa el analizador de cabeceras. Al mismo tiempo, el nombre del archivo es indicado por su longitud, direccion de inicio y un parametro de auto arranque (para Programas). Los numeros aparecen en el sistema numerico que fue seleccionado con el monitor. Para desactivarlo usamos ")" (SS + 9). 3. Finalmente ya es posible invocar una linea para su edicion sin la tediosa combinacion: LIST - BREAK - EDIT. Para editar una linea, solo tipeamos "#" (SS + 3), seguido del numero de linea y ENTER. Si solo se tipea "#" sin parametros o "# 0", la primera linea del programa sera editada (no cero). Este comando "#" es directo y no puede insertarse dentro de un programa. 4. Si se esta en la zona baja del INPUT en el modo de edicion de Lineas Basic, entonces las teclas abajo (CS + 6) y arriba (CS + 7) nos permiten mover el cursor dentro de la linea editada. Es especialmente util cuando se editan lineas muy largas. 5. Cuando se tipea el caracter "," (SS + N) en la zona baja de la pantalla, entonces, un numero aparece en la linea de comando que nos indica el monto de memoria libre desde el final del programa BASIC hasta la RAMTOP (en el sistema numerico que se haya instalado en el monitor). Esta funcion es especialmente conveniente cuando se adaptan programas a disco — si quedan menos de 300 bytes, entonces como regla, cuando se accede al disco, el programa mostrara un mensaje sobre la memoria insuficiente, ya que no hay sitio para colocar un sector de 256 bytes para operaciones de lectura-escritura. 6. Ahora pasamos a ver el monitor incorporado del "Turbo-90". Esta es presentacion mas importante de esta version de ROM. Accedemos a este monitor mediante el comando "*" (SS + B). Por supuesto, no es MONS ni MON2, pero aun asi es una buena herramienta para ver y modificar el contenido de la memoria. Cuando se entra al monitor, la pantalla se ve asi: {falta la imagen de como se ve en el texto original} Cuando uno tipea "*", la informacion es mostrada en pantalla en tres ventanas. La primera esta en lo alto y a la derecha de la pantalla - muestra el contenido de los registros y pila de la maquina. El segundo esta ligeramente mas abajo y toma solo una incompleta linea - es para la entrada de datos (tras la aparicion del prompt ">".) La tercera ventana ocupa el resto, mostrando en pantalla el contenido de la memoria de la computadora en la forma de direcciones, numeros y caracteres. Comandos del Monitor Algunos comandos se ejecutan presionando una tecla, y algunos requieren de un valor numerico. "1" - cambia el sistema numerico (de DECimal a HEXadecimal y viceversa). "2" - cambia la salida de ciertos caracteres (sin su equivalente numerico) y viceversa. En este modo, la pantalla muestra simultaneamente los contenidos de 400 celdas de memoria en vez de 80 en modo normal. El modo avanzado es util cuando uno mira posiciones de memoria o se buscan mensajes de texto. "3" - entra un numero y lo escribe en el registro en curso (marcado con un cursor parpadeante) o en la pila. "4" - entra un numero y lo escribe en la direccion en curso. "5" - retrocede el puntero de la direccion 64 bytes. "6" - retrocede el puntero de la direccion 1 byte. "7" - avanza el puntero de la direccion 1 byte. "8" - avanza el puntero de la direccion 64 bytes. "9" - retrocede el puntero del registro de la pila. "0" - avanza el puntero del registro de la pila. "SPACE" - entra la direccion para ver la memoria. "!" (SS + 1) - efectua un reset completo del sistema. "_" (SS + 0) - sale del monitor, limpia la pantalla y da "0 0K". "(" (SS + 8) - sale sin limpiar la pantalla y da "0 0K". ")" (SS + 9) - sale sin limpiar la pantalla con el mensaje "5 M". "'" (SS + 7) - entra direccion y corre cod. maquina desde ahi (GOSUB). " * * * Parte 2 "(c) 1991 Sinclair Research Ltd" " El firmware de 1991 (no confundir con el firmware aleman), el cual se basa en el firmware de 1987, parece relacionado con Sergey Degtyarev de Lugansk (informacion de Stanley Virt). A pesar de la inscripcion (c) RaK en el monitor, Patrik Rak no tuvo nada que ver con el firmware de 1987 - yo mismo se lo pregunte. En el firmware de 1991 se han hecho correcciones en comparacion con la de 1982: 2-7, 13-17, 25-27, 2b-2f - reset 60-62 - JP 3938 para NMI (descartado) 62-65 - JP 04b2 - reset total 6d-6e - corrije NMI. Cuando (23728) = 0 va a 60 - > 3938 (monitor) (descartado), de lo contrario no es usado para (23728) 4aa-4c1 en 1982, ahora el reset esta en 4c7-4c8, 4d5-4d7, 567-569, 572- 573, 72c, 7b0-7b3, 990 - CINTA. Transiciones a 3c01, 3c6f, 3bcc (retornado como tal) a33 - corrije CHR$ 8 por O'Hara a48-a49 - corrije CHR$ 9 por myrom.asm fdb-fe3 - corrije Edit por Paul Harrison ff9-ffb - cursor abajo como en Beta Basic. Cambiado a 386e 105e-1060 - cursor arriba como en Beta Basic. Cambiado a 38a1 11cb-128c - reset ahora limpia la memoria solo si Caps 12bd-12c2 es pulsado - corrije algo en el ciclo principal del BASIC (automatica traslacion del cursor a un error en la linea ?) 1303 - era HALT, ahora EI, asi que ya no se cuelga tras USR 153d-153e - a~o "91" 1874-187c - se rehizo algo en el cursor de número de línea (ahora parpadea) 193d - corregido algo en la salida del caracter (ahora "!" tras 196c sin pasar a modo L) 1ac5-1ac8 - corrije PAUSE (ahora ya se puede PAUSE = PAUSE 0) 1b47-1b48 - los comandos "*", "," estan implementados. Cambia a 38d6 (descartado) 1e66, 1e6e-1e72 - corrije glitches (fallas) con el maximo numero de lineas (CONTINUE y GOTO, notado por Steven Vickers) 257d-257f - corrije bug en SCREEN$ (en los calculos) por Stephen Kelly 2e24-2e26, 3032- 3034, 3223-322f, 3232-323e - corrije falla de INT cuando = 0 (notado por Tony Stratton) y el fallo de -65536 386e-38a0 - proceso de cursor abajo, como en Beta Basic 38a1-38c0 - proceso de cursor arriba, como en Beta Basic 38c1-3cff - monitor, CINTA, etc. Todo lo que esta escrito como "descartado" y "devuelto" ha sido sacado / retornado en mi firmware del 2006. " **** Parte 3 Otras ROMs turbo "(c) 1988 Sinclair Research Ltd" De esta ROM no hay ninguna info, pero ya posee todos los comandos que son mencionados acerca de las turbo 90 y 91. En resumidas cuentas sus comandos extras son: , - equivale a FREE y puede ser usado incluso dentro de un listado # - hace un EDIT, sin parametros carga la primera linea PAUSE - sin parametros es equivalente a PAUSE 0 - - activa el modo turbo para el manejo de cintas + - desactiva el modo ( - activa analizador de cabeceras de programas en la cinta ) - desactiva el analizador * - entra en el modo monitor con la sigte. pantalla: |----------------------------------------| | | | AF00067 BC00042 DE00000 HL07030 | | '00068 '05921 '13979 '00056 | | IX00980 XY23610 SP65362 PC14588 | | 04867 | | 00000 243 175 050 059 s/2; 15872 | | 00004 ....... | | " | | " | | " | | | | | | 32512 | | 32352 | | 00076 ...... (c)RaK} | | | |----------------------------------------| "1991 Sinclair Spectrum Turbo" Aparte del mensaje inicial no parece ser nada diferente a la otra ROM turbo-91. "(c) 1987 SPECTRUM TURBO V2.3" Esta ROM ofrece como unicas caracteristicas lo sigte: - y + devuelven OK, posiblemente para activar desactivar el turbo , devuelve NONSENSE IN BASIC sin parametros o un valor de hasta 255 , da INTEGER OUT OF RANGE si el valor es mayor a 255 . devuelve NONSENSE IN BASIC sin parametros * activa un menu para acceder al monitor: D_EC - espera un valor decimal y lo convierte a hex. Q para salir E_DIT - espera un valor hex para modificar su contenido H_EX - espera un valor hexadecimal y lo convierte a dec. J_UMP - espera un valor hex para saltar L_IST - espera un valor hex y muestra el contenido de la memoria Q_UIT - sale del menu y devuelve control al BASIC. En suma es todo lo que he podido experimentar con esta ROM, pero al momento de escribir estas notas ni idea de que hacen , y . "(c) 1988 Spectrum Turbo+ V4.4" Esta version es bastante singular, pues solo tiene un comando extra: . - basta con pulsarlo y el cursor cambia a: >L en la zona baja de INPUT. Una vez aqui acepta los sigtes. comandos: E - acepta un valor hex para modificar su contenido, sino va a 0000 H - muestra el contenido de la memoria, sin parametro empieza de 0 A - muestra el contenido de la memoria como H pero en codigo ASCII G - salta a una dir. hex., sin parametros o cero reinicia el sistema S - da el mensaje de Start tape, then press any key, para cinta L - parece querer cargar algo, si se detiene da mensaje ERROR D BREAK (CAPS+espacio) - interrumpe cualquier proceso y sale al prompt B - devuelve el control al Basic. "ATOS Turbo System 4.0" Al iniciar esta ROM aparece el mensaje que le da nombre y si uno no pulsa nada, aparece una especie de screen saver con estrellas que parpadean y aparecen y desaparecen. Si se pulsa ENTER, el borde cambia y aparentemente intenta cargar algo ya que si pulsamos SPACE, nos genera un BREAK. En cambio cualquier tecla nos da otra pantalla con el mensaje "(c) 1994 ATOS Turbo Basic v4.0" sino se pulsa nada se nos vuelve a aparecer el screen saver. Una vez salimos de todos los mensajes pasamos al modo programa con su caracteristico cursor K y en espera de que tipeemos algo, si pasa rato inactivo, vuelve a aparecer el ya mencionado screen s. **** Parte 4 Para cerrar Para probar todas las ROMs Turbo he usado como siempre el emulador REALSpectrum y empeze con la Rak 1988. No parece ser incompatible con ninguna interfaz de disco, incluidos el Interfaz 1 y los Wafadrives. La Rak 1990 parece funcionar con todos los sistemas de disco incluido Wafadrive, excepto el Microdrive. Lo mismo sucede con las Rak 1991. La turbo 2.3 es compatible con todas las interfaces excepto DiscIple y Kempston. Auque no tengo manera de saber si pasa tambien con una maquina real o solo con el emulador. La turbo 4.4 a diferencia de la 2.3 es compatible con todo lo antes probado. ATOS es igualmente plenamente compatible con cada sistema de disco incluidos el Wafadrive y Microdrives. Para los sistemas que no estan emulados por REALS he tenido que pasar a usar... FUSE para Timex FDD 3000. Resultado: ninguna de las ROMs RaK funciono con el FDD. La ROM Atos no dio ningun problema. La turbo 2.3 en cambio se cuelga al intentar usar CAT* u otro comando de disco. La turbo 4.4 en cambio es plenamente compatible. X128 para SpeccyDos. En este caso todas la ROMs turbo han resultado ser plenamente compatibles con Speccydos. Y eso es todo cuanto he podido experimentar con cada una de las ROMs Turbo. (c)2023 zx_if1@hotmail.com