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.

  1. La syntaxe utilisée pour programmer le Sharp LR30902 suit plutôt les conventions de programmation du Z80 que de l'Intel 8080.
  2. Adoption de l'OPCODE 0xCB (Instruction Extender) du Z80.
  3. 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.
  4. Retient l'organisation des registres de l'Intel 8080 (pas les registres supplémentaires du Z80)
  5. Fréquence d'horloge à 4 Mhz (le 8080 est à 2Mhz et le Z80 à 2.5  Mhz)
  6. Un seule une unique espace d'adressage pour accéder à la ROM (cartouche), RAM, RAM vidéo, Périphériques, etc).
  7. 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).
  8. 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é.
Voila, la prochaine fois, nous aurons l'occasion de nous pencher sur la mémoire graphique.

Aucun commentaire