기능 readabsolutesectors의 코딩 () 및 writeabsolutesectors는 () 다음 주어졌다:
//// 절대 분야를 읽는 기능\\\\
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 ; /* 육체적인 드라이브 수 */
i.x.si = FP_OFF ( (void far*)&pp ) ; /* ds: 완충기 매개변수를 위한 si */
s.ds = FP_SEG ( (void far*)&pp ) ; /* ds: 완충기 매개변수를 위한 si */
/* 세그먼트 기록기 가치를 가진 INT 13H의 지정된 기능을 비십시오*/
int86x ( 0x13, &i, &o, &s ) ;
if ( o.x.cflag==1)
return 0 ; /*실패 */
else
return 1 ; /* 성공*/
}
|