BUT:entrer des
nombres de 2 chiffres au clavier et les afficher.Le moniteur du TO7-70 comporte un programme lecture d une touche et un programme affichage d un
caractère.Ils sont dénommés respectivement :GETC (Get a character) qui debute à l adresse E806
(TO7-70)PUTC (Put a character) qui debute à l adresse E803 (TO7-70).Pour utiliser un sous-programme
moniteur connaitre son adresse n est passuffisant.il faut egalement se preoccuper des conditions d entree et de sortie.GETC dans notre cas ne presente
aucune condition d acces car si aucunetouche n est appuyée l'accumulateur B est chargé avec la valeur 0 etsinon il est chargé avec le code ASCI de la
touche pressée.PUTC emet vers l 'ecran le contenu de l accumulateur B qui doit etre uncode ASCII.l accès aux sous-programmes moniteur s effectue par
un JSR sousprogCela donne la sequence suivante : LDS #$8000 init de SBOUCLE JSR GETC TSTB BEQ BOUCLE JSR PUTC
BRA BOUCLEon ne sort de ce programme que par un RESET TSTB positionne les drapeaux N et Z en fonction du contenu de B et C estmis à zero,donc si
aucune touche n est appuyée le contenu de B est 0 etBEQ branche à BOUCLE.BRA (branch always) renvoie toujours à l etiquette BOUCLE.pour resoudre le
probleme il faut retirer 30 au code ASCII (les chiffresde 0 à 9 etant codés de 30 à 39) et associer les chiffres pour en faireun nombre.A chaque
entrée d un nouveau chiffre,il faut multiplier lenombre précédent par 16 (un 0 à droite) et ajouter le chiffre frappé.Comment terminer le programme
?On pourra considerer qu une touche saisie qui ne correspond pas à unchiffre entrainera la fin du programme.Il faut pour cela faire un test du contenu
de B par rapport aux chiffresde 0 à 9.CMPB associé aux instructions de branchement BMI (branchement sinegatif) ou BHI (branchement si superieur
à...)resoudra le probleme.d ou l organigramme du programme: debut init S,A|------->| entree touche| (B)=(B)-30| (B) chiffre ?
-----> NON -----> fin| -> OUI | (A)=(A)*16+(B)|-------------|LISTING COMPLET________________ * entrée de nombres au clavier
(TO7-70) * le registre A contient le nombre * limité à 2 chiffresGETC EQU $E806PUTC EQU $E803 ORG $7000DEBUT
LDS #$8000 CLRAENTREE JSR GETC TSTB BEQ ENTREE JSR PUTC SUBB #$30 BMI FIN CMPB #$9 BHI FIN
ASLA ASLA ASLA ASLA STB TAMPON ADDA TAMPON BRA ENTREEFIN SWITAMPON FCB 0 END DEBUT
__________________________________________________
Assembleur pour TO7-70
Modérateur : Politburo