Spectrum: ¿Por qué RANDOMIZE USR para cargar código máquina? (parte 4)

Realmente el típico:

10 RANDOMIZE USR 666

Es un hack similar al usar la cucaracha en una play1 o el boot cd del reno rudolf de Dreamcast. Porque el Basic de los Spectrum no tenían una instrucción especifica para cambiar de lenguaje o ejecutar código maquina.

Pero lo curioso de el RANDOMIZE USR o el cargador en Basic inicial que tenía esta instrucción. Es que se usaba en todos los juegos comerciales (compilados/escritos en binario o código máquina).

¿Y por qué RANDOMIZE USR? Pues en las news de spectrum (jo que viejo me siento) alguien lo pregunto hace casi veinte años.

La respuesta corta es que es la manera menos peligrosa de ejecutar código maquina porque no cambia registros de CPU ni de memoria.

Y la respuesta larga, es lo mismo pero explicando que RANDOMIZE es la instrucción para iniciar el generador de números aleatorios de los spectrum. Y espera un número que viene en USR pos_mem es la forma de llamar al código maquina en esa posición. El RANDOMIZE espera que algún día le devuelva algún número pero nunca ocurre.

¿Y por qué no se usa directamente USR pos_mem? Pues la respuesta es simple, porque no se puede en el Basic del Spectrum y hay que engañarlo usando otro comando que podría hasta ser PRINT .

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos:

Responsable: Miguel de Dios Matías

Finalidad de la recogida y tratamiento de los datos personales: Responder a los comentarios enviados a través de la web

Legitimación: Consentimiento del interesado/a.

Destinatarios: No se comunican datos a terceros

Derechos: Podrás ejercer tus derechos de acceso, rectificación,  limitación y suprimir los datos en este formulario  así como el derecho a presentar una reclamación ante una autoridad de control.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.