Cargador de Cintas con Arduino para C64
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Cargador de Cintas con Arduino para C64
No Lord Raptor lo que pasa que yo monté un cacharro un poco distinto, pille el Arduino , una SD y una libreria que reproduce .wav , eso conectao a los cabezales del cassete del C64, o sea no va directo al C64 en formato .tap... como comentaba algo pilla aunque no bien.. Vamos como si cargas con una cinta de los chinos metida dentro del cassete, pero claro aqui si le pones tu pantallica y para selccionar el archivo pues mas o menos se supone que haces el apaño... Supongo que estó deberia ir en cualquier sistema que use cassete.
- marcos64
- Amiga 1200
- Mensajes: 1376
- Registrado: 03 Sep 2011, 07:53
- Gracias dadas: 59 veces
- Gracias recibidas: 32 veces
Re: Cargador de Cintas con Arduino para C64
mentalthink escribió:pille el Arduino , una SD y una libreria que reproduce .wav , eso conectao a los cabezales del cassete del C64
A que te refieres con eso?
http://marcos64.orgfree.com/
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.
- Lord Raptor
- Amstrad CPC 472
- Mensajes: 69
- Registrado: 27 Dic 2014, 03:42
- Sistema Favorito: Commodore Amiga
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo GameBoy Advance
- Primera consola: TV Games/Pong Clone
- Gracias recibidas: 1 vez
Re: Cargador de Cintas con Arduino para C64
Es ke, el sistema de carga del Commodore [segun tengo entendido] no es analógico, es
más bien digital. Personalmente creo ke es una mezcla de ámbos.
El resto de sistemas [como el Spc] tiene una 'oreja' común y se le puede meter datos
de 'akella manera'.
Lo curioso de la carga de Commodore es, ke se graban dos veces el programa a cagar
y el ordenador lo lee dos veces a modo de cerciorarse para ke el checksum sea el correcto.
Es algo ke desconocía y me enteré hace poco. Existe un montaje de dificultad ridícula
ke amplifica la señal de audio y puedes cargar desde un wav con un dispositivo externo.
más bien digital. Personalmente creo ke es una mezcla de ámbos.
El resto de sistemas [como el Spc] tiene una 'oreja' común y se le puede meter datos
de 'akella manera'.
Lo curioso de la carga de Commodore es, ke se graban dos veces el programa a cagar
y el ordenador lo lee dos veces a modo de cerciorarse para ke el checksum sea el correcto.
Es algo ke desconocía y me enteré hace poco. Existe un montaje de dificultad ridícula
ke amplifica la señal de audio y puedes cargar desde un wav con un dispositivo externo.
Miembro activo en la demoscene Amiga desde 1993
Miembro activo en la scene del ROMhacking desde 1994
Miembro activo en la scene del ROMhacking desde 1994
- marcos64
- Amiga 1200
- Mensajes: 1376
- Registrado: 03 Sep 2011, 07:53
- Gracias dadas: 59 veces
- Gracias recibidas: 32 veces
Re: Cargador de Cintas con Arduino para C64
Por eso mi pregunta, hace falta un interface para conectar una señal de audio al C64 y tengo curiosidad de a que se refiere exactamente con "eso conectao a los cabezales del cassete del C64".
Por otro lado aunque el formato de carga del kernal es asi, se puede modificar como se quiera (dentro de las limitaciones del propio Datassette) y hay infinidad de cargadores comerciales y formatos como el Turbo Tape.
Y ya retroespeculando. es una pena que el Datassette no fuera una especie de Quick Data Drive pero usando cintas normales grabadas por una sola cara, con un directorio al comienzo y que buscara los programas automaticamente. De hecho existen cintas especiales para datos que solo se pueden grabar por una cara aunque nunca he visto un reproductor para ellas.
EDITO: Los casetes especiales para datos se llamaban "Streamer cassette".
Por otro lado aunque el formato de carga del kernal es asi, se puede modificar como se quiera (dentro de las limitaciones del propio Datassette) y hay infinidad de cargadores comerciales y formatos como el Turbo Tape.
Y ya retroespeculando. es una pena que el Datassette no fuera una especie de Quick Data Drive pero usando cintas normales grabadas por una sola cara, con un directorio al comienzo y que buscara los programas automaticamente. De hecho existen cintas especiales para datos que solo se pueden grabar por una cara aunque nunca he visto un reproductor para ellas.
EDITO: Los casetes especiales para datos se llamaban "Streamer cassette".
http://marcos64.orgfree.com/
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.
-
- Amiga 1200
- Mensajes: 1442
- Registrado: 07 Nov 2009, 11:38
- Sistema Favorito: C64
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo SNES
- Primera consola: Nintendo SNES
- Ubicación: Madrid
- Gracias dadas: 9 veces
- Gracias recibidas: 209 veces
Re: Cargador de Cintas con Arduino para C64
Lord Raptor: Evidentemente lo que hay en una cinta es audio analógico, tanto en Commodore como en Spectrum, donde hay grabadas ondas a medio camino entre forma cuadrada y sinusoidal que necesitan ser decodificadas. La forma de conseguirlo es una circuitería que detecte cuándo esa onda pasa de tener valores positivos a valores negativos y viceversa (cruzando el centro, en lo que vendría a ser su representación gráfica), y que así se mande una señal al sistema que permita definir el tiempo de duración de un ciclo.
En Spectrum esa labor lo lleva a cabo la ULA, donde una de sus patillas está conectada directamente a una hembra jack mono estándar, y la circuitería del chip cambia entre 0 y 1 el valor de un bit de un puerto cada vez que la onda cambia y el código de los cargadores lo pueden detectar, midiendo así el tiempo entre transiciones de onda. En Amstrad es casi lo mismo, solo que el chip es diferente.
En Commodore esa labor la realiza el datassette, no el ordenador. La circuitería del datasette ya activa una señal en una de las pistas del conector, que está conectada directamente a la CIA que controla la entrada/salida de ese puerto, entre otras tareas. Luego ya el código de los cargadores puede examinar el valor de un determinado bit de memoria (recordemos que el C64 tiene la I/O mapeada a memoria) para detectar el cambio de onda.
No estoy 100% seguro, pero oí que mientras los típicos equipos Z80 (Spectrum, Amstrad, MSX) podían detectar semiciclos, el Commodore 64 solo podía detectar ciclos completos porque no podía detectar la transición de vuelta desde negativo a positivo. Por supuesto, no por el procesador, ya que el Apple I/II lleva un 6502 y puede detectar semiciclos (el genio Steve Wozniak creó un sistema de carga basado en modulación por frecuencia que fue en el que se basaron muchos otros, de hecho el Spectrum y el Apple II suenan exactamente igual), sino porque el C64 hereda una arquitectura que venía de la época de los PET y tanto el VIC-20 como el C64 mantenían cierta compatibilidad. Aquí, como si de Wikipedia se tratase, necesitaría una referencia estricta que lo confirmase.
El algoritmo usado por la ROM en los equipos CBM es muy poco optimizado, porque no se fiaban de la calidad de los materiales magnéticos, algo que pronto se probó exagerado. Usa 3 formas de onda en vez de 2 como casi todo el resto de ordenadores, varias repeticiones de la onda para definir un bit, pone bits de comienzo y bits de parada alrededor de cada byte, y por si fuera poco graba todo el bloque una segunda vez después de la primera. Esto hace que ciertos juegos de 1982 que usan la rutina de la ROM pudiesen tardar 15 minutos en cargar de cinta. Menos mal que enseguida las compañías empezaron a crear cargadores propios con algoritmos diferentes que permitían cargar con fiabilidad en la quinta parte de tiempo.
En Spectrum esa labor lo lleva a cabo la ULA, donde una de sus patillas está conectada directamente a una hembra jack mono estándar, y la circuitería del chip cambia entre 0 y 1 el valor de un bit de un puerto cada vez que la onda cambia y el código de los cargadores lo pueden detectar, midiendo así el tiempo entre transiciones de onda. En Amstrad es casi lo mismo, solo que el chip es diferente.
En Commodore esa labor la realiza el datassette, no el ordenador. La circuitería del datasette ya activa una señal en una de las pistas del conector, que está conectada directamente a la CIA que controla la entrada/salida de ese puerto, entre otras tareas. Luego ya el código de los cargadores puede examinar el valor de un determinado bit de memoria (recordemos que el C64 tiene la I/O mapeada a memoria) para detectar el cambio de onda.
No estoy 100% seguro, pero oí que mientras los típicos equipos Z80 (Spectrum, Amstrad, MSX) podían detectar semiciclos, el Commodore 64 solo podía detectar ciclos completos porque no podía detectar la transición de vuelta desde negativo a positivo. Por supuesto, no por el procesador, ya que el Apple I/II lleva un 6502 y puede detectar semiciclos (el genio Steve Wozniak creó un sistema de carga basado en modulación por frecuencia que fue en el que se basaron muchos otros, de hecho el Spectrum y el Apple II suenan exactamente igual), sino porque el C64 hereda una arquitectura que venía de la época de los PET y tanto el VIC-20 como el C64 mantenían cierta compatibilidad. Aquí, como si de Wikipedia se tratase, necesitaría una referencia estricta que lo confirmase.
El algoritmo usado por la ROM en los equipos CBM es muy poco optimizado, porque no se fiaban de la calidad de los materiales magnéticos, algo que pronto se probó exagerado. Usa 3 formas de onda en vez de 2 como casi todo el resto de ordenadores, varias repeticiones de la onda para definir un bit, pone bits de comienzo y bits de parada alrededor de cada byte, y por si fuera poco graba todo el bloque una segunda vez después de la primera. Esto hace que ciertos juegos de 1982 que usan la rutina de la ROM pudiesen tardar 15 minutos en cargar de cinta. Menos mal que enseguida las compañías empezaron a crear cargadores propios con algoritmos diferentes que permitían cargar con fiabilidad en la quinta parte de tiempo.
Última edición por BlackHole el 16 Ene 2015, 13:47, editado 2 veces en total.
- Jaimen
- Amiga 1200
- Mensajes: 1656
- Registrado: 17 Mar 2009, 13:39
- Sistema Favorito: Amstrad CPC
- primer_sistema: Amstrad CPC
- Ubicación: Madrid
- Gracias dadas: 156 veces
- Gracias recibidas: 19 veces
Re: Cargador de Cintas con Arduino para C64
mentalthink escribió:Vamos como si cargas con una cinta de los chinos metida dentro del cassete
Yo intenté cargar juegos así en mi C64 y era, evidentemente, una tarea de chinos, nunca mejor dicho, aunque algo logré cargar ...
Mi galeria de fotos en 500px.com
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Cargador de Cintas con Arduino para C64
A ver que me parece que os (o me estoy armando un follón)....
Os explico para dejar claro(lo de los cabezales conectaos)
Como creo yo que funciona un C64, es lo mismo que cualquier ordenador, pero en vez que el cassete está incorporao, está fuera, o sea una cinta de Asmtrad y una de C64 es lo mismo es un archivo de audio no?¿, creo que hasta aqui voy bien...
Vale si yo cojo un archivo .tap de dónde sea y lo paso a .wav con esa aplicación que hay en C64 que no recuerdo el nombre, digamos que tengo un archivo como de cinta o sea analógico pero el disco duro, como se lo meto al cassete, por los cabezales desde un arduino que reproduce con un programa (una libreria más un código pequeñito), archivos .wav... O sea que hago lo mismo que si meto una cinta de los chinos de estás sin fin, conecto el jack a un mobil con un archivo wav... Eñ cassete del C64 ya hará lo que tenga que hacer para pasarlo a 1 y 0 y que la CPU lo entienda....
Vamos que no he hecho ningún enjendro raro, ni nada que no exista, perdonad por la confusión, pero es una gilipollez de montaje, quizás para lo que serviría creo yo, es ponerle una pantalla y tendrías una especía de HxC pero de cinta .
Yo no tengo ni idea de C64, pero creo que esté cachibache debería ir... aunque cierto es que no le voy a dedicar muchas horas, he econtrado la cinta de los chinos por casa. y el datassete a vuelto a funcionar por arte de magía, como me suele pasar con todo lo que deja de funcionar
Os explico para dejar claro(lo de los cabezales conectaos)
Como creo yo que funciona un C64, es lo mismo que cualquier ordenador, pero en vez que el cassete está incorporao, está fuera, o sea una cinta de Asmtrad y una de C64 es lo mismo es un archivo de audio no?¿, creo que hasta aqui voy bien...
Vale si yo cojo un archivo .tap de dónde sea y lo paso a .wav con esa aplicación que hay en C64 que no recuerdo el nombre, digamos que tengo un archivo como de cinta o sea analógico pero el disco duro, como se lo meto al cassete, por los cabezales desde un arduino que reproduce con un programa (una libreria más un código pequeñito), archivos .wav... O sea que hago lo mismo que si meto una cinta de los chinos de estás sin fin, conecto el jack a un mobil con un archivo wav... Eñ cassete del C64 ya hará lo que tenga que hacer para pasarlo a 1 y 0 y que la CPU lo entienda....
Vamos que no he hecho ningún enjendro raro, ni nada que no exista, perdonad por la confusión, pero es una gilipollez de montaje, quizás para lo que serviría creo yo, es ponerle una pantalla y tendrías una especía de HxC pero de cinta .
Yo no tengo ni idea de C64, pero creo que esté cachibache debería ir... aunque cierto es que no le voy a dedicar muchas horas, he econtrado la cinta de los chinos por casa. y el datassete a vuelto a funcionar por arte de magía, como me suele pasar con todo lo que deja de funcionar
- scooter
- Amiga 1200
- Mensajes: 1031
- Registrado: 17 Jul 2012, 09:25
- primer_sistema: C64
- Ubicación: Alicante
Re: Cargador de Cintas con Arduino para C64
A ver si tengo un rato y busco el adaptador para cassette normal. Si no me equivoco era un simple 7404.
Según eso el arduino sin mas debería de poder generar esta señal a partir de un archivo sin mucha complicación
Según eso el arduino sin mas debería de poder generar esta señal a partir de un archivo sin mucha complicación
- Lord Raptor
- Amstrad CPC 472
- Mensajes: 69
- Registrado: 27 Dic 2014, 03:42
- Sistema Favorito: Commodore Amiga
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo GameBoy Advance
- Primera consola: TV Games/Pong Clone
- Gracias recibidas: 1 vez
Re: Cargador de Cintas con Arduino para C64
@ BlackHole: Gracias por la info. Ahora sé algunas cosillas ke antes deconocía.
Miembro activo en la demoscene Amiga desde 1993
Miembro activo en la scene del ROMhacking desde 1994
Miembro activo en la scene del ROMhacking desde 1994
-
- Amiga 1200
- Mensajes: 1442
- Registrado: 07 Nov 2009, 11:38
- Sistema Favorito: C64
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo SNES
- Primera consola: Nintendo SNES
- Ubicación: Madrid
- Gracias dadas: 9 veces
- Gracias recibidas: 209 veces
Re: Cargador de Cintas con Arduino para C64
El famoso cartucho 1541 Ultimate II para Commodore 64, que emula el comportamiento de hasta 4 unidades de disco mediante un cable que lo une al puerto serie, incorporó posteriormente al diseño original un añadido que lo conectaba al puerto de cassette mediante un cable plano, sin necesidad de la existencia de un Datassette real intermedio.
Supongo que el aparato Tapuino este al que se referencia al principio del hilo, será capaz de poner las señales adecuadas a nivel alto o bajo, en la pista adecuada del puerto, emulando lo que generaría el propio Datassette. No sé si esa información está convenientemente documentada y de código libre, no me he parado a mirar en los posteriores enlaces al GitHub que aparecen en el artículo, por si alguien quiere usarlo con otra electrónica diferente.
Edito: No me había dado cuenta que el artículo del Tapuino tiene 2 partes más donde venía todo detallado...
Supongo que el aparato Tapuino este al que se referencia al principio del hilo, será capaz de poner las señales adecuadas a nivel alto o bajo, en la pista adecuada del puerto, emulando lo que generaría el propio Datassette. No sé si esa información está convenientemente documentada y de código libre, no me he parado a mirar en los posteriores enlaces al GitHub que aparecen en el artículo, por si alguien quiere usarlo con otra electrónica diferente.
Edito: No me había dado cuenta que el artículo del Tapuino tiene 2 partes más donde venía todo detallado...
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados