Un exemple de programme est donné ci-dessous afin d'illustrer la
manière de cataloguer un nouveau dispositif d'entrée/sortie.
Considérons qu'un point d'accès à sortie parallèle 8 bits est assigné à
l'adresse d'entrée/sortie OH, et qu'un point d'accès d'entrée parallèle 8
bits est assigné à l'adresse d'entrée/sortie 1H. L'exemple ci-dessous
donne au point d'accès de sortie la désignation P I C : et rend le point
d'accès accessible aux commandes et aux fonctions B A S I C . Placer tout
d'abord le mot clé " a m o u r " sur la frontière de 2K-octets au-dessus de
1 8 0 0 H . Cela permet au X - 0 7 de sauter à l'un des trois points d'entrée
lorsque son alimentation est enclenchée (pour plus de détails sur les
trois points d'entrée, voir la partie 2 . 2 . 2 ) . Le premier point d'entrée doit
être assigné à un sous-programme qui initialise le matériel d'entrée/sor-
tie. Le X - 0 7 étant invalidé pour l'interruption au moment de l'enclen-
chement de l'alimentation, le mode LS I périphérique doit être réglé en
ce point. L'exemple de programme ci-dessous assume des points
d'accès d'entrée/sortie simples et envoie 0 au point d'accès de sortie
(car l'état du point d'accès de sortie est imprévisible au moment de
l'enclenchement de l'alimentation).
Le second point d'entrée doit être introduit immédiatement avant
l'apparition du message de Copyright du B A S I C . Réécrire l'entrée DEV-
HOCK dans ce but. Dans le code de programme ci-dessous, le code J P
représente 0 C 3 H . Lorsque ce programme est exécuté, le code J P
D E V S C N est placé en DEVHOCK-h 1 .
LD
A . J P c o d e
LD
[ D E V H O C K - H ] , A
LD
H L , D E V S C N
LD
[DEVHOCK-h 2],HL
Le troisième point d'entrée doit être introduit lorsque le X - 0 7 est lancé
après la terminaison de la commande S L E E P . Dans cette entrée, initiali-
ser le matériel du X - 0 7 et réécrire D E V H O C K .
Si l'on introduit la commande I N I T = 1 , " P I O : X Y Z " , 1 0 0 0 H , " T " , le
B A S I C du X - 0 7 explore les noms prédéfinis du système, et si une cor-
respondance apparaît ou non, il exécute le code J P D E V S C N et saute à
D E V S C N . En ce point, un 0 dans l'indicateur de report indique qu'un
nom de dispositif correspondant a été trouvé. Un 1 indique qu'aucune
correspondance n'est apparue. Un nouveau dispositif d'entrée/ sortie
allant être défini, D E V S C N ne doit rien renvoyer si l'indicateur de report
à mis à 0 , c'est-à-dire si une correspondance apparaît. Si aucune cor-
respondance n'apparaît, D E V S C N doit rechercher une correspondance
avec le nom du nouveau dispositif à définir. Les données dans les paires
de registres IX et B C ne doivent pas être détruites lorsque l'on sort de
ce sous-programme. Bien que la recherche d'une correspondance de
nom de dispositif puisse sembler être une tâche difficile, il est possible
4 9