Le 68000 qui se trouve dans notre ATARI est un micro-processeur 16 bits. Qu'est-ce à dire exactement ? Et bien son bus de donnée (DATA BUS) peut véhiculer 16 informations binaire en parallèle, c'est à dire simultanément. Ces 16 lignes  numerotées D0 à D15 permettent les échanges entre le micro-processeur et ses composants peripheriques (mémoires, PIA, ...) sous forme :

 

- d'OCTET (BYTE B)
- de MOT (WORD W) de 16 bits
- de LONG MOT (LONG WORD L) de 32 bits, en 2 temps.
      La sélection d’une case de mémoire de 8 bits se fait grâçe au bus. d'adresse A1 à A23. Ce bus on le remarque ne comporte pas le bit de faible poids A0 qui n'existe qu'a l'interieur du 68000 et n'est pas ressorti sur le bus. La capacité d’adressage du 68000 est donc de 224 = 16 777 216 octets donc 16 Moctets.
      En mémoire, un octet occupe une case d'adresse, un mot occupe 2 cases et un long mot 4 cases. Pour les mots et les longs mots on trouve toujours l'octet de poid fort à l'adresse la plus basse puis les octets de poids inférieurs aux adresses suivantes. 
      Par exemple :
MOVE.B   #$FF,$2710          range l'octet $FF à l'adresse $2710
MOVE.W   #$E4CB,$2712        range le mot $E4CB aux adresses $2712 et $2713
MOVE.L   #$A743,$2714        range le mot long $0000A7A3 en $2714, $2715, $2716 et $2717
       Après éxécution de ces trois instructions, la configuration de la mémoire sera celle de la figure 1.

STMagazine N1 figure1

       Mais lorsque le 68000 envoie une donnée sur son bus, il met nécéssairement un mot de 16 bits. Donc  lorsque cette donnée est un octet, elle n'occupe que la moitiée du bus. Et il devient nécéssaire pour le 68000 d'indiquer de quelle moitié il s'agit. C'est alors que son bit interne A0 rentre en jeu, ainsi que deux lignes de sotie du 68000, UDS (Upper Data Strobe) et LDS (Lower Data Strobe). Le rôle de ces deux lignes est d'indiquer à l'extérieur s'il faut lire ou écrire des données sur la moitié haute (Uper Data) ou sur la moité basse (Lower Data) du bus de données. 

 

       Si l'on veut lire ou écrire un octet a une adresse impaire :

                  - A0 passe à "1"
                  - LDS passe à "0" ce qui valide D0-D7
                  - UDS passe à "1" ce qui valide D8-D15
                

       Si l'on veut lire ou écrire un octet a une adresse paire:

                  - A0 passe à "0"
                  - LDS passe à "1" ce qui valide D0-D7
                  - UDS passe à "0" ce qui valide D8-D15 
 
 

       Si l'on veut lire ou écrire un mot :

                  - A0 est toujours à "0"
                  - LDS et UDS sont à 0 ce qui valide tout le bus de D0 a D15

   

Dans ce cas, puisque A0=0 on ne peut travailler qu'avec des ADRESSES PAIRES.

       En règle générale, A0, UDS, LDS et le signale de lecture/écriture R/W gèrent le bus de données conformément à la figure 2. 

A0 UDS LDS R/W D8_D15 D0_D7 Adresse Mode
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
valide
non valide
valide
non valide
valide
valide
non valide
valide
non valide
valide
valide
valide
paire
impaire
paire
impaire
paire
paire
octet
octet
octet
octet
mot
mot
 

        Il est donc possible de prévoir des extentions au ST en utilisant pour cela la fente d'insertion de cartouche. On trouve en effet sur ce connecteur 40 points, le bus de donnée de D0 à D15, la partie basse du bud d'adresses de A1 à A15, réservé aux extentions, les signaux UDS et LDS (echantillonage des donées supérieures et inférieures), ainsi que deux signaux supplémentaires, MEM3 et MEM4 qui permettent la sélection de deux blocs d'adresse de 64k chaque.

        Nous verrons un peu plus tard  comment il est possible d'implanter et de faire tourner de l'assembleur sur le 520 ST, ce qui permettera une étude avec applications pratiques de la programmation 68000.     

 

Olivier HARD 


 Contenue de la disquette : 

disque1

Attachments:
Download this file (STMagazine_n1.st)STMagazine_n1.st[ ]720 kB2020-11-03 23:38