home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 02 / tricks / lwinfo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-06  |  1.4 KB  |  46 lines

  1. /* ------------------------------------------------------ */
  2. /*                      LWINFO.C                          */
  3. /*          Routine wertet den Bootsektor aus             */
  4. /*        (C) 1991  Michael Gruteser & TOOLBOX            */
  5. /* ------------------------------------------------------ */
  6. #include <dos.h>
  7.  
  8. #define  ROUTINEN  1
  9.  
  10. #include "lwinfo.h"
  11.  
  12. #define  READINT(x) ((buffer[x+1] << 8) + buffer[x])
  13.  
  14.  
  15. int get_bootsecinfo(int lw, bootsec_info_t *info) {
  16.  
  17. int           error;
  18. int           i;
  19. unsigned char buffer[1024];
  20. char          *ptr;
  21.  
  22.   error = absread (lw,1,0,buffer);
  23.   if (error != 0) {
  24.     return(error);
  25.   }
  26.   for (ptr = info->hersteller,i=3;i<11;i++,ptr++) {
  27.     *ptr = buffer[i];
  28.   }
  29.   info->hersteller[8]        = '\0';
  30.   info->bytes_pro_sektor     = READINT(0x0b);
  31.   info->sektoren_pro_cluster = (short) buffer[0x0d];
  32.   info->reservierte_sektoren = READINT(0x0e);
  33.   info->fat_anzahl           = (short) buffer[0x10];
  34.   info->root_dir_eintraege   = READINT(0x11);
  35.   info->sektorenanzahl       = READINT(0x13);
  36.   info->sektoren_pro_fat     = READINT(0x16);
  37.   info->seiten               = (short) buffer[0x1A];
  38.   info->versteckte_sektoren  = READINT(0x1C);
  39.   info->mediadescriptor      = (short) buffer[0x15];
  40.   info->sektoren_pro_spur    = READINT (0x18);
  41.   return(error);
  42. }
  43.  
  44. /* ------------------------------------------------------ */
  45. /*                  Ende von LWINFO.C                     */
  46.