ON INT exp [,instr-comp]

Permet la gestion des interruptions logicielles.

Paramètre Description
exp expression numérique entière comprise entre 0 et7
instr-comp Instruction(s) à exécuter

Exemple

10 ON INT 7 GOTO 1000
20 N=0
100 PRINT "APPUYEZ SUR CTRL C POUR EMPECHER LE DEFILEMENT"
110 N=N+1: GOTO 100
1000 PRINT "LE MESSAGE EST APPARU";N;" FOIS"
1010 PRINT "AVANT QUE LA TOUCHE CTRL C NE SOIT PRESSEE"

Ce programme fait défiler en continu le même message dans la fenêtre SBASIC. tant que l’utilisateur n’appuie pas sur la touche Ctrl-C. Aussitôt que l’utilisateur appuie sur les touches Ctrl-C ou Ctrl-Break, une interruption logicielle numéro 7 est déclenchée et l’instruction GOTO 1000, placée juste derrière ON INT 7 est exécutée. Il y a donc transfert à la ligne 1000 et un message, indiquant le nombre de fois que le message « APPUYEZ SUR CTRL C TOUR EMPECHER LE DEFILEMENT » a été affiché. Enfin, l’exécution du programme s’arrête.

Action

L'instruction ON INT permet de gérer des interruptions logicielles en indiquant, pour chacune d'elles, le traitement associé.

expr num spécifie le niveau d'interruption que l'on désire armer. Il doit, après arrondi éventuel, être compris entre 0 et 7.

  • Le niveau 0 est le niveau d'interruption engendré avant l'exécution de chaque instruction du programme. Particulièrement utile en cours de mise point, il permet d'afficher le contenu de certaines variables avant l'exécution de chaque instruction.
  • Le niveau 7 correspond à l'appui sur les touches Ctrl-C ou Ctrl-Break.

instr-comp représente la ou les instructions qui seront exécutées lors de la réception d'une interruption du niveau spécifié.

  • Il est possible d'effectuer, au moyen d'une instruction CALL, GOSUB ou GOTO, un branchement vers une routine de traitement de l'interruption. Une telle routine doit se terminer par une instruction RETURN.
  • Lorsque instr comp comporte une instruction GOTO, celle-ci doit être la dernière car les instructions placées à sa suite ne seraient pas exécutées.
  • Si instr-comp est omise, le niveau spécifié est désarmé.

Toute nouvelle instruction ON INT annule l'effet de la précédente pour un niveau d'interruption donné.

Pendant le traitement d'une interruption, les autres interruptions sont masquées. Toute demande d'interruption est mémorisée mais n'est prise en compte qu’à la fin du traitement en cours. Toutefois, si le niveau 7 n'a pas fait l'objet d'une instruction ON INT, un appui sur Ctrl-C provoque l'arrêt du programme même si une interruption est en cours de traitement.