home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / draco / draco-2.ark / UTIL.G < prev    next >
Encoding:
Text File  |  1986-11-14  |  2.5 KB  |  78 lines

  1. type
  2.  
  3.     /* structure of a file name in a CP/M file control block: */
  4.  
  5.     FILENAME = struct {
  6.     unsigned 16 fn_drive;
  7.     [8] char fn_name;
  8.     [3] char fn_type;
  9.     },
  10.  
  11.     /* result from the string comparison routine: */
  12.  
  13.     COMPARISON = enum {
  14.     EQUAL,
  15.     LESS,
  16.     GREATER
  17.     };
  18.  
  19.     /* error codes returned by 'IOerror': */
  20.  
  21.     ushort
  22.     CH_OK = 0,        /* no error */
  23.  
  24.     CH_EOF = 1,        /* read past end-of-file indicator */
  25.     CH_CLOSED = 2,        /* use after close */
  26.  
  27.     CH_NONEXIS = 3,        /* file doesn't exist */
  28.     CH_DISKFULL = 4,    /* disk is full; write failed */
  29.     CH_BADSEEK = 5,        /* bad seek call */
  30.  
  31.     CH_MISSING = 6,        /* no data on line */
  32.     CH_BADCHAR = 7,        /* bad character for input conversion */
  33.     CH_OVERFLOW = 8;    /* overflow on numeric conversion */
  34.  
  35. extern
  36.  
  37.     CharsLen(*char charsPtr)word,
  38.     CharsEqual(*char charsPtr1, charsPtr2)bool,
  39.     CharsCopy(*char dest, source)void,
  40.     CharsCmp(*char charsPtr1, charsPtr2)COMPARISON,
  41.     CharsConcat(*char dest, source)void,
  42.     CharsCopyN(*char dest, source; word n)void,
  43.     CharsIndex(*char subject, object)int,
  44.  
  45.     exit(int status)void,
  46.  
  47.     GetPar()*char,
  48.     RescanPars()void,
  49.  
  50.     RawRead(channel input binary chan; *byte buffer; word count)word,
  51.     RawWrite(channel output binary chan; *byte buffer; word count)word,
  52.     RandomOut(channel output binary chan)void,
  53.     ReOpen(channel input binary ch1; channel output binary ch2)void,
  54.     SeekIn(channel input binary chan; ushort posnHigh; word posnLow)bool,
  55.     SeekOut(channel output binary chan; ushort posnHigh; word posnLow)bool,
  56.     GetIn(channel input binary chan; *ushort pposnHigh)word,
  57.     GetOut(channel output binary chan; *ushort pposnHigh)word,
  58.     GetInMax(channel input binary chan; *ushort pposnHigh)word,
  59.     GetOutMax(channel output binary chan; *ushort pposnHigh)word,
  60.     FlushOut(channel output binary chan)void,
  61.  
  62.     SetFileName(FILENAME fn; *char name)void,
  63.     GetFileName(FILENAME fn; *char name)void,
  64.     FileCreate(FILENAME fn)bool,
  65.     FileDestroy(FILENAME fn)bool,
  66.     FileRename(FILENAME oldName, newName)bool,
  67.  
  68.     Malloc(word length)*byte,
  69.     Mfree(*byte region; word length)void,
  70.     Mlist()void,
  71.     Mcheck(proc(*byte region; word length)void handle)void,
  72.     MerrorSet(bool newFlag)void,
  73.     MerrorGet()bool,
  74.  
  75.     BlockMove(*byte dest, source; word count)void,
  76.     BlockFill(*byte dest; word count; byte valu)void,
  77.     BlockMoveB(*byte dest, source; word count)void;
  78.