La verdad sobre el “RANDOMIZE de la muerte” de los Inves Spectrum +

Inves Spectrum +

Inves Spectrum +

En 1986, Amstrad compra la compañía Sinclair después del descalabro de ésta a cuenta de las malas ventas del QL y del fiasco del C5 en Inglaterra. Hasta aquel momento, la empresa española Investrónica (filial de El Corte Inglés) distribuía los productos de Sinclair en España, sin embargo, la distribuidora oficial de Amstrad era Indescomp, que pasaría a realizar dicho cometido desde entonces. Investrónica, pues, que tenía experiencia en la fabricación local de microordenadores Sinclair (el ZX Spectrum +128, concretamente), decidió utilizar ese bagaje tecnológico para crear su propio clon de un ZX Spectrum 48K, el conocido aquí como Inves Spectrum +, ordenador que venía con el teclado y el software traducido al castellano.

Inves Spectrum + (clic para ampliar)

Inves Spectrum + (clic para ampliar)

Este clon adoleció de numerosas incompatibilidades, principalmente debido a esa ROM traducida no totalmente estándar. Entre aquellas características extrañas del Inves Spectrum +, hubo una que podemos considerar como única en la historia de los ordenadores de Sinclair y de sus clones: el Inves Spectrum + era, presumiblemente, el primer y único clon de Spectrum que podía dañarse de forma permanente mediante la utilización de determinadas instrucciones de software. ¿Cómo dice, joven? Lo que oyes.

La propia revista MicroHobby, en la página 32 de su número 156, advertía del rumor aparecido y aseguraba que, aunque no habían tenido ocasión de comprobarlo, las dos siguientes instrucciones en BASIC podía dañar físicamente el ordenador:

BORDER 5
RANDOMIZE USR 4665

Lo gracioso del asunto es que, en la época, nadie parece que realizara la prueba para comprobarlo, ni los propios redactores de MicroHobby. Y es que el producto de aquello podía resultar en que el dichoso aparato se estropeara de por vida, y aquello daba miedito. El Inves Spectrum + es hoy día un ordenador bastante raro y codiciado, pues sólo se comercializó en España, así que dudo mucho que si alguien se hace con uno se atreva a probar el conocido como “RANDOMIZE de la muerte”. O sí.

La imagen siguiente se corresponde con la advertencia en MicroHobby aprovechando la pregunta de un lector.

Advertencia en MicroHobby

Advertencia en MicroHobby

Pasaron los años, y la leyenda urbana se mantuvo en el tiempo. Sin embargo, en el año 2003 apareció un emulador de máquinas Sinclair, el ZXSpectr para MS-DOS, que presumía de ser el único que emulaba al de Investrónica (aunque hoy día ya no es así). El propio autor del emulador, César Hernández Baño, se encargó de demostrar que todo aquello del “RANDOMIZE de la muerte” no era más que una fábula tecnológica. César evidenció que no había nada de malo en ese RANDOMIZE USR. De hecho no tenía sentido que una llamada a la ROM (aunque fuera en medio de una instrucción) pudiera tener ese efecto tan devastador.

Ni que decir tiene que en la máquina real pasó exactamente lo mismo que en el emulador. No hubo daños a la máquina, ni temporales ni permanentes. Al hacer el RANDOMIZE USR 4665, la máquina vuelve inmediatamente al BASIC con el mensaje de inicio y el borde celeste. Al pulsar ENTER, el sistema devuelve el mensaje C NO EXISTE EN BASIC, 0:1. Al pulsar ENTER de nuevo, la zona de edición (las líneas inferiores de pantalla donde se escriben los comandos BASIC) se llenan de basura, con sentencias, números y otros caracteres ininteligibles. En este punto, el intérprete de BASIC se comporta de forma inestable y la única forma de salir es con un reseteo total del equipo.

Todo lo anterior lo vemos en el siguiente vídeo, creado por el mismo César.

Si se realiza esta sencilla prueba con la ROM original de Sinclair, el resultado es idéntico, sólo que cambia el texto de los mensajes que aparecen.

En otro documento más técnico, César Hernández Bañó describía el problema de la siguiente manera:

Si hacemos un POKE a ciertas direcciones ROM (sí, direcciones ROM), el borde no responde a nuevos comandos BORDER. Después de algunas investigaciones, hemos descubierto que pokeando una dirección ROM cuyo byte menos significativo sea 254, se bloquea cualquier dato de entrada en la ULA del equipo. Para ser más precisos: si hacemos un POKE de un valor V a direcciones 254, 510, 766 […], 16382 (es decir, N * 256 + 254), con un rango de valores N que vaya de 0 a 63, ese valor V actúa como una máscara AND para todos los datos posteriores dirigidos a la ULA. Esto significa que si V es 0, independientemente del valor emitido por el procesador, la ULA ve 0 en su bus de datos. Para recuperar el funcionamiento normal, hay que pokear 255 a todas las direcciones ROM.

Esta situación se prolongó en el tiempo mientras había suministro de energía en el Inves Spectrum +. Un reseteo del equipo o un RANDOMIZE USR 0 no restauraban la ULA a su estado original. Sólo después de desconectar de corriente y volver a conectar, las cosas volvieron a la normalidad.

Por lo tanto, quedó demostrado que el “RANDOMIZE de la muerte” nunca fue real. Sin embargo, hoy día muchos lo siguen comentando como cierto; es lo que tienen las leyendas urbanas, que regresan periódicamente y nadie sabe por qué.

2 comentarios a “La verdad sobre el “RANDOMIZE de la muerte” de los Inves Spectrum +”

Escribe tu comentario

eBook ‘retroPLOF!’

retroPLOF!

Especifica tu dirección de correo electrónico y pulsa 'Comprar ahora'. Puedes pagar con tu cuenta de PayPal o con cualquier tarjeta bancaria.

E-mail envío eBook:

Sigue teknoPLOF! vía…
 
RSS
Twitter
Facebook
Google
 
Ready Set Click!

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación. Más información.

CERRAR