Einen Emulator in JS bauen und mit mehreren UIs verbinden
(taniarascia.com)-
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
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
}
}
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.
Ah~ 16 Wörter, 16 Wörter