这是DOS系统的源代码,汇编写的,值得看看,对开发操作系统的人员有价值

源代码在线查看: names.h

软件大小: 19402 K
上传用户: IsabellaJ
关键词: DOS 源代码 汇编
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*** 
				* names.h - external decl.s and constants associated with the name manager
				*
				*	Copyright  1985, 1986, 1987 Microsoft Corporation
				*
				*******************************************************************************/
				
				#undef NAMES_H
				#define NAMES_H ON
				
				
				/* external declarations */
				VOID NEAR SetONamMask(ushort, uchar);
				VOID NEAR ResetONamMaskTmp(ushort, uchar);
				VOID NEAR SetONamSpace(ushort, uchar);
				VOID NEAR CheckONamSpace(ushort, uchar);	/* [7] */
				ushort NEAR FlagOfONam(ushort);
				ushort NEAR ONamOfPsd(sd *);
				ushort NEAR GetVarNamChar(ushort);
				ushort FAR CopyONamBd(ushort, bd *);
				
				ushort FAR BdAppendOgNam(bd *, ushort); /* [1] */
				ushort FAR OgNamOfPsd (sd *);					/* [1] */
				ushort NEAR OgNamOfPbCb(char *, ushort);	/* [1] */
				ushort FAR CopyOgNamPb(char *, ushort);	/* [1] */
				ushort NEAR ONamOfOgNam(ushort);				/* [1] */
				ushort FAR ONamOfOgNamFar(ushort);				/* [8] */
				char FAR CharOfOgNam(ushort);					/* [1] */
				ushort FAR CbOfOgNam(ushort);					/* [1] */
				
				
				/* flag bit constants used in the flags word of a name table entry 				*/
				#define NM_fShared 0x01		/* bit 0 - TRUE (set) if exists a module SHARED 
															  	  variable of this name							*/
				#define NM_fLineNum 0x02	/* bit 1 - TRUE if symbol entry is for a line number
																  this flag can only be set by the NameMgr
																	and can never be reset. */
				#define NM_fLineNumLabel 0x04
													/* bit 2 - TRUE if symbol entry is either a line
																  number or a label - this bit is used
																  by the text mgr to detect duplicate
																  label definitions. */
				#define NM_fAs 0x08			/* bit 3 - TRUE if "x AS" clause exists in module	*/
				/* unused:			0x0010	bit 4	*/
				/* unused:			0x0020	bit 5	*/
				
				/* CONSIDER: if we run out of bits here, the following enumerated 2 bits would
					CONSIDER: be an ideal candidate for moving in as the high two bits of the
					CONSIDER: NAM_SIZE field (only 6-bits are needed for the size of the largest
					CONSIDER: legal name). A definite cost to this, however, is name table
					CONSIDER: search speed (speed cost of masking the NAM_SIZE field).
													/* enumerated constants for bits 6 & 7					*/
				#define NMSP_UNDEFINED	0x00
													/* initial value of this 2-bit field					*/
				#define NMSP_Procedure	0x40
													/* passed by txtmgr when it inserts a ref. to a
														prs in the module											*/
				#define NMSP_Variable	0x80
													/* set by MakeVariable when creating a variable 
														table entry that's not a constant or a proc		*/
				#define NMSP_MASK			0xC0
													/* used to isolate this 2-bit enumerated field		*/
				
				#define CB_MAX_NAMENTRY	255d	/* [3] max. length of a name in the name table.
															[3] do NOT confuse this with CB_IDNAM_MAX!	*/
				
				/* Non-RELEASE and DEBUG name table macros */
				
				#define DbOoNam(oNam) 
				#define DbOogNam(ogNam) 			/* [2] */
				#define DbOtNam 
				#define DbOtgNam 						/* [2] */
				#define DbChkoNam(oNam) 
				#define DbChkogNam(ogNam) 			/* [2] */
				#define DbChktNam 
				#define DbChktgNam 					/* [2] */
							

相关资源