HispaMSX

CAS2TAPE

2005-08-13 03:26:38
¡Wenas! Lo teneis como siempre en el área de archivos, sección 
utilidades. Ya se pueden grabar las imágenes de cinta en formato CAS 
de nuevo sobre cinta, directamente con el MSX, sin necesidad de usar 
el CAS2WAV de PC.

Bueno, antes de nada aclarar que aunque el nombre lo sugiera, CAS2TAPE 
no es el complemento exacto de TAPE2CAS: las grabaciones que genera no 
son idénticas a las cintas originales (aunque en ambos casos TAPE2CAS 
obtendría de ellas exactamente la misma imagen CAS). Por ejemplo, las 
imágenes sacadas de cintas turbo no las graba de nuevo en turbo, sino 
en formato estándar. Esto puede parecer un problema, pero en realidad 
es una ventaja: CAS2TAPE las puede grabar a 1200 baudios (más lentas 
que el original), pero también a 1800 (cargan en el mismo tiempo y con 
fiabilidad parecida) o incluso a 3500 (¡casi el doble de rápidas que 
el original!). Y si el original no era turbo, la ventaja es aún mayor.

Al final no he podido llegar hasta los 5400 baudios como tenía 
previsto, sólo hasta 3500. El caso es que grabar, se podía grabar 
perfectamente a esa velocidad e incluso más rápido (en cinta la 
calidad no era suficiente, pero en wav o CD seguro que sí). El 
problema era luego la rutina de carga estándar del MSX, que por su 
propia programación resulta incapaz de leer correctamente a más de 
3500-3600 baudios. Y como los programas en imagen CAS, por definición, 
están obligados a usar esa rutina de la rom y no una propia en plan 
Waver, no quedaba más remedio que ceñirse a sus limitaciones  :-(  En 
principio veo dos posibilidades para lograr velocidades de carga 
mayores:

 - Usar Waver, por supuesto  ;-)  Pero entonces no valen imágenes 
directas de cinta, hay que tener el programa en fichero ROM, y pasar 
de un formato a otro es tarea artesanal y compleja.

 - En los turbo R (que gracias al modo DRAM permiten "parchear" la rom 
del sistema), mejorar el TRCAS para que no ponga las rutinas estándar 
de cassete del MSX sino otras más optimizadas, que incluso podrían 
aprovechar el R800.

Otra cosa que puede resultar llamativa, es la extraña distribución de 
las velocidades soportadas por CAS2TAPE. En principio pensaba ponerlas 
cada 600 baudios (1200, 1800, 2400, 3000...) pero de nuevo las 
"particularidades" de la rutina estándar me obligaron a cambiar de 
planes. Descubrí que en un amplio rango alrededor de los 3000 baudios, 
resulta imposible que reconozca las cabeceras de los bloques, por muy 
bien que estén grabadas  :-/  Así que al final escogí estas 
velocidades, que además de seguir una cierta lógica (velocidades 
estándar / + 33% / + 50%) minimizan las posibilidades de error de 
carga (!!) tal como explico más abajo...

En conclusión: bueno, he podido comprobar que contando con una buena 
cinta y con un lector de los que filtran la señal (ni siquiera un 
Bitcorder, el mío es uno de esos "sin marca" que vendía Rafa Corrales
), los fallos de carga a velocidades de pocos miles de baudios se 
deben mucho más a los problemas de la rutina estándar del MSX que a la 
propia calidad del sonido. En concreto, lo que falla es la rutina que 
reconoce las cabeceras y determina su velocidad, que hay ciertas 
frecuencias que no logra medirlas con exactitud. Como esa medida se 
usa después para interpretar los bits de datos, cuáles son 0 y cuáles 
son 1, cuanto más error tenga más probabilidad hay de malinterpretar 
alguno. Además, se da un efecto bastante curioso: a medida que la 
velocidad sube, el error en la medición también aumenta, pero no de 
manera contínua sino en plan "dientes de sierra" algo irregulares. 
Ocurre entonces, que hay un par de "valles" especialmente pronunciados 
en los 1600 y los 3200 baudios, donde el error de medición baja hasta 
valores similares a los de 1200 y 2400 baudios, respectivamente. En 
otras palabras: a 1600 y 3200 baudios, la probabilidad de errores es 
prácticamente la misma que a las velocidades estándar... pero la carga 
es un 33% más rápida  ;-)




<Anterior en la conversación] Conversación actual [Siguiente en la conversación>
  • CAS2TAPE, glaurungattack <=