GameBoy - Ouverture et CPU (partie 1a)
Le précédent article "GameBoy - Ouverture et CPU (partie 1)" fût un peu technique... c'est peut être l'occasion de synthétiser ce que l'on peut attendre du CPU Sharp LR35902 présent sur la GameBoy.
- La syntaxe utilisée pour programmer le Sharp LR30902 suit plutôt les conventions de programmation du Z80 que de l'Intel 8080.
- Adoption de l'OPCODE 0xCB (Instruction Extender) du Z80.
- Adoption des instructions de manipulation de bits du Z80 (par l'Instruction Extender 0xCB).
Ces instructions permettent de activer, réinitialiser et tester des bits spécifiques dans des registres ou en mémoire. - Retient l'organisation des registres de l'Intel 8080 (pas les registres supplémentaires du Z80)
- Fréquence d'horloge à 4 Mhz (le 8080 est à 2Mhz et le Z80 à 2.5 Mhz)
- Un seule une unique espace d'adressage pour accéder à la ROM (cartouche), RAM, RAM vidéo, Périphériques, etc).
- Pas de registre IY et IX (comme sur le Z80) donc pas possible de faire un adressage Base + Index (pour addresser des données comme dans un tableau).
- Le registre de statut n'implémente qu'une partie des fonctionnalités du 8080 et du Z80 (voir note ci-dessous).
Bits de statut (registre F flag):
- Bits 0 à 3 : non utilisés
- Bit 4 : bit activé lorsque le bit 7 (8ième bit) est reporté lors d'une opération arithmétique. Sinon il est placé à 0.
- Bit 5 : bit activé lors d'un demi report, lorsque le bit 3 (4ième bit) est reporté suite à une opération mathématique. Sinon le bit est placé à 0. Le demi report (Half Carry) semble couramment utilisé avec l'instruction DAA (Décimal Adjustement). Abondamment utilisé pour l'affichage de valeurs décimales à l'écran.
- Bit 6 : bit de soustraction. Activé lorsque l'instruction est une soustraction, sinon ce bit est replacé à 0 (donc addition).
- Bit 7 : bit Zero Flag. Le bit est activé lorsque l'instruction produit un résultat 0. Sinon la résultat est différent de 0 alors le bit est désactivé.
Écrire un commentaire