home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_10_05 / 1005111a < prev    next >
Text File  |  1992-03-05  |  1KB  |  40 lines

  1.  
  2. Listing 2
  3. *********
  4.  
  5. #include <stdio.h>
  6. #include <dos.h>
  7.  
  8. #define SIZE_CLUSTER 2048      /* This may need to be changed */
  9. #define SECTOR_OFFSET 145      /* This may also need to be changed */
  10.  
  11. get_cluster(cluster, drive, buffer)
  12. unsigned int cluster;   /* Cluster to get */
  13. int drive;     /* 0 = A, 1 = B, etc. */
  14. unsigned char buffer[];
  15.        {
  16.         union REGS inregs, outregs;
  17.         struct SREGS segregs;
  18.         unsigned int cluster;
  19.         unsigned int sector;
  20.         int dos_ret;
  21.         int ret;
  22.         int i;
  23.  
  24.         char dir_name[100];
  25.         char filename[100];
  26.         char textname[100];
  27.         segregs.ds = ((unsigned long) buffer) >> 16;
  28.         sector = cluster * 4 + SECTOR_OFFSET;
  29.         inregs.h.ah = 0;
  30.         inregs.h.al = 0x2;
  31.         inregs.x.cx = 4;
  32.         inregs.x.bx = ( (long) buffer) & 0XFFFF;
  33.         inregs.x.dx = sector;
  34.         dos_ret = int86x( 0x25, &inregs, &outregs , &segregs);
  35.         /* The dos_ret could be checked here if int86x returns it */
  36.         return ret;  
  37.         }
  38. ******
  39.  
  40.