home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / dos_ency / section5 / fxn47h.asm < prev    next >
Encoding:
Assembly Source File  |  1988-08-11  |  1.5 KB  |  33 lines

  1.         ;************************************************************;
  2.         ;                                                            ;
  3.         ;            Function 47H: Get Current Directory             ;
  4.         ;                                                            ;
  5.         ;            int get_dir(drive_ltr,pbuffer)                  ;
  6.         ;                int drive_ltr;                              ;
  7.         ;                char *pbuffer;                              ;
  8.         ;                                                            ;
  9.         ;            Returns -1 for bad drive,                       ;
  10.         ;            otherwise returns pointer to pbuffer.           ;
  11.         ;                                                            ;
  12.         ;************************************************************;
  13.  
  14. cProc   get_dir,PUBLIC,<ds,si>
  15. parmB   drive_ltr
  16. parmDP  pbuffer
  17. cBegin
  18.         loadDP  ds,si,pbuffer   ; Get pointer to buffer.
  19.         mov     dl,drive_ltr    ; Get drive number.
  20.         or      dl,dl           ; Leave 0 alone.
  21.         jz      gdir
  22.         and     dl,not 20h      ; Convert letter to uppercase
  23.         sub     dl,'A'-1        ; Convert to drive number: 'A' = 1,
  24.                                 ; 'B' = 2, etc.
  25. gdir:
  26.         mov     ah,47h          ; Set function code.
  27.         int     21h             ; Call MS-DOS.
  28.         mov     ax,si           ; Return pointer to buffer ...
  29.         jnb     gd_ok
  30.         mov     ax,-1           ; ... unless an error occurred.
  31. gd_ok:
  32. cEnd
  33.