7 pontos por xguru 2020-04-18 | 3 comentários | Compartilhar no WhatsApp
  • Implementação em JS do interpretador Chip-8, usado em máquinas de 8 bits dos anos 1970

  • Integração com web/CLI/apps nativos

  • Na prática é um interpretador, mas como se aproxima de um emulador, é adequado para quem quer aprender a criar emuladores.

  • Declara variáveis para Memory (4 KB), Program Counter, Register, Index Register, Stack, Stack Pointer, Timer etc.

    Monta a CPU e implementa um teclado HEX 4x4 e um display 64x32

  • O código JavaScript pode ser executado em vários ambientes nativos usando bindings do Raylib para Node.js

3 comentários

 
xguru 2020-04-18

Por ser uma arquitetura de 8 bits, o código não é complicado, então é bem divertido de ler.

O trecho abaixo me impressionou.

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

Eu achei que a pilha de 16 bytes fosse pequena demais, mas como a memória é de 4k, parece que dá para ser assim mesmo.

 
barmi 2020-04-18

Ah~ 16 palavras, 16 palavras