Autor Tema: SID6581 (sintetizador de audio del Commodore 64)  (Leído 71995 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #195 en: 05 de Julio de 2008, 14:41:55 »
Bueno amigos, he montado todo. (O casi: no he tomado ninguna desicion sobre el conector USB, asi que no he puesto aun el cablecito final).

El resultado es el "Frankenstein" de la foto: presets de videograbadoras, jacks stereo de reproductores de CD, pulsadores de VCR, condensadores de 1 uF y de 10 uF de impresoras Epson, cables planos de conectores IDE y LEDs de algun panel de VCR (si la memoria no me falla). Ahhh, y un zocalo de un motherboard :)




Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #196 en: 05 de Julio de 2008, 15:32:19 »
"Separadores"? :)

 :D :D

No importa, veré como conseguir algunos parecidos.

Hermosa la placa. Espero que Juan te pueda mandar las memorias en encapsulado DIP. En cuanto monte la placa, subo la foto.

¡¡¡Aaaa!!! me olvidaba. Para el envío de los componentes, será recomendable que Juan me los envíe a mi, ya que estoy a 25km de la aduana y lo puedo retirar personalmente. Luego se la envío a Ariel.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #197 en: 05 de Julio de 2008, 16:11:26 »
Preciosa Aitopes... respecto a las memorias, dispondremos de 2 juegos en DIP y uno en SOIC. Está claro que aitopes necesita las DIP... Leon y yo tendremos que repartirnos el otro juego de DIP y la SOIC.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #198 en: 05 de Julio de 2008, 16:36:26 »
Gracias Juanfe!
Yo no tengo problemas en hacer 4 pequeños PCBs a modo de "adaptadores" para las memorias, asi que no se compliquen por mi!!! :)

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #199 en: 07 de Julio de 2008, 08:48:19 »
No te preocupes Ariel. Juan, como tu te has tomado el trabajo de comprar las memorias, mándame las que tu quieras. Ya imprimí las dos versiones (con DIP y SOIC). Una vez que me confirmes, armo el PCB.

Para hacerte sincero, me dá lo mismo cualquiera de los 2 encapsulados.


¡Ah!, para el que quiera armar mi placa, los taladros de los CI, están bien. Deberían estar muy bien, pero no. No se si fué la impresora o que, pero desde el primer taladro hasta el último, me robo 1 mm. En vez de tener 50mm, tiene 49mm. En el altium, lo revisé y todos están bien.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #200 en: 07 de Julio de 2008, 09:39:17 »
Leon, no entiendo a qué taladros te refieres con esto:
Citar
¡Ah!, para el que quiera armar mi placa, los taladros de los CI, están bien. Deberían estar muy bien, pero no. No se si fué la impresora o que, pero desde el primer taladro hasta el último, me robo 1 mm. En vez de tener 50mm, tiene 49mm. En el altium, lo revisé y todos están bien.

Leon, si todo está bien (que a mí me parece que sí), mañana lo plancho.

Os mandaré a vosotros las memorias DIP y me quedaré yo con las SOIC.

Esta mañana he estado haciendo de canguro con mi hijo y he aprovechado unos instantes para probar en el C64 un juego en cartucho que compré hace unos días... en cuanto ha oido la musiquita se ha quedado pegado al televisor. La verdad es que el C64 suena de lujo.


Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #201 en: 07 de Julio de 2008, 11:14:27 »
Esta mañana he estado haciendo de canguro con mi hijo y he aprovechado unos instantes para probar en el C64 un juego en cartucho que compré hace unos días... en cuanto ha oido la musiquita se ha quedado pegado al televisor. La verdad es que el C64 suena de lujo.

siiiii!!! La musica del PacMan fue una de las primeras que oí en el C64, allá por fines de los ochenta, principio de los noventa. Recuerdo que me sorprendio por que sonaba identica a la de las recreativas....Creo que sera uno de los primeros archivos a meter en el aparato que estamos armando.

Tengo ganas de ver si el patillaje de un 16f877A que tengo a mano coincide con la placa que arme...Si coincide, me gustaria aunque sea poder hacerle hacer "Tuuuut" al SID.

Anoche lei el capitulo 13 del manual de la C16, el que se dedica al sonido, y trae los programitas (en basic) para hacer sirenas de policia, latidos de corazon, ruidos de motores....todo con muy pocas instrucciones (4 o 5)....son simplemente envios de valores a los registros del SID.  :-)

Eso se puede hacer "facilemente". Asi que veré como ando de tiempo esta semana. :)
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #202 en: 07 de Julio de 2008, 12:32:34 »
Perdón Juan, no se en que estaba pensando a la hora de escribir  :oops: , me refería a los agujeros de los pines del Circuito Integrado.

