Mensajepor BlackHole » 01 Sep 2017, 12:26
@PabloMarmol: Efectivamente esta protección consiste en sustituir el tono guía por datos para confundir a los posibles copiadores que hubiese por la época. Al oído, parece un tono guía con "interferencias", que no son otra cosa que los bits cero de arranque a 1200 Hz cada diez bits uno (20 ondas) a 2400 Hz. El cargador usa la propia rutina TAPIN ($00E4) de la BIOS para la carga, que lee el primer byte que esté en ese momento en la cinta, a lo bestia, sin importarle que exista o no un tono guía (es más, si lo hay lo descarta). Esa rutina normalmente está dentro de bucles como el que el BASIC gestiona a escribir LOAD, ya que lee un único byte y ahí acaba su función.
No hay que definir un bloque TZX nuevo porque en realidad son datos en modulación MSX (11 bits por byte, con bits de arranque y parada) y eso ya lo hace el bloque 4B que yo definí en su momento. Podría haber generado un único bloque grande con los 40193+256 bytes, pero tras analizar el código del cargador, preferí separarlo en dos: los datos que son ignorados, y los datos que realmente van a memoria, sin pausas entre ellos. Efectivamente, como no existe tono guía, ponemos su número de ondas a cero. El bloque 4B está diseñado con esa versatilidad. De hecho en los TZX de Spectrum encontramos esa estrategia en multitud de cintas.
Recordemos que los TZX describen cómo están físicamente las ondas dispuestas en la cinta, para recrear el sonido original. El que un preservador decida cómo mostrar al usuario esa información (junta o separada), es una capa de complejidad que está por encima de la capa física y que solo nos vale a nosotros los humanos para intentar abstraer la lógica subyacente. No os comáis mucho el coco con ello.
Última edición por
BlackHole el 01 Sep 2017, 13:45, editado 6 veces en total.