Function Recover_the_file( ), function to save the data of the sectors starting from sector number start_file to sector number end_file, program to hide or show the cursor on the screen

Data Recovery PRO DATA DOCTOR

Home | Order Online | Downloads | Contact Us | Software Knowledgebase

it | es | pt | fr | de | jp | kr | cn | ru | nl | gr


The coding of the function Recover_the_file( ) has been given next:

/* Function to save the data of the sectors starting from sector number start_file to sector number end_file */

Recover_the_file()
{
FILE *fp;
if((fp=fopen(filename, "wb"))==NULL)
{
gotoxy(10,23);printf("Error Opening File %s",
filename);
getch();
exit(1);
}

for(i=start_file;i<=end_file;i++)
{
gotoxy(19,16);cprintf("Scanning Sector Number =
%ld", i);
readabsolutesectors ( 0x81, i, 1, buffer );
fwrite(buffer,512,1, fp);
}
fclose(fp);
gotoxy(15,18);cprintf("[ %d ] Files Recovered...",num);
gotoxy(5,19);cprintf(" ");
return;
}


The coding of the function readabsolutesectors has been given next. The function uses the INT 13H Extension and function number 42H to read the sectors.

For the detailed description of the function, refer the chapter “Making Backups” discussed earlier in this book. The coding of the function is as follows:

//// Function to read absolute sector(s) \\\\

int readabsolutesectors ( int drive,
unsigned long sectornumber,
int numofsectors,
void *buffer )
{

union REGS i, o ;
struct SREGS s ;
struct diskaddrpacket pp ;

pp.packetsize = 16 ; /* packet size = 10H */

pp.reserved = 0 ; /* Reserved = 0 */

pp.blockcount = numofsectors ; /* Number of sectors
to read */

/* for Data buffer */

pp.bufferaddress = (char far*) MK_FP ( FP_SEG((void far*)buffer), FP_OFF((void far*)buffer));

pp.blocknumber[0] = sectornumber ; /* Sector number
to read */

pp.blocknumber[1] = 0 ; /* Block number */

i.h.ah = 0x42 ; /* Function Number*/

i.h.dl = drive ; /* Physical Drive Number */

/* ds:si for buffer Parameters */
i.x.si = FP_OFF ( (void far*)&pp ) ;

/* ds:si for buffer Parameters */
s.ds = FP_SEG ( (void far*)&pp ) ;

/* Invoke the specified Function of INT 13H with
segment register values */

int86x ( 0x13, &i, &o, &s ) ;
if ( o.x.cflag==1)
return 0 ; //failure

else
return 1 ; // success
}

The following function is used to hide or to show the cursor on the screen. The function uses Interrupt 10H, Function 01H to set the cursor type. The coding is as follows:

show_hide_cursor( ssl, esl )
int ssl, esl ;
{
union REGS i, o ;

i.h.ah = 1 ;
i.h.ch = ssl ;
i.h.cl = esl ;
i.h.bh = 0 ;

int86 ( 16, &i, &o ) ;
return;
}

show_hide_cursor( 32, 0 ) hides the cursor and show_hide_cursor( 6, 7 ) retrieves the cursor back. ssl is starting line for cursor and esl is ending line for cursor.

The little description of Function 01H of INT 10H is as follows:

INT 10H (16 or 0x10)

Function 01H (or 0x01) --> Set Cursor Type

Call with: AH = 01H
CH bits 0-4 = starting line for cursor
CL bits 0-4 = ending line for cursor

Returns: Nothing.

Comments:

The function is used to set the cursor type by selecting the starting and ending lines for the blinking hardware cursor in text display mode. In the graphics modes, the hardware cursor is not available.

Sample Chapters from book DATA RECOVERY WITH AND WITHOUT PROGRAMMING by Author Tarun Tyagi
Data Recovery with & without Programming


Publishers of the Book
Number of Pages
ISBN
Price of the Book


BPB Publications, New Delhi, India
540
81-7656-922-4
$69.00 (Including Shipping Charges, Cost of Book and Other expenses, Free Source Code CD included with the Book)





Buy Data recovery Book

Previous page

page 1 | 2 | 3 | 4 | 5 | 6

 


 

Chapter 15

 
 

page 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17

Next page

© Copyright 2002-2005 DataDoctor.Biz

Home | Contact us | Downloads | Services | Terms and conditions | Site map

Website Data Recovery | recuperación de Datos | Récupération de données | Datenrettung | Recupero dati | データ復旧 | 데이터 복구 | 数据恢复 | Восстановление данных | De terugwinning van gegevens | Ανάκτηση δεδομένων
Sitemap Site map1 2 3 4 | Spanish1 2 3 | French1 2 3 | German1 2 3 | Italian1 2 3 | Portuguese1 2 3 | Japanese1 2 3 | Korean1 2 3 | Chinese1 2 3 | Russian1 2 3 | Dutch1 2 3 | Greek1 2 3
Data Recovery Book English | Spanish | French | German | Italian | Portuguese | Japanese | Korean | Chinese | Russian | Dutch | Greek