home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d502 / cells.lha / CELLS / CELLSSource.lzh / cDos.h < prev    next >
C/C++ Source or Header  |  1991-04-20  |  2KB  |  97 lines

  1. /*
  2.  *  CELLS       An Implementation of the WireWorld cellular automata
  3.  *              as described in Scientific American, Jan 1990.
  4.  *
  5.  *              Copyright 1990 by Davide P. Cervone.
  6.  *  You may use this code, provided this copyright notice is kept intact.
  7.  *  See the CELLS.HELP file for complete information on distribution conditions.
  8.  */
  9.  
  10. /*
  11.  *  File:  cDos.h       Header for AmigaDOS stuff
  12.  */
  13.  
  14.  
  15. #include <libraries/dos.h>
  16. #include <libraries/dosextens.h>
  17.  
  18. /*
  19.  *  Some defines that make dealing with DOS structires easier
  20.  */
  21.  
  22. #define BCPL_TO_C(s,x)      ((struct s *)(BADDR((ULONG)x)))
  23. #define BCPL_TO_CHAR(x)     ((char *)(BADDR((ULONG)x)))
  24. #define BCPL_TO_SIZE(x)     ((int)(*(BCPL_TO_CHAR(x))))
  25. #define ROOTNODE(x)         ((struct RootNode *)x)
  26. #define DOSINFO(x)          BCPL_TO_C(DosInfo,x)
  27. #define FILELOCK(x)         BCPL_TO_C(FileLock,x)
  28. #define DEVLIST(x)          BCPL_TO_C(DeviceList,x)
  29. #define CLI(x)              BCPL_TO_C(CommandLineInterface,(x->pr_CLI))
  30. #define FIRSTDEV\
  31.    DEVLIST(DOSINFO(ROOTNODE(DOSBase->dl_Root)->rn_Info)->di_DevInfo)
  32.  
  33.  
  34. /*
  35.  *  Sets the current directory to the specified lock
  36.  */
  37.  
  38. #define SETCURDIR(l)        UnLock(CurrentDir(l))
  39.  
  40.  
  41. /*
  42.  *  Returns a NULL if directory name is blank
  43.  */
  44.  
  45. #define RETURN(dir)         return((*dir == 0)? NULL: dir)
  46.  
  47.  
  48. /*
  49.  *  What type of file are we looking for?
  50.  */
  51.  
  52. #define TYPE_DIR    0
  53. #define TYPE_FILE   1
  54.  
  55.  
  56. /*
  57.  *  Force a directory name lookup in NewDirectory?
  58.  */
  59. #define LOOKUPDIR   1
  60. #define NOLOOKUP    0
  61.  
  62.  
  63. /*
  64.  *  Error return codes for NextDrive()
  65.  */
  66.  
  67. #define NOERROR     0
  68. #define NOVOLMOUNT  -1
  69. #define NOVOLOTHER  -2
  70.  
  71.  
  72. /*
  73.  *  Linked list of files displayed by the File Requester (when directory
  74.  *  scanning is activated).
  75.  */
  76.  
  77. struct FileInfo
  78. {
  79.    struct FileInfo *Next,*Prev;
  80.    char *Name;
  81.    UWORD NameLen;
  82.    UWORD Flags;
  83.       #define FI_DIRECTORY      BIT(8)
  84. };
  85.  
  86. typedef struct FileInfo         *FILEINFO;
  87. typedef struct FileLock         *LOCK;
  88. typedef struct FileInfoBlock    *FIB;
  89. typedef struct InfoData         *INFODATA;
  90.  
  91. extern struct DosLibrary *DOSBase;
  92. extern LOCK Lock(), DupLock(), ParentDir(), CurrentDir(), CreateDir();
  93. extern struct Process *FindTask();
  94. extern int IoErr();
  95.  
  96. extern UWORD Mounted;           /* Flags for currently mounted floppies */
  97.