home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / MM1 / UTIL / rsdsk.lzh / RSDSK / SRC / rsreaddir.c < prev    next >
Text File  |  1997-03-05  |  1KB  |  45 lines

  1. /* rsreaddir() function to read Jeff Vavasour's emulator .DSK files */
  2. /* copyright (c) 1997, by Bob Devries */
  3.  
  4. #include <stdio.h>
  5. #include "rsdir.h"
  6.  
  7. int
  8. rsreaddir(dskfile, dirptr)
  9. FILE *dskfile;
  10. RSDIR *dirptr;
  11. {
  12.     static long diroffset = 0L;
  13.     char dirent[33];
  14.     
  15.     if (diroffset >= 2176L)
  16.         return(-1);
  17.     
  18.     do {
  19.         if (fseek(dskfile, 0x13400L + diroffset, 0) == -1)
  20.             return(-1);
  21.     
  22.         if (fread(dirent, 32, 1, dskfile) == 0)
  23.             return(-1);
  24.             
  25.         memcpy(dirptr->rs_filename,dirent,8);
  26.         dirptr->rs_filename[8] = '\0';
  27.         memcpy(dirptr->rs_extension,dirent+8,3);
  28.         dirptr->rs_extension[3] = '\0';
  29.         memcpy(&dirptr->rs_filetype,dirent+11,1);
  30.         memcpy(&dirptr->rs_ascii_flag,dirent+12,1);
  31.         memcpy(&dirptr->rs_first_gran,dirent+13,1);
  32.         memcpy(&dirptr->rs_last_sect,dirent+14,2);
  33.         
  34.         diroffset += RSDIRSIZE;
  35.  
  36.         if (*dirptr->rs_filename == (char)0xff)
  37.             return(-1);
  38.         if (*dirptr->rs_filename != '\0')
  39.             return(0);
  40.         
  41.         } while ((*dirptr->rs_filename == '\0') || (diroffset < 2176L));
  42. }
  43.  
  44. /* EOF rsreaddir.c */
  45.