長い間放置されていたバグ.
最後まで再生すると再生自体は終わるが表示時刻が大きい数値のままになる.
upergrafx_20190706.pac で場当たり的実装で直したものの、スナッチャーが不具合で起動しなくなっていた.
Audio CD player では command 0xdd を発行し続けて画面を更新する.
最後まで再生した場合、自動に止まり、そのコマンドの戻り値の offset0 の値が 3 であることが必要となる.
upergrafx_20190706.pac の実装では仮想ドライブが動いてるか確認して offset 0 の値を無理矢理 3 にしていてスナッチャーがおかしくなった.
Audio CD player では command 0xd8 で CD を再生する機能を使っている. これを利用するソフトは少なく、command 0xd8 での再生完了にたいしてファームウェアに割り込みをかけ忘れていたのが問題の原因.
これらに対して実装が offset 0 の値が 1 になる条件と 3 になる条件が若干変だったので修正.
具体的には offset 0 の値が 1 になる条件を command 0xd8 での再生予約から seek 途中に変更. 再生予約の意味を持つ変数を t->subq_status から t->audio_flag に変更.
これを利用する seek 完了 callback 関数, command 0xd9 の関数, 各種audio制御関数など影響範囲が大きかった. これらの対応のために再度テストが必要.