home *** CD-ROM | disk | FTP | other *** search
- ;*********************************************************
- ;* *
- ;* Int6f *
- ;* *
- ;* Function : Setup user handler for 6fh interrupt. *
- ;* Input : None. *
- ;* Output : None. *
- ;* *
- ;* Last modifycation : 12/02/92 10:58pm. *
- ;* *
- ;* CopyRight 1995. Nicholas Poljakov all rights reserved.*
- ;* *
- ;*********************************************************
- .MODEL TINY
- .DOSSEG
-
- include c:\m61\include\dos.inc
- include c:\m61\include\macros.inc
-
- EXTRN int6f:PROC
-
- PUBLIC zproc, OldInt6f, OffInt6f, SegInt6f, MyPSP
-
- .CODE
- zproc PROC
- jmp SetStart
-
- OldInt6f dd ?
- org OldInt6f
- OffInt6f dw ?
- SegInt6f dw ?
- MyPSP dw 0
- Dcl db 'Interface miniPORT/IPX now is active.', 10,13,'$'
-
- SetStart:
- push es
- mov ax, 10h
- mov es, ax
- les bx, DWORD PTR es:[0bch]
- mov ax, es
- pop es
- and ax, bx
- jz SetHandler
-
- mov ah, 33h
- int 6fh
- cmp ax, 5555h
- jne SetHandler
-
- @Exit
- SetHandler:
- push es
- cli
- ;*
- ;* Save Old Int6fh vector
- ;*
- mov ax, 10h
- mov es, ax
- mov ax, WORD PTR es:[0bch] ; Old INT6f, offset
- mov OffInt6f, ax
- mov ax, WORD PTR es:[0beh] ; Old INT6f, segment
- mov SegInt6f, ax
- ;*
- ;* Set New Int6f value
- ;*
- mov ax, offset int6f
- mov WORD PTR es:[0bch], ax ; INT6f, offset
- mov ax, cs
- mov WORD PTR es:[0beh], ax ; INT6f, segment
-
- sti
- pop es
-
- mov ax, es
- mov MyPSP, ax ; set MyPSP value == ES
-
- push es
- mov ax, word ptr es:[2ch]
- mov es, ax
- mov ax, 4900h
- int 21h ; Free DOS environment
- pop es
-
- @ShowStr Dcl
- mov dx, offset SetStart + 1
- int 27h
-
- zproc ENDP
- END
-