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

  1.         ;************************************************************;
  2.         ;                                                            ;
  3.         ;    Function 44H, Subfunction 0DH:                          ;
  4.         ;                  Generic IOCTL for Block Devices           ;
  5.         ;                                                            ;
  6.         ;    int ioctl_block_generic(drv_ltr,category,func,pbuffer)  ;
  7.         ;        int   drv_ltr;                                      ;
  8.         ;        int   category;                                     ;
  9.         ;        int   func;                                         ;
  10.         ;        char *pbuffer;                                      ;
  11.         ;                                                            ;
  12.         ;    Returns 0 for success, otherwise returns error code.    ;
  13.         ;                                                            ;
  14.         ;************************************************************;
  15.  
  16. cProc   ioctl_block_generic,PUBLIC,<ds>
  17. parmB   drv_ltr
  18. parmB   category
  19. parmB   func
  20. parmDP  pbuffer
  21. cBegin
  22.         mov     bl,drv_ltr      ; Get drive letter.
  23.         or      bl,bl           ; Leave 0 alone.
  24.         jz      ibg
  25.         and     bl,not 20h      ; Convert letter to uppercase.
  26.         sub     bl,'A'-1        ; Convert to drive number: 'A' = 1,
  27.                                 ; 'B' = 2, etc.
  28. ibg:
  29.         mov     ch,category     ; Get category
  30.         mov     cl,func         ; and function.
  31.         loadDP  ds,dx,pbuffer   ; Get pointer to data buffer.
  32.         mov     ax,440dh        ; Set function code, Subfunction 0DH.
  33.         int     21h             ; Call MS-DOS.
  34.         jc      ibgx            ; Branch on error.
  35.         xor     ax,ax
  36. ibgx:
  37. cEnd
  38.