home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / c / help.arc / CD.C next >
Encoding:
C/C++ Source or Header  |  1988-03-11  |  766 b   |  46 lines

  1. #define LINT_ARGS
  2. #include    <stdio.h>
  3. #include    <dos.h>
  4.  
  5. cd( name )
  6. register char    *name;
  7. {
  8.     union REGS regs;
  9.     int    todrive,todrive2;
  10.  
  11.     if( name[1] == ':')
  12.     {
  13.         todrive = toupper(*name) - 'A';
  14.         bdos( 0x0E, todrive, 0);
  15.         regs.h.ah = 0x19;
  16.         regs.h.al = 0x00;
  17.         intdos( ®s, ®s );
  18.         todrive2 = regs.h.al;
  19.         if( todrive != todrive2 )
  20.             return( -1 );
  21.         name += 2;
  22.     }
  23.  
  24.     if( *name  &&  chdir( name ) < 0 )
  25.         return( -1 );
  26.     return( 0 );
  27. }
  28.  
  29. chdrv( name )
  30. register char    *name;
  31. {
  32.     union REGS regs;
  33.     int    todrive,todrive2;
  34.  
  35.     todrive = toupper(*name) - 'A';
  36.     bdos( 0x0E, todrive, 0);
  37.     regs.h.ah = 0x19;
  38.     regs.h.al = 0x00;
  39.     intdos( ®s, ®s );
  40.     todrive2 = regs.h.al;
  41.     if( todrive != todrive2 )
  42.         return( -1 );
  43.     return( 0 );
  44. }
  45.  
  46.