home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 18 / amigaformatcd18.iso / -in_the_mag- / emulation / emus / fs1541 / volume.h < prev   
C/C++ Source or Header  |  1997-07-31  |  1KB  |  80 lines

  1. /*
  2.     FS1541
  3.  
  4.     volume.h
  5.  
  6. */
  7.  
  8. #include <dos/dosextens.h>
  9.  
  10. LONG InitVolumeSS(void);
  11. void QuitVolumeSS(void);
  12. void DoDiskInsert(void);
  13. void DoDiskRemove(void);
  14.  
  15. UWORD AllocBlock(UBYTE fromt, UBYTE froms);
  16. void FreeBlock(UBYTE t, UBYTE s);
  17. UWORD UsedBlocks(void);
  18.  
  19. void OptimizeDirectory(void);
  20.  
  21. void StartUDSTimer(void);
  22. void StopUDSTimer(void);
  23. void UpdateDiskStructure(void);
  24.  
  25. BPTR makelock(LONG flkey, LONG axs);
  26. void freelock(struct FileLock *fl);
  27. BOOL lockable(UBYTE t, UBYTE s, LONG mode);
  28.  
  29.  
  30.  
  31. extern BYTE diskchgintbit;
  32. extern struct VolumeNode *curvolumenode;
  33. extern struct DosList *curdoslist;
  34. extern int disk_inserted;
  35.  
  36. extern struct timerequest *UDStimer;
  37.  
  38. extern struct BAM *bam;
  39. extern struct DirEntry directory[144];
  40. extern int dirsize;
  41.  
  42. extern UBYTE interleave;
  43.  
  44. struct VolumeNode {
  45.     struct MinNode node;
  46.     struct DosList *volnode;
  47.     struct FileLock *locklist;
  48.     UBYTE name[30];    /* this is a BCPL string */
  49.     ULONG dollarlen;
  50.     UBYTE dollarbuf[30*(144+2)];
  51. };
  52.  
  53. struct BAM {
  54.     UBYTE dirt,dirs;
  55.     UBYTE id;
  56.     UBYTE dside;
  57.     ULONG tracks[35];
  58.     UBYTE name[16];
  59.     UBYTE pad1[2];
  60.     UBYTE name2[5];
  61.     UBYTE pad2[89];
  62. };
  63.  
  64. struct DirEntry {
  65.     UBYTE t,s;
  66.     UBYTE type;
  67.     UBYTE datat,datas;
  68.     UBYTE name[16];
  69.     UBYTE relsst,relsss;
  70.     UBYTE rellen;
  71.     UBYTE pad[4];
  72.     UBYTE tmpdatat,tmpdatas;
  73.     UBYTE lengthl,lengthh;
  74. };
  75.  
  76. struct DataBlock {
  77.     UBYTE t,s;
  78.     UBYTE data[254];
  79. };
  80.