Vous êtes sur la page 1sur 14

TP 68000

David Delfieu

September 6, 2017

Contents
1 Présentation et mode d’emploi du système d’évaluation développé autour du 68000 2
1.1 Présentation du système d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Caractéristiques du 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Format des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Le moniteur et ses commandes (Tome 1 Chap 4) . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 La commande EDIT du moniteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Transfert entre le disque dur du P C et la carte . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 La commande ASM du moniteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.4 Les autres commandes du moniteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.5 COMMANDE DU DEBUGGER (CHAP 5) . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Routines systèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Routines BIOS : (Basic Input Output System) . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 Routines RDOS (RAM -DISK OPERATING SYSTEM) . . . . . . . . . . . . . . . . 8
1.4.3 Procédure d’appel d’une routine RDOS . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.4 L’ensemble de routines RDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Enoncés des 2 séances de T P 11


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Scéance 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Prédetermination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Travail à réaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Scéance 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 Prédetermination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2 Saisie Robuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Compte Rendu 14

1
Présentation du programme d’informatique industrielle en GE4
L’objectif de ce T P est de vous familiariser avec les microprocesseurs 16 bits et de vous initier à l’utilisation
d’un microprocesseur et ses périphériques dans une chaîne de commande. Ce T P projet se déroulera sur 2
séances.
Ce système basé à partir d’un 68000 est constitué d’une carte mère comportant le microprocesseur,
la RAM , É et d’une carte fille contenant les éléments de communication avec l’extérieur, c’est à dire le
moteur. On appelle l’ensemble, un système d’évaluation car elle permet de créer des fichiers, de debugger
et d’exécuter tout type de programme en langage assembleur 68000.

1 Présentation et mode d’emploi du système d’évaluation développé au-


tour du 68000
Cette partie constitue un résumé permettant de faire une première approche du système d’évaluation
M C1000. Très vite il s’avérera incomplet et il sera nécessaire de se référer à la documentation plus complète
disponible en T P : "TOME 1 : MISE EN ROUTE DU SYSTEME". Pour chaque élément de présentation
nous donnerons les références.

1.1 Présentation du système d’évaluation


Les caractéristiques du système (Tome 1, Chap 1) sont les suivantes :

• Horloge : 8 MHz

• Mémoire :

– RAM Statique utilisateur 128 Ko


– RAM Statique utilisateur 16 Ko
– EP ROM système 64 Ko
– Supports EP ROM libres 64 Ko

• Entrée /sorties :

– 1 interface série RS232 pour relier le système à un P C


– 1 interface série RS232 pour relier le système à une imprimante
– 1 prise DIN pour relier le système à un minitel (terminal de travail)
– 1 prise DIN pour relier le système à un magnétocassette
– 4 connecteurs 50 points pour les extensions utilisateurs (carte fille)
– 1 connecteur 5 points pour l’alimentation

Deux des connecteurs 50 points C1 et C4 sont reliés à la carte fille qui est une carte d’interface destinée
à la commande en courant et en vitesse d’un moteur à courant continu. Elle contient pour cela un P IA,
des Convertisseurs Analogiques/Numérique, un multiplexeur analogique, ...
Périphériques de la carte mère

2
• Parallel Interface Adapter : P IA

• Parallel Interface Timer : P IT

• Dual Asynchronous Receiver Transmitter : DU ART

• Multi Functions Peripheral : M F P

Pour être utilisable, ce système comprend un moniteur résidant ( M C1000) et un assembleur-désassembleur


implanté en EEP ROM . Le moniteur est un minisystème d’exploitation, c’est à dire qu’il assure la ges-
tion de la configuration physique du système, l’interface avec l’opérateur, les programmes utilitaires et les
programmes d’application. La gestion physique est réalisée par un noyau central appelé BIOS qui est un
ensemble de routines de base (Basic Input/Output System). L’interface avec l’opérateur est assurée par
un interpréteur de commandes. Ce dernier saisit les lignes de commandes, les analyse et active les routines
BIOS pour exécuter l’action désirée.
Parmi ces commandes on retrouve des commandes déjà rencontrées dans d’autres systèmes :

• gestion de fichiers : DIR, DEL, EDIT, COP Y, REN AM E, ...

• gestions d’exécutables : RU N, DEBU G, ASM

• gestions du système physique : RSET, M EM,

• HELP : rappel des commandes

