home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / ECO30603.ZIP / ECO30603.LZH / ECOLIBII / ECO_DOS / ECO_DOS.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-03-08  |  6.6 KB  |  252 lines

  1. {$UNDEF DEBUG}
  2. {$A+,B-,E+,F-,N-,O-,R-,V-,I-}
  3. {$IFDEF DEBUG} {$D+,L+,S+} {$ELSE} {$D-,L-,S-} {$ENDIF}
  4. unit eco_dos;
  5.  
  6. interface
  7.  
  8. const
  9.   (* flags bit masks *)
  10.  
  11.   fcarry     = $0001;
  12.   fparity    = $0004;
  13.   fauxiliary = $0010;
  14.   fzero      = $0040;
  15.   fsign      = $0080;
  16.   foverflow  = $0800;
  17.  
  18.   (* file mode magic numbers *)
  19.  
  20.   fmclosed = $d7b0;
  21.   fminput  = $d7b1;
  22.   fmoutput = $d7b2;
  23.   fminout  = $d7b3;
  24.  
  25.   (* file attribute constants *)
  26.  
  27.   readonly  = $01;
  28.   hidden    = $02;
  29.   sysfile   = $04;
  30.   volumeid  = $08;
  31.   directory = $10;
  32.   archive   = $20;
  33.   anyfile   = $3f;
  34.  
  35. type (* string types *)
  36.  
  37.   comstr  = string[127];        { command line string }
  38.   pathstr = string[79];         { full file path string }
  39.   dirstr  = string[67];         { drive and directory string }
  40.   namestr = string[8];          { file name string }
  41.   extstr  = string[4];          { file extension string }
  42.   filestr = string[12];         { file name + extension string }
  43.  
  44.   (* registers record used by intr and msdos *)
  45.  
  46.   registers = record
  47.    case integer of
  48.     0 : (ax,bx,cx,dx,bp,si,di,ds,es,flags : word);
  49.     1 : (al,ah,bl,bh,cl,ch,dl,dh : byte);
  50.   end;
  51.  
  52.    (* typed-file and untyped-file record *)
  53.  
  54.   filerec = record
  55.     handle   : word;
  56.     mode     : word;
  57.     recsize  : word;
  58.     private  : array [1..26] of byte;
  59.     userdata : array [1..16] of byte;
  60.     name     : array [0..79] of char;
  61.   end;
  62.  
  63.   (* textfile record *)
  64.  
  65.   textbuf = array [0..127] of char;
  66.   textrec = record
  67.     handle    : word;
  68.     mode      : word;
  69.     bufsize   : word;
  70.     private   : word;
  71.     bufpos    : word;
  72.     bufend    : word;
  73.     bufptr    : ^textbuf;
  74.     openfunc  : pointer;
  75.     inoutfunc : pointer;
  76.     flushfunc : pointer;
  77.     closefunc : pointer;
  78.     userdata  : array [1..16] of byte;
  79.     name      : array [0..79] of char;
  80.     buffer    : textbuf;
  81.   end;
  82.  
  83.   (* search record used by findfirst and findnext *)
  84.  
  85.   searchrec = record
  86.     fill : array [1..21] of byte;
  87.     attr : byte;
  88.     time : longint;
  89.     size : longint;
  90.     name : string[12];
  91.   end;
  92.  
  93.   (* date and time record used by packtime and unpacktime *)
  94.  
  95.   datetime = record
  96.     year,month,day,hour,min,sec : word;
  97.   end;
  98.  
  99.  
  100. var 
  101.   doserror : integer;  (* error status variable *)
  102.  
  103.  
  104.  
  105.   function  dosversion : word;
  106.   procedure intr(intno : byte;var regs : registers);
  107.   procedure msdos(var regs : registers);
  108.   procedure getdate(var year,month,day,dayofweek : word);
  109.   procedure setdate(year,month,day : word);
  110.   procedure gettime(var hour,minute,second,sec100 : word);
  111.   procedure settime(hour,minute,second,sec100 : word);
  112.   procedure getcbreak(var break : boolean);
  113.   procedure setcbreak(break : boolean);
  114.   procedure getverify(var verify : boolean);
  115.   procedure setverify(verify : boolean);
  116.   function  diskfree(drive : byte) : longint;
  117.   function  disksize(drive : byte) : longint;
  118.   procedure getfattr(var f;var attr : word);
  119.   procedure setfattr(var f;attr : word);
  120.   procedure getftime(var f;var time : longint);
  121.   procedure setftime(var f;time : longint);
  122.   procedure findfirst(path : pathstr;attr : word;var f : searchrec);
  123.   procedure findnext(var f : searchrec);
  124.   procedure unpacktime(p : longint;var t : datetime);
  125.   procedure packtime(var t : datetime;var p : longint);
  126.   procedure getintvec(intno : byte;var vector : pointer);
  127.   procedure setintvec(intno : byte;vector : pointer);
  128.   procedure swapvectors;
  129.   procedure keep(exitcode : word);
  130.   procedure exec(path : pathstr;comline : comstr);
  131.   function  dosexitcode : word;
  132.   function  fsearch(path : pathstr;dirlist : string) : pathstr;
  133.   function  fexpand(path : pathstr) : pathstr;
  134.   procedure fsplit(path : pathstr;var dir : dirstr;
  135.                    var name : namestr;var ext : extstr);
  136.   function  envcount : integer;
  137.   function  envstr(index : integer) : string;
  138.   function  getenv(envvar : string) : string;
  139.   
  140.   function  isdevice(handle : word) : boolean;
  141.   
  142.  
  143.  
  144.   
  145. implementation
  146.  
  147.  
  148.  
  149. {$F+}
  150.  
  151. {$L Dosver.OBJ}
  152. function  dosversion : word; external;
  153.  
  154. {$L Intr.OBJ}
  155. procedure intr(intno : byte;var regs : registers); external;
  156. procedure msdos(var regs : registers); external; {ook in intr.obj}
  157.  
  158. {$L GetDate.OBJ}
  159. procedure getdate(var year,month,day,dayofweek : word); external;
  160.  
  161. {$L SetDate.OBJ}
  162. procedure setdate(year,month,day : word); external;
  163.  
  164. {$L GetTime.OBJ}
  165. procedure gettime(var hour,minute,second,sec100 : word); external;
  166.  
  167. {$L SetTime.OBJ}
  168. procedure settime(hour,minute,second,sec100 : word); external;
  169.  
  170. {$L GetCBrk.OBJ}
  171. procedure getcbreak(var break : boolean); external;
  172.  
  173. {$L SetCBrk.OBJ}
  174. procedure setcbreak(break : boolean); external;
  175.  
  176. {$L GVerify.OBJ}
  177. procedure getverify(var verify : boolean); external;
  178.  
  179. {$L SVerify.OBJ}
  180. procedure setverify(verify : boolean); external;
  181.  
  182. {$L DiskFree.OBJ}
  183. function  diskfree(drive : byte) : longint; external;
  184.  
  185. {$L DiskSize.OBJ}
  186. function  disksize(drive : byte) : longint; external;
  187.  
  188. {$L GetFAttr.OBJ}
  189. procedure getfattr(var f;var attr : word); external;
  190.  
  191. {$L SetFAttr.OBJ}
  192. procedure setfattr(var f;attr : word); external;
  193.  
  194. {$L GetFTime.OBJ}
  195. procedure getftime(var f;var time : longint); external;
  196.  
  197. {$L SetFTime.OBJ}
  198. procedure setftime(var f; time : longint); external;
  199.  
  200. {$L FindFrst.OBJ}
  201. procedure findfirst(path : pathstr;attr : word;var f : searchrec); external;
  202. procedure findnext(var f : searchrec); external;
  203.  
  204. {$L UnPackT.OBJ}
  205. procedure unpacktime(p : longint;var t : datetime); external;
  206.  
  207. {$L PackT.OBJ}
  208. procedure packtime(var t : datetime;var p : longint); external;
  209.  
  210. {$L GetIntV.OBJ}
  211. procedure getintvec(intno : byte;var vector : pointer); external;
  212.  
  213. {$L SetIntV.OBJ}
  214. procedure setintvec(intno : byte;vector : pointer); external;
  215.  
  216. {$L SwapVect.OBJ}
  217. procedure swapvectors; external;
  218.  
  219. {$l Keep.OBJ}
  220. procedure keep(exitcode : word); external;
  221.  
  222. {$L Exec.OBJ}
  223. procedure exec(path : pathstr;comline : comstr); external;
  224.  
  225. {$L ExitCode.OBJ}
  226. function  dosexitcode : word; external;
  227.  
  228. {$L FSearch.OBJ}
  229. function  fsearch(path : pathstr;dirlist : string) : pathstr; external;
  230.  
  231. {$L FExpand.OBJ}
  232. function  fexpand(path : pathstr) : pathstr; external;
  233.  
  234. {$L FSplit.OBJ}
  235. procedure fsplit(path : pathstr;var dir : dirstr;
  236.                  var name : namestr;var ext : extstr); external;
  237.  
  238. {$L Envrmt.OBJ}
  239. function  envcount : integer; external;
  240. function  envstr(index : integer) : string; external;
  241. function  getenv(envvar : string) : string; external;
  242.  
  243. {$L IsDevice.OBJ}
  244. function  isdevice(handle : word) : boolean; external;
  245.  
  246. {$F-}
  247. (*-------------------------------------------------------------------------*)
  248.  
  249.  
  250.  
  251. end.
  252.