by ymasquel » Mon Jul 14, 2014 11:08 pm
Bonsoir Eglio,
Il n'y a pas d'autre partie de programme. Le décodage d'adresses est partiel donc "recouvrement d'adresses". Sauf erreur, on doit avoir :
- La RAM occupe les adresses 0x0000 à 0x07FF mais aussi 0x4000 à 0x47FF, 0x8000 à 0x87FF, 0xC000 à 0xC7FF;
- La ROM occupe les adresses 0x3000 à 0x3FFF mais aussi 0x7000 à 0x7FFF, 0xB000 à 0xBFFF, 0xF000 à 0xFFFF;
- Le VIA occupe les adresses 0x20n0 à 0x27nF mais aussi 0x60n0 à 0x67nF, 0xA0n0 à 0xA7nF, 0xE0n0 à 0xE7nF (n = 0 à F);
- Les sorties de commutation occupent les adresses 0x18nn, 0x58nn, 0x98nn, D8nn (n = 0 à F).
Tu peux voir 8 mots de 16 bits aux adresses 0x3FF0 à 0x3FFE. Ce sont les différents vecteurs. Les adresses pointées par ces vecteurs sont toutes dans l'espace d'adresses 0x3000 à 0x3FFF :
- Le vecteur TRAP -inutilisé par le 6809- (0x3FF0 qui est équivalent à 0xFFF0) pointe à l'adresse 0x3000 qui est le point d'entrée du programme.
- Le vecteur SWI3 (0x3FF2 qui est équivalent à 0xFFF2) pointe à l'adresse 0x3000 qui est le point d'entrée du programme.
- Le vecteur SWI2 (0x3FF4 qui est équivalent à 0xFFF4) pointe à l'adresse 0x3000 qui est le point d'entrée du programme.
- Le vecteur FIRQ (0x3FF6 qui est équivalent à 0xFFF6) pointe à l'adresse 0x3550.
- Le vecteur IRQ (0x3FF8 qui est équivalent à 0xFFF8) pointe à l'adresse 0x37D4.
- Le vecteur SWI (0x3FFA qui est équivalent à 0xFFFA) pointe à l'adresse 0x3000 qui est le point d'entrée du programme.
- Le vecteur NMI (0x3FFC qui est équivalent à 0xFFFC) pointe à l'adresse 0x3000 qui est le point d'entrée du programme.
- Le vecteur RESET (0x3FFE qui est équivalent à 0xFFFE) pointe à l'adresse 0x3000 qui est le point d'entrée du programme.
En te souhaitant un bon amusement sur le sujet.
Amicalement,
Yves.