Emular unidad de disco

PET, VIC-20, MAX Machine, 64, 64x, SX-64, 16, Plus/4, 128, 65 ...
Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Emular unidad de disco

Mensajepor scooter » 03 Abr 2013, 16:17

Este hilo nace de este otro, en el que entre otras cosas se planteaba la cuastión de emular DOS en un raspberry PI para que emulase una unidad de disco commodore mediante el cable de puerto paralelo.
Si os parece podemos tratar de recopilar información al respecto. Y discutir un rato sobre el tema.

Se que hay al menos dos emuladores que son SD2IEC y 1541III si no me equivoco, también encontré hace mil años el protocolo en bajo nivel que estaba en un archivo .txt bucearé en mis discos duros a ver si aparece.
Además hay algúnos sistemas mas como commodore IDE o algo así que llevaba un 8052 en el bus de expansión par hacer un IDE completo pero eso ya sería otra historia.

Hasta donde se una emulación completa sería complicada si no se implementa con un 6502 real o algo que lo emule. Las unidades commodore eran un sistema completo en si mismas con 4k de rom y 2 de ram o algo así e incluso se podían reprogramar o enviar código a ejecutarse allí. Me suena que como curiosidad habían ejemplos en los que usaban el procesador de la disketera como coprocesador para avanzar algún cálculo.

Se me ocurrió como cargador rápido un arduino con una SD, mas que nada porque esa parte ya está hecha y vale barata, e implementar el protocolo mínimo. Por velocidad no debería de haber problema; la 1541 iba a 400 u 800 bps no recuerdo bien, si, vamos que par 1k necesitaba tres segundos o así, tiempo de acceso tres segundos etc... recuerdo que superbase tardaba mas de tres minutos en cargar. Este sistema podría valer para lo básico; cargar programas "normales" sin turbo ni florituras.
Por cierto que la 1571 tenía un modo burst que solo iba con el 128 que era como cinco veces mas rápida o mas.

He encontrado la evolución de 1541III que se ve que es casi 100% compatible: http://www.1541ultimate.net/content/index.php

En fin que se ve que opciones hay.

Avatar de Usuario
jrodriguezv
MSX Turbo R
MSX Turbo R
Mensajes: 325
Registrado: 02 Jun 2012, 18:21
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Sega Genesis/Megadrive
Ubicación: Madrid

Re: Emular unidad de disco

Mensajepor jrodriguezv » 03 Abr 2013, 17:06

Hola!!

Hay alguien que ha hecho algo parecido, pero no para el C64, sino un emulador de floppy normal:

http://www.raspberrypi.org/phpBB3/viewt ... 41&t=34143

En su día le pregunté al autor si sería fácil adaptarlo para un Amstrad CPC o para un Amiga y me dijo que para el Amstrad no lo veía muy complicado, que el Amiga no lo conocía.

Supongo que sería más un estilo HxC que no valen para el C64.

Por otra parte para el C64, quizá lo más sencillo sería analizar el código de emulación de disquetera del Vice y hacer un software específico que se comunicara con el C64.

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 3012
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 86 veces
Gracias recibidas: 356 veces
Contactar:

Re: Emular unidad de disco

Mensajepor zup » 03 Abr 2013, 17:16

Hay unos cuantos programas DOS que "emulan" disqueteras, a través de cables paralelo-IEC. Creo que es mejor idea "destripar" uno de estos programas y adaptarlo al GPIO. En teoría la cosa sería cambiar los pines de entrada y salida paralelos por pines del GPIO, y generar (o leer) los pulsos de reloj.

Otra cosa es que sea sencillo.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Emular unidad de disco

Mensajepor scooter » 03 Abr 2013, 17:23

Ya, lo sencillo es comprar uno o usar el vice directamente, pero es menos entretenido.
Pienso que habrían dos niveles, el básico para el que vale con un pic, arduino o semejante y el avanzado o completo que necesitaría un 6502, una fpga que lo implemente o un "trasto gordo" que lo emule; ose que el rPI si que es candidato a emular un 6502 a 1MHz, debería de tener potencia de sobra.
Como en su día a penas usé turbos ni cosas raras en mis c64 y luego 128, con lo básico pienso que bastaría para el 99% de los casos y superar el rendimiento de una 1541 real ya vemos que no es muy dificil, una procesión de caracoles es mas rápida.

Avatar de Usuario
robcfg
Amiga 2500
Amiga 2500
Mensajes: 2190
Registrado: 07 May 2009, 15:34
Sistema Favorito: Amstrad CPC
primer_sistema: Atari 800XL/600XL
Ubicación: Estocolmo
Gracias dadas: 1046 veces
Gracias recibidas: 213 veces
Contactar:

Re: Emular unidad de disco

