X1Turbo SASI I/F関連資料 Ver.0.1
2001.9.14
佐藤 達之
1.はじめに
この資料は、筆者が独自に調査、解析したもので、シャープ(株)及び、その他関連機関には、なんの関係もありませんので、この資料に関して、メーカー等に問い合わせることはしないで下さい。
また、この資料の内容に関しては、一切の保証はありません。
2.SASIインターフェースボード、I/Oマップ
アドレス |
R/W |
内容 |
データバス |
備考 |
0FD0H |
W |
送信データ書き込み |
送信データ 反転済み、正極性 |
REQアクティブかつ、IXO=Lの時アクセス可
ACKは自動ハンドシェーク |
0FD0H |
R |
受信データ書き込み |
受信データ 反転済み、正極性 |
REQアクティブかつ、IXO=Hの時アクセス可
ACKは自動ハンドシェーク
|
0FD1H |
R |
制御線読み込み |
Bit0 ?(たぶんREQ、アクセス中常に1) Bit1 BSY Bit2 IXO Bit3 CXD コマンド/データ Bit4 MSG メッセージ Bit5..7 不明 |
|
FD1H |
W |
リセットセレクション |
不定 |
-SEL=Hになり、データ出力がキャンセルされる。 |
0FD2H |
W |
リセットバス |
不定 |
-RSTにLパルスが出力される? |
0FD3H |
W |
セレクション |
DB0..7に出力する値 デバイスセレクト値 |
-SEL=Lになり、DB0..7にデータが出力される。 |
3.SASIインターフェースボード、と各SASI信号の処理状態
信号名 |
I/O |
内容 |
-DB0..7 |
I/O |
-IXO信号がOUT側の時かSEL信号がアクティブの時、出力データラッチの値を反転して出力 -IXO信号がIN側の時、反転して「受信データ読み込みポート」に入力 |
-RST |
O |
「リセットバスポート」書き込みアクセス中、アクティブ(L)にする。 |
-SEL |
O |
0FD03Hの書き込みで非同期クリア、0FD01Hの書き込みか、X1のリセット信号で非同期プリセット |
-REQ |
I |
オープンコレクタにして、X1拡張ポートのEXRDYに接続する。 ただし、FDDのアクセスとの辛みもあるので、下記の回路が合った方が安全 ・「セレクション」ポートの書き込みでイネーブル ・「リセットセレクション」ポートの書き込みか、リセット信号でディスエーブル |
-BSY |
I |
反転して「ステータスポート」に入力 |
-IXO |
I |
反転して「ステータスポート」に入力 |
|
I |
反転して「ステータスポート」に入力 |
|
I |
反転して「ステータスポート」に入力 |
I/O方は、ホスト側から見て
4.SASIコネクター仕様
えーっと、SASIの資料は.....
5.SASIの各フェーズと、SASI制御線、X1側のステータス期待値の表
フェーズ |
BSY |
IXO |
CXD |
MSG |
DB0..7 |
SEL |
X1の0FD1.Rポート期待値 |
Bus Free |
0 |
? |
? |
? |
Hi-z |
0 |
Bit1=0 |
Selection |
0 |
? |
? |
? |
H->T |
1 |
セレクション応答で、Bit1=1 |
Command Out |
1 |
0 |
1 |
0 |
H->T |
0 |
Bit1=1(セレクション応答) |
Data Out |
1 |
0 |
0 |
0 |
H->T |
0 |
07H |
Data In |
1 |
1 |
0 |
0 |
T->H |
0 |
03H |
Completion Status |
1 |
1 |
1 |
0 |
T->H |
0 |
0FH |
Message Byte |
1 |
1 |
1 |
1 |
T->H |
0 |
1FH |
※:SASIバス上では、すべての信号は反転している。
6.BIOS−ROM関連
ドライブ番号と、SASI ID、LUNの割当
ドライブ番号 |
HDD0 |
HDD1 |
HDD2 |
HDD3 |
SASI ID |
0 |
0 |
1 |
1 |
SASI LUN |
0 |
1 |
0 |
1 |
関連ワークエリア
アドレス |
名称 |
内容 |
FDAFH |
HDBOARD |
HDDボードのI/O[0FD3H]に出力する値 |
FDB2H |
HDDRV |
HDD論理ユニット(LUN) , 00Hまたは 01H |
|
|
|
SASI送信コマンド
イベント |
コマンド群 |
初期化時 |
3CH,00H,03H,01H,32H,80H,00H,00H,00H,00H |
HDDリード時 |
08H,LUN(5..7),LBAH,LBAL,LEN,00H |
HDDライト時 |
0AH,LUN(5..7),LBAH,LBAL,LEN,00H |
HDDリード、シーケンス
1.初期化+ドライブ変更チェック+セレクション
2.リードコマンド送信(08H,LUN(5..7),LBAH,LBAL,LEN,00H)
3.ステータス=07Hになるまで待つ
4.DMACでデータを連続送信
補足、など
I/O誌、1988年12月号「X1turboにハードディスクを!」の記事に仕様とボードの制作記事が
あるらしい。
いつになるか変わらないが、SASI I/Fを制作して仕様の検証をしてみる予定。