L’accès au moniteur se fait comme suit :

1. Sous W indows : Dans votre répertoire users, créer un répertoire identifiant les T P de 68000 puis
dans ce répertoire, créer un répertoire identifiant votre groupe de T P et dans ce répertoire un sous
répertoire identifiant votre binôme(un seul nom abrégé à 8 caractères). Enfin dans ce sous-répertoire
créer un répertoire se rapportant à votre séance de T P . Exemple :

2. lancer Serial_Com
Loader la session EM 1000

Conseil Après avoir lancé le moniteur, vous êtes dans un minisystème d’exploitation et vous pouvez à ce
titre éditer votre programme utilisateur à l’aide de la commande edit nom.asm. Votre fichier est alors écrit
dans la RAM statique utilisateur. Un reset intempestif n’affecte pas la ram et donc n’a pas d’influence
sur votre programme, par contre une coupure accidentelle de l’alimentation efface la RAM et donc détruit
votre programme.

Nous vous conseillons donc d’écrire votre programme sur le disque dur du P C par un éditeur classique
N oteP ad + + puis de rapatrier votre fichier sur la carte à l’aide de la touche F7

3
1.2 Caractéristiques du 68000
Le 68000 possède 18 registres :

• 1 registre Compteur Ordinal sur 24 bits : P C

• 1 registre d’état sur 16 bits : SR

• 8 registres de données sur 32 bits : D0 − D7

• D0 − D7 sont l’équivalent des accumulateurs, c’est à dire ce sont des registres sur lesquels on peut
effectuer des opérations arithmétiques celles-ci ont de plus, la particularité d’affecter le registre d’état
(SR).

• 7 registres d’adresses sur 32 bits : A0 − A6

• 1 registre pointeur de pile sur 32 bits : A7

1.2.1 Modes de fonctionnement


Le 68000 possède deux modes de fonctionnement : le mode utilisateur et le mode superviseur. Le mode
superviseur est le mode dans lequel se trouve le microprocesseur lorsqu’il exécute un programme d’exception
suite à une interruption générée de manière interne (erreur d’adresse, erreur de bus, É) : deux événements
que l’on regroupe généralement sous le vocable d’EXCEP T ION . Dans ce mode, le microprocesseur
dispose de nouvelles ressources : il travaille avec une nouvelle pile, la pile superutilisateur, ainsi que d’un
nouveau registre d’état. De plus, il peut exécuter dans ce mode un certain nombre d’instructions spéciales.
Le mode utilisateur est le mode dans lequel se trouve le microprocesseur lorsqu’il exécute un programme
"normal", il utilise la pile et le registre d’état dit "utilisateur". Dans ce mode les instructions privilégiées
précédemment ne sont pas exécutables.

1.2.2 Format des données


Si le microprocesseur peut travailler sur des données de 8,16 ou 32 bits à condition de préciser le format
des instructions (format .B .W . L) par contre une adresse est toujours exprimée sur 32 bits. Par défaut,
le format est de 16 bits. Le bus de données comprend 16 bits et peut donc transférer un mot de 16 bits en
une seule fois (le 68000 est un microprocesseur 16 bits). Pour rester compatible avec la nombreuse famille
des composants 8 bits, il se décompose en deux parties : la partie (MSB) pour les 8 bits de poids fort et
(LSB) pour les 8 bits de poids faible.
Le découpage du bus de données correspond au fait que les mémoires ne peuvent stocker qu’un mot de 8
bits par adresse. Ainsi un mot de 8 bits pourra être affecté à une adresse paire (M SB) ou impaire (LSB).
Un mot de 16 bits, qui nécessite deux emplacements mémoire occupera deux adresses consécutives paire
et impaire. Le poids fort étant stocké à une adresse paire. D’un point de vue programmation, on indique
toujours l’adresse en fonction de la longueur du mot. De même pour un mot de 32 bits, les bits (M SB)
sont écrits à une adresse paire, la logique réalisant ensuite 3 incrémentations de l’adresse pour loger les 24
bits restants.

4
1.3 Le moniteur et ses commandes (Tome 1 Chap 4)
1.3.1 La commande EDIT du moniteur
Le moniteur M C1000 possède son propre éditeur qui s’appelle par la commande :

>EDIT fichier.asm

