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 .