¿Qué pasa si conecto dos Commodore a una disketera 1541?

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor ron » 26 Ene 2016 17:17

Wow ! esto salió en una pregunta que hicieron en Amiga Wave y no he parado de darle vueltas, porque estuve tentado a hacer algunas pruebas y dentro de estas tengo dos importantes.

La primera era saber que sucede cuando conectas dos paneras ( por ejemplo un Vic20 y un C64 o un C16 ) a la misma unidad de disco, ya sea una Vic-1541 o una 1571.
La segunda es conocer hasta que punto la unidad interna de un C128D o DCR es accesible por el bus IEC. También consultado en Amiga Wave.

Para la primera de las cuestiones tengo que decir que me lo pensé mucho porque no estoy dispuesto a ser temerario y cargarme un equipo por hacer una prueba que pudiera carecer de sentido. Para estas cosas primero y muy importante es documentarse y a partir de ahí asegurarse de que lo que se va a hace se puede y que no vas a cascar nada. Si hay riesgo de fastidiar un equipo no hagas nada que luego puedas lamentar.

Hay un post en sleepingelephant que dice lo mismo: http://www.sleepingelephant.com/ipw-web ... php?t=3828 y mucha info aquí. http://www.baltissen.org/newhtm/1541a.htm

Dicho todo eso, la duda de si iba a funcionar o no solo hizo acrecentar las ganas y la tentación de probarlo... ¿ qué pasará ?
La primera hipótesis ( o mejor dicho ) conjetura que imaginé, fue la de que cualquiera de los dos equipos podría acceder a la 1541, pero NO los dos a la vez. Y había que salir de dudas y probar. Así que con audacia y determinación lo hice. -shock

Lo que pasará es que el Kernal tiene un bug en su código de reseteo que bloqueará el bus hasta que se acceda una vez o manualmente se reseteen los registros del bus que liberan las lineas ofensivas.

En un Vic20 esto se puede hacer mediante POKE 37137, PEEK(37137) OR 3 y en un C64 mediante POKE 56576, PEEK(56576) AND 239 , esto está documentado en el manual del StarCommander. http://sta.c64.org/scdoc.html

Esto desacopla el Commodore desde el bus serie común, cambiando la línea CLK a alto. Cada vez que también se acceda a la unidad se tendrá que lanzar este comando de nuevo después. El StarCommander por ejemplo, desacopla el ordenador de forma automática desde el bus serie unos segundos después de haber completado una operación de disco.

Con esto entendemos que habría que asegurarse que los equipos no van a tratar de acceder a la unidad al mismo tiempo, no hay nada en el protocolo que compruebe una colisión del BUS.

Prueba 1) FUNCIONA

No funcionará hasta que ambos ordenadores hagan el primer intento de acceder a la unidad. La unidad a probar tiene el ID 8. Así que conecté el Vic20 y el C64 con sus cables a la 1541. Puse un floppy con .PRG y cositas y lancé un par de LOAD "$",8 desde cada máquina un par de veces.

¡Guauu! ¡Wooooowww! Ojalá hubiéramos sabido de esto hace un par de décadas. Ahora la unidad 1541 es un servidor de ficheros entre mi VIC20 y mi C64 como clientes. Funcionar funciona, lo que no he hecho es hacer que ambos Commodore hagan uso simultaneo de la 1541. Sin los POKES malamente funcionará.

NO HAGAIS USO DE LA 1541 SIMULTÁNEAMENTE DESDE AMBOS COMMODORE
Esperad a que termine uno para poder operar con el otro.

Ya solo me falta encontrar el POKE para los TED (C16) pero esto tiene mucha miga, no se hasta que punto los dispositivos IEC que usamos serían capaces de gestionar el tinglado pero vamos, funciona que es lo importante.

Edito: En el fragor de la batalla aparecieron en combate....

[tabs][tabs: ]C64: POKE 56576,PEEK(56576) OR 192
Vic20: POKE 37137,PEEK(37137) OR 3
Plus/4: POKE 1,PEEK(1) OR 1[/tabs]

POKE 56576, PEEK(56576) AND 215 This "switches off" PA3 (ATN OUT), PA4 (CLK OUT) and PA5 (DATA OUT) on the CIA2, thus, setting the appropriate lines inactive on the IEC bus.


