HispaMSX

Parar el Motor de Disquetetras

2000-12-23 12:38:22

    Hola!

Vaya! Eso quiere decir que los Philips, cuando operan con el disco,
paran, si no que devuelven el control al programa y la paran "luego",
usando las interrupciones, de esa forma entre lectura y lectura y/o
escritura, no tienen que poner en marcha otra vez el disco. ?no?

    Extacto, esa es la idea. Por ejemplo los discos duros nunca paran el
motor, para no tener que estar encendiendo y apagando cada dos por tres y no
perder tiempo de acceso a este. Tiempo que se nota mucho.

Por eso dicen que las disketeras de los Philips son mas rápidas
(mentero...)

    Exacto. la idea es no tener que estar constantemente encendiendo y
apagando el motor ya que esto consume una barbaridad de tiempo...

    Sin envargo, ¿porque suele quedarse el motor en marcha?

    El DOS es el que se encarga de apagar el motor mediante las
interrupciones, concretamente el usa el 'gancho' de la interrupción en $FD9F
para sus menesteres...

    ¿Porque falla en algunos juegos?

    Pues porque estos juegos usan su propia interrupción y en consecuencia
el gancho de $FD9F no se ejecuta NUNCA, o porque machacamos este gancho con
el nuestro propio. Esto se hace para ganar en velocidad, ya que dejar que el
DOS ejecute su propia interrupción nos haría perder bastante tiempo que
podríamos dedicar en el juego...

    Por eso, que este problema se debe a que no se 'congela' el DOS de una
forma 100% fiable, ya que el motor no se para.

    Existen muchas formas para que esto no ocurra:

    - Hacer un bucle de espera, para dar tiempo a que el DOS apague el motor
por su cuenta.
    - Ejecutar por nuestra cuenta el gancho $FD9F unas 256 veces (una
simulacion de esperea de unos 5 segundos) para que el propio DOS apague el
motor.

    Pero esto podríamos decir que son 'trucos chapuzas' lo mejor es que
llamemos nosotros mismos a la rutina del DOS que se encarga de apagar el
motor de la disquetera, así nos aseguramos que se apagará 100%

    Sobre como llamar a la función que se encarga de esto pues no recuerdo
donde lo tenía, MkII lo sabe porque es así como ella lo programó en el Sex
Bomb Bunny, miraré de preguntarle...

    Saludos!

    Darth-007



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>