Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - pastbytes

Páginas: 1 ... 24 25 [26] 27 28 ... 36
376
General / Re:Interesantes datos de ventas
« en: Agosto 31, 2015, 09:04:38 »
Si no interpreto mal, son numeros totales, no son (mas o menos) 280 y 145 cartuchos al año sino desde 2012 hasta ahora. Aun asi es un buen numero.

377
En realidad lo que sale de la disketera son unos y ceros, aunque la señal supongo que sera analogica. Lo que se escribe en los diskettes es una secuencia de unos y ceros tal como se hace en una cinta, pero mas eficiente porque el material magnetico es mas fiable. En una cinta, por ejemplo en un Spectrum o MSX, se suele usar un metodo similar al de los modems, donde se envia un tono de una frecuencia para los unos y otro para los ceros, esto en la practica se traduce a que por ejemplo se graben 3 pulsos para un 0 y 6 pulsos para un 1, por elegir numeros arbitrarios. Lo que hace el ordenador es contar los pulsos y con eso darse cuenta de si es un 0 o un 1, esto en un diskette desperdiciaria mucho espacio, ya que por ejemplo estariamos usando 12 bits como minimo para representar 1 bit de datos. De donde sale esto? De que tenemos 3 pulsos para un 0, que se almacenaria como 101010, o 6 pulsos para un 1, que seria 101010101010, pero como los dos tienen que ocupar el mismo tiempo, el 0 tendria bits del doble de largo, quedaria entonces 110011001100 para el 0, y 101010101010 para el 1. En un diskette no podemos desperdiciar tanto espacio, entonces usamos otros sistemas de modulacion, como MFM o GCR, que no son mas que otras formas de codificar en "bits magneticos" los bits de datos de cada sector.
Hay un problema importante con el magnetismo, y es que solo podemos ver cambios de estado, es decir la variacion entre 1 y 0, esto nos limita la cantidad de ceros o unos que se pueden poner de forma continua, porque si se deja el magnetismo siempre en 1 o en 0, ya no se detecta, por lo que necesita ir continuamente variando. Esos sistemas como MFM tienen reglas sobre como representar una sucesion de unos y ceros de forma tal que el magnetismo siempre este variando. Pero algunos sistemas de proteccion o sistemas propios, como suele pasar en C64 o Amiga, donde se inventan formatos especiales (mas en Amiga que en C64), pueden no respetar esas reglas.
Cuando uno lee un D64 a partir de un diskette, esta asumiendo que los datos de los sectores estan grabados siguiendo las reglas del formato estandar, es decir que cada bit de datos equivale siempre a los mismos bits magneticos en el disco, entonces la decodificacion de esos bits magneticos para traducirlos a los bits de datos ocurre dentro de la disketera (1541 o la que sea), y si el diskette tiene proteccion, el bit de datos puede no leerse bien, porque la proteccion provoca el error a proposito.
Ya que las protecciones estan hechas para provocar errores que el propio programa protegido corrige, pero que fallan al leerse con un copiador, lo ideal es almacenar el contenido completo de los bits magneticos, que es lo que lee la Catweasel o la Kryoflux, luego de la lectura en bruto de esos bits, se convierte a D64, o a G64, segun cuanta informacion de los bits magneticos se quiere conservar (el D64 los elimina completamente, ya que solo almacena los bits de datos finales).
Para verlo de una manera mas grafica, es como si tuvieramos una cinta de juego de C64, conociendo el formato podriamos capturarlo en la calidad minima para que en cada muestra tengamos mas o menos un 1 o un 0 del audio, pero ya que el grabador, la tarjeta de sonido, los cables o la edad de la cinta pueden meter distorsion, siempre es mejor capturar en calidad CD, aunque sepamos que una cinta no llega a esa calidad. Y hacemos esto porque teniendo la maxima calidad, luego es mas facil distinguir los errores o aplicar filtros de audio, para convertir a un formato de archivo de cinta. Los sistemas de proteccion pueden verse como formatos no estandar, por lo tanto un conversor estandar a T64 (o el formato que use) puede fallar si la proteccion no respeta las reglas estandar para representar los unos y ceros de datos mediante unos y ceros magneticos. Al capturar la cinta en maxima calidad en wav, siempre y cuando el audio y la cinta sean buenos, solo hace falta desarrollar el soft adecuado para interpretar los unos y ceros magneticos (que en el wav se ven como voltajes o niveles de volumen) que entienda las reglas usadas por esa proteccion para convertir los bits magneticos a bits de datos finales. Eso es mas o menos lo que se hace con las Catweasel/Kryoflux, pero con el "audio" grabado en los diskettes.

