| アドレス | R/W | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FCh | R/W | ディスクサブシステムI/F 8255 ポートA 標準状態ではサブシステムからのデータ受信ポート |
||||||||||||||||||||||||||||||||||||||||||||||||||
| FDh | R/W | ディスクサブシステムI/F 8255 ポートB 標準状態ではサブシステムへのデータ送信ポート |
||||||||||||||||||||||||||||||||||||||||||||||||||
| FEh | R/W | ディスクサブシステムI/F 8255 ポートC
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| FFh | W | ディスクサブシステムI/F 8255 コントロール | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ラベル | アドレス | 機能 | |
|---|---|---|---|
| N88 | N | ||
| PUTCOM | 37CCh | 017Ch | Aレジスタの内容をコマンドとしてサブシステムに送信する |
| PUTDAT | 37D2h | 0183h | Aレジスタの内容をサブシステムに送信する |
| GETDAT | 3847h | 01E9h | サブシステムから受信したデータをAレジスタに返す |
| <ドライブ番号> | 0, 1 |
| <トラック番号> | 0〜79 |
| <セクタ番号> | 1〜16 (2D) |
| コマンド番号 | 00h |
|---|---|
| 機能名 | イニシャライズ |
| コマンド形式 | ホスト→サブ <00h> |
| 機能 |
ドライブのモータON、FDCをリセット、ヘッドを初期位置へ戻す ドライブの動作モード(両面/片面)、リードアフターライトチェックモードは変更しない |
| コマンド番号 | 01h |
|---|---|
| 機能名 | ライトデータ |
| コマンド形式 | ホスト→サブ <01h> <セクタ数> <ドライブ番号> <トラック番号> <セクタ番号> <データ列...> |
| 機能 | ホストから送信されるデータをディスクに書き込む |
| コマンド番号 | 02h |
|---|---|
| 機能名 | リードデータ |
| コマンド形式 | ホスト→サブ <02h> <セクタ数> <ドライブ番号> <トラック番号> <セクタ番号> |
| 機能 |
指定のセクタからデータを読み出し、サブシステムのバッファに格納する ホストがデータを得るには、センドデータコマンドを続けて実行する |
| コマンド番号 | 03h |
|---|---|
| 機能名 | センドデータ |
| コマンド形式 |
ホスト→サブ <03h> サブ→ホスト <データ列...> |
| 機能 | 直前のリードデータコマンドで読み込んだサイズのデータをホストに転送する |
| コマンド番号 | 04h |
|---|---|
| 機能名 | コピー |
| コマンド形式 | ホスト→サブ <04h> <セクタ数> <ドライブ番号1> <トラック番号1> <セクタ番号1> <ドライブ番号2> <トラック番号2> <セクタ番号2> |
| 機能 | セクタ単位でセクタの内容をコピーする |
| コマンド番号 | 05h |
|---|---|
| 機能名 | フォーマット |
| コマンド形式 | ホスト→サブ <05h> <ドライブ番号> |
| 機能 | ディスクのフォーマットを行う |
| コマンド番号 | 06h |
|---|---|
| 機能名 | センドリザルトステータス |
| コマンド形式 |
ホスト→サブ <06h> サブ→ホスト <ステータス> |
| 機能 |
直前に送られたコマンドの実行結果をメイン側に送る リザルトステータスの第0ビットが1ならエラー 第6ビットが1ならリードバッファにデータ有り 第7ビットが1ならI/O動作終了 |
| コマンド番号 | 07h |
|---|---|
| 機能名 | センドドライブステータス |
| コマンド形式 |
ホスト→サブ <07h> サブ→ホスト <ステータス> |
| 機能 | ドライブステータスのビット7〜ビット4がドライブの接続状態を示す |
| コマンド番号 | 08h |
|---|---|
| 機能名 | テストメモリ |
| コマンド形式 |
ホスト→サブ <08h> サブ→ホスト <ステータス> |
| 機能 |
サブシステムのメモリテストを行う 80h: OK 81h: NG |
| コマンド番号 | 09h |
|---|---|
| 機能名 | センドメモリ |
| コマンド形式 |
ホスト→サブ <09h> <開始アドレスH> <開始アドレスL> <終了アドレスH> <終了アドレスL> サブ→ホスト <データ列...> |
| 機能 | サブシステムのメモリ内容をホストに転送する |
| コマンド番号 | 0Ah |
|---|---|
| 機能名 | アウトマージンサポート |
| コマンド形式 | ホスト→サブ <0Ah> <データ> |
| 機能 | サブシステムのI/OポートF7hに指定のデータを出力する(利用価値なし) |
| コマンド番号 | 0Bh |
|---|---|
| 機能名 | センドメモリ2 |
| コマンド形式 |
ホスト→サブ <0Bh> <開始アドレスH> <開始アドレスL> <バイト数H> <バイト数L> サブ→ホスト <データ列...> |
| 機能 | サブシステムのメモリ内容をホストに転送する |
| コマンド番号 | 0Ch |
|---|---|
| 機能名 | レシーブメモリ |
| コマンド形式 | ホスト→サブ <0Ch> <開始アドレスH> <開始アドレスL> <バイト数H> <バイト数L> |
| 機能 | ホストからサブシステムのメモリにデータを転送する |
| コマンド番号 | 0Dh |
|---|---|
| 機能名 | エグゼキュート |
| コマンド形式 | ホスト→サブ <0Dh> <開始アドレスH> <開始アドレスL> |
| 機能 | サブシステムの指定アドレスから実行を開始する |
| コマンド番号 | 0Eh |
|---|---|
| 機能名 | ロードデータ |
| コマンド形式 | ホスト→サブ <0Eh> <セクタ数> <ドライブ番号> <トラック番号> <セクタ番号> <開始アドレスH> <開始アドレスL> |
| 機能 | ディスクからデータを読み出し、サブシステムの指定のアドレスに格納する |
| コマンド番号 | 0Fh |
|---|---|
| 機能名 | セーブデータ |
| コマンド形式 | ホスト→サブ <0Fh> <セクタ数> <ドライブ番号> <トラック番号> <セクタ番号> <開始アドレスH> <開始アドレスL> |
| 機能 | サブシステムの指定のアドレスのデータをディスクに書き込む |
| コマンド番号 | 10h |
|---|---|
| 機能名 | ロード&ゴー |
| コマンド形式 | ホスト→サブ <10h> |
| 機能 | イニシャライズ後、ドライブ1、トラック0、セクタ1の256バイトのデータをサブ側の5000hに読み込み、実行する |
| コマンド番号 | 11h |
|---|---|
| 機能名 | 高速ライトデータ |
| コマンド形式 | ホスト→サブ <11h> <セクタ数> <ドライブ番号> <トラック番号> <セクタ番号> <データ列...> |
| 機能 | データ列を高速ハンドシェイクで転送する以外は、01hのライトデータと同じ |
| コマンド番号 | 12h |
|---|---|
| 機能名 | 高速センドデータ |
| コマンド形式 |
ホスト→サブ <12h> サブ→ホスト <データ列...> |
| 機能 | データ列を高速ハンドシェイクで転送する以外は、03hのセンドデータと同じ |
| コマンド番号 | 13h |
|---|---|
| 機能名 | エラーインフォ |
| コマンド形式 |
ホスト→サブ <13h> サブ→ホスト <コマンド> <ST0> <ST1> <ST2> <C> <H> <R> <N> |
| 機能 | 最後にFDCが実行したコマンドとFDCのステータスをホストに転送する |
| コマンド番号 | 14h | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 機能名 | センスデバイスステータス | ||||||||||||||||
| コマンド形式 |
ホスト→サブ <14h> <ドライブ番号> サブ→ホスト <ステータス> |
||||||||||||||||
| 機能 |
FDCのステータスをホスト側に返す
|
| コマンド番号 | 15h |
|---|---|
| 機能名 | 高速センドメモリ |
| コマンド形式 |
ホスト→サブ <15h> <開始アドレスH> <開始アドレスL> <バイト数H> <バイト数L> サブ→ホスト <データ列...> |
| 機能 |
データの転送に高速ハンドシェイクを使用する以外は 0Bh のセンドメモリと同じ 転送バイト数は偶数でなければならない |
| コマンド番号 | 16h |
|---|---|
| 機能名 | 高速レシーブメモリ |
| コマンド形式 | ホスト→サブ <16h> <開始アドレスH> <開始アドレスL> <バイト数H> <バイト数L> <データ列...> |
| 機能 |
データの転送に高速ハンドシェイクを使用する以外は 0Ch のレシーブメモリと同じ 転送バイト数は偶数でなければならない |
| コマンド番号 | 17h |
|---|---|
| 機能名 | セットサーフィスモード |
| コマンド形式 | ホスト→サブ <17h> <モードH> |
| 機能 |
各ドライブを片面モードにするか両面モードにするかを指定する Bit3〜Bit0 0:片面 1:両面 起動時は全ドライブが片面モードになっている |
| コマンド番号 | 18h |
|---|---|
| 機能名 | センドサーフィスモード |
| コマンド形式 |
ホスト→サブ <18h> サブ→ホスト <サーフィスモード> |
| 機能 | サーフィスモードをホストに送る |
| コマンド番号 | 19h |
|---|---|
| 機能名 | セットリードアフターライト |
| コマンド形式 | ホスト→サブ <19h> |
| 機能 |
リードアフターライトチェックを行うようにする このコマンド実行後は、ディスクへの書き込みを伴うコマンドの実行後に自動的にリードアフターライトチェックを行う エラーを検出すると、リザルトステータスのエラービットがセットされる |
| コマンド番号 | 1Ah |
|---|---|
| 機能名 | リセットリードアフターライト |
| コマンド形式 | ホスト→サブ <1Ah> |
| 機能 | リードアフターライトチェックを行わないようにする |
| コマンド番号 | 1Bh |
|---|---|
| 機能名 | リジューム |
| コマンド形式 | ホスト→サブ <1Bh> |
| 機能 |
セットブレークポイントで停止したサブシステムの実行を再開する セットレジスタコマンドでPCを変更し、そのアドレスから実行することも可能 |
| コマンド番号 | 1Ch |
|---|---|
| 機能名 | セットブレークポイント |
| コマンド形式 | ホスト→サブ <1Ch> <アドレスH> <アドレスL> |
| 機能 |
指定のアドレスにブレークポイントをセットする ブレークポイントは1ヶ所しかセットできない ブレークポイントで停止するとリセットされる |
| コマンド番号 | 1Dh | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 機能名 | セットレジスタ | ||||||||||||||||||||||||||||
| コマンド形式 | ホスト→サブ <1Dh> <レジスタID番号> <データH> <データL> | ||||||||||||||||||||||||||||
| 機能 |
リジュームコマンド(1Bh)で実行を再開するときのレジスタ内容を指定する
|
| コマンド番号 | 1Eh |
|---|---|
| 機能名 | センドレジスタ |
| コマンド形式 |
ホスト→サブ <1Eh> <レジスタID番号> サブ→ホスト <データH> <データL> |
| 機能 | ブレークポイントで停止した時点のレジスタ値をホストに送る |
| コマンド番号 | 1Fh | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 機能名 | セットディスクモード | |||||||||||||||||||||||||||
| コマンド形式 | ホスト→サブ <1Fh> <ドライブ番号> <ディスクコード> | |||||||||||||||||||||||||||
| 機能 |
指定のディスクコードに従ってディスクモードをセット ディスクコード
|
|||||||||||||||||||||||||||
| コマンド番号 | 20h |
|---|---|
| 機能名 | センドディスクモード |
| コマンド形式 |
ホスト→サブ <20h> <ドライブ番号> サブ→ホスト <ディスクコード> |
| 機能 | ディスクモードをホストに送る |
| コマンド番号 | 21h |
|---|---|
| 機能名 | セットバウンダリモード |
| コマンド形式 | ホスト→サブ <21h> <バウンダリモード> |
| 機能 |
バウンダリモードを設定する 0: リード/ライトの範囲を1D/2Dのディスクに限定する 1: リード/ライトの範囲をセクタ長256バイトのディスクに限定する(1HDs/2HDsのディスクを含む) 2: サブシステムで対応可能なすべてのディスクのリード/ライトを許可する |
| コマンド番号 | 22h |
|---|---|
| 機能名 | センドバウンダリモード |
| コマンド形式 |
ホスト→サブ <22h> サブ→ホスト <バウンダリモード> |
| 機能 | バウンダリモードをホストに送る |
| コマンド番号 | 23h |
|---|---|
| 機能名 | ドライブレディチェック |
| コマンド形式 |
ホスト→サブ <23h> <ドライブ番号> サブ→ホスト <ステータス> |
| 機能 |
ディスク挿入チェック 00h: ディスクが挿入されている FFh: ディスクが挿入されていない |
| コマンド番号 | 24h |
|---|---|
| 機能名 | エクスパンドフォーマット |
| コマンド形式 | ホスト→サブ <24h> <ドライブ番号> <データ> |
| 機能 | 初期化データを指定してディスクをフォーマットする |
| アドレス | R/W | 説明 | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| F4h | W | ドライブ制御
|
||||||||||||||||||||||||||||||||||
| F8h | W | モータ制御
|
||||||||||||||||||||||||||||||||||
| R | FDC μPD765A TC入力 このポートをリードするとFDCにTC信号が入力される |
|||||||||||||||||||||||||||||||||||
| FAh | R | FDC μPD765A ステータスレジスタリード
|
||||||||||||||||||||||||||||||||||
| FBh | W | FDC μPD765A データレジスタライト | ||||||||||||||||||||||||||||||||||
| R | FDC μPD765A データレジスタリード | |||||||||||||||||||||||||||||||||||
| FCh | R/W | ディスクサブシステムI/F 8255 ポートA 標準状態ではホストからのデータ受信ポート |
||||||||||||||||||||||||||||||||||
| FDh | R/W | ディスクサブシステムI/F 8255 ポートB 標準状態ではホストへのデータ送信ポート |
||||||||||||||||||||||||||||||||||
| FEh | R/W | ディスクサブシステムI/F 8255 ポートC
|
||||||||||||||||||||||||||||||||||
| FFh | W | ディスクサブシステムI/F 8255 コントロール | ||||||||||||||||||||||||||||||||||
0000h ┌────────┐
│ システムROM │
0800h ├────────┤
: 空き :
4000h ├────────┤
│書き込みバッファ│
5000h ├────────┤
│読み込みバッファ│
6000h ├────────┤
│ 未使用 │
7F00h ├────────┤
│ ワークエリア │
8000h ├────────┤
: 空き :
FFFFh └────────┘
MシリーズのシステムROMは8Kバイト(0000h〜1FFFh)