hugenorm.c
来自「[随书类]Dos6.0源代码」· C语言 代码 · 共 34 行
C
34 行
/***************************************************************************/
/* */
/* HUGENORM.C */
/* */
/* Copyright (c) 1991 - Microsoft Corp. */
/* All rights reserved. */
/* Microsoft Confidential */
/* */
/* Accepts a far pointer and returns a new pointer to the same location */
/* which has been normalize so that the offset is always < 16. */
/* */
/* char far *NormalizePtr( char far *Ptr ) */
/* */
/* ARGUMENTS: Ptr - Far pointer to be normalized */
/* RETURNS char far * - Normalized far pointer */
/* */
/* johnhe - 03/23/89 */
/***************************************************************************/
#define UL unsigned long
char far *NormalizePtr( char far *Ptr )
{
UL lAddr;
lAddr = ((UL)Ptr & 0xffff0000L) >> 12; /* Convert seg to real 20 bit */
lAddr += (UL)Ptr & 0xffffL; /* Add offset to 20 bit addr */
Ptr = (char far *)((lAddr & 0xfffffff0L) << 12);/* Creat ptr segment */
Ptr += (unsigned)(lAddr & 0xf); /* Add ptr offset */
return( Ptr );
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?