「CHIP-8」の版間の差分
ナビゲーションに移動
検索に移動
(→レジスタ) |
(→スタック) |
||
21行目: | 21行目: | ||
*SoundTimer (st): 0以外の間は[[ビープ音]]がなる | *SoundTimer (st): 0以外の間は[[ビープ音]]がなる | ||
− | + | どちらも1バイトの[[変数]]であり、値を入れると0に達するまで60[[Hz]]の速度でカウントダウンする。たとえば2秒間ビープ音を鳴らすにはstに120をセットする。 | |
+ | |||
===入力=== | ===入力=== | ||
「0〜F」までの16個のキーを持つ[[キーボード]]が想定されている。 | 「0〜F」までの16個のキーを持つ[[キーボード]]が想定されている。 | ||
===グラフィックス=== | ===グラフィックス=== | ||
[[解像度]]は64×32 [[ピクセル]]、色はモノクロ。 | [[解像度]]は64×32 [[ピクセル]]、色はモノクロ。 |
2022年3月31日 (木) 09:36時点における最新版
CHIP-8とは、1970年代にJoseph Weisbeckerによって開発されたインタプリター型のプログラミング言語である。
CHIP-8のインタプリターはかなり実PCに近い仮想マシンであった。このためエミュレーターの実装入門として非常に人気があり、1970年代から現在に至るまで、あらゆるコンピューターに、あらゆるプログラミング言語を用いて移植されている。
仮想マシンの概要[編集 | ソースを編集]
メモリ[編集 | ソースを編集]
メモリは全体で4096バイト。 これはCHIP-8が最初に実装されたCosmac VIPとTelmac 1800のメインメモリが4KBだからだそうだ。
- 0x000-0x1FF (512バイト): CHIP-8のシステム領域
- 0xEA0-0xEFF ( 96バイト): コールスタック、内部使用、その他の変数用に予約
- 0xF00-0xFFF (256バイト): ディスプレイのリフレッシュ用に予約
レジスタ[編集 | ソースを編集]
「V0〜VF」という名前の16個の8ビットのデータレジスタがある。 VFレジスタは一部の命令のフラグとしても機能する。
「I」という名前のインデックスレジスタもあり、こちらは16ビットである。 Iレジスタはメモリ操作を伴ういくつかのオペコードでメモリアドレスを格納するのに使用される。
スタック[編集 | ソースを編集]
CHIP-8には2つのタイマーがある。
どちらも1バイトの変数であり、値を入れると0に達するまで60Hzの速度でカウントダウンする。たとえば2秒間ビープ音を鳴らすにはstに120をセットする。
入力[編集 | ソースを編集]
「0〜F」までの16個のキーを持つキーボードが想定されている。