home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1994 September / Simtel-MSDOS-Sep1994-CD2.iso / disc2 / turbopas / rename.pas < prev    next >
Pascal/Delphi Source File  |  1985-08-05  |  2KB  |  58 lines

  1.  program rename;   {rename files or directories}
  2.  
  3.     type
  4.        regset = record
  5.           case integer of
  6.              1: (
  7.                 ax,bx,cx,dx,bp,si,di,ds,es,flags : integer);
  8.              2: (
  9.                 al,ah,bl,bh,cl,ch,dl,dh : byte);
  10.           end;
  11.  
  12.     var
  13.        params : regset;
  14.        fcb : array[-7..37] of byte;   {Extended FCB}
  15.        file_name : string[20];
  16.        i : integer;
  17.  
  18.     begin
  19.        fcb[-7] := $FF;   {setup Extended FCB}
  20.        fcb[-1] := $16;   {match on anything}
  21.        with params do begin
  22.           write('Old File Name: ');
  23.           readln(file_name);
  24.           file_name := file_name + ' ';   {terminate to stop parse}
  25.           ax := $2901;   {parse the filename}
  26.           ds := seg(file_name[1]);
  27.           si := ofs(file_name[1]);
  28.           es := seg(fcb[0]);
  29.           di := ofs(fcb[0]);
  30.           msdos(params);
  31.           if al <> 0 then begin
  32.              writeln(^G'invalid file name');
  33.              halt;
  34.              end;
  35.  
  36.           write('New File Name: ');
  37.           readln(file_name);
  38.           file_name := file_name + ' ';
  39.           ax := $2903;   {parse the file name}
  40.           ds := seg(file_name[1]);
  41.           si := ofs(file_name[1]);
  42.           es := seg(fcb[$10]);
  43.           di := ofs(fcb[$10]);
  44.           msdos(params);
  45.           if al <> 0 then begin
  46.              writeln(^G'invalid file name');
  47.              halt;
  48.              end;
  49.  
  50.           ah := $17;   {rename call}
  51.           ds := seg(fcb[-7]);   {use the Extended FCB}
  52.           dx := ofs(fcb[-7]);
  53.           msdos(params);
  54.           if al <> 0 then writeln(^G'Rename Unsuccessful!!')
  55.           else writeln('Done');
  56.           end;
  57.        end.
  58.