Todos los usos del MCI siguen el mismo patrón: abre un dispositivo, ejecutas algunos comandos y cierra el dispositivo cuando hayas terminado.
Cada uno de estos comandos debe ser seguido por un nombre de dispositivo.
Muchos comandos toman argumentos adicionales que siguen el nombre de dispositivo, y que cualifican más lo que el comando debería hacer.
Estos argumentos se pueden dar en cualquier orden.
Por ejemplo, el comando play
inicia la reproducción de un dispositivo a su posición actual.
Toma argumentos opcionales from
y to
, que especifican donde empezar (from
) y donde parar (to
), como en:
MCI [play cdaudio from 2 to 3]
que le pide a la MCI que reproduzca la pista 2 de un CD audio y se detenga cuando llega a la pista 3.
Fijate que todos los comandos MCI se dan en inglés, aunque usamos la versión de FMSLogo espoñola.
Comandos puedan aceptar argumentos diferentes basado el tipo de dispositivo.
Por ejemplo, play
en un dispositivo cdaudio
sólo acepta los argumentos to
y from
.
En contraste, play
en un dispositivo de animación (una película) adicionalmente acepta los argumentos fast
, slow
, reverse
, scan
y speed
.
Algunos argumentos sólo necesitan ser presentes para tener sus efectos.
Estos argumentos se llaman «banderas».
Otros argumentos requieren uno o más valores, que debe seguir directamente al nombre del parámetro.
Por ejemplo, en el comando de play
abajo, la bandera slow
sólo necesita ser presente, pero el argumento from
debe ser seguido por un valor de posición.
MCI [play animation slow from 5]
Todos los comandos MCI son asíncronos, a menos que se especifique lo contrario.
Esto implica que FMSLogo ejecuta el comando inmediatamente, pero no espera para que el comando MCI terminase antes de ejecutar la próxima instrucción Logo.
En general, esto es lo que quieres.
Sin embargo, todos los comandos MCI también aceptan una bandera opcional wait
que le instruye al FMSLogo a esperar a que el comando MCI termine antes de ejecutar la próxima instrucción Logo.
Mientras que espere, FMSLogo no responderá al usuario, así que usa esta bandera con cuidado.
Si especifica wait
y luego te da cuenta de que ya no quieras esperar más, puedas presionar Ctrl+Inter para dejar de esperar.
Si no quieres esperar para que un comando termine, pero quieres que te lo notifican cuando ocurra, puedas especificar la bandera notify
.
En este caso, también debes especificar una lista de instrucciones como el segundo argumento a MCI.
La instrucción siguiente usa la bandera notify
para escribir un mensaje cuando una pista de una CD termina.
(MCI [play cdaudio from 2 to 3 notify] [ESCRIBE [Pista 2 ya ha terminado]])