Commodore serial bus signals can be controlled from the C-64 by using the following poke commands:

CLK
poke 56576, peek(56576) or 16
poke 56576, peek(56576) and 239

DATA
poke 56576, peek(56576) or 32
poke 56576, peek(56576) and 223

ATN
poke 56576, peek(56576) or 8
poke 56576, peek(56576) and 247




Prueba 2) C128D/DCR y 1571 interna en BUS IEC.

De momento la he dejado en espera de reunir más información y si alguien ha hecho alguna prueba si lo quiere contar o sabe del tema se agradece y mucho.

To use the built-in drive of a C128D or an SX64 or to use the same Commodore drive from a Commodore machine and a PC, you must execute a POKE command on the Commodore machine:

Commodore 64/128: "POKE 56576, PEEK(56576) AND 239" or simply "POKE 56576, 199".

Commodore Plus4: "POKE 1, PEEK(1) OR 1".

Commodore VIC20: "POKE 37137, PEEK(37137) OR 3".

dancresp
Mensajes: 6224
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 664 veces
Agradecimiento recibido: 1016 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor dancresp » 26 Ene 2016 17:58

Curioso experimento, que no se me habría ocurrido nunca !!!

En principio parece absurdo, pero si te lo tomas como hacer un servidor de ficheros común, pues tiene su gracia.

Me ha hecho gracia la expresión "Sin los POKES malamente funcionará.".
Menuda novedad en un equipo Commodore !!! -507

Yo en su día intenté conseguir algo más aparentemente simple: Conectar dos disqueteras a un único equipo... y me quedé con las ganas... -banghead
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
carmeloco
Mensajes: 1961
Registrado: 16 Dic 2015 08:56
Agradecido : 27 veces
Agradecimiento recibido: 432 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor carmeloco » 26 Ene 2016 18:17

Salvo las obvias diferencias, es algo parecido a los antiguos "clusters" de Microsoft Windows NT, en los que dos servidores se conectaban físicamente, a la misma caja de discos SCSI. Según el modelo de cabina de discos, la conexión se hacía al mismo bus SCSI. Tanto era así, que el SCSI ID de la controladora de los servidores, tenían que ser obligatoriamente diferentes, y no coincidir tampoco con la ID de ninguno de los discos. Su funcionamiento era muy curioso, y solo uno de los equipos podía tener acceso a los discos. Todo el control lo llevaba el software del cluster, que bloqueaba el acceso al equipo que estaba en espera.

Avatar de Usuario
minter
Mensajes: 4826
Registrado: 22 Jul 2014 18:51
Agradecido : 6762 veces
Agradecimiento recibido: 2602 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor minter » 27 Ene 2016 11:07

Buena ron! Cacharreo Podwer! -thumbup
Pero una pregunta, que yo no conozco las unidades de disco commodore:

¿Es posible leer el mismo disco desde un C64, VIC20 o C16?
¿El sistema de archivos es común al igual que el protocolo de comunicaciones?

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor ron » 27 Ene 2016 11:50

El mismísimo Jeff Minter en versión Asturiana !!!!, the answer is YES.

Si , tu puedes leer el mismo disco en un Vic20, C64, C128 y C16 sin ningún problema, de hecho las .D64 que me hago últimamente para volcar a floppy físico son más con cosas de Vic20 y C16 que nada, así no tengo que poner el XE1541. C64 y C128 tiran de SD.

Luego el galimatías de programas y versiones en BASIC, ya sabes... hay letanía escrita de conversiones, conversores, interpretes y demás paradojas temporales del horizonte de sucesos del BASIC de los Commodore. -507 xD

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor ron » 27 Ene 2016 12:04

Bueno, es que se me ha olvidado, para superar todo eso:

http://spiro.trikaliotis.net/cbm
http://www.portcommodore.com/dokuwiki/doku.php?id=start
http://www.portcommodore.com/dokuwiki/d ... _emulation

mapa_memoria_cbm_basic.png
mapa_memoria_cbm_basic.png (42.21 KiB) Visto 2517 veces


ahh ! de propina os enseño como crujir el interprete de Basic de los Commodore desde el prompt. Jeejee -507 -rofl

Crash your BASIC, part 1!