378
Casi todos los sistemas de diskettes (al menos los de 5,25") marcan el inicio de la pista por soft, con cierta secuencia de unos y ceros, hay sistemas que usan el agujero de sincronismo, son mas precisos porque siempre escriben los sectores en el mismo lugar fisico, pero casi nadie usa ese metodo. Se que hay copiadores especiales donde hay que agregar el sensor en la 1541 y usan ese sincronismo para poder copiar discos con proteccion, pero no es algo usado como estandar.

379
En realidad al girar tambien el diskette estaria dando la señal correctamente, pero aun asi la Catweasel (y supongo que lo mismo aplica al Kryoflux) no usa la señal de sincronismo, solo la requiere la placa de la disketera para dejar salir los datos, y solo le interesa saber que gira, no en que posicion exacta esta.
Yo tengo la Catweasel Z2 en un Amiga 4000, esa version Zorro II es muy buena porque trae ademas una controladora Buddha IDE para 6 dispositivos IDE y con soporte para discos mayores de 4GB.

380
Antes del Kryoflux, existian las Catweasel, y tenian ese mismo problema con la lectura del lado B de los diskettes de 5,25". Segun decia en el manual, el problema no es de las controladoras (en ese caso la Catweasel) sino de las disketeras, que necesitan detectar que el diskette gira para habilitar la lectura de datos, al no detectar la señal del agujero de sincronismo al dar vuelta el diskette, la disketera no detecta que haya diskette y no habilita la lectura.
Para solucionar esto, hay que colocar otro sensor de forma tal de detectar la misma señal de sincronismo al dar vuelta el diskette, se puede colocar un fototransistor, o como recomendaba en el manual de Individual Computers (empresa poco conocida entonces), se podia pegar un iman a la rueda y un sensor magnetico en la parte fija de la disketera, para que detectara un pulso en cada vuelta. Yo opte por esto ultimo en su momento y no logre calibrarlo a la distancia justa, asi que un amigo se llevo la disketera y la modifico agregando un fototransistor del otro lado, por lo que vi parece que simplemente va en paralelo con el fototransistor que ya traia instalado.
Estos problemas no ocurren con diskettes como estos, que tienen doble agujero de sincronismo:

381
General / Re:1541 Ultimate II
« en: Agosto 21, 2015, 21:01:14 »
Tengo entendido que por ahi sale tambien el sonido del segundo SID, si uno elige activarlo, para los programas que usen doble SID.

382
Off-topic / Re:Vulcan-74, construyendo un ordenador basado en 6502
« en: Agosto 18, 2015, 20:44:14 »
¿Pero existe eso? me refiero a un FPGA del C64 completo.

C-One, C64DTV, Turbo Chameleon, etc.

383
Desarrollo / Re:Detectando PAL/PAL-N/NTSC/NTSC-Old
« en: Agosto 18, 2015, 00:14:55 »
No sirve la emulacion de Drean del VICE?

384
Off-topic / Re:Vulcan-74, construyendo un ordenador basado en 6502
« en: Agosto 18, 2015, 00:09:43 »
El unico chip que vi que emula el SID esta implementado con un microcontrolador, no emula la parte analogica del SID y me parece que le falta alguna caracteristica mas. No vi reemplazos del VIC, lo que hace el VIC es demasiado para un microcontrolador, se podria reemplazar por algun chip reconfigurable como CPLD o FPGA, pero seria caro solo para reemplazar un unico chip, por cuestion de costos y espacio se reemplaza la maquina entera.
Los chips a los que uno suele decir programables, como CPLD o FPGA, son un monton de circuitos logicos con cables conectandolos entre si, algo asi como que todos se conectan con todos, y la "programacion" consiste en cortar las conexiones que no se necesitan para lograr el circuito que uno pretende. En realidad esos componentes no se conectan todos, tienen ciertas restricciones, por eso se suele usar un lenguaje para definir el circuito, que despues se compila para obtener las conexiones necesarias que representen ese circuito. Pero esos chips no son procesadores ni ejecutan un lenguaje de programacion, son chips en bruto a los cuales les podemos reconfigurar las conexiones internas.
Si con esos chips podemos implementar procesadores, es porque los procesadores, al igual que los chips de video o sonido, son en definitiva circuitos logicos. En el proyecto del comienzo del hilo, tambien podria haber reemplazado el 65c02 por compuertas, le habria ocupado lo mismo o mas que el chip de video.

385
Off-topic / Re:Vulcan-74, construyendo un ordenador basado en 6502
« en: Agosto 17, 2015, 06:44:17 »
No estas pensando en la cuarta dimension, Marty.   ;D ;)
Acordate que cuando se hicieron estas maquinas, no existia ese tipo de chips programables, tampoco existian cuando se hicieron los primeros procesadores con valvulas, ademas los primeros ordenadores fueron mecanicos y luego electromecanicos, paso un tiempo hasta que fueron completamente electronicos.
Una instruccion de codigo maquina podria ser similar a una cajita de musica, con cada ciclo de reloj se avanza un paso y segun el programa, que no es mas que una o mas señales que se activan (en el ejemplo serian notas que se activan en ese paso), se disparan distintos circuitos que hacen funciones minimas, como transferir el contenido de un registro a otro registro, sumar dos registros, incrementar en 1, etc.
Mirandolo de una forma muy simplificada, se podria decir que cada instruccion es casi un circuito distinto, y hay un secuenciador que se encarga de leer el programa en codigo maquina desde la memoria, incrementar el contado de programa, decodificar la instruccion, ejecutarla, y volver a empezar leyendo otra instruccion. La toma de decisiones parece magica pero es muy simple, se ejecuta alguna funcion que da un resultado, y segun ese resultado se continua en la siguiente instruccion, o se carga el contador de programa con la direccion suministrada, o se suma o resta un valor al contador de programa, segun el tipo de salto. Pero no hay mucha inteligencia en eso, no es mas que una secuencia de pasos que se pueden implementar con compuertas, flip flops, y buses que conectan todo.
Yendo un poco mas al detalle, no hay un circuito para cada instruccion, sino que hay varios circuitos que se pueden ver como recursos, sumadores/restadores, buses para transferir entre registros y entre registros y memoria, operaciones logicas (xor, or, and). Una instruccion usa algunos de estos circuitos, el microcodigo de esta instruccion (que es como el programa de la cajita de musica) le dice en que orden tiene que hacer las cosas, por ejemplo para sumar 1 al acumulador, tendria primero que colocar el contenido del acumulador en el primer operando del sumador, eso implica activar la transferencia de un registro a otro, luego colocar un 1 en el segundo operando, luego activar el sumador, despues transferir el resultado del sumador a donde corresponda, en este caso volveria al acumulador, pero segun la instruccion podria ir a memoria o a donde sea que lo especifique la instruccion. Los modos de direccionamiento de las instrucciones suelen usar el mismo circuito pero variando que buses se activan (si se lee el operando desde memoria, desde A, desde memoria indexada por X, etc.), el microcodigo de la instruccion sera parecido pero variara algun paso interno para activar distintos circuitos o buses, tambien cada variacion de la instruccion puede tardar una cantidad distinta de ciclos de reloj porque el programa de la instruccion es distinto.
En este video se puede ver que la suma de dos parametros es algo casi instantaneo, es un circuito con compuertas hecho a medida para eso, hay varios circuitos para distintos usos dentro del procesador, y la instruccion es la que define cuales se activan y en que orden. Es el primer ejemplo que encontre en youtube donde se ve el funcionamiento directo y no se ponen a hacer largas explicaciones teoricas, no se ve muy bien pero la idea se entiende:

