#include <bios.h> #include <stdio.h> int main(void) { int result; unsigned char buffer[512]; unsigned sectors,cylinders,heads; printf("Retrieve drive A: parameters\n"); //Сначала надо обратиться к дискете, чтобы контроллер определил её параметры. //Прочитаем первый сектор (он же бут-сектор) result = biosdisk(2,0,0,0,1,1,buffer); if((result & 0xFF)!=0) { printf("Drive A: error %x\n",result); return(0); } //А теперь запросим параметры result = biosdisk(8,0,0,0,0,0,buffer); if((result & 0xFF)==0) { sectors=buffer[0] & 0x3F; cylinders=buffer[1]+(((unsigned)buffer[0])&0xC0)<<8)+1; heads=buffer[3]+1; printf("Drive A: %i heads, %i cylinders, %i sectors per track\n",heads,cylinders,sectors); } else { printf("Error %x returned\n",result); } return 0; } |