rutina turbo para cassette ataris
Te felicito fcatrin, tus supuestos son bastante exactos, salvo algunas inexactitudes en los protocolos.
Pero es obvio que no sepas que venía ya que los protocolos eran inventados por nosotros.
Te saludo, soy parchenegro, el que hizo el NHP y empezó con los famosos contadores de bloques.
Tal como tu lo explicas, sin meter obviamente los piii piii piii, te puedo contar que la sincronización se hacía buscando los inter record gap o IRG, que son los espacios entre bloques.
De ese modo el cargador sabía desde donde leer.
Hacía una lectura de bajo nivel en base a interrupciones para leer los primeros caracteres del bloque, (parte del sonido silente) donde buscaba el número de bloques.
A cada bloque grabado le poníamos un número de ese modo sabías de donde continuar la carga.
Los bloques que se caían durante la carga quedaban parcialmente cargados en un buffer, si había error durante la carga solo rescataba el número de bloque en el que iba y descartaba el bloque completo para intentar leer denuevo.
Además al final de cada bloque venía un checksum, que era para asegurarse que este bloque venía completo que no era ni mas ni menos que la suma de los bytes sin carry, o con carry? ufff ya no me acuerdo, pero el resultado se comparaba para saber si el bloque estaba ok.
El sonido silente se llama portadora, y es el que determina la frecuencia, se compara con los parámetros de lectura y grabación y si están ok, se carga, también conocida como banda de sincronismo.
Los pitos se denominan bloques.
La frecuencia debe ser igual a la modificada en la ROM de lectura y la frecuencia de grabación.
Esto último era lo más peludo, ya que como las cintas eran de baja calidad, estas frecuencias podían modificarse en la grabación por efectos de la polución, estiramiento de la cinta, etc.... Esto era lo que no permitía que fuera 100% segura la carga, a pesar del cargador de bloques, no tenías garantía que funcionara para siempre, pero si le daba más estabilidad.
Salu2 y bienvenido!
Atte
Parchenegro soft
Pero es obvio que no sepas que venía ya que los protocolos eran inventados por nosotros.
Te saludo, soy parchenegro, el que hizo el NHP y empezó con los famosos contadores de bloques.
Tal como tu lo explicas, sin meter obviamente los piii piii piii, te puedo contar que la sincronización se hacía buscando los inter record gap o IRG, que son los espacios entre bloques.
De ese modo el cargador sabía desde donde leer.
Hacía una lectura de bajo nivel en base a interrupciones para leer los primeros caracteres del bloque, (parte del sonido silente) donde buscaba el número de bloques.
A cada bloque grabado le poníamos un número de ese modo sabías de donde continuar la carga.
Los bloques que se caían durante la carga quedaban parcialmente cargados en un buffer, si había error durante la carga solo rescataba el número de bloque en el que iba y descartaba el bloque completo para intentar leer denuevo.
Además al final de cada bloque venía un checksum, que era para asegurarse que este bloque venía completo que no era ni mas ni menos que la suma de los bytes sin carry, o con carry? ufff ya no me acuerdo, pero el resultado se comparaba para saber si el bloque estaba ok.
El sonido silente se llama portadora, y es el que determina la frecuencia, se compara con los parámetros de lectura y grabación y si están ok, se carga, también conocida como banda de sincronismo.
Los pitos se denominan bloques.
La frecuencia debe ser igual a la modificada en la ROM de lectura y la frecuencia de grabación.
Esto último era lo más peludo, ya que como las cintas eran de baja calidad, estas frecuencias podían modificarse en la grabación por efectos de la polución, estiramiento de la cinta, etc.... Esto era lo que no permitía que fuera 100% segura la carga, a pesar del cargador de bloques, no tenías garantía que funcionara para siempre, pero si le daba más estabilidad.
Salu2 y bienvenido!
Atte
Parchenegro soft
- fcatrin
- hard player
- Mensajes: 470
- Registrado: Jue Abr 10, 2008 2:45 pm
- Reputación: 5
- Ubicación: Quilpué, Chile
- Contactar:
Parche Negro! si me acuerdo.
Creo que hay algunas inexactitudes en la descripcion del "bajo nivel" de como funcionaba.
La parte de "alto nivel" es decir, los bytes que se leian y su significado esta correcta, pero creo que hay alguna confusion en la forma en que se grababa el cassette.
El sonido inicial o portadora, es una pista para sincronizarse, se podia leer la secuencia de bits desde el puerto 53775, una vez que aparecian los primeros 1s y 0s se calculaba la frecuencia necesaria y se pasaba a leer los bytes que se iban acumulando desde 53773 (latch), no habia que hacer ninguna comparacion, solo calcular y cruzar los dedos para que no variara la velocidad mientras duraba el bloque.
Por lo tanto podias usar cualquier frecuencia para grabar, total en "tiempo de carga" se iba a a tratar de calcular gracias a los primeros 1s y 0s del bloque, el dilema era usar una que fuera lo suficientemente baja para que se pudiera leer en distintas casseteras y los bloques lo suficientemente cortos para que no variara su frecuencia durante la carga y al mismo tiempo reducir la cantidad de IRG que solo agregaban tiempo sin traer bytes para leer. Lo mismo que pasa con el valor MTU de una red.
El IRG es el espacio que queda entre bloque y bloque y no es nada mas y nada menos que una portadora de corta duracion para darle espacio a la CPU de calcular el checksum de lo que acaba de leer y luego retomar la carga inmediatamente buscando nuevamente los 1s y 0s de sincronizacion
Creo que hay algunas inexactitudes en la descripcion del "bajo nivel" de como funcionaba.
La parte de "alto nivel" es decir, los bytes que se leian y su significado esta correcta, pero creo que hay alguna confusion en la forma en que se grababa el cassette.
El sonido inicial o portadora, es una pista para sincronizarse, se podia leer la secuencia de bits desde el puerto 53775, una vez que aparecian los primeros 1s y 0s se calculaba la frecuencia necesaria y se pasaba a leer los bytes que se iban acumulando desde 53773 (latch), no habia que hacer ninguna comparacion, solo calcular y cruzar los dedos para que no variara la velocidad mientras duraba el bloque.
Por lo tanto podias usar cualquier frecuencia para grabar, total en "tiempo de carga" se iba a a tratar de calcular gracias a los primeros 1s y 0s del bloque, el dilema era usar una que fuera lo suficientemente baja para que se pudiera leer en distintas casseteras y los bloques lo suficientemente cortos para que no variara su frecuencia durante la carga y al mismo tiempo reducir la cantidad de IRG que solo agregaban tiempo sin traer bytes para leer. Lo mismo que pasa con el valor MTU de una red.
El IRG es el espacio que queda entre bloque y bloque y no es nada mas y nada menos que una portadora de corta duracion para darle espacio a la CPU de calcular el checksum de lo que acaba de leer y luego retomar la carga inmediatamente buscando nuevamente los 1s y 0s de sincronizacion
Lo que dices es correcto.
Raramente se sincronizaban los bloques ya que de todas formas funcionaba.
Si conocías la teoría tan bien, porque en aquellos tiempos era como hablar en Marciano de esto, porque no hiciste mejoras sobre lo que ya habíamos construído nosotros?
Recuerdo que habían hartos electrónicos que incluso ponían deck en serie para grabar desde el Atari con un circuito electrónico bastante burdo comparado con lo que hoy se hace en electrónica.
Esto lo vi operando en Enlace Computación por el año 1987 aproximadamente, año en que nació el NHP.
Salu2
Raramente se sincronizaban los bloques ya que de todas formas funcionaba.
Si conocías la teoría tan bien, porque en aquellos tiempos era como hablar en Marciano de esto, porque no hiciste mejoras sobre lo que ya habíamos construído nosotros?
Recuerdo que habían hartos electrónicos que incluso ponían deck en serie para grabar desde el Atari con un circuito electrónico bastante burdo comparado con lo que hoy se hace en electrónica.
Esto lo vi operando en Enlace Computación por el año 1987 aproximadamente, año en que nació el NHP.
Salu2
- ZZT
- Site Admin
- Mensajes: 10900
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
En efecto, el sistema injektor contempla el reemplazo de una "parte" del circuito de la casetera, por uno que permitiera trabajar a una mayor velocidad. No se realmente si hay otro chip adentro de la caluga de resina, pero al parecer solo hay logica discreta (RTC). Uno de estos dias voy a desensamblar uno, a ver que hay de verdad. Tanto el harware injektor como el software fueron creados por Pedro Caraball (Turbosoft) y su padre. Ellos le vendieron el "paquete" a Coelsa, los que amablemente vendieron al público en general.fcatrin escribió:El sistema injektor usaba una frecuencia fija, la cassettera incluia un supuesto chip que me tinca era para ajustar la frecuencia de lectura "por hardware". Al no tener que detectar la frecuencia, se podia leer mas rapido. Este es un verdadero "hack" por hardware
Hace años, en una de nuestras juntas anuales, Pedro Caraball (de polera roja) nos conto toda la historia. Tambien pueden apreciar a nuestro amigui parche negro (el pelaito de la izquierda). No me pude aguantar. :lol:
- fcatrin
- hard player
- Mensajes: 470
- Registrado: Jue Abr 10, 2008 2:45 pm
- Reputación: 5
- Ubicación: Quilpué, Chile
- Contactar:
Parche... es porque en 1987 yo tenia 11 años, no tenia ni telefono en la casa, asi que no habia forma de comunicarme con otros atarianos, salvo mis amigos vecinos que al poco tiempo cambiaron sus atari por MSX2.
Para mi edad eso era algo que ya estaba construido y desde mi punto de vista infantil no tenia ninguna posibilidad de hacer algo mejor que eso. Es como cuando eres chico y crees que las empresas o instituciones funcionan a la perfeccion :D
Lo que aprendi fue revisando incialmente el codigo de STAC, un cargador argentino segun recuerdo, y despues vi otros cargadores similares, como el SITRE, buscando similitudes pude entender mejor lo que hacian.
Cuando me consegui el memory mapping de atari (año 90/92 app) recien pude confirmar mis sospechas sobre que hacia cada registro involucrado.
BTW: en esos años no entendia nada de ondas y pensaba que la grabación de la cinta era digital, por lo que me demore un tiempo en entender para que diablos agregaban la portadora y como distingirla de los 1os y 0s....
ZZT: tenia la sospecha de que Injektor era de Chile. Que genial Hack, los felicito!
Para mi edad eso era algo que ya estaba construido y desde mi punto de vista infantil no tenia ninguna posibilidad de hacer algo mejor que eso. Es como cuando eres chico y crees que las empresas o instituciones funcionan a la perfeccion :D
Lo que aprendi fue revisando incialmente el codigo de STAC, un cargador argentino segun recuerdo, y despues vi otros cargadores similares, como el SITRE, buscando similitudes pude entender mejor lo que hacian.
Cuando me consegui el memory mapping de atari (año 90/92 app) recien pude confirmar mis sospechas sobre que hacia cada registro involucrado.
BTW: en esos años no entendia nada de ondas y pensaba que la grabación de la cinta era digital, por lo que me demore un tiempo en entender para que diablos agregaban la portadora y como distingirla de los 1os y 0s....
ZZT: tenia la sospecha de que Injektor era de Chile. Que genial Hack, los felicito!
- jakko
- expert
- Mensajes: 799
- Registrado: Jue Nov 09, 2006 10:29 pm
- Reputación: 6
- Ubicación: Montreal, Canada
hola fcatrin, ante todo BIENVENIDO
Creo que seras un gran aporte aqui, hay varios que aun rayamos con las innovaciones que se puedan hacer a nuestros ataris.
Con respecto a esto ultimo, es que tu tienes algo de info, manuales, etc etc que puedas aportar? Me imagino que no te quedaste con toda esa informacion sin hacer alguna rutina, modding etc etc?
cuantanos un poco tu historia aqui o en la parte de presentacion.
Saludos atentos y bienvenido nuevamente.
jK
Creo que seras un gran aporte aqui, hay varios que aun rayamos con las innovaciones que se puedan hacer a nuestros ataris.
Con respecto a esto ultimo, es que tu tienes algo de info, manuales, etc etc que puedas aportar? Me imagino que no te quedaste con toda esa informacion sin hacer alguna rutina, modding etc etc?
cuantanos un poco tu historia aqui o en la parte de presentacion.
Saludos atentos y bienvenido nuevamente.
jK
- fcatrin
- hard player
- Mensajes: 470
- Registrado: Jue Abr 10, 2008 2:45 pm
- Reputación: 5
- Ubicación: Quilpué, Chile
- Contactar:
Tengo algunas cosas en diskette, pero no tengo como leerlas si es que aun sobreviven, no los he usado en unos 15 años
Los puedo llevar para la proxima Atariada para ver si rescatamos algo.
Al hardware nunca le hice modificaciones, salvo un conector que hicimos con Max Celedon para transmitir datos entre el Atari y un MSX por el puerto de joystick.
Voy a escribir algo mas en la sección de presentación, espero no dar la lata no mas.
Los puedo llevar para la proxima Atariada para ver si rescatamos algo.
Al hardware nunca le hice modificaciones, salvo un conector que hicimos con Max Celedon para transmitir datos entre el Atari y un MSX por el puerto de joystick.
Voy a escribir algo mas en la sección de presentación, espero no dar la lata no mas.
- mazzatari
- novice
- Mensajes: 23
- Registrado: Lun Ago 04, 2008 12:17 am
- Reputación: 0
- Ubicación: bs. as. argentina
Si los varios sistemas que habian el stac, el turbo tennis y demas yo habia logrado descifrar en su epoca el stac lo habia separado es mas habia logrado cambiar la presentacion del negocio que traia le habia puesto mi presentacion lo unico que no andaba bien porque al terminar de cargar el juego se colgaba el atari aclaro que esto lo logre hacer cuando aun no tenia disketera lo hacia desde casete copiaba solo la primer parte con un copiador casero lo desmenbraba con un editor de caracteres cambiaba lo que queria luego volvia a grabar solo el bloque principal y con una doble casetera de audio grababa a continuacion los bloques en turbo por audio y shalam habia cambiado el logo y puesto mi presentacion que era lo que yo siempre queria hacer pero luego abandone el intento de seguir porque comenze a laburar y ya me desprendi unos años de las compus saludos.
es mas copiaba los casetes de casetes a casetes con el sistema turbo incluido con la doble casetera y andaba de lujo eso si tenia una casetera de modulos pioneer de los polentas que ademas incluian un variador de velocidad y yo habia descubierto luego de probar varias veces la velocidad justa para copiar los casetes con stac
es mas copiaba los casetes de casetes a casetes con el sistema turbo incluido con la doble casetera y andaba de lujo eso si tenia una casetera de modulos pioneer de los polentas que ademas incluian un variador de velocidad y yo habia descubierto luego de probar varias veces la velocidad justa para copiar los casetes con stac
"Sistema Inteligente Turbo con Recuperación de Errores"Cranorve escribió:SITRE?
Constaba de 2 partes:
- Cargador: Programita que realizaba la carga turbo. Era simplecito y sólo mostraba el nombre del programa/juego que se estaba cargando, un gráfiti y el contador. Además se reubicaba en memoria para no interferir con aquél. Ya no recuerdo si además deshabilitaba el DMA (apagaba la pantalla) para andar aún más rápido o minimizar la posibilidad de errores y reintentos.
- Grabador: Cargaba en memoria el programa/juego a grabar en cassette y lo analizaba, con lo que podía determinar en qué parte de la memoria era mejor que quedara el cargador. También se daba cuenta en qué bloques tenía que hacer una pausa (equivalente a los "pitos lentos", pero mucho más eficiente). Si el juego era más grande que la memoria disponible, podía hacer la grabación por partes (ej, en mi 800XL). Si se corría en un 130XE, usaba los bancos Mmmm.... no recuerdo haberlo usado en un 800XL con 256K.
Este programa lo desarrollé a pedido para un boliche de juegos en Viña, y la paga fue: la cassettera XC-11 usada para las pruebas, acceso libre a todos los programas que pasaban por ahí, y lo reconfortante que resultó tener éxito en el desafío
Después desarrollé un sistema de compresión de archivos ejecutables, que se autodescomprimían al partir. Eso permitió que las cargas de cassette se demoraran aún menos.
++Vitoco
-
- Similar Topics
- Respuestas
- Vistas
- Último mensaje
-
- 0 Respuestas
- 302 Vistas
-
Último mensaje por Poltergeist