chip8の研究 その2


概要

アセンブラのソースからコンパイルしてシミュレータを起動した。
ついでに、バイナリをディスアセンブルした。

写真

成果物

アセンブラソース

  ld  v3  5
  ld  v4  10
  ld  v5  5
  ld  v6  10
  ld  v7  1
  ld  v8  6  
  ld  I,  msg
loop2  drw  v3  v4  5
  add  v3  v5
  sub  v6  v8
  add  I  v5
  se  v6  0
  jp  loop2
loop  jp  loop
msg  data  144
  data  144
  data  240
  data  144
  data  144
  data  240
  data  128
  data  240
  data  128
  data  240
  data  128
  data  128
  data  128
  data  128
  data  240
  data  128
  data  128
  data  128
  data  128
  data  240
  data  0
  data  240
  data  144
  data  144
  data  240
  data  0
  data  0
  data  0
  data  0
  data  0
  data  144
  data  144
  data  0
  data  96
  data  96
  data  0
  data  240
  data  144
  data  144
  data  240
  data  240
  data  144
  data  224
  data  144
  data  144
  data  128
  data  128
  data  128
  data  128
  data  240
  data  224
  data  144
  data  144
  data  144
  data  224

ディスプレーについて

drw命令で、フォントを転送する。
drw x位置 y位置 転送数
フォントのアドレスは、Iレジスタで指定する。
5,5に点を打つ場合は

  ld  v2  5
  ld  v3  5
  ld  I,  font
  drw  v2  v3  1
end  jp  end
font  data  128

です。
xorなのでもう一回、転送すれば、消える。

キーについて

ld v4 K でキー入力する。
0がxキー
1が1キー
2が2キー
3が3キー
4がqキー
5がwキー
6がeキー
7がaキー
8がsキー
9がdキー
10がzキー
11がcキー
12が4キー
13がrキー
14がfキー
15がvキー
並びは、以下。

123c
 456d
  789c
   a0bf

以上。