No lo planches aún Juan, porque me quedé impaciente y estube revisando cual fue el error, si la impresora, el Primo PDF, el altium o yo. El error fue mío, por despistado, volví a subir el archivo sin actualizar las nuevas ubicaciones de los ollos :oops: cuando fuí a las casas de mis padres, descargue estos archiivos y los  imprimí. Hise esto para no cometer el error de imprimir desde el altium e imprimir los mismo archivos que compartía con ustedes. Ahora me tengo que ir a ingles. Estoy volviendo a las 17 hs, en esa hora, subo los archivos correctos.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #203 en: 07 de Julio de 2008, 18:00:52 »
Listo. Ya actualizé las dos versiones en el post que subí las direcciones. De todas maneras, pongo aquí también las direcciones.

V2

http://www.mediafire.com/?1vbmnmutezc

v2 con plano a tierra

http://www.mediafire.com/?zi0ztnxgvdm

v3

http://www.mediafire.com/?nnfnyfdoji9

v3 con plano a tierra

http://www.mediafire.com/?jbd2mtnrtyz


Subo también una imágenes (muy malas ya que fue sacado con un celular) para intentar mostrar que todos los pines coinciden.

El SID (de Ariel)



El PIC




Ariel, cuando Juan me mande tu componentes, te envío lo que te prometí.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #204 en: 07 de Julio de 2008, 19:09:48 »
Perfecto!! :)
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #205 en: 07 de Julio de 2008, 19:29:27 »
Hola amigos!
como se viene la hora de empezar a programar, les pongo unos links que comenzaré a mirar esta misma noche:

CC65, el compilador C y ensamblador: http://www.cc65.org/

La "casa" del 6502: http://www.6502.org/

Documento experimental sobre instrucciones no documentadas: http://www.neshq.com/6502program/6502-N ... pcodes.htm

Plugin para editar ensamblador de 6502 en Eclipse: http://home.chello.no/~gstraume/c64/cpu6502_0.5.0.zip
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #206 en: 07 de Julio de 2008, 22:41:25 »
Alguien tiene alguno de estos libros?

o 6502 Assembly Language Subroutines, Leventhal and Saville
  (Osborne/McGraw-Hill)
o 6502 Software Design, Scanlon (Howard W. Sams & Co.)
o 6502 Assembly Language Programming, Leventhal (Osborne/McGraw-Hill)
o Commodore 64 Programmer's Reference Guide (Commodore/Howard W. Sams
  & Co.)
o Programming in 6502, Rodnay Zaks (Sybex)

Estoy hojeando est tutorial de assembler del 6502: http://project64.c64.org/misc/assembler.txt
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert


Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #208 en: 08 de Julio de 2008, 08:12:06 »
Hola Juanfe!

Luego de leer un poco sobre el 6502, veo que no es TAAAN complicado. (es solo TAAN complicado...una "A" menos :) ).

Yo pensaba....(y eso puede significar que el hard que construimos tenga algun problema, o no, veamos): podriamos tomar 64Kb de memoria externa, y suponer que es la RAM/ROM del C64 (la parte correspondiente a la ROM puede que debamos "metarle" en nuestra memoria, por si el soft emulado hace lecturas de esa zona).

Luego, el programa del PIC tomaria una a una las instrucciones del programa del 6502, y haria lo que estas indican. No son demasiadas.

Supongamos que tenemos una variable (en el PIC) llamada "Program_counter", otra "AcumuladorA", etc.

Si encontramos "JMP $5545" simplemente ponemos "Program_counter" apuntando a esa dir, y seguimos revisando el programa original desde alli.

Si encontramos  "STA $FE", hacemos "AcumuladorA = FE", incrementamos en 1 el "Program_counter", y pasamos a la siguiente.

Etc.

Emular de esa manera seria bastante sencillo.

Y cuando detectamos instrucciones de escritura en la direccion del mapa de memoria del C64 que correspondan al SID, enviamos los comandos al chip y listo....

¿Que te parece?

La duda sobre el hard es si una EEPROM puede soportar ese ritmo de trabajo, o si necesitamos en su lugar una RAM.

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #209 en: 08 de Julio de 2008, 09:08:49 »
Hola Aitopes... mi enfoque coincide al 100% con el tuyo. El primer intento será utilizar 64 K de EEPROM externa a modo de RAM. Las EEPROM I2C de nuestro proyecto son las más rápidas que existen, pero aún así no sé si será suficiente.

Si no lo fuera, habría que utilizar RAM, pero la RAM paralelo actual es bastante (muy) cara. En este caso, y como un guiño al espíritu del C64, yo optaría por usar su misma memoria: 8 chips 4164, que no son difíciles de conseguir...

De todas formas, yo no me acuerdo del juego de instrucciones completo del 6502 (¿has encontrado alguna referencia básica?), pero mi enfoque sería traducir directamente al PIC el código del archivo sidemu.ccp (el meollo está en el método CSIDEmu::cpuParse) que me mandó Rainer (y que adjunté en un post anterior), pues no se trata sólo de emular el juego de instrucciones del 6502, sino también el funcionamiento de otros chips que intervienen en el manejo del SID a través de la generación de interrupciones externas.


 

anything