Le fonctionnement de la fonction INP( # 1 ) est décrit ci-dessous. Lors-
que cette commande est exécutée, le contrôle est transféré au sous-
programme d'entrée à 1 octet dans le tableau de dispositifs associés.
Dans l'exemple de programme, le contrôle est transféré à PIOSNS. Ce
sous-programme doit retourner immédiatement si aucune donnée n'est
présente au point d'accès d'entrée. Sinon, il n'aurait pas de significa-
tion en tant que fonction. Dans cet exemple, on considère que les don-
nées sont toujours présentes à IPORT (en d'autres termes, il n'apparaît
pas d'état sans entrée), et par conséquent le sous-programme retour-
nera toujours les données introduites. S'il est nécessaire d'attendre que
les données soient reçues au point d'accès d'entrée, le sous-programme
devrait simplement retourner le contrôle au sous-programme appelant
avec l'indicateur de report mis à 0 et l'indicateur Z mis à 1 , au lieu de
former une boucle dans le sous-programme lui-même. Le sous-
programme INP(#n) appelle le sous-programme d'introduction fourni par
l'utilisateur jusqu'à ce que des données soient reçues au point d'accès
d'entrée. Il transfère automatiquement le contrôle au sous-programme
A B O R T si un état de touche d'interruption, touche d'arrêt ou pile épui-
sée apparaît, de façon à ce que le sous-programme d'introduction n'ait
pas à contrôler de tels états. Si une erreur de dispositif d'introduction
apparaît, le sous-programme d'introduction doit retourner avec l'indica-
teur de report puis à 1 . Cela procure à la MEM B A S I C la possibilité de
détecter n'importe quelles erreurs d'entrée/sortie. La relation entre les
états d'erreurs possibles et l'état des indicateurs et le contenu du regis-
tre A sont résumés dans le tableau 4 .
Etat
Indicateur de
report
Indicateur
zéro
Reg A
Données du registre A
0
0
data
Aucun donnée présente
0
1
X
Erreur d'introduction
1
X
X
Tableau 4
Le sous-programme optionnel est un sous-programme spécial utilisé
pour des dispositifs spéciaux. Il peut écrire une en-tête de cassette,
créer un intervalle temporisé ou indiquer la position actuelle du curseur
sur l'affichage de la console ou la position d'impression actuelle sur
l'imprimante. Il n'est jamais appelé par les commandes INP(#n) ou
O U T # n , et par conséquent il n'est pas décrit en détails ici.
Le X - 0 7 ne prend pas en charge le sous-programme de fermeture. Si
nécessaire, il faut réaliser son propre sous-programme de fermeture
pour un nouveau dispositif utilisant la commande E X E C .