Mensajepor robcfg » 03 Abr 2013, 17:27

Supongo que sería más un estilo HxC que no valen para el C64.


Que digo yo que el HxC es un emulador de la unidad de disco en si. El problema es que los de Commodore metieron encima de la unidad de disco otro ordenador entero. Esto ultimo es lo dificil de apañar, pero creo que si a una 1541, le cambias la unidad de disco en si, por el HxC, te deberia funcionar.

Alguien se anima a probarlo? :jumper:

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Emular unidad de disco

Mensajepor scooter » 03 Abr 2013, 17:58

Si, me suena haber leído gente que ha hecho mods así

Avatar de Usuario
marcos64
Amiga 1200
Amiga 1200
Mensajes: 1376
Registrado: 03 Sep 2011, 07:53
Gracias dadas: 59 veces
Gracias recibidas: 32 veces

Re: Emular unidad de disco

Mensajepor marcos64 » 04 Abr 2013, 11:44

Hacer una emulacion de la 1541 que no soporte los modos 'turbo' mas comunes no tiene ninguna utilidad practica en mi opinion.

Los que usan hoy en dia una 1541 'a pelo' se merecen una estatua :D

Otra cosa es hacer un proyecto asi como entretenimiento o un reto, mi mas sincera admiracion =D> Ya me gustaria a mi ser capaz de hacer algo asi.
http://marcos64.orgfree.com/
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Emular unidad de disco

Mensajepor scooter » 04 Abr 2013, 14:54

En mi caso no pasa de una elucubración razonada, hace muchos años que di mis commodores.
Ya en su día merecimos una estatua los sufridores de la 1541.

BlackHole
Amiga 1200
Amiga 1200
Mensajes: 1489
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: 14 veces
Gracias recibidas: 244 veces

Re: Emular unidad de disco

Mensajepor BlackHole » 04 Abr 2013, 15:00

Yo siempre tuve mi 1541 con el Freeze Frame/Freeze Machine primero, y con el Action Replay después, así que la velocidad mínima era de 6x y la máxima de 25x siempre que la usé.

Lo raro raro, realmente raro, es que alguien la usase a pelo. Nadie de mi entorno (la gente que paraba por 007 Soft en C/Alcalá) lo hacía. También es cierto que en ese local, centro del mundo C64 y Amiga en Madrid, estaba la gente de Miami Byte/Darkness, los de Zona Norte (con quienes sigo en contacto semanalmente) y otros miembros de la escena del momento. Yo empecé con Commodore en 1986 y ya la gente de la tienda usaban todos, o el ISEPIC o el Final Cartridge. Ya estaba por ahí el Amiga 1000 inicial con la famosa pantalla de Tutankamon, plataforma que no pude comprar hasta 1990.

Volviendo al tema de la emulación, casi cualquier juego multifase desprotegido u original, incorpora su propio cargador turbo. Mis cracks también, y por supuesto las rutinas esperan conectar con la RAM de la 1541, ejecutarse en ellas y recibir en el C64 determinados valores. A ver cómo cargas tú si no un IFFL (las cargas que aglutinan decenas de ficheros en uno solo, que tienen que hacer el parsing del fichero en la propia unidad para devolver los offsets al ordenador).
Última edición por BlackHole el 04 Abr 2013, 15:31, editado 3 veces en total.

Avatar de Usuario
marcos64
Amiga 1200
Amiga 1200
Mensajes: 1376
Registrado: 03 Sep 2011, 07:53
Gracias dadas: 59 veces
Gracias recibidas: 32 veces

Re: Emular unidad de disco

Mensajepor marcos64 » 04 Abr 2013, 15:10

BlackHole escribió:Yo siempre tuve mi 1541 con el Freeze Frame/Freeze Machine primero, y con el Action Replay después, así que la velocidad mínima era de 6x y la máxima de 25x siempre que la usé.

Lo raro raro, realmente raro, es que alguien la usase a pelo. Nadie de mi entorno (la gente que paraba por 007 Soft en C/Alcalá) lo hacía.


A eso me referia, nadie que usara una 1541 en su dia la usaba sin el correspondiente cartucho con turbo. O con alguno de los turbo por software, que funcionan casi igual de bien, aunque algo mas incomodos. Como con todo, siempre habia excepciones.

En cabio, hoy en dia, tengo la impresion de que mucha gente que usaban otros sistemas, y que ahora tambien tienen un C64, son desconocedores de todos estos perifericos/software que existia en su dia y que hacia el uso del C64/1541 mucho mas facil y comodo. Parece que conocen mas sistemas modernos basados en SD, mucho mas caros y para mi menos 'placenteros' (aunque es indudable de su utilidad).
http://marcos64.orgfree.com/
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.


Volver a “Commodore”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados