home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / FLOPPIES / SWFLOP.ZIP / SWFLOP.ASM < prev    next >
Encoding:
Assembly Source File  |  1987-09-15  |  1.3 KB  |  68 lines

  1. ;========================================================================
  2. ;
  3. CODE_SEG        SEGMENT     PARA    'CODE'
  4. ;
  5.         ASSUME  CS:CODE_SEG
  6.     ASSUME    DS:CODE_SEG
  7. ;
  8.         ORG     100H            ;TO PACIFY EXE2BIN
  9. ;
  10. SWFLOP: JMP    INIT
  11. ;
  12. INT13H    DD    0    ;PLACE TO STORE THE ORIGINAL INT13H ADDR.
  13. JUNK      DW      0       ;PLACE TO POP JUNK FLAGS INTO
  14. RET_13     LABEL   DWORD   ;PLACE TO KEEP RETURN ADDR FOR INT13H 
  15. RET_13W DW    2 DUP(0)            
  16. ;    
  17. INT13:    CMP    DL,00H        ;CHECK IF REQUEST FOR DRIVE A:
  18.     JNE    NOTA
  19. ;
  20.     MOV    DL,01H
  21.     JMP    ONWARD
  22. ;
  23. NOTA:    CMP    DL,01H
  24.     JNE    ONWARD
  25. ;
  26.     MOV    DL,00H
  27. ;
  28. ONWARD:    PUSHF
  29.     CALL     CS:INT13H
  30.     POP     CS:RET_13W     
  31.     POP     CS:RET_13W[2]      
  32.     POP     CS:JUNK       
  33.         JMP     CS:RET_13    
  34. ;
  35.     NOP            ;PAD FOR INT 27h
  36. ;
  37. INIT:    PUSH    DS
  38.     PUSH    ES
  39. ;
  40.     MOV    AH,35H        ;FIND WHERE INT 13H NOW POINTS
  41.     MOV    AL,13H
  42.     INT    21H
  43.     MOV    word ptr INT13H,BX    ;STASH OLD ADDR
  44.     MOV    BX,ES
  45.     MOV    word ptr INT13H[2],BX
  46. ;
  47.     LEA    DX,INT13    ;TAKE OVER INT13 
  48.     MOV    AH,25H
  49.     MOV    AL,13H
  50.     INT    21H    
  51. ;
  52.     POP    ES
  53.     POP    DS
  54.         LEA     DX,INIT         ;GET NUMBER OF BYTES 
  55.         INT     27H             ;THEN EXIT BUT STAY RESIDENT
  56. ;
  57. CODE_SEG    ENDS
  58. ;
  59. END    SWFLOP
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.