Derdhal escribió:Perdon por mi ignorancia ya que no tengo ni idea, pero los 48 k saben encender y apagar el motor de un microdrive, no valdria esa señal para la disketera o algo similar?
No, me temo que no. Primero, el 48K "sabe" encender y apagar el motor del Microdrive porque quien se encarga de ello es el Interface 1. El Spectrum "pelao" no puede hacer eso.
Por otra parte, el método, protocolo y puertos usados para seleccionar y encender el motor de un microdrive no tienen nada que ver con los usados para la disquetera del +3.
Para que te hagas una idea, y simplificando un poco el tema: en el caso del Microdrive, éstos se conectan al Interface 1 en una suerte de "daisy chain", es decir, cada microdrive le pasa al siguiente sus señales. Casi todas pasan "tal cual", excepto una de ellas, que no recuerdo como se llama en el esquemático, pero es algo así como "Serial IN" y "Serial OUT". Cada Microdrive tiene un "Serial IN" en uno de sus conectores, y un "Serial OUT" en el otro conector que está enfrente del primero. Cuando conectas varios Microdrives, el Serial OUT de uno se conecta al Serial IN del siguiente. El primer microdrive se conecta al Serial OUT del Interface 1.
Estas señales están conectadas dentro del Microdrive de forma que la señal de Serial IN va a un biestable, y la salida de ese biestable va a Serial OUT. Cuando se recibe un pulso de reloj, un nuevo dato entra por Serial IN mientras el antiguo viaja por Serial OUT. Así, el conjunto de Microdrives unidos entre sí forman un registro de desplazamiento, en donde cada Microdrive alberga en su interior un bit de dicho registro.
Sólo aquel Microdrive que contenga un "1" (creo que era así, o quizás fuera al revés, da igual) encenderá su motor. Los demás contendrán un "0" y no encenderán su motor.
Por tanto, para encender el Microdrive 3 lo que se hace es que desde el Spectrum se envía mediante el Interface 1 la secuencia "100" en serie, empezando por el bit de la izquierda. En el primer ciclo, el Microdrive 1 es el que encendería su motor, pero en el siguiente pulso de reloj entra un 0 en ese Microdrive, y el 1 que tenía es "empujado" hacia el Microdrive 2. En el siguiente ciclo de reloj vuelve a entrar un 0 en Microdrive 1, que empuja su 0 a Microdrive 2, que a su vez empuja su 1 a Microdrive 3. No hay más ciclos, así que el 1 se queda en Microdrive 3 y éste comienza a girar su motor.
Si quieres apagar todos los Microdrives, envía una ristra de 0's por Serial OUT del Interface 1 y así todos quedan apagados.
Teóricamente es posible encender TODOS los Microdrives mandando una señal de tipo 11111....
En la disquetera, es un bit, el bit 3 si mal no recuerdo, del puerto 1FFDh, que es quien controla la señal MOTOR ON de la disquetera. En un ambiente con más de una disquetera, cada una de ellas tiene su propia señal de MOTOR ON. No están conectadas entre sí como en el caso del Microdrive.