https://www.youtube.com/watch?v=podqWovdE2M

Esta comparacion es un tanto improvisada, pero se puede entender graficamente, un programa en codigo maquina podria verse como una de estas maquinas:

https://www.youtube.com/watch?v=8qLFF9072Oc

Cada etapa de esas maquinas podria ser una instruccion, el programa vendria a ser donde colocar cada etapa, es decir enlazar la salida de una con la entrada de otra, en las que se ven ahi no se toman decisiones, pero podria ocurrir que segun el peso, tamaño, velocidad o algun otro parametro de la bola o el objeto que se use, se decida que vaya por un camino u otro. Pero lo importante es que cada etapa o camino no sabe hacer mas que una determinada secuencia, en una instruccion de codigo maquina lo hace al ritmo del reloj principal, con cada ciclo hace un paso, en el caso de estas maquinas, el reloj seria la gravedad.
Lo explico asi "a lo bestia" porque en realidad hay que leer mucho para llegar a entenderlo bien, es dificil resumirlo de forma que no parezca magia, espero que eso de una idea aproximada de como es que funciona adentro un procesador. En el caso de un chip de video es similar, se usan contadores para saber en que linea y pixel se encuentra el haz, se compara con valores predefinidos, y segun eso se envia a la pantalla lo que se lee de la memoria de video, una señal de sincronismo, o imagen en blanco.

