一年以上放置してアレですが、回路上の問題点は一年前に改修済みで、その対応です。
Internet Archiveで見つけた富士通のプロダクトガイドを見ると、MB89352のアクセスタイミングの仕様を満たしていない可能性が極めて高い事が分かったので、その辺を改修をしています。同じSPCを用いる
X68000のSCSIボード(CZ-6BS1)では、これにどう対応しているのかOutsideの回路図で確認すると、なるほど、そうか…
変更点は、IORQをCSの生成から外し、RD/WRと論理積を取るようにして、1/2クロック(4MHzならば125ns)程度先にCSアサートを行なうようにします。以前の回路は、SPCのCSとRD/WRがほぼ同時期にアサートされる際どいものになっていました。一応、改修前の回路は、LH0080E(Z80E-CPU)/LH0083A(Z80A-DMA)の4MHz/6MHzで動作はしています。元から載っているLH0080AやNMOS版セカンドソース品では動作すると思いますが、CMOS版や非セカンドソース品では動作しないかもしれません。
改修時に、CSとDACKの同時アサートを試しました。ちなみにCZ-6BS1はこのタイプです。
若干手抜きがありますが、上図の様なデコードでも問題無く動作します。ただし、この回路ではCSとDACKが同時にアサートされている状態でDREG以外をアクセスできてしまうため注意が必要です。
実際の基板では、論理合成に必要な信号線が増えGAL16V8では入力ピン不足になったので、GAL20V8に置き換えています。
この頃になると空き地にいろいろ載せた後なので、SCSIが隅に追いやられた感じになっています。
2017/09/22
2016/06/17
ドライブ番号4~6からの起動
『ドライブ番号=SCSI ID』としているので、理論上はドライブ番号0~3だけでなく4~6からも起動できるのですが、X1turboのIPLがそれを許さない。なので、制限している部分を書き換え。
書き換えたBIOSで起動し、ドライブ番号6を選択してのBASICを起動…
BASICの起動画面が表示されたものの、直後に"Bad file descpriter"エラーで停止。
あー、そうか。
ディスク上にあるBASICではドライブ番号の最大値を変更していないのに"HD6:Start up.Bas"を読み出そうとしてエラーになっている。
標準ではないブート手法は無用な混乱を避けるために、控えた方が良さそうだ。
書き換えたBIOSで起動し、ドライブ番号6を選択してのBASICを起動…
BASICの起動画面が表示されたものの、直後に"Bad file descpriter"エラーで停止。
あー、そうか。
ディスク上にあるBASICではドライブ番号の最大値を変更していないのに"HD6:Start up.Bas"を読み出そうとしてエラーになっている。
標準ではないブート手法は無用な混乱を避けるために、控えた方が良さそうだ。
ドライブ番号が0~3の理由って
せっかくのSCSIも、X1turbo(正確にはHuBAISCやturbo CP/M)では0~3の4台しか使用できない。この制限は、FDDが4台まで接続出来るので、これに合わせたのかな?ではなぜ、EMMは0~9なのか…なんで?そんなに拡張スロットないでしょ。
SASIを解析をしたとき、マシン語処理部"DISK UTILTY.Obj"では、わざわざ8台分のHDDに対応した作りになっており、将来的には0~7になっていたかも?
FDDはドライブ側の仕様も関係しているため4台までですが、SCSIならば最大7台までの接続が可能なわけで、この制限突破を試みる。
手始めにFILES"HD4:"を実行すると"Bad file descripter"になるところから、このエラーにジャンプしている部分を検索。すると、ドライブ数を格納しているテーブルらしき領域を発見。EMMであれば0~9の最大10ドライブ、 MEMなら0~1の2ドライブと、X1turboならではの「それっぽい値」が並んでる。
しかし、ドライブ番号が0~3なのはHDDだけではなく、5(or3)インチFDD、サポートされず仕舞いの8インチFDDもあるため、どれがHDDに該当するのか…全部書きかえて試せば分かる事が、テーブル値の並びを見てBIOSワークのFDCNOと同じではないかと推測。
HDDに相当する部分を書き換え、FILES"HD6:"を実行するとID6にしてあるMOドライブをアクセスする事に成功。
turbo CP/Mについては、HDD用のワークが4台分しか存在せず、そもそものドライブレターがA~Hの8台分なので、最大接続数の変更は面倒なうえにメリットがないような…ので割愛っと
SASIを解析をしたとき、マシン語処理部"DISK UTILTY.Obj"では、わざわざ8台分のHDDに対応した作りになっており、将来的には0~7になっていたかも?
FDDはドライブ側の仕様も関係しているため4台までですが、SCSIならば最大7台までの接続が可能なわけで、この制限突破を試みる。
手始めにFILES"HD4:"を実行すると"Bad file descripter"になるところから、このエラーにジャンプしている部分を検索。すると、ドライブ数を格納しているテーブルらしき領域を発見。EMMであれば0~9の最大10ドライブ、 MEMなら0~1の2ドライブと、X1turboならではの「それっぽい値」が並んでる。
しかし、ドライブ番号が0~3なのはHDDだけではなく、5(or3)インチFDD、サポートされず仕舞いの8インチFDDもあるため、どれがHDDに該当するのか…全部書きかえて試せば分かる事が、テーブル値の並びを見てBIOSワークのFDCNOと同じではないかと推測。
HDDに相当する部分を書き換え、FILES"HD6:"を実行するとID6にしてあるMOドライブをアクセスする事に成功。
turbo CP/Mについては、HDD用のワークが4台分しか存在せず、そもそものドライブレターがA~Hの8台分なので、最大接続数の変更は面倒なうえにメリットがないような…ので割愛っと
登録:
投稿 (Atom)
