0

MOS Technologies 6502 プロセッサを完全にエミュレートするプログラムがあります。命令セット全体をほぼ完全に C++ 関数に実装しました。これには、数学関数やビット単位関数も含まれます。クロック速度をエミュレートすることさえできます。私がうまく実装できなかった唯一の命令は、JMP とすべての分岐命令、およびサブルーチン命令です。これは、C++ で goto のようなループを作成する方法がわからないためです。ヘッダーが大きすぎてコード ブロックに入れられないため、ファイル "6502.h" としてリンクしました。ステップバイステップのヘルプをいただければ幸いです。

https://drive.google.com/file/d/0B1j1lbKWU98iQ1dyVGNCVzRzdDA/view?usp=sharing 6502.h

4

2 に答える 2

0

アイデアを与えるための疑似コード。

// Emulation loop
opcode = memory[pc++]
switch(opcode)
case JMP
  target = memory[pc] | memory[pc+1]<<8
  pc = target
case JSR
  target = memory[pc] | (memory[pc+1]<<8)
  stack[sp--] = pc<<8
  stack[sp--] = pc&0xff
  pc = target
case RTS
  pc = stack[sp+1] | (stack[sp+2]<<8)
  sp += 2
...
于 2015-05-20T12:16:24.590 に答える