Not only Windows can be crashed! Even Commodore BASIC can be freezed. Maybe this is because it was prepared by the "so-much-haten" Microsoft Corp, too :-). You have to type in the following:

PRINT0+""+-0

Well, it does not actually "freeze", but puts you into MONITOR in C16/+4. Note: this works on all C= platforms, and if you do it with an emulator, than its not its fault! With C64 it is more attractive: there is no monitor, hence it gives you a reset! :-)

Crash your BASIC, part 2!

Typing:

35072121

crashes the BASIC and puts you into MONITOR. This is also working on Commodore PET, Vic20, 64 (in case of C64 it is just equivalent to a RUN/STOP-RESTORE), but not on the 128.

Avatar de Usuario
kikems
Mensajes: 5502
Registrado: 30 May 2013 19:23
Agradecido : 2638 veces
Agradecimiento recibido: 3112 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor kikems » 27 Ene 2016 12:49

RON, hay que ver que experimentos tan raros te atormentan, jejj. Curioso e interesante experimento.

Whisper
Mensajes: 138
Registrado: 04 May 2015 17:53
Agradecimiento recibido: 2 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor Whisper » 27 Ene 2016 13:00

Al hilo de lo que cokmenta Ron, ahora recuerdo que yo tengo un cable en Y que no se para que leches sirve. Se lo compre al que hace el ZoomFloppy. Es este: http://store.go4retro.com/commodore-iec ... e-y-cable/


Saludos

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor ron » 27 Ene 2016 13:04

kikems, es mera curiosidad de saber ¿ y si hago esto qué pasa o quéme puedo cargar ?

Ahora falta la parte 2, no nos podemos olvidar que se puede hacer con el bus IEC y la 1571 interna de los C128D.

Por lo demás, a disfrutarlo.

Avatar de Usuario
groovydrifter
Mensajes: 1303
Registrado: 31 Ago 2014 21:07
Ubicación: Mañolandia
Agradecido : 53 veces
Agradecimiento recibido: 50 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor groovydrifter » 27 Ene 2016 17:37

Curioso, sobre todo porque la velocidad del IEC es diferente en el C-64 y en el VIC-20, lo que prueba que la disquetera se adapta sobre la marcha a ambas velocidades.
-flirt Shut up and deal... (The Apartment, Billy Wilder, 1960)

dancresp
Mensajes: 6224
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 664 veces
Agradecimiento recibido: 1016 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor dancresp » 27 Ene 2016 18:20

He probado de dejar frito el Commodore vía emulador, y si, lo deja frito.
Con el primer método es más evidente.

ron escribió:... de hecho las .D64 que me hago últimamente para volcar a floppy físico son más con cosas de Vic20 y C16 que nada, así no tengo que poner el XE1541. C64 y C128 tiran de SD.

Pues ya nos dirás como lo haces.
No tengo ni idea... pero me interesa.
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor ron » 27 Ene 2016 19:24

GroovyDrifter escribió:Curioso, sobre todo porque la velocidad del IEC es diferente en el C-64 y en el VIC-20, lo que prueba que la disquetera se adapta sobre la marcha a ambas velocidades.



Por ejemplo en el C64HDD con cable XE1541, al lanzarlo desde DOS, para VIC20 yo siempre le pongo la opción -vic por eso que dices de los temporizadores.

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: ¿Qué pasa si conecto dos Commodore a una disketera 1541?

Mensajepor ron » 27 Ene 2016 19:28

dancresp escribió:He probado de dejar frito el Commodore vía emulador, y si, lo deja frito.
Con el primer método es más evidente.

ron escribió:... de hecho las .D64 que me hago últimamente para volcar a floppy físico son más con cosas de Vic20 y C16 que nada, así no tengo que poner el XE1541. C64 y C128 tiran de SD.

Pues ya nos dirás como lo haces.
No tengo ni idea... pero me interesa.


Mírate la bola extra de Commodore 128 de Amiga Wave... o mejor... mira este video:

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

Con un editor de D64, en una imagen virtual desde PC con Win, Mac o Linux creo una y le meto las cosas que quiero. Paso la .D64 generada a una tarjeta SD y desde el MMCReplay, o bien desde el C128 o desde el C64 la puedo volcar a floppy físico y eso es lo que hago.

Saludos


Volver a “Commodore 8 Bits”

¿Quién está conectado?

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