機能Recover_the_fileのコーディングは()次に与えられてしまった:
/*セクターから始まってセクターのデータを救う機能はend_fileセクター数にstart_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;
}
機能readabsolutesectorsのコーディングは次に与えられてしまった。 機能はINT 13H延長および機能数42Hをセクターを読むのに使用する。
機能の詳細な説明のために、この本で先に論議されるバックアップ」を作る章を「参照しなさい。 機能のコーディングは次の通りある:
//// 絶対セクターを読む機能 \\\\
int readabsolutesectors ( int drive,
unsigned long sectornumber,
int numofsectors,
void *buffer )
{
union REGS i, o ;
struct SREGS s ;
struct diskaddrpacket pp ;
pp.packetsize = 16 ; /* 包みのサイズ= 10H */
pp.reserved = 0 ; /* 予約= 0 */
pp.blockcount = numofsectors ; /* 読むべきセクターの数*/
/* データバッファのため */
pp.bufferaddress = (char far*) MK_FP ( FP_SEG((void far*)buffer), FP_OFF((void far*)buffer));
pp.blocknumber[0] = sectornumber ; /* 読むべきセクター数 */
pp.blocknumber[1] = 0 ; /* ブロック番号 */
i.h.ah = 0x42 ; /* 機能数*/
i.h.dl = drive ; /* 物理的なドライブ数 */
/* ds: 緩衝変数のためのsi */
i.x.si = FP_OFF ( (void far*)&pp ) ;
/* ds: 緩衝変数のためのsi */
s.ds = FP_SEG ( (void far*)&pp ) ;
/* 区分の記録の価値のINT 13Hの指定機能を実施しなさい */
int86x ( 0x13, &i, &o, &s ) ;
if ( o.x.cflag==1)
return 0 ; //失敗
else
return 1 ; // 成功
}
次の機能がスクリーンのカーソルを隠すか、または示すのに使用されている。 機能使用はカーソルのタイプを置くために10Hの機能01Hを中断する。 コーディングは次の通りある:
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)はカーソルおよびshow_hide_cursor (6、7)を取り出すカーソルを隠す。 sslはカーソルのためのスタートラインであり、eslはカーソルのための最終行である。
INT 10Hの機能01Hの小さい記述は次の通りある:
INT 10H (16 or 0x10)
機能01H (または0x01) -->カーソルのタイプを置きなさい
Call with: AH = 01H
CH bits 0-4 = starting line for cursor
CL bits 0-4 = ending line for cursor
Returns: Nothing.
コメント:
テキストの表示モードの点滅ハードウェアカーソルに開始および最終行を選ぶことによって機能がカーソルのタイプを置くのに使用されている。 グラフィックモードでは、ハードウェアカーソルは利用できない。
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|