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

リセットバス

不定

-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

SASI LUN


 関連ワークエリア


アドレス

名称

内容

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を制作して仕様の検証をしてみる予定。