7 points par xguru 2020-04-18 | 3 commentaires | Partager sur WhatsApp
  • Implémentation en JS de l’interpréteur Chip-8 utilisé sur les machines 8 bits des années 1970

  • Intégration avec le web / la CLI / des applications natives

  • En pratique, c’est un interpréteur, mais comme il se rapproche d’un émulateur, il convient à celles et ceux qui veulent apprendre à créer un émulateur.

  • Déclaration sous forme de variables de la mémoire (4 KB), du compteur ordinal, des registres, du registre d’index, de la pile, du pointeur de pile, des timers, etc.

    Construction du CPU, puis implémentation d’un clavier HEX 4x4 et d’un affichage 64x32

  • Exécutable dans divers environnements natifs via les bindings Node.js de Raylib à partir de code JavaScript

3 commentaires

 
xguru 2020-04-18

Comme il s’agit d’une architecture 8 bits, le code n’est pas très complexe, donc c’est assez agréable à lire.

Le code ci-dessous m’a particulièrement marqué.

class CPU {

constructor() {

this.memory = new Uint8Array(4096)

this.registers = new Uint8Array(16)

this.stack = new Uint16Array(16)

this.ST = 0

this.DT = 0

this.I = 0

this.SP = -1

this.PC = 0x200

}

}

 
barmi 2020-04-18

Je trouvais que la pile de 16 octets était beaucoup trop petite, mais comme la mémoire ne fait que 4k, ça semble possible.

 
barmi 2020-04-18

Ah~ 16 mots, 16 mots