C’est un éditeur pleine page (23 lignes, 80 colonnes) qui permet de créer ou de modifier des fichiers
textes. La taille du fichier texte est limitée par l’espace utilisateur : 65536 octets.
Les commandes les plus importantes sont les suivantes :

• CT RL/S : Fin de l’édition avec sauvegarde du fichier en cours

• CT RL/Q : Sortie de l’édition sans sauvegarde

• F1 : Suppression de la ligne courante (et mise en réserve dans un buffer)

• F2 : Insertion de la ligne précédemment supprimée (par la touche F1)

• CT RL/U : Annulation des modifications d’une ligne

• CT RL/G : Commande de manipulation de bloc, cette commande nécessite une lettre supplémentaire
pour l’exécution de la commande :

• CT RL/G et B : marque de début de bloc

• CT RL/G et F : marque de fin de bloc

• CT RL/G et IB : insertion de bloc

• CT RL/G et M B : déplacement de bloc

• CT RL/G et U M : annulation de définition de bloc

• CT RL/T : Curseur en début de fichier

• CT RL/B : Curseur en fin de fichier

1.3.2 Transfert entre le disque dur du P C et la carte


• Editer votre fichier sous notepad

• Vous pouvez copier 3 ou 4 lignes sous l’éditeur, mais nous vous conseillons de les réécrire sur la fenêtre
Serial_com

5
1.3.3 La commande ASM du moniteur
Syntaxe : ASM Nom_fichier [-options]

ou options
−X : En plus du fichier binaire est crée une table des symboles. Cela permet lors du deboggage de
récupérer l’ensemble des étiquettes symboliques (boucles, variables, nom de sous-programmes, É).

−L : Génère un listing de compte-rendu d’assemblage ou figurent les adresses, le code binaire, et le code
source. Ce fichier permet de repérer les erreurs d’assemblage et de visualiser à quelle adresse sont
implantées les variables, ainsi que la pile. Il permet donc de debogger une erreur assez pernicieuse,
celle ou la pile est implantée à une adresse impaire.

1.3.4 Les autres commandes du moniteur


• M DBU G : Débugger mémoire

• M DU M P : Impression d’une zone mémoire

• M EM : Examen / modification de la mémoire

• M IN I : Initialisation d’une zone mémoire

• M LIBRE : Information sur la mémoire RAM disponible

• M RU N : Exécution d’un programme en mémoire

• REN AM E : Changement du nom d’un fichier

• RU N : Exécution d’un fichier programme

• RSET : Réinitialisation du système

• SAV E : Cataloguer une zone mémoire en fichier

• T READ : Lecture de cassette

• T W RIT E : Ecriture sur cassette

• XLSER : Configuration de la ligne série

1.3.5 COMMANDE DU DEBUGGER (CHAP 5)


La syntaxe d’exécution d’un programme en mode Debugger est définie dans le paragraphe précédent.
DB nomfich.bin [, $ adresse]
Le résumé des commandes du DEBU GGER est donné sur la liste suivante :
• ASL : Assembleur de ligne

• BRK : Pose / Consultation de break-point

• CLR : Suppression de break-point

6
• DM P : Dump mémoire

• EXC : Exécution du programme

• F IC : Information sur le programme

• GT O : Exécution jusqu’à une adresse

• IN I : Réinitialisation du programme

• LST : Désassemblage

• M EM : Examen / Modification mémoire

• N BL : Nombre de lignes

• P T R : Pointeur adresse

• QU I : Retour au moniteur

• REG : Examen / Modification des registres

• ST P : Exécution d’un pas de programme

• V AL : Valeur d’un symbole

1.4 Routines systèmes


Les routines systèmes sont des procédures utilitaires qui peuvent être appelées à partir d’un programme
d’application. Ces procédures se répartissent en deux groupes : RDOS ou BIOS. Les appels à une routine
de RDOS ou BIOS se font par les instructions :

TRAP #13 pour le BIOS


TRAP # 1 Pour RDOS

1.4.1 Routines BIOS : (Basic Input Output System)


Ces routines permettent la gestion des entrées/sorties physiques du système. C’est l’interface entre les
programmes d’application et la périphérie du système :

• 01 : Etat d’un canal d’entrée

• 02 : Entrée d’un caractère sur un canal

• 03 : Sortie d’un caractère sur un canal

• 05 : Changement d’un vecteur d’exception

• 06 : Changement du masque d’interruptions

• 08 : Etat d’un canal de sortie

