00001 00005 #include <stdio.h> 00006 #include "int13ext.h" 00007 00011 int main() { 00012 // struct driveparams DP; 00013 00014 if (!int13ext_check()) { 00015 printf("No BIOS int13 extensions support. Exiting.\n"); 00016 return 0; 00017 } 00018 00019 /* char * blocks = (char *) malloc(512*1031); 00020 00021 if (int13ext_getdrvparams(0x80, &DP) != 0) printf("int13err\n"); 00022 printf("Cyl: %lu\nHead: %lu\nSect: %lu\nLBASect: %Lu\nBPS: %u\n", 00023 DP.cyl_num, DP.head_num, DP.sect_num, DP.LBA_sect_num, DP.bytes_per_sect); 00024 printf("Getting Blocks 1031 from 20123: %d\n", int13ext_read(0x80, &DP, 20123, 1031, blocks)); 00025 FILE * ff = fopen("testread","wb"); 00026 fwrite(blocks, 1, 512*1031, ff); 00027 fclose(ff); 00028 00029 // WARNING: Fill block values, which you are completely sure safe to write 00030 // printf("Setting Blocks 1031 from 32030: %d\n", int13ext_write(0x80, &DP, 32030, 1031, blocks)); 00031 00032 free(blocks); */ 00033 return 0; 00034 }