| 110 | |
| 111 | |
| 112 | u32 floppy_get_info(void) |
| 113 | { |
| 114 | u32 i; |
| 115 | u8 CmType, FdType; |
| 116 | |
| 117 | floppy_sendbyte(0x10); |
| 118 | i = floppy_getbyte(); |
| 119 | |
| 120 | switch (i) |
| 121 | { |
| 122 | case 0x80: floppy_inc_name = "NEC765A controller"; break; |
| 123 | case 0x90: floppy_inc_name = "NEC765B controller"; break; |
| 124 | default: floppy_inc_name = "Enhanced controller"; break; |
| 125 | } |
| 126 | |
| 127 | CmType = readcmos(0x10); //read floppy type from cmos |
| 128 | FdType = (CmType>>4) & 0x07; |
| 129 | |
| 130 | if ( FdType == 0 ) |
| 131 | panic("Floppy driver not found!"); |
| 132 | |
| 133 | switch( FdType ) |
| 134 | { |
| 135 | case 0x02: // 1.2MB |
| 136 | floppy_type = "1.2MB"; |
| 137 | floppy_size = 2458*512; |
| 138 | break; |
| 139 | |
| 140 | case 0x04: // 1.44MB 标准软盘 |
| 141 | floppy_type = "1.44MB"; |
| 142 | floppy_size = 2880*512; |
| 143 | break; |
| 144 | |
| 145 | case 0x05: // 2.88MB |
| 146 | floppy_type = "2.88MB"; |
| 147 | floppy_size = 2*2880*512; |
| 148 | break; |
| 149 | } |
| 150 | return 1; |
| 151 | } |
| 152 | |
| 153 | |
| 154 | void floppy_motorOn( void ) |
no test coverage detected