昨日、LCCの6502ターゲット記述を作成したので、LCCのテスト例題に入っている8Queenプログラムをコンパイルして、Apple-I互換機のシミュレーション環境でシミュレーション実行し、動作を確認した。(無事に動いたので、この後で、FPGA上でも実験するつもり)
再帰プログラムである8q.cも無事動作し、6502ターゲットの基本動作仕様には問題なさそうだ。
出力は、PCでの実行結果と比較し(といっても長いので、数行だけ)、正しい結果となっていることを確認した。
PC:0862 OP:65 F:00100000 A:0A X:F0 Y:F0 S:E5 ad:0862 o:00 i:85 PC:0863 OP:85 F:00100000 A:0A X:F0 Y:F0 S:E5 ad:0863 o:00 i:F7 PC:0863 OP:85 F:00100000 A:0A X:F0 Y:F0 S:E5 ad:00F7 o:0A i:00 PC:0864 OP:85 F:00100000 A:0A X:F0 Y:F0 S:E5 ad:0864 o:00 i:A0 PC:0865 OP:A0 F:00100000 A:0A X:F0 Y:F0 S:E5 ad:0865 o:00 i:00 PC:0866 OP:A0 F:00100010 A:0A X:F0 Y:00 S:E5 ad:0866 o:00 i:A5 PC:0867 OP:A5 F:00100010 A:0A X:F0 Y:00 S:E5 ad:0867 o:00 i:F2 PC:0867 OP:A5 F:00100010 A:0A X:F0 Y:00 S:E5 ad:00F2 o:00 i:01 PC:0868 OP:A5 F:00100000 A:01 X:F0 Y:00 S:E5 ad:0868 o:00 i:91 PC:0869 OP:91 F:00100000 A:01 X:F0 Y:00 S:E5 ad:0869 o:00 i:F6 PC:0869 OP:91 F:00100000 A:01 X:F0 Y:00 S:E5 ad:00F6 o:00 i:E1 PC:0869 OP:91 F:00100000 A:01 X:F0 Y:00 S:E5 ad:00F7 o:00 i:0A PC:0869 OP:91 F:00100000 A:01 X:F0 Y:00 S:E5 ad:0AE1 o:01 i:00 PC:086A OP:91 F:00100000 A:01 X:F0 Y:00 S:E5 ad:086A o:00 i:A5 PC:086B OP:A5 F:00100000 A:01 X:F0 Y:00 S:E5 ad:086B o:00 i:F3 PC:086B OP:A5 F:00100000 A:01 X:F0 Y:00 S:E5 ad:00F3 o:00 i:00 PC:086C OP:A5 F:00100010 A:00 X:F0 Y:00 S:E5 ad:086C o:00 i:C8 PC:086D OP:C8 F:00100010 A:00 X:F0 Y:00 S:E5 ad:086D o:00 i:00 PC:086D OP:C8 F:00100000 A:00 X:F0 Y:01 S:E5 ad:086D o:00 i:91 ---- OUTPUTS ------> 300R 0300: A2 15863724 16837425 17468253 17582463 24683175 25713864 25741863 26174835 26831475
追記:
改行コードを間違ったり、XilinxISEの設定不良や、Wozモニタの仕様(出力文字は、MSBに1を立てないと表示しない)などで、少々手間取ったが、FPGAボードでの動作も確認できた。(画像参照)