7 Punkte von xguru 2020-04-18 | 3 Kommentare | Auf WhatsApp teilen
  • Den Chip-8-Interpreter, der auf 8-Bit-Maschinen der 1970er Jahre verwendet wurde, in JS implementieren

  • Mit Web/CLI/nativen Apps verbinden

  • Tatsächlich ist es ein Interpreter, aber da es einem Emulator sehr nahekommt, eignet es sich für alle, die lernen möchten, wie man einen Emulator baut.

  • Variablen für Memory (4 KB), Program Counter, Register, Index Register, Stack, Stack Pointer, Timer usw. deklarieren

    Die CPU aufbauen und eine 4x4-HEX-Tastatur sowie ein 64x32-Display implementieren

  • Mit JavaScript-Code und dem Raylib-Node.js-Binding in verschiedenen nativen Umgebungen ausführbar

3 Kommentare

 
xguru 2020-04-18

Da es eine 8-Bit-Architektur ist, ist der Code nicht allzu komplex und macht beim Lesen ziemlich viel Spaß.

Der folgende Code war besonders eindrucksvoll.

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

Ich dachte, der Stack mit 16 Byte wäre viel zu klein, aber da der Speicher 4k groß ist, scheint es möglich zu sein.

 
barmi 2020-04-18

Ah~ 16 Wörter, 16 Wörter