9.10. 软盘控制器设备对象
9.10.1. _FDE(软盘枚举)
枚举连接到软盘控制器的设备是一项耗时的功能。为了加快软盘枚举过程,ACPI 定义了一个可选的枚举对象,该对象直接定义在软盘控制器的设备对象之下。它返回一个包含五个 32 位值的缓冲区。前四个值是布尔值,表示可能连接到该控制器的四个软盘驱动器的存在或不存在。非零值表示该软盘设备存在。返回的第五个值表示磁带控制器的存在或不存在。磁带存在值的定义可见“磁带存在”。
参数:
无
返回值:
一个 Buffer,包含一个软盘驱动器信息块,如下所述:
Buffer (){
Floppy 0 // Boolean DWORD
Floppy 1 // Boolean DWORD
Floppy 2 // Boolean DWORD
Floppy 3 // Boolean DWORD
Tape // DWORD - See the Tape Presence table below
}
表 9.6 磁带存在
| 值 | 描述 |
|---|---|
| 0 | 设备存在状态未知或不可用 |
| 1 | 设备存在 |
| 2 | 设备绝不会存在 |
2 | 保留
9.10.2. _FDI(软盘信息)
此对象返回有关软盘驱动器的信息。该信息与 IA-PC 上 INT 13 功能 08H 返回的信息相同。
参数:
无
返回值:
一个 Package,以 Integer 列表形式包含软盘信息:
Package {
Drive Number // Integer (BYTE)
Device Type // Integer (BYTE)
Maximum Cylinder Number // Integer (WORD)
Maximum Sector Number // Integer (WORD)
Maximum Head Number // Integer (WORD)
disk_specify_1 // Integer (BYTE)
disk_specify_2 // Integer (BYTE)
disk_motor_wait // Integer (BYTE)
disk_sector_siz // Integer (BYTE)
disk_eot // Integer (BYTE)
disk_rw_gap // Integer (BYTE)
disk_dtl // Integer (BYTE)
disk_formt_gap // Integer (BYTE)
disk_fill // Integer (BYTE)
disk_head_sttl // Integer (BYTE)
disk_motor_strt // Integer (BYTE)
}
表 9.7 ACPI 软盘驱动器信息
| Package 元素 | 元素对象类型 | 实际有效数据宽度 |
|---|---|---|
| 00 - 驱动器编号 | Integer | BYTE |
| 01 - 设备类型 | Integer | BYTE |
| 02 - 最大柱面号 | Integer | WORD |
| 03 - 最大扇区号 | Integer | WORD |
| 04 - 最大磁头号 | Integer | WORD |
| 05 - Disk_specify_1 | Integer | BYTE |
| 06 - Disk_specify_2 | Integer | BYTE |
| 07 - Disk_motor_wait | Integer | BYTE |
| 08 - Disk_sector_siz | Integer | BYTE |
| 09 - Disk_eot | Integer | BYTE |
| 10 - Disk_rw_gap | Integer | BYTE |
| 11 - Disk_dtl | Integer | BYTE |
| 12 - Disk_formt_gap | Integer | BYTE |
| 13 - Disk_fill | Integer | BYTE |
| 14 - Disk_head_sttl | Integer | BYTE |
| 15 - Disk_motor_strt | Integer | BYTE |
9.10.3. _FDM(软盘驱动器模式)
此控制方法切换连接到该控制器的所有软盘驱动器的模式(300 RPM 或 360 RPM)。如果实现了此控制方法,则平台必须在控制器从 Dx 到 D0 转换后,将所有驱动器的模式重置为 300RPM 模式。
参数:(1)
Arg0 - 一个 Integer,包含新的驱动器模式
0 - 将所有驱动器的模式设置为 300 RPM 模式
1 - 将所有驱动器的模式设置为 360 RPM 模式
返回值:
无