7
EXEMPLE : Affichage à l’écran d’un caractère présent dans le registre D1 :

MOVE D1,-(A7)
MOVE #2,-(A7)
MOVE #2,-(A7)
TRAP #13
ADDQ.L #6,A7

1.4.2 Routines RDOS (RAM -DISK OPERATING SYSTEM)


Ce sont les routines de gestion des fonctions logiques du système. C’est l’interface entre les programmes
d’application et le moniteur du système : gestion des entrées/sorties logiques, lecture/écriture de fichiers,
lecture clavier, écriture écran ou imprimante, gestion de la configuration du système comme la création/-
suppression de fichiers du catalogue, l’état du processeur, la configuration de la ligne série, É

1.4.3 Procédure d’appel d’une routine RDOS


Un appel à une routine système RDOS se fait par la séquence d’instructions :

Move.x p2,-(A7) paramètre p2 dans la pile


Move.x p1,-(A7) paramètre p1 dans la pile
Move.w #num,-(A7) numéro de routine dans la pile
TRAP #1
ADD.L #taille,A7 restaurer la pile, taille = x+x+2

• Chaque paramètre pi a une taille x = W (pour un mot) ou x = L (pour un long mot).

• Pour la restauration de la pile, taille est la somme des tailles des paramètres +2, (2 pour le numéro
de fonction de la routine).

• Lorsqu’un paramètre pi représente une adresse, on peut remplacer :

M OV E.L pi , −(A7 ) par P EA pi

• Le registre D0 est le seul registre modifié après l’appel d’une routine. Au retour, son contenu représente
le compte rendu de l’exécution de la routine.

Sauf indication contraire :

• D0 = 0 fonction bien terminée

• D0 = -1 le numéro de fonction donné est inconnu

• D0 = -2 un paramètre pi est incorrect

• D0 < -2 erreur durant l’exécution de la fonction

Exemple 1 : Programme d’affichage de la chaîne de caractère bonjour :

8
LEA bonjour(PC),A1
MOVE.L A1,-(A7)
MOVE.W #9,-(A7)
TRAP #1
ADDQ.L #6,A7

Exemple 2 : Lecture d’un caractère sans écho

MOVE #7,-(A7)
TRAP #1
ADDQ.L #2,A7

Le caractère lu est disponible dans le registre D0

1.4.4 L’ensemble de routines RDOS


Fonctions :

• $00 : Fin d’un programme utilisateur

• $01 : Entrée du clavier (écho à l’écran)

• $02 : Sortie d’un caractère à l’écran

• $03 : Entrée de la ligne série RS232

• $04 : Sortie sur la ligne série RS232

• $05 : Sortie sur l’imprimante

• $06 : Lecture du clavier sans attente

• $07 : Lecturée du clavier sans écho à l’écran. Le caractère saisie est dans D0.

• $08 : idem

• $09 : Sortie d’une chaîne sur l’écran. Met D0 à zéro si l’affichage est correct.

• $0A : Sortie d’une chaîne au clavier

• $0B : Etat du clavier

• $10 : Etat de l’écran

• $11 : Etat de l’imprimante

• $12 : Etat de l’entrée de la ligne série

• $13 : Etat de la sortie de la ligne série

• $20 : Changement utilisateur/superviseur

9
• $41 : Supprimer un fichier

• $4E : Recherche d’un premier fichier

• $4F : Recherche d’un fichier

• $56 : Renommer un fichier

• $72 : Cataloguer un fichier

• $76 : Sorties d’une chaîne sur l’écran et saisie d’une autre chaîne au clavier

• $78 : Sortie d’une chaîne sur l’imprimante

• $79 : Configuration ligne série RS232

• $88 : Espace mémoire RAM libre

10
2 Enoncés des 2 séances de T P
2.1 Introduction
Ces séances consistent à écrire un programme permettant une communication souple et interactive entre
l’utilisateur et le 68000. Pour cela on va réaliser une page de présentation. Cette page de présentation sera
construites à l’aide de codes ASCII à fonctions spéciales : Certains permettent de bouger le curseur :

• Déplacement vers le haut: $1B,$5B,$41 (3 octets consécutifs)

• Déplacement vers le bas: $0A,$0D (2 octets consécutifs)

• Déplacement en colonne XX et ligne YY $1B,$5B,YY,$32,XX,$4A (attention ligne 17 = 31,37)

D’autres agissent sur le contrôle :

• L’effacement de l’écran est obtenue par la séquence suivante : $1B,$5B,$32,$4A,0,0 (4 octets consé-
cutifs + 2 zéros)

• effacement du caractère courant : $7F

• effacement de la ligne courante : $1B,$4F,0,0

ATTENTION : toute chaîne de caractères ou toute séquence de caractères, y compris le caractère


de terminaison de chaine 0, doit constituer un nombre pair.

2.2 Scéance 1
2.2.1 Prédetermination
1. Ecrire le sous-programme LCAR qui permet de lire un caractère à la volée sans echo. Ce sous
programme renvoie le caractère saisie dans D3.

2. A partir du cours, écrire un sous-programme LIRECHIF qui utilise LCAR qui saisie des nombres
compris entre les constantes 0 et 3 passée en paramètres par les registres D1 et D2 en considérant le
programme principal suivant :
1 PROG EQU $0FF0000
ORG PROG
3 LEA PILE (PC) , A7

5 MOVE.B #$30 , D1
MOVE.B #$33 , D2
7 BSR LIRECHIF

9 TRAP #0
DS.L 100
11 PILE DS.L 1
END

11
Effacement de
l'Ecran

Page de
Présentation
du binôme

Saisie d'un
touche sans
écho

Effacement de
l'Ecran

Saisie de la
consigne en
tension

Conversion en
un chiffre
hexadécimal

Saisir une
touche pour
recommancer

12
2.2.2 Travail à réaliser
L’organigramme de ce qui est demandé est donné dans la figure 2.2.2 :

1. Ecrire le programme correspondant à la prédee.

2. Ecrire un sous-programme AFFICH qui permet d’aficher une chaîne de caractères passée en paramètre
par le registre A1 .

3. A l’aide de ce sous-programme, afficher un message de présentation, puis inviter l’utilisateur à frapper


une touche quelconque. Après cela, effacer l’écran puis afficher le message : "Taper une consigne de
tension comprise entre -35,00 et + 35,00 volt".

2.3 Scéance 2
2.3.1 Prédetermination
Faire un algorithme précisant le cahier des charges que vous avez choisi pour la saisie robuste.

2.3.2 Saisie Robuste


On doit forcer l’utilisateur à rentrer les bons caractères: +/- puis des 2 chiffres suivis d’une virgule puis de
deux chiffres). On pourra pour cela utiliser la saisie sans écho. Par exemple :

• Si la caractère attendu est un signe si l’utilisateur ne tape pas "+" ou "-" (codes ASCII $2B ou
$2D), il ne doit pas voir d’écho.

• Si le caractère attendu n’est pas un chiffre (le code ASCII est compris entre $30 et $39), alors il ne
doit pas y avoir d’écho.

En fin de programme vous devez réaliser une conversion ASCII-Hexadécimal. A mesure de la saisie, on
va reconstruire le nombre en hexadécimal. Les codes ASCII des chiffres sont :

• Code ascii de 0 = $30

• Code ascii de 1 = $31

• ...

• Code ascii de 9 = $39

La conversion de chaque chiffre composant le nombre s’obtient en retranchant $30 au caractère saisie. Puis
pour obtenir le résultat final, on multiplie par la puissance de 10 correspondant à son rang pour la valeur
78 : D1 ← ($37 − $30) ∗ 10 + ($38 − $30)
Le 68000 calculera évidemment en hexadécimal et on rangera le résultat dans un registre (par exem-
ple D1 ) Attention: on tiendra compte du signe de la consigne: on complémentera (l’opération de CA2
correspond à l’instruction N EG) le résultat si la consigne est négative.

13
3 Compte Rendu
Un seul compte rendu, qui doit porter sur la saisie robuste, devra être rendu sous forme papier ou élec-
tronique en pdf sur le depot MADOC au plus tard une semaine après la réalisation du second TP. Les
paramètres de correction seront les suivant :

• Cahier des charges :

* Clarté de l’exposé ;
* Difficulté choisie ;
* Présence d’un organigramme.

• Style du codage :

* Découpage du programme en fonctions ;


* Pertinence des fonctions et du parametrage ;
* usage de la pile et des registres"

• Rapport :

* Clarté, présentation, lisibilité ;


* Expression des explications ;
* Conclusion

14

Vous aimerez peut-être aussi