Capítulo 7. Para su referencia

Parte 3: Interrupciones

Contenido:


Interrupciones

El CPC6128 utiliza ampliamente las interrupciones del Z80 para proporcionar un sistema operativo que incluye varias características multitarea, de las que son ejemplo las estructuras AFTER y EVERY descritas en otro lugar de este manual. El orden de prioridad de los temporizadores es el siguiente:

  • Break ([ESC][ESC]) (detención del programa).
  • Temporizador 3.
  • Temporizador 2 (y las tres colas de sonido).
  • Temporizador 1.
  • Temporizador 0.

Las interrupciones sólo se deben programar después de considerar las consecuencias de los posibles estados intermedios de las variables en el momento de la interrupción. La subrutina de interrupción debe evitar interacciones indeseadas con el estado de las variables del programa principal.

Las colas de sonidos tienen interrupciones independientes, de igual nivel de prioridad. Una vez iniciada una interrupción de sonido, ya no puede ser interrumpida por otra de sonido. Este mecanismo permite que las rutinas de interrupción de sonido puedan compartir variables sin estar sujetas a los riesgos mencionados.

Cuando se habilita una interrupción de cola de sonido (con ON SQ GOSUB), la interrupción se realiza inmediatamente si la cola de sonido del canal correspondiente no está llena; si lo está, la interrupción se producirá cuando termine el sonido actual y que de espacio libre en la cola. La acción de la interrupción inhibe el suceso, de modo que la subrutina debe ser rehabilitada si se la va a utilizar más tarde.

Las acciones de enviar un sonido y de examinar el estado de la cola inhiben también la interrupción de sonido.