タイトル | : Re^2: CD-ROMコントローラを作りました |
記事No | : 355 |
投稿日 | : 2005/12/02(Fri) 10:07:48 |
投稿者 | : やまじ |
> それだと、cpiの比較結果がrcall wait_10usで上書きされてしまうので、breqで正しい分岐が行われないと思います。たぶん、tray_check_loopへの分岐が常に行われなくなっているのでしょうか。 やはり問題ありですよね。文法的(ちょっと違う)に。
> rcall wait_10usを、cpi ata_data,0x70の前にしても、期待通りの動作となるか試してみてください。駄目ならば、cpi ata_data,0x70と breq tray_check_loopを削除するのが良いのかも。 cpi ata_data,0x70の前においても、やはりハングすることは確認済みです。 cpi ata_data,0x70とbreq tray_check_loopを削除しても、ハングした気がします。 このあたりは、もう一度確認してみます。
> プログラムを見返して気づきましたが、Ver2.6ではエンファシスされたCDだとTotal Trackが00になってしまうようです。私は持っていないので気づきませんでした。 > loop_read_toc: の少し下の、 > > ldi tmp,0x0f > and audio_status,tmp > ldi tmp,0x00 > cp audio_status,tmp > brne PC-16 > > この0x0fを0x0cにしてみてください。 なるほど。。。これも試してみます。 ありがとうございました。
|