2020年03月29日

基板を作ってもらいました

前の記事にコメントを頂いたkunichiko様が、X68k用にI/O基板を起こされたとのことで、サンプルを一枚頂きましたので早速、取り付けてみました。
実機の様に黒く、ということで、かなり格好良く出来ています。僕の感光基板バージョンとは月と鼈です。(画面の手前にあるのが僕の感光基板バージョン)
X68k_PCB.jpg
ユニバーサルに使用できる領域が確保されていますので、僕はI2C接続のRTCを(従来通り)接続しています。
この基板、DE0-CVの上に乗っかる設計のため、DiskEmulation切り替えスイッチの切り替えが困難になるためI/O基板上にも専用スイッチを準備してくれてありますのでそちらも使用できるよう、RTLの修正を行いました。どちらのスイッチでも切り替え可能です。スイッチの出力は手配線で好きなところにつなげてください、というスタンスのようで、kunichiko様はGPIO 0の40番ピンに接続されたようですが、僕はGPIO1の9番ピンが中途半端に開いており、もったいない(貧乏性)のでそちらに接続しました。
また、FPGAマガジンNo.1の第5章の記事に合わせ、HDMI関係のIO属性を従来LVDSにしていましたが、LVDS_E_3Rにしたほうが電圧レベルが高い?とのことで、kunichiko様から頂いた基板では確かにLVDS_E_3Rにしないと正常に画面表示が出来ませんでしたのでIO設定をLVDS_E_3Rに変更しています。従来回路ではどちらの設定でも表示は出来るようです。
release-F68k_DE0CVDEMU.200329.qar
posted by プー at 11:11| Comment(0) | リリース/X68k | 更新情報をチェックする

2020年03月03日

実メディアコピー対応

ソフトウェアが入った実FDを持っているんだけど、寿命もあるのでイメージ化して使いたい、という場合は一昔前ならDitt系ソフトを用いるのが一般的だったと思います。
ですが、Ditt系ソフトはPC内FDCを直接アクセスしており、USB-FDDでは使用できません。

ということで、ディスクエミュレータに実メディアからd88に変換する機能、およびd88から実メディアに書き戻す機能を追加しました。
SDRAMに展開される、FDイメージを介して読み書きしますので、下記のような手順になります。

実メディアからd88への変換:
使用する論理FDドライブを選択→NEW→ファイル名入力→読み込み元ドライブ選択(Blankを選ぶと従来の空きイメージ作成)
内部動作としては空きイメージを作成し、メディアからSDRAMにコピーし、SDRAMからファイルに書き込む、という動作をします。
d88から実メディアへの変換:
使用する論理ドライブを選択→FILE→書き込むファイルを選択→WRITE(WRITEは該当論理ドライブがディスクエミュレーションモードになっていないと表示されません)
内部動作はSDRAM内イメージをそのままメディアに書き戻します。

release-F68k_DE0CVDEMU.200303.qar
posted by プー at 21:24| Comment(0) | リリース/X68k | 更新情報をチェックする

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 | 更新情報をチェックする