11 /* #define DEBUG_INT */
14 /**********************************************************************
17 * Handler for int 25h (absolute disk read).
19 void INT_Int25Handler( struct sigcontext_struct sigcontext )
21 #define context (&sigcontext)
22 BYTE *dataptr = PTR_SEG_OFF_TO_LIN(DS, BX);
25 if(!DOS_ValidDrive(AL))
28 AX = 0x0101; /* unknown unit */
33 begin = getdword(dataptr);
34 length = getword(&dataptr[4]);
35 dataptr = (BYTE *) PTR_SEG_TO_LIN(getdword(&dataptr[6]));
41 dprintf_int(stdnimp, "int25: abs diskread, drive %d, sector %ld, "
42 "count %ld, buffer %d\n", AL, begin, length, (int) dataptr);
44 memset(dataptr, 0, length * 512);
46 if (begin == 0 && length > 1)
47 *(dataptr + 512) = 0xf8;