Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : TD02
- * Written by : Damien Galochet
- * Date : 20/09/17
- * Description: :)
- *-----------------------------------------------------------
- ORG $1000
- START: move.b #50, d0 ; Fermeture des fichiers ouverts
- trap #15
- cmp #2, d0 ; Vérification des erreurs
- beq err ; Si échec, sortie
- lea fName, a1 ; Ouverture du fichier
- move.b #51, d0
- trap #15
- cmp #2, d0 ; Vérification du succés de l'ouverture du fichier
- bne fOpen ; Si échec, tentative de création, sinon saut.
- move.b #52, d0
- trap #15
- cmp #2, d0 ; Vérification du succés de la création du fichier
- beq err ; Si échec, sortie
- fOpen: move.l d1, d3 ; Sauvegarde du FID dans d3
- bcl: lea mess0, a1 ; Affichage de l'invite de saisie
- move.b #13, d0
- trap #15
- move.b #5, d0 ; Lecture d'un caractrère
- trap #15
- cmp #'O', d1 ; Comparaison avec O
- beq write
- cmp #'o', d1 ; Comparaison avec o
- beq write
- cmp #'N', d1 ; Comparaison avec N
- beq read
- cmp #'n', d1 ; Comparaison avec n
- beq read
- bra bcl ; Saisie non reconnue, bouclage
- write: lea mess1, a1 ; Pointage sur adresse du message de saisie
- move.b #13, d0 ; Affichage du message de saisie
- trap #15
- move.b #2, d0 ; Lecture depuis le clavier
- lea zoneA, a1 ; Pointage sur zone tampon
- trap #15
- cmp #13, d1 ; Vérification du nombre de caractères lus
- bne lErr
- move.l d3, d1 ; Chargement du FID dans d1
- move.b #54, d0 ; Écriture dans le fichier
- move.l #13, d2 ; Nombre d'octets à écrire
- trap #15
- cmp #2, d0 ; Vérification des erreurs
- beq err
- bra bcl
- read: lea zoneA, a1 ; Pointage sur buffer mémoire
- move.b d3, d1 ; Chargement du FID dans d1
- move.b #55, d0 ; Positionnement du curseur dans le fichier
- move.l #0, d2 ; Position 0 (début)
- trap #15
- bclRead move.b d3, d1 ; Chargement du FID dans d1
- move.b #53, d0 ; Lecture du fichier
- move.l #13, d2 ; Nombre d'octets à lire
- trap #15
- cmp #2, d0 ; Vérification des erreurs
- beq err
- cmp #1, d0 ; Vérification de la lecture d'une fin de fichier
- beq fin
- move.w #13, d1 ; Nombre de caractères à afficher
- move.b #0, d0 ; Affichage de la lecture
- trap #15
- bra bclRead ; Bouclage
- lErr move.b #13, d0 ; Affichage du message d'erreur de longueur de saisie
- lea messLEr, a1
- trap #15
- bra bcl
- err: move.b #13, d0 ; Affichage du message du message d'erreur
- lea messErr, a1
- trap #15
- bra fin
- fin: move.b #9, D0
- trap #15 ; halt simulator
- fName dc.b 'sauvegarde.txt',0
- mess0 dc.b 'Voulez-vous saisir un numéro? (O/N)',0
- mess1 dc.b 'Saisissez le numéro: ',0
- messErr dc.b 'Erreur rencontrée',0
- messLEr dc.b 'Taille du numéro saisi invalide',0
- zoneA ds.b 13
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement