home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / turbo_c / rdir.arc / BIOSHAND.ASM next >
Assembly Source File  |  1987-06-14  |  1KB  |  47 lines

  1. ;
  2. ; Bios disk write and read software interrupt handler 
  3. ;    Sets _biosbusy_fl when in a Bios Disk request.
  4.  
  5. ; Set up the code segment
  6.  
  7. _TEXT   segment para public 'CODE'
  8. _TEXT   ends
  9. _TEXT   segment
  10.         assume  cs:_TEXT
  11.  
  12. ; Set up the data segment
  13.  
  14. _DATA   segment word public 'DATA'
  15. _DATA   ends
  16. DGROUP  group  _DATA
  17. _DATA   segment
  18.         assume ds:_DATA
  19.  
  20. extrn   _biosbusy_fl:byte
  21. extrn   _old_biosdisk:dword
  22. extrn   DGROUP@:word
  23.  
  24. _DATA   ends
  25.  
  26. _biosdisk_handler       proc    far
  27.         public  _biosdisk_handler
  28.  
  29.         push    ds                      ;save some registers
  30.         push    bx                      
  31.         mov     bx, cs:DGROUP@          ;get DS set up to data group
  32.         mov     ds, bx                  ;through BX
  33.         mov     _biosbusy_fl,1          ;set the flag to one
  34.         pop     bx                      ;restore registers
  35.         pushf                           ;simulate int 13h
  36.         call    [_old_biosdisk]         ;  by calling old interrupt
  37.         mov     _biosbusy_fl,0          ;set flag to zero
  38.         pop     ds
  39.         ret     2                       ;return but leave new flags alone
  40.  
  41. _biosdisk_handler       endp
  42. _TEXT   ends
  43.  
  44.         end
  45.  
  46.  
  47.