2020年02月24日

FDCの修正

先日のPC88側の修正でFDCをCPU側とコントローラ側、別クロックで動作するように修正しましたが、それによってFDDへの書き込みに失敗するようになってしまいました。

原因を調査したところ、X68kではFDCとメモリとの転送にDMAを使用していますが、セクタデータ転送完了時にDMAがFDCに転送終了としてTC信号を出力しますが、DMAからのデータ書き込みがクロックの同期で1クロックの遅延が生じ、相対的にTCが1クロック早まったため、TC信号を見逃してしまうようです。
PC-88はCPU(SUB側)がTCを生成するため多少遅延があっても問題ありませんでしたがX68kはTCもDMAが生成し、転送終了の次のクロックにはTCが出力されてしまうため、クリアTC受信とが前後してしまいました。

FDCは指定データ数の読み書きが終わった後、直前のセクタで受信したTCをクリアするためにTC保持レジスタをクリアしていますが、なにもこのタイミングでなくてもセクタデータ読み書き前に行っても問題ありませんのでデータ送受信前にTC保持レジスタのクリアを移動しました。
ディスクエミュレーション有:release-F68k_DE0CVDEMU.200224.qar
ディスクエミュレーション無:release-F68k_DE0CV.200224.qar
posted by プー at 21:19| Comment(2) | リリース/X68k | 更新情報をチェックする
この記事へのコメント
プー様

初めまして。kunichikoこと大中と申します。

プー様が作成されている FPGA X68000 互換機(以下F68k)を私の手元のDE0-CV上でも動かしております。非常によくできていて、とても感動しています。ありがとうございます。

また、日々更新が出るのを楽しみにしております。

せっかくなのでいろいろなI/O機器を繋いでみたくなり、こんな基板を起こしてみました。
https://github.com/kunichiko/FPGA-X68k-DE0CV-IO/wiki

まだHDMIとMIDIの動作は確認していませんが、FDD、Audio、JoyPadの動作は確認できています。回路図とPCBレイアウトは、上記GitHubリポジトリ上で公開しております。

また、私自身がコンパイル作業する際の整理のために、プー様が公開されているソースコードをGitHub上で整理させていただきました。
https://github.com/kunichiko/FPGA-X68k-DE0CV

上記公開についてもし問題があるようでしたらお知らせいただけますと幸いです。

また、僭越ではございますが、作成したI/O基板について、もしプー様がお邪魔でないようでしたら1部お送りさせていただきたく思っています。

お忙しいところ恐れ入りますが、ご検討いただけますと幸いです。
Posted by kunichiko at 2020年03月01日 21:16
kunichiko様:
拝見させていただきました。
やはり業者に頼むと大変良い仕上がりで出来上がりますね。
僕のは感光基板なのでみすぼらしくて。。。


どうぞ、公開なさってください。
Posted by プー at 2020年03月02日 20:20
コメントを書く
コチラをクリックしてください