⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makez80.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 5 页
字号:
	{0x70,  BITHandler},	{0x71,  BITHandler},	{0x72,  BITHandler},	{0x73,  BITHandler},	{0x74,  BITHandler},	{0x75,  BITHandler},	{0x76,  BITHandler},	{0x77,  BITHandler},	{0x78,  BITHandler},	{0x79,  BITHandler},	{0x7a,  BITHandler},	{0x7b,  BITHandler},	{0x7c,  BITHandler},	{0x7d,  BITHandler},	{0x7e,  BITHandler},	{0x7f,  BITHandler},	// RES	{0x80,  RESSETHandler},	{0x81,  RESSETHandler},	{0x82,  RESSETHandler},	{0x83,  RESSETHandler},	{0x84,  RESSETHandler},	{0x85,  RESSETHandler},	{0x86,  RESSETHandler},	{0x87,  RESSETHandler},	{0x88,  RESSETHandler},	{0x89,  RESSETHandler},	{0x8a,  RESSETHandler},	{0x8b,  RESSETHandler},	{0x8c,  RESSETHandler},	{0x8d,  RESSETHandler},	{0x8e,  RESSETHandler},	{0x8f,  RESSETHandler},	{0x90,  RESSETHandler},	{0x91,  RESSETHandler},	{0x92,  RESSETHandler},	{0x93,  RESSETHandler},	{0x94,  RESSETHandler},	{0x95,  RESSETHandler},	{0x96,  RESSETHandler},	{0x97,  RESSETHandler},	{0x98,  RESSETHandler},	{0x99,  RESSETHandler},	{0x9a,  RESSETHandler},	{0x9b,  RESSETHandler},	{0x9c,  RESSETHandler},	{0x9d,  RESSETHandler},	{0x9e,  RESSETHandler},	{0x9f,  RESSETHandler},	{0xa0,  RESSETHandler},	{0xa1,  RESSETHandler},	{0xa2,  RESSETHandler},	{0xa3,  RESSETHandler},	{0xa4,  RESSETHandler},	{0xa5,  RESSETHandler},	{0xa6,  RESSETHandler},	{0xa7,  RESSETHandler},	{0xa8,  RESSETHandler},	{0xa9,  RESSETHandler},	{0xaa,  RESSETHandler},	{0xab,  RESSETHandler},	{0xac,  RESSETHandler},	{0xad,  RESSETHandler},	{0xae,  RESSETHandler},	{0xaf,  RESSETHandler},	{0xb0,  RESSETHandler},	{0xb1,  RESSETHandler},	{0xb2,  RESSETHandler},	{0xb3,  RESSETHandler},	{0xb4,  RESSETHandler},	{0xb5,  RESSETHandler},	{0xb6,  RESSETHandler},	{0xb7,  RESSETHandler},	{0xb8,  RESSETHandler},	{0xb9,  RESSETHandler},	{0xba,  RESSETHandler},	{0xbb,  RESSETHandler},	{0xbc,  RESSETHandler},	{0xbd,  RESSETHandler},	{0xbe,  RESSETHandler},	{0xbf,  RESSETHandler},	// SET	{0xc0,  RESSETHandler},	{0xc1,  RESSETHandler},	{0xc2,  RESSETHandler},	{0xc3,  RESSETHandler},	{0xc4,  RESSETHandler},	{0xc5,  RESSETHandler},	{0xc6,  RESSETHandler},	{0xc7,  RESSETHandler},	{0xc8,  RESSETHandler},	{0xc9,  RESSETHandler},	{0xca,  RESSETHandler},	{0xcb,  RESSETHandler},	{0xcc,  RESSETHandler},	{0xcd,  RESSETHandler},	{0xce,  RESSETHandler},	{0xcf,  RESSETHandler},	{0xd0,  RESSETHandler},	{0xd1,  RESSETHandler},	{0xd2,  RESSETHandler},	{0xd3,  RESSETHandler},	{0xd4,  RESSETHandler},	{0xd5,  RESSETHandler},	{0xd6,  RESSETHandler},	{0xd7,  RESSETHandler},	{0xd8,  RESSETHandler},	{0xd9,  RESSETHandler},	{0xda,  RESSETHandler},	{0xdb,  RESSETHandler},	{0xdc,  RESSETHandler},	{0xdd,  RESSETHandler},	{0xde,  RESSETHandler},	{0xdf,  RESSETHandler},	{0xe0,  RESSETHandler},	{0xe1,  RESSETHandler},	{0xe2,  RESSETHandler},	{0xe3,  RESSETHandler},	{0xe4,  RESSETHandler},	{0xe5,  RESSETHandler},	{0xe6,  RESSETHandler},	{0xe7,  RESSETHandler},	{0xe8,  RESSETHandler},	{0xe9,  RESSETHandler},	{0xea,  RESSETHandler},	{0xeb,  RESSETHandler},	{0xec,  RESSETHandler},	{0xed,  RESSETHandler},	{0xee,  RESSETHandler},	{0xef,  RESSETHandler},	{0xf0,  RESSETHandler},	{0xf1,  RESSETHandler},	{0xf2,  RESSETHandler},	{0xf3,  RESSETHandler},	{0xf4,  RESSETHandler},	{0xf5,  RESSETHandler},	{0xf6,  RESSETHandler},	{0xf7,  RESSETHandler},	{0xf8,  RESSETHandler},	{0xf9,  RESSETHandler},	{0xfa,  RESSETHandler},	{0xfb,  RESSETHandler},	{0xfc,  RESSETHandler},	{0xfd,  RESSETHandler},	{0xfe,  RESSETHandler},	{0xff,  RESSETHandler},	// Terminator	{0xffffffff, NULL}  };struct sOp EDOps[] ={	{0x67,  RRDRLDHandler},	{0x6f,  RRDRLDHandler},	{0x42,  AdcSbcRegpair},	{0x4a,  AdcSbcRegpair},	{0x52,  AdcSbcRegpair},	{0x5a,  AdcSbcRegpair},	{0x62,  AdcSbcRegpair},	{0x6a,  AdcSbcRegpair},	{0x72,  AdcSbcRegpair},	{0x7a,  AdcSbcRegpair},  	{0x45,  RetIRetNHandler},	{0x4d,  RetIRetNHandler},	{0x44,	NegHandler},	{0xa0,  LDILDRLDIRLDDRHandler},	{0xa8,  LDILDRLDIRLDDRHandler},	{0xb0,  LDILDRLDIRLDDRHandler},	{0xb8,  LDILDRLDIRLDDRHandler},	{0x57, IRHandler},	{0x5F, IRHandler},	{0x47, IRHandler},	{0x4F, IRHandler},	{0x46,  IMHandler},	{0x56,  IMHandler},	{0x5e,  IMHandler},	{0x4b,	LdRegpair},	{0x5b,	LdRegpair},	{0x7b,	LdRegpair},	{0x43,	ExtendedRegIntoMemory},	{0x53,	ExtendedRegIntoMemory},	{0x63,	ExtendedRegIntoMemory},	{0x73,	ExtendedRegIntoMemory},	{0x40, ExtendedInHandler},	{0x48, ExtendedInHandler},	{0x50, ExtendedInHandler},	{0x58, ExtendedInHandler},	{0x60, ExtendedInHandler},	{0x68, ExtendedInHandler},	{0x78, ExtendedInHandler},	{0x41, ExtendedOutHandler},	{0x49, ExtendedOutHandler},	{0x51, ExtendedOutHandler},	{0x59, ExtendedOutHandler},	{0x61, ExtendedOutHandler},	{0x69, ExtendedOutHandler},	{0x79, ExtendedOutHandler}, 	{0xa1,	CPICPDCPIRCPDRHandler},	{0xa9,	CPICPDCPIRCPDRHandler},	{0xb1,	CPICPDCPIRCPDRHandler},	{0xb9,	CPICPDCPIRCPDRHandler},	{0xbb,	OTIROTDROUTIOUTDHandler},			// OTDR	{0xb3,	OTIROTDROUTIOUTDHandler},			// OTIR	{0xab,	OTIROTDROUTIOUTDHandler},			// OUTD	{0xa3,	OTIROTDROUTIOUTDHandler},			// OUTI	{0xb2,	INIRINDRINIINDHandler},				// INIR	{0xba,	INIRINDRINIINDHandler},				// INDR	{0xa2,	INIRINDRINIINDHandler},				// INI	{0xaa,	INIRINDRINIINDHandler},				// IND	// Terminator	{0xffffffff, NULL}  };struct sOp DDFDOps[] ={	{0x35,  IncDecIndexed},	{0x34,  IncDecIndexed}, 	{0xcb,  DDFDCBHandler},	{0x86,  MathOperationIndexed},	{0x8e,  MathOperationIndexed},	{0x96,  MathOperationIndexed},	{0x9e,  MathOperationIndexed},	{0xa6,  MathOperationIndexed},	{0xae,  MathOperationIndexed},	{0xb6,  MathOperationIndexed},	{0xbe,  MathOperationIndexed},	{0xe1,  PushPopOperationsIndexed},	{0xe5,  PushPopOperationsIndexed},	{0x21,  LoadImmediate},	{0xe9,  JPIXIYHandler},	{0x09,  AddIndexHandler},	{0x19,  AddIndexHandler},	{0x29,  AddIndexHandler},	{0x39,  AddIndexHandler},	{0xf9,  SPToIndex},	{0x36,  LdByteToIndex},	{0x46,  LdRegIndexOffset},	{0x4e,  LdRegIndexOffset},	{0x56,  LdRegIndexOffset},	{0x5e,  LdRegIndexOffset},	{0x66,  LdRegIndexOffset},	{0x6e,  LdRegIndexOffset},	{0x7e,  LdRegIndexOffset}, 	{0x70,  LdIndexPtrReg},	{0x71,  LdIndexPtrReg},	{0x72,  LdIndexPtrReg},	{0x73,  LdIndexPtrReg},	{0x74,  LdIndexPtrReg},	{0x75,  LdIndexPtrReg},	{0x77,  LdIndexPtrReg},	{0x23,  IncDecIndexReg},	{0x2b,  IncDecIndexReg},	{0x22,  StoreIndexReg},	{0x2a,  LoadIndexReg},	{0xe3,  ExIndexed},	{0x44,	UndocRegToIndex},	{0x45,	UndocRegToIndex},	{0x4c,	UndocRegToIndex},	{0x4d,	UndocRegToIndex},	{0x54,	UndocRegToIndex},	{0x55,	UndocRegToIndex},	{0x5c,	UndocRegToIndex},	{0x5d,	UndocRegToIndex},	{0x7c,	UndocRegToIndex},	{0x7d,	UndocRegToIndex},	{0x60,	UndocIndexToReg},	{0x61,	UndocIndexToReg},	{0x62,	UndocIndexToReg},	{0x63,	UndocIndexToReg},	{0x64,	UndocIndexToReg},	{0x65,	UndocIndexToReg},	{0x67,	UndocIndexToReg},	{0x68,	UndocIndexToReg},	{0x69,	UndocIndexToReg},	{0x6a,	UndocIndexToReg},	{0x6b,	UndocIndexToReg},	{0x6c,	UndocIndexToReg},	{0x6d,	UndocIndexToReg},	{0x6f,	UndocIndexToReg},	{0x24,	UndocIncDecIndexReg},	{0x25,	UndocIncDecIndexReg},	{0x2c,	UndocIncDecIndexReg},	{0x2d,	UndocIncDecIndexReg},	{0x26,	UndocLoadHalfIndexReg},	{0x2e,	UndocLoadHalfIndexReg},	{0x84,	UndocMathIndex},	{0x85,	UndocMathIndex},	{0x8c,	UndocMathIndex},	{0x8d,	UndocMathIndex},	{0x94,	UndocMathIndex},	{0x95,	UndocMathIndex},	{0x9c,	UndocMathIndex},	{0x9d,	UndocMathIndex},	{0xa4,	UndocMathIndex},	{0xa5,	UndocMathIndex},	{0xac,	UndocMathIndex},	{0xad,	UndocMathIndex},	{0xb4,	UndocMathIndex},	{0xb5,	UndocMathIndex},	{0xbc,	UndocMathIndex},	{0xbd,	UndocMathIndex},	// Terminator	{0xffffffff, NULL}};struct sOp DDFDCBOps[] ={	{0x06,  ddcbBitWise},	{0x0e,  ddcbBitWise},	{0x16,  ddcbBitWise},	{0x1e,  ddcbBitWise},	{0x26,  ddcbBitWise},	{0x2e,  ddcbBitWise},	{0x3e,  ddcbBitWise},	{0x46,  ddcbBitWise},	{0x4e,  ddcbBitWise},	{0x56,  ddcbBitWise},	{0x5e,  ddcbBitWise},	{0x66,  ddcbBitWise},	{0x6e,  ddcbBitWise},	{0x76,  ddcbBitWise},	{0x7e,  ddcbBitWise},	{0x86,  ddcbBitWise},	{0x8e,  ddcbBitWise},	{0x96,  ddcbBitWise},	{0x9e,  ddcbBitWise},	{0xa6,  ddcbBitWise},	{0xae,  ddcbBitWise},	{0xb6,  ddcbBitWise},	{0xbe,  ddcbBitWise},	{0xc6,  ddcbBitWise},	{0xce,  ddcbBitWise},	{0xd6,  ddcbBitWise},	{0xde,  ddcbBitWise},	{0xe6,  ddcbBitWise},	{0xee,  ddcbBitWise},	{0xf6,  ddcbBitWise},	{0xfe,  ddcbBitWise},	// Terminator	{0xffffffff, NULL}};void InvalidInstructionC(UINT32 dwCount){	fprintf(fp, "				InvalidInstruction(%ld);\n", dwCount);}UINT32 Timing(UINT8 bWho, UINT32 dwOpcode){	UINT32 dwTiming = 0;	assert(dwOpcode < 0x100);	if (TIMING_REGULAR == bWho)	// Regular?		dwTiming = bTimingRegular[dwOpcode];	else	if (TIMING_CB == bWho)		dwTiming = bTimingCB[dwOpcode];	else	if (TIMING_DDFD == bWho)		dwTiming = bTimingDDFD[dwOpcode];	else	if (TIMING_ED == bWho)		dwTiming = bTimingED[dwOpcode];	else	if (TIMING_XXCB == bWho) 		dwTiming = bTimingXXCB[dwOpcode];	else	if (TIMING_EXCEPT == bWho)		dwTiming = dwOpcode;	else		assert(0);	if (0 == dwTiming)	{			fprintf(stderr, "Opcode: %.2x:%.2x - Not zero!\n", bWho, dwOpcode);		fclose(fp);		exit(1);	}	return(dwTiming);}void IndexedOffset(UINT8 *Localmz80Index)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -