LE SYSTEME
I)Le processeur
Les Ti89 et Ti92+ comportent un processeur MOTOROLA
68000 cadencé à 10Mz( hardware 1) et pour les plus récentes calculatrice
à 12Mz( hardware 2).
C'est un processeur pseudo 16-32 bits: § Il travaille
en interne sur 32 bits: il peut traiter des informations sur 8,
16 ou 32 bits.
§ Il echange des information avec l'extérieur par un bus 16 bits.
1)La table
d'exeption
Lorsque l'on allume la
calculatrice, le processeur éxecute les instructions pointées par
le vecteur d'initialisation; ce vecteur est situé à l'adresse $000000
et est le premier vecteur de la table d'exeption.
Une exeption (trap) est un programme appelé par
des routines externes ( hardware) ou internes ( software).A chaque
exeption on associe un vecteur qui est le poieur de l'exeption;
il existe 256 vecteurs, qui sont des doubles mots (longword) placés
au tout début de la mémoire dans la table d'exeption: elle commence
à l'adresse $000000 et finit à l'adresse $0003FF.La voici:
NUMERO DE VECTEUR
|
ADRESSE
|
RÔLE
|
0
|
$000
|
reset (pointeur de pile)
|
1
|
$004
|
reset ( pointeur de programme)
|
2
|
$008
|
erreur de bus
|
3
|
$00C
|
erreur d'adresse
|
4
|
$010
|
instruction illegale
|
5
|
$014
|
division par 0
|
6
|
$018
|
CHK
|
7
|
$01C
|
TRAPV
|
8
|
$020
|
violation de privilèges
|
9
|
$024
|
trace
|
10
|
$028
|
emulation 1010
|
11
|
$02C
|
emulation 1111
|
12 à 14
|
$030 à $038
|
non affectés: ne pas utiliser
|
15
|
$03C
|
non initialisée
|
16 à 23
|
$040 à $05C
|
non affectés: ne pas utiliser
|
24
|
$060
|
interruption parasite
|
25
|
$064
|
autovecteur de niveau 1
|
26
|
$068
|
autovecteur de niveau 2
|
27
|
$06C
|
autovecteur de niveau 3
|
28
|
$070
|
autovecteur de niveau 4
|
29
|
$074
|
autovecteur de niveau 5
|
30
|
$078
|
autovecteur de niveau 6
|
31
|
$07C
|
autovecteur de niveau 7
|
32 à 47
|
$080 à $0BC
|
TRAP 0 à TRAP 15
|
48 à 63
|
$0C0 à $FC
|
non affectés: ne pas utiliser
|
64 à 255
|
$100 à $3FC
|
iterruptions libres
|
2)Les modes
Le processeur M68k possède
deux modes de fonctionnement différents:
le mode utilisateur fournit un accès limité ( mais suffisament étendu)
pour les programmes éventuels;
le mode superviseur qui est utilisé uniquement par l'OS de la calculatrice,
et qui fournit un accès total au système.
3)Les exeptions
Lorsque le processeur
rencontre une exeption, il éxécute les instructions placée à l'adresse
contenue par le pointeur de cette exeption.
A)Les exeptions normales
_ Division par 0: si le diviseur utilisé par DIVU ou DIVS vaut 0.
_ CHK:
tste si un opérande appartient à un interval donné
_ TRAPV: si le Vflap est mis à 1: cette routine est appelée
_ TRAP: permet d'utiliser une exeption dans un programme (par:"TRAP
<numero du vecteur>")
B)Les erreurs de programmation
_ adresse error: si le processeur essaye de lire un mot (word) ou
double-mot (longword) commençant à une adresse impaire
_violation de privilège: si un programme tente d' éxécuter une instruction
superviseur (parmi: STOP; RESET; RTE; MOVE.W xx,SR; AND.W #xx,SR;
EOR.W #xx,SR; OR.W #xx,SR; MOVE.L An,USP; MOVE.L USP,An)
_instruction ilégale: si le processeur tente d'executer $AFA ou
$AFB (deux instructions réservées) ou $AFC (cette instruction force
une illegal instruction: on l'utilise pour debugger en faisant des
breakpoints) ou encore une instruction qu'il ne reconnnait pas.
_ line 1010: si le processeur tente d' éxécuter $Fxxx
_ line 1111: si le processeur tente d' éxécuter $Axxx
_ trace: si le bit T1 du SR est mis à 1: le processeur appelle la
procédure pointée par le vecteur 9 après chaque instruction du programme
éxécutée.
4)Octets
système et utilisateur du Status Register
T1
|
T0
|
S
|
M
|
|
I2
|
I1
|
I0
|
|
|
|
X
|
N
|
Z
|
V
|
C
|
Le SR est donc composé de 2 bytes ou 1word
A)OCTET UTILISATEUR ou
FLAGREGISTER
_ C: retenue ( aritmethique et CMP)
_ V: dépassement
_ Z: zéro
_ N: négatif
_ X: retenue ( arithmetique)
B)OCTET SYSTEME ou SYSTEMBYTE
_ T1 et T0: mode de trace
_ M interruption maître
_ S: mode superviseur
_ I2, I1 et I0: priorités des interruption:
NIVEAU
|
I2
|
I1
|
I0
|
PRIORITE
|
0
|
0
|
0
|
0
|
- - - -
|
1
|
0
|
0
|
1
|
- - -
|
2
|
0
|
1
|
0
|
- -
|
3
|
0
|
1
|
1
|
-
|
4
|
1
|
0
|
0
|
+
|
5
|
1
|
0
|
1
|
+ +
|
6
|
1
|
1
|
0
|
+ + +
|
7
|
1
|
1
|
1
|
+ + + +
|
A suive tres prochainement...
©Tous les programmes presents
sur ce site sont soumis à l'autorisation de leur programmeurs
respectifs pour toutes modifications. La mise en page a necessité
un certain travail, il serait donc plus correct de ne pas la plagier.
|