386
Off-topic / Re:Vulcan-74, construyendo un ordenador basado en 6502
« en: Agosto 17, 2015, 05:30:55 »
El codigo maquina no es el nivel mas bajo que hay, cada instruccion es tambien un mini programa, por eso cada una requiere una cierta cantidad de pulsos de reloj, depende de la complejidad que tenga el microcodigo que implementa esa instruccion, y tambien de la arquitectura del procesador. Pero ademas el microprocesador no es magico, no esta hecho con instrucciones implementadas por algun tipo de brujeria, es un circuito electronico como cualquier otro y por lo tanto se puede reimplementar con compuertas, como ya se hizo en algunos proyectos. Tambien asi se hicieron los chips especiales de Amiga, con componentes comunes en varias placas gigantes por chip, antes de que Commodore los implementara en 3 chips.

387
Off-topic / Re:Vulcan-74, construyendo un ordenador basado en 6502
« en: Agosto 17, 2015, 05:17:13 »
Por que un sprite solo se puede hacer programando, y no la imagen de fondo? Es lo mismo.
Suponiendo que solo se puede hacer con un programa, ese programa tiene que correr en un procesador, y el procesador no es mas que un conjunto de circuitos logicos. Lo que vendria a equivaler a decisiones se hacen con mascaras y compuertas, y cualquier cosa que requiera una secuencia, se hace con flip flops y señales de reloj, pero todo eso tambien se puede implementar con compuertas.

388
Off-topic / Re:Vulcan-74, construyendo un ordenador basado en 6502
« en: Agosto 16, 2015, 07:01:55 »
Un sprite no es mas que una mini pantalla grafica, que se lee por lineas para enviarlas a la pantalla, igual que la pantalla grande.
Las coordenadas X e Y solo definen en que momento se empieza a imprimir en la pantalla general, el color de cada pixel del sprite define si se imprime el sprite o la pantalla de fondo, digamos que se podria tomar el color 0 (de los 256 posibles) como color transparente, si es 0 una llave habilita que lo que se envie a la pantalla en ese pixel sea el fondo, si es cualquier otro la llave selecciona la imagen del sprite, con el color correspondiente.
Cuantos mas sprites se tengan, mas mini pantallas habra, y ademas en cada pixel no solo hay que decidir si actua el color de fondo del sprite, sino que ademas hay prioridades de sprites, pero ese tipo de cosas ya existen hace mucho tiempo, por ejemplo para las prioridades de las interrupciones, hay chips que hacen eso por hard, e internamente estan implementados con puertas logicas.
Es cierto que se necesita una cantidad bestial de compuertas, pero en definitiva un microprocesador se puede implementar integramente con chips de la serie 7400. Un chip de video tiene menos complejidad en la variedad de componentes, pero una gran escala en cantidad.

389
Commodore VIC-20 / Re:Sobre el VIC-20
« en: Agosto 10, 2015, 16:22:02 »
El VIC-20 fue el primer ordenador luego de los PET, el que tenia el VIC I, luego el C64 que incorpora el VIC II, despues en un intento por competir con los Spectrum se hace la linea barata de los que se conocen mas el C16 y el Plus/4, que queda a medio terminar cuando Tramiel deja Commodore. La gente de Commodore no entiende bien en que mercado vender esos ordenadores que Tramiel dejo, que originalmente pretendian ser ordenadores baratos y terminaron sobredimensionandose, y entonces para compensar ese fracaso surge la necesidad de hacer un sucesor del C64 lo mas rapidamente posible, con caracteristicas mejoradas pero tambien compatibilidad con el C64, y ahi es donde aparece el C128.

390
General / Re:El Castillo del Dragón
« en: Agosto 08, 2015, 23:44:54 »
Se supone que el mapa se genera al azar? Lo que cambia de lugar en cada carga son los objetos y los enemigos.

Páginas: 1 ... 24 25 [26] 27 28 ... 36