home *** CD-ROM | disk | FTP | other *** search
- ;****************************************************************************
- ; Filename: MK_FP.ASM
- ; Author: Peter Andersson
- ; Version: 0.1
- ; Created: 1994.09.18
- ; Updated: 1995.03.11
- ;****************************************************************************
- ; Copyright Peter Andersson, 1994-1995.
- ; All rights reserved.
- ;****************************************************************************
- ; Function: PVOID @MK_FP(PVOID address)
- ; Comment: Converts an 32 bit address to a segment:offset
- ; input: Eax - address to convert
- ; Returns: Segment address in the higher part of Eax and the offset address
- ; in the lower part of Eax (Ax). Eax is -1 if the memory address
- ; is out of range (>=1Mb)
- ;****************************************************************************
-
- Include STDDEF.INC
-
- Codeseg
-
- Proc MK_FP ,1
- Sub Eax,[_zero]
- Cmp Eax,100000h ; Can't convert address above
- Jae @@Error ; 1Mb or below 0...
- Mov Edx,Eax
- And Eax,0FFFF0h
- And Edx,0Fh
- Shl Eax,12
- Add Eax,Edx
- Ret
- Align 4
- @@Error: Mov Eax,-1
- Ret
- Endp
-
- End