COSMAC ELF+, partie 2
Entrées et sorties
Mine de rien ce petit ordinateur simple a 2 périphériques d'entré et 2 de sortie. Examinons le schéma.
L'affichage hexadécimal ne sert pas seulement lors de la programmation il peut aussi servir à l'intérieur d'un programme pour afficher une donnée. Sur le schéma en haut à gauche se trouve l'affichage hexadécimal constitué de 2 digits IC1 et IC4. Le bus de donnée D7-D0 est connecté à l'affichage via des CD4050 qui servent de tampons. Le signal STROBE sert à lire la donnée de bus dans l'affichage. En regardant la 2ième partie du schéma on voie que le signal STROBE provient de la porte NAND à droite dont une entrée est étiquettée N2/LOAD. La commande OUT place la valeur pointée par le registre R2 sur le bus de donné donc c'est cette valeur qui est affichée. Pour afficher l'état des commutateurs D7-D0 le programme doit exécuter la commande IN 4 activant les transmission gates CD4016 qui a pour effet de connecter les commutateurs au bus de données. Cette valeur est enregistrée dans la mémoire RAM à l'adresse pointée par R2, M(R2) <- bus . Donc il suffit de faire IN 4 suivit de OUT 4 pour afficher l'état des commutateurs en hexadécimal. C'est ce que fait le petit programme suivant:
0 F8 7F LDI 7F ; D <- 7F
2 B2 PHI R2.1 ; R2.1 <- D
3 F8 FF LDI FF ; D <- FF
5 A2 PLO R2 ; R2.0 <- D R2 pointeur vers $7FFF
6 E2 SEX R2 ; R2 est le pointeur de données
LOOP:
7 6C IN 4 ; D <- DATA, M(RX) <- DATA , lecture des switch data
8 64 OUT 4 ; DISPLAY <- M(RX) , affichage de la valeur
9 22 DEC R2 ; R2 <- R2-1 , OUT incrémente R2 donc on
; le décrémente pour qu'il pointe vers $7FFF
A 30 07 BR LOOP ; saut vers boucle
Les commutateurs ne servent pas seulement lors de la programmation ils peuvent aussi être lu par un programme.
L'état du bouton IN peut aussi être lu par un programme par l'instruction IN 4 et la sortie Q du micropresseur est une sortie 1 bit qui peut-être contrôllée par un programme avec les instructions SEQ et RESQ.
vidéo de démonstration
Dans le vidéo suivant la valeur binaire des commutateurs est lue par le programme et affichée en hexadécimal.



Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.