home *** CD-ROM | disk | FTP | other *** search
- ;========================================================================
- ;
- CODE_SEG SEGMENT PARA 'CODE'
- ;
- ASSUME CS:CODE_SEG
- ASSUME DS:CODE_SEG
- ;
- ORG 100H ;TO PACIFY EXE2BIN
- ;
- SWFLOP: JMP INIT
- ;
- INT13H DD 0 ;PLACE TO STORE THE ORIGINAL INT13H ADDR.
- JUNK DW 0 ;PLACE TO POP JUNK FLAGS INTO
- RET_13 LABEL DWORD ;PLACE TO KEEP RETURN ADDR FOR INT13H
- RET_13W DW 2 DUP(0)
- ;
- ;
- INT13: CMP DL,00H ;CHECK IF REQUEST FOR DRIVE A:
- JNE NOTA
- ;
- MOV DL,01H
- JMP ONWARD
- ;
- NOTA: CMP DL,01H
- JNE ONWARD
- ;
- MOV DL,00H
- ;
- ONWARD: PUSHF
- CALL CS:INT13H
- POP CS:RET_13W
- POP CS:RET_13W[2]
- POP CS:JUNK
- JMP CS:RET_13
- ;
- NOP ;PAD FOR INT 27h
- ;
- INIT: PUSH DS
- PUSH ES
- ;
- MOV AH,35H ;FIND WHERE INT 13H NOW POINTS
- MOV AL,13H
- INT 21H
- MOV word ptr INT13H,BX ;STASH OLD ADDR
- MOV BX,ES
- MOV word ptr INT13H[2],BX
- ;
- LEA DX,INT13 ;TAKE OVER INT13
- MOV AH,25H
- MOV AL,13H
- INT 21H
- ;
- POP ES
- POP DS
- LEA DX,INIT ;GET NUMBER OF BYTES
- INT 27H ;THEN EXIT BUT STAY RESIDENT
- ;
- CODE_SEG ENDS
- ;
- END SWFLOP
-
-
-
-
-
-
-