2012年02月12日

リリース(8)について

  デバッグ用にCPUアドレスの表示を追加しました。

  また、I/O ポート 0xF3 bit3 を 0 に設定時(サブCPUの割り込み時、アドレスを出力しない設定)、1バイトデータが落ちるのを修正しました。

  ...多分、こんな設定は使っていないと思いますが、念の為。


  CMT ロードの等速モードは殆ど使用しないので、メニューから外して、DIPSWのみにしました。

  また、将来的な事もあって、DIPSWのアサインの変更も行っています。


  デバッグ用のCPUアドレスのモニタの使用方法は、次の通りです。

1)BUTTON0 を3回押す。
   ↓
2)CPUアドレスが表示される(リセット直後は、CAD0 になっています)。
   ↓
3)BUTTON1 を押す。
   ↓
4)その時のCPUアドレスが表示される。
   ↓
5)3)に戻る。



posted by えすび at 13:17| Comment(5) | FPGA化:リリース | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
 >aliceteabreakさん

 お手数ですが、このバージョン Ver.0212-0030 で、ドアドアが停止する所まで実行してみて、その時のCPUアドレスを調べて見て下さい。

 割り込みがありますので、CPUアドレスを数度取り込んでみて下さい。

 その後、PC-6001VWを使用して、そのアドレス周辺のディスアセンブル結果を教えて下さい。


 よろしくお願いします。
Posted by えすび at 2012年02月12日 13:24
aliceteabreakです。

ドアドアの停止アドレスを調べてみました。以下のような感じです。
すべて通常スピードでのロードです。
ごらんのとおり、3回は、ロード自体が失敗したような感じです。
ロードに失敗する確率が増えている???

0x9b89 <-- "D"表示で停止
0x9b85 <-- "D"表示で停止
0xff8d <-- ロード画面で停止(ロード失敗?)
0x9b85 <-- "D"表示で停止
0xffd8 <-- ロード画面で停止(ロード失敗?)
0xff91 <-- ロード画面で停止(ロード失敗?)

おそらくロード失敗は、参考にならないので、0x9b85付近だと思いますが、その辺のルーチンは、以下の感じです。

9B81 3E08 LD A,08H
9B83 D393 OUT (93H),A
9B85 DB92 IN A,(92H)
9B87 E608 AND 08H
9B89 28FA JR Z,9B85H
9B8B DB92 IN A,(92H)
9B8D E680 AND 80H
9B8F 28F4 JR Z,9B85H
9B91 3E09 LD A,09H
9B93 D393 OUT (93H),A
9B95 3E06 LD A,06H
9B97 D390 OUT (90H),A
9B99 3E0C LD A,0CH
9B9B D393 OUT (93H),A
9B9D DB92 IN A,(92H)
9B9F E608 AND 08H
9BA1 28FA JR Z,9B9DH
9BA3 DB92 IN A,(92H)
9BA5 E620 AND 20H
9BA7 28F4 JR Z,9B9DH
9BA9 3E0D LD A,0DH
9BAB D393 OUT (93H),A
9BAD DB90 IN A,(90H)
9BAF C9 RET

よろしくお願いします。
Posted by aliceteabreak at 2012年02月13日 01:15
 >aliceteabreakさん

 いろいろ調べていますが、FPGAの回路の問題の可能性が高いようです。
 確定させたいため、すみませんが以下のことについて教えて下さい。

 PC-6001VW を使用して調べて下さい。

 1)0x9b73 にブレークポイントを設定して、cload、run してメインプログラムを読み込ませます。

 2)ブレークポイントで止まった時に、ポート0xF3 の値と、IFF の値を教えて下さい。
   ポート0xF3 の値は、画面下部の方の[I/O PORTS] の値、IFF は [REGISTERS] の中の4行目

   FLAG:[SZ.H.PNC] I:FF IFF:1 IM:2 HALT:0

   の所の値です(この例だとIFF=1)。


  多分、予想では、

   ポート0xF3 = 0xC3 、IFF = 1

   もしくは

   ポート0xF3 = 0xC2 、IFF = 0

  じゃないかと思います。


  よろしくお願いします。

Posted by えすび at 2012年02月13日 17:20
aliceteabreakです。

ブレイクポイントを0x9b73にした場合の、ポート0xF3、IFFの値ですが、以下の通りです。

0xF3=C7、IFF=0

よろしくお願いします。
Posted by aliceteabreak at 2012年02月13日 20:40
 >aliceteabreakさん

 お手数をお掛けしました。

 多分、問題箇所が見つかりましたので、修正次第アップします。


 ...しかし、ドアドアのプログラムは、かなりなプログラムですね。
 
Posted by えすび at 2012年02月13日 21:04
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。