Hi!

1-Мар-2004 20:21 [EMAIL PROTECTED] (Eric Auer) wrote to
[EMAIL PROTECTED]:

>> already quote RBIL, which says, that BC' absread()/abswrite() (which detects
>> size of partition through INT21/1C) may give incorrect results in MS-DOS
>> 7.x.
EA> As far as I know Borland TURBO C does not use int 21.1c for anything in
EA> absread() / abswrite(). You have to find out whether "> 32 MB" access
EA> style is needed YOURSELF.

______________O\_/_________________________________\_/O______________
int absread(int drive, int nsects, long lsect, void *buffer)
  if( big_partition( drive ) )
  {
    asm     mov     cx,-1
    asm     int     25h
  }
  else
  {
    asm     mov     cx,nsects
    asm     int     25h
  }
  asm     pop     bx                      /* clear old flags */
[...]
static int big_partition( int driveno )
    getfat( driveno+1, &p );
[...]
void getfat(unsigned char drive, struct fatinfo *dtable)
asm     mov     ah, 01ch
asm     mov     dl, drive
asm     int     021h
_____________________________________________________________________
              O/~\                                 /~\O

EA>   return absread(drive, 1, -1, (void *)&buffer2);
EA> This is how you would read > 32 MB in TURBO C...

     See above. This is quote from BC RTL sources.

EA> Of course there is no FAT32 disk I/O support at all in Turbo C :-).

     Of course.




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id56&alloc_id438&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to