home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / CCDL122.ZIP / LIBS / INTERP / INCLUDE / CFS.H next >
Encoding:
C/C++ Source or Header  |  1995-10-25  |  1.9 KB  |  61 lines

  1. /************************ cfs Character File Stream *************************/
  2.  
  3. #define DefChar   0x4070007F
  4. #define FileMode  0
  5. #define MemMode   1
  6. #define ScanMode  2
  7.  
  8. #define er  short            /* Error Status Return Value */
  9. #define us  unsigned char    /* Unsigned Single-byte */
  10. #define ud  unsigned short   /* Unsigned Double-Byte */
  11. #define uq  unsigned long    /* Unsigned Quad-Byte */
  12. #define sd  short /* Signed Double-Byte */
  13. #define ss  char  /* Signed Single-Byte */
  14.  
  15. /* Character Stream Data Structure */
  16. typedef struct
  17.  {
  18.   FILE *fp;   /* File Pointer */
  19.   uq curch;   /* Current Character */
  20.   uq def;     /* Default Value */
  21.   uq msk;     /* Default Mask */
  22.   uq tot;     /* Total Characters Processed so far */
  23.   uq size;    /* Size of Byte Stream */
  24.   us mode;    /* 0=Scan Only,1=Memory,2=File */
  25.   us cnt;     /* Number of Pending Displayable Characters */
  26.   us clm;     /* Current Column */
  27.   us mag;     /* Current Magnitude */
  28.   us phi;     /* 0=ASCII, 1=PhiText */
  29.   us len;     /* Number of Bytes in Buffer */
  30.   us ix;      /* Index of Next Byte in Buffer */
  31.   us buf[33]; /* Buffer */
  32.  }CFS;
  33.  
  34. /* Read Functions */
  35. void cfs_Rini(CFS *Crec,uq msk,sd phi);
  36. void cfs_Rclose(CFS *Crec);
  37. er cfs_Rbyte(CFS *Crec,us *byt);
  38. er cfs_Rchar(CFS *Crec,uq *val);
  39.  
  40. /* Open for File Input */
  41. er cfs_Ropen(CFS *Crec,char *name,uq msk);
  42.  
  43. /* Open for Memory Read */
  44. er cfs_Rmem(CFS *Crec,us *adr,uq msk,sd phi);
  45.  
  46. /* Write Functions */
  47. void cfs_Wini(CFS *Crec,uq msk,sd phi);
  48. void cfs_Wclose(CFS *Crec);
  49. void cfs_Wbyte(CFS *Crec,us byt);
  50. void cfs_Wflush(CFS *Crec);
  51. void cfs_Wchar(CFS *Crec,uq val);
  52.  
  53. /* Open for File Output */
  54. er cfs_Wopen(CFS *Crec,char *name,uq msk,sd phi);
  55.  
  56. /* Open for Memory Write */
  57. er cfs_Wmem(CFS *Crec,us *adr,uq msk,sd phi);
  58.  
  59. /* Open for Memory Write for Size Computation only: No Actual Writing */
  60. er cfs_Smem(CFS *Crec,uq msk,sd phi);
  61.