7 ポイント 投稿者 xguru 2020-04-18 | 3件のコメント | WhatsAppで共有
  • 1970年代の8ビットマシンで使われていた Chip-8 インタープリタを JS で実装

  • Web / CLI / ネイティブアプリと連携

  • 実際にはインタープリタだが、エミュレータに近いため、エミュレータの作り方を学びたい人に適している。

  • Memory(4KB)、Program Counter、Register、Index Register、Stack、Stack Pointer、Timer などを変数として宣言

    CPU を構成し、4x4 の HEX キーボードと 64x32 ディスプレイを実装

  • JavaScript コードで Raylib の Node.js バインディングを利用し、さまざまなネイティブ環境で実行可能

3件のコメント

 
xguru 2020-04-18

8ビット構造なのでコードは複雑ではなく、かなり読んでいて面白いです。

下のコードが印象的でした。

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

スタックが16バイトでは小さすぎると思っていましたが、メモリが4KBなので可能そうですね。

 
barmi 2020-04-18

あ〜16ワード、ワード16個