Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■320KB(2D)フロッピー・ディスク・ドライブ・インターフェース 解説 o PC-9801初代・E・F・Mは、320KB FDD I/Fを内蔵している。PC-8000,PC-8800 シリーズの2D FDD(PC-8031等)を接続することができる。 o PC-9801初代・E・F・M以外の機種では、このインターフェースをサポートして いない。拡張ボードによる提供も行われていない。 o 320KB FDDは独立したサブシステムで構成され、PC-9800シリーズ本体とは 8255A(相当) PIOで接続される。 FDDサブシステムはZ80相当のCPUと8255A(相当) PIO等で構成されており、 本体とハンドシェークを行う。FDDサブシステム側CPUでは、8255A(相当)PIO は、I/OポートFC〜FFhに配置されている。 o 320KB FDD I/FとFDDサブシステムは、以下の図のように接続されている。 図: 8255A(相当) PIOの接続 ------------------------------------------------------------ 本体側320KB FDD I/F サブシステム ------------------------------------------------------------ ポートA ←---------\ /----------→ ポートA × ポートB →---------/ \----------← ポートB ポートC0(DAV) ←-------\ /-------→ ポートC0(DAV) ポートC1(RFD) ←-------\\ //-------→ ポートC1(RFD) ポートC2(DAC) ←-------\\\///-------→ ポートC2(DAC) ポートC3(---) ←------\ \////-------→ ポートC3(ATN) ポートC4(DAV) →--------////\-------← ポートC4(DAV) ポートC5(RFD) →--------///\ \-------← ポートC5(RFD) ポートC6(DAC) →--------// \\-------← ポートC6(DAC) ポートC7(ATN) →--------/ \--------← ポートC7(---) ------------------------------------------------------------ I/O 0051h,0053h,0055h,0057h 名前 320KB FDD I/F 対象 PC-9801初代・E・F・M チップ 8255A相当品 機能 -----------+----+---+-------------------------------------------------- I/Oアドレス|幅 |R/W|内容 -----------+----+---+-------------------------------------------------- 0051h |BYTE|R/W|ポートA リード/ライトデータ | | | 320KB FDD I/Fでは入力モードで使用する。FDDサブ | | | システムからデータやステータスを受信する。 0053h |BYTE|R/W|ポートB リード/ライトデータ | | | 320KB FDD I/Fでは出力モードで使用する。FDDサブ | | | システムにデータやコマンド(表[コマンド一覧] | | | 参照)を送信する。 0055h |BYTE| R |ポートC リード | | | 320KB FDD I/Fでは、bit 7〜4を出力モード、 | | | bit 3〜0 を入力モードで使用する。各ビットは | | | 以下に示す用途で使用される(bit 7〜4の読み出しは | | | 診断用)。 | | | bit 7: ATN | | | 1= コマンド送出時 | | | 0= データ送出時 | | | bit 6: DAC | | | 1= データ受信完了 | | | 0= データ受信未完了 | | | bit 5: RFD | | | 1= データ受信準備完了 | | | 0= データ受信準備未完了 | | | bit 4: DAV | | | 1= データ(コマンド)受信準備完了 | | | 0= データ(コマンド)受信準備未完了 | | | bit 3: 未使用 | | | * FDDサブシステム側PIOポートCのbit 7に | | | 接続される | | | bit 2: DAC | | | 1= データ受信完了 | | | 0= データ受信未完了 | | | bit 1: RFD | | | 1= データ受信準備完了 | | | 0= データ受信準備未完了 | | | bit 0: DAV | | | 1= データ(コマンド)受信準備完了 | | | 0= データ(コマンド)受信準備未完了 0055h |BYTE| W |ポートC ライト | | | 320KB FDD I/Fでは、bit 7〜4を出力モード、 | | | bit 3〜0を入力モードで使用する。各ビットは | | | 以下に示す用途で使用される。 | | | bit 7: ATN | | | 1= コマンド送出 | | | 0= データ送出 | | | bit 6: DAC | | | 1= データ受信完了 | | | 0= データ受信未完了 | | | bit 5: RFD | | | 1= データ受信準備完了 | | | 0= データ受信準備未完了 | | | bit 4: DAV | | | 1= データ(コマンド)受信準備完了 | | | 0= データ(コマンド)受信準備未完了 | | | bit 3〜0: 入力モードのため無効。 0057h |BYTE| W |コントロールレジスタ | | | コントロールレジスタの使用方法は8255A(相当)の | | | データシートを参照。 -----------+----+---+-------------------------------------------------- 解説 u I/O 0059h,005Bh,005Dh,005Fhに、I/O 0051〜0057hのイメージが出ている。 タイムスタンパ搭載機種では、I/O 005C〜005FhがタイムスタンパのI/Oに 割り当てられているため注意が必要。 関連 0000:055Ch bit 7〜4 0000:0560h 0000:0561h 0000:0562〜0563h INT 1B - Function nnh(320KB FD) 表 [コマンド一覧] --------+---------------------------------------- コマンド |名称 --------+---------------------------------------- 00h |Initialize 01h |WriteSector 02h |ReadSector 03h |SendData 04h |CopySector 05h |FormatDrive 06h |SendResultStatus 07h |SendDriveStatus 08h |TestMemory 09h |SendMemory1 0Ah |OutMerginePort 0Bh |SendMemory2 0Ch |RecieveMemory 0Dh |ExecuteMemory 0Eh |LoadSector 0Fh |SaveSector 10h |Load and Go 11h |WriteSector(Fast) 12h |SendData(Fast) 13h |SendFDCStatus 14h |SendDeviceStatus 15h |SendMemory(Fast) 16h |RecieveMemory(Fast) 17h |SetSurfaceMode 18h |SendSurfaceMode 19h |SetReadAfterWriteMode 1Ah |ResetReadAfterWriteMode 1Bh |ResumeBreakPoint 1Ch |SetBreakPoint 1Dh |SetRegister 1Eh |SendRegister --------+---------------------------------------- * コマンドは、ポートBから送信する。送信された値がデータか コマンドかは、ポートCのATNビットで区別する。