マーク5の拡張RAMでFLEX9を試す その8 (ディスクドライバの仕上げ1)

ベーシックマスタレベル3でFLEX9を動作させる作戦の続きです。

こちら でなんとか動作しているFLEX9のMP-1820用ディスクドライバですが、同一トラックでもSEEKしてしまう
簡易的なドライバなので、割込みを使用した完全版のドライバに整理しております。

一通り整理して安定して動作しているのですが、なぜかカレントドライブ0からDSP,1やCAT,1やFILES,1で
ドライブ1のファイルリストが表示できません (DELETE 1.FLEX.SYS等もダメ)
しかし、COPY,FLEX.SYS,1でドライブ1にコピーは可能なので原因の特定が難しいです・・・


ドライバ作成の際にFLEXのシステム込みでトレースするのは大変でしたが、FLEX9のアダプテーションガイドのAPPENDIX-Aに掲載されている1セクタの読書きテストユーティリティを使うとシンプルにデバッグできました。

こちらのテストユーティリティですが、FLEX.CORは不要なようでConsole I/Oドライバとディスクドライバのみ
メモリにロードすれば動作するようです。

64KB拡張メモリに切り替えてコンソールI/Oドライバとディスクドライバをメモリにロードします
Console I/OドライバのINITは実行しないので割込ベクタは手動で設定しておきました

アダプテーションガイドの51ページからのAPPENDIX-AをアセンブルしてMOT形式に変換しメモリにロードし、
Tで数ステップ確認してからGで実行

テストユーティリティが起動しましたしたので使い方をメモ・・・
F? に R  か W で 1セクタの読書きテストができるそうです
Rを指定し D?にドライブ番号1桁、T?にトラック番号2桁、 S?にセクタ番号2桁を入力して実行
ドライブ0, 1両方OKなので DRIVEサブルーチンもOKっぽいです

 

書込みのテストをしてみても、目的の動作をしており問題ありません・・・
ドライブ0 トラック0  セクター1に記録されているブートローダをセクタをドライブ1のトラック0 セクタ5 の
ディレクトリデータで上書きし、内容を確認していますが正常に読書できています

テストユーティリティでは目的の動作もしており、トレース実行してもOKっぽいので今のところバグを発見
できず・・・

これまでは、FLEX9を動かした状態でディスクドライバのデバッグをしていましたがFLEX.COR内に入ると
トレースが難しいので、このテストユーティリティは便利かも^^;;

あと、もう一息っぽいのですうまくいきませんね
使い方の間違っている部分にお気づきの方、怪しい部分がありましたら教えてください^^;;;

現在のディスクドライバはこんな感じです。
(READ/WRITEルーチンはsamさん作のS1-CP/M80のルーチンとほぼ同様です)

夜な夜な調べていますが、うまくいかずに眠くなります・・・

そんなFLEX9 ディスクドライバデバッグの記録^^

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。 本文に全角文字を2文字以上含めて下さい (スパム対策)