2016/06/06

基板の写真など

動作確認後の記念撮影

部品面

600mil幅のもん(MB89352)を何も考えずに載せてしまったために裏側配線になってしまった…

ハンダ面

ハンダ面のみで配線を行ったため、配線に厚み出てしまい拡張スロットへの出し入れで引っ掛かりまくる事態。

あと、この基板ってただの両面基板(非スルーホール)だからカードエッジの所からもってくる配線がやりにくいんだよね…

2016/06/05

CZ-8FB02でSCSI

各SCSIファンクションのデバッグが終わったので、FDCRED と FDCWRT を使用するBASIC命令のデバッグに移ります。手始めに、デバイスを直接読み書きする、DEVO$ と DEVI$ を試したところ、これもあっさり正常動作。

本当に動いているのか?

ということで、以前の解析結果から"HD FORMAT.Uty"でマシン語を読んでいる部分を削除して実行。エラーも無く終了し、"HD MAP.Uty"で全領域をBASICに指定し領域確保。とりあえず正常終了。

FILES"HD0:"を実行すると、それっぽい表示…これで正しいのか?

兎に角、実機というかSASI環境が無いので、本来の動作結果を知りません(笑

"DISK SYSGEN.Uty"で"HD0:"へBASICを転送し、他のファイルも COPYコマンドで転送。

IPLリセットを行い、ドライブ番号の"0"押して、HDDを指定する"7"押して…一瞬、アクセスランプが点灯し、80x25に切り替わり、CZ-8FB02の起動画面。

どうやら完成。

しかし、このテストで接続している変換番長はX68030で使用している物だし、X1turboで使いたい時にはケース開けてCFを交換してディップスイッチを切り替えて、ケース閉めて面倒臭い、不便すぎる。

SCSIディスクで一般的な512バイト/セクタのもんがX1turboでも使えたらいいよね!

ということで。

2016/06/03

BIOSの開発

SCSIのBIOSは、元からあるSASI HDD処理の領域に納めることを目指します。なので、SASIとは共存できません(させる気も無い

HDINIT(78D9H) と HDOFFS(78E2H) はROM以外からの呼出しの可能性があるのでエントリアドレスが移動してしまわないように注意し、RAM上に展開される HDDMAS(ROM:7EC5H RAM:F929H)も領域をオーバーしないサイズに納めなくてはなりません。

以前、とある機種用にMB89352用ドライバを作った時のモジュール構成に似せたり、ラベル名はX68000のIOCSからのパクったりで、BASICから利用し易くデバッグし易い構造に。
HDINIT…S_INITを呼ぶだけ
HDOFFS…今回は何もしない
S_READ…FDCRED SCSI用
S_WRITE…FDCWRT SCSI用
S_BUSRST…SCSIバスリセット
S_INIT…MB89352の初期化
S_SELECT…指定IDのセレクション
S_CMDOUT…コマンド送信
S_DATAIN…データイン
S_DATAOUT…データアウト
S_MSGIN…メッセージイン
S_STSIN…ステータスイン
ざっと、ひと通り作ってみると、やっぱり容量オーバー。デバッグしてからコード圧縮した方が良いので、今後とも使わなそうな HCOPY処理を潰し、とりあえずBIOS内に納めました。ついでに、コード圧縮しても入らなかった時のために(個人的に)不要な処理を潰しました。

BASICから呼び出しでデバッグをはじめてみると、MB89352の初期化の呼出し忘れがあったくらいで、意外とすんなり動作。デバッグ用のコードを外し、コード圧縮してみると意外と小さくなって納まってしまい、これといってハマる所も無く終わってしまうい…

物語的には、盛り上がりに欠ける展開。