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

📄 makez80.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 5 页
字号:
/* search for [kayamon] for the fixed part *//* Multi-Z80 32 Bit emulator *//* Copyright 1996, 1997, 1998, 1999 Neil Bradley, All rights reserved * * License agreement: * * (MZ80 Refers to both the assembly code emitted by makeZ80.c and makeZ80.c * itself) * * MZ80 May be distributed in unmodified form to any medium. * * MZ80 May not be sold, or sold as a part of a commercial package without * the express written permission of Neil Bradley (neil@synthcom.com). This * includes shareware. * * Modified versions of MZ80 may not be publicly redistributed without author * approval (neil@synthcom.com). This includes distributing via a publicly * accessible LAN. You may make your own source modifications and distribute * MZ80 in source or object form, but if you make modifications to MZ80 * then it should be noted in the top as a comment in makeZ80.c. * * MZ80 Licensing for commercial applications is available. Please email * neil@synthcom.com for details. * * Synthcom Systems, Inc, and Neil Bradley will not be held responsible for * any damage done by the use of MZ80. It is purely "as-is". * * If you use MZ80 in a freeware application, credit in the following text: * * "Multi-Z80 CPU emulator by Neil Bradley (neil@synthcom.com)" * * must accompany the freeware application within the application itself or * in the documentation. * * Legal stuff aside: * * If you find problems with MZ80, please email the author so they can get * resolved. If you find a bug and fix it, please also email the author so * that those bug fixes can be propogated to the installed base of MZ80 * users. If you find performance improvements or problems with MZ80, please * email the author with your changes/suggestions and they will be rolled in * with subsequent releases of MZ80. * * The whole idea of this emulator is to have the fastest available 32 bit * Multi-Z80 emulator for the PC, giving maximum performance.  */ #include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>// Use word access for push/pop words (not working for some reason)//#define WORD_ACCESS// Use newer read/write byte code (not working for tnzs)//#define NEW_WRITE//#define NEW_READ// Use old MZ80 int code (new one doesn't work for some reason)#define OLD_INT// Clear which has always been edx:#define CLEAR_EDX()		fprintf(fp, "		xor	edx, edx\n")// Clear which was dh in 2.4 and edx in 2.6:#define CLEAR_DH()		fprintf(fp, "		xor	edx, edx\n")// Clear which has always been dh:#define CLEAR_DH_FORCED()	fprintf(fp, "		xor	dh, dh\n")// Clear which was dh in 2.4 and removed in 2.6:#define CLEAR_DH_OLD()		//fprintf(fp, "		xor	dh, dh\n")#define	VERSION 			"2.7raine"#define TRUE            		0xff#define FALSE           		0x0#define INVALID				0xff#define UINT32          		unsigned long int#define UINT8           		unsigned char#define	TIMING_REGULAR			0x00#define	TIMING_XXCB				0x01#define	TIMING_CB				0xcb#define	TIMING_DDFD				0xdd#define	TIMING_ED				0xed#define	TIMING_EXCEPT			0x02FILE *fp = NULL;char string[150];char cpubasename[150];char mz80Index[50];char majorOp[50];char procname[150];UINT32 dwGlobalLabel = 0;UINT8 bPlain = FALSE;UINT8 bNoTiming = FALSE;UINT8 bUseStack = FALSE;UINT8 bSingleStep = FALSE;UINT8 bCurrentMode = TIMING_REGULAR;	// Current timing modeUINT8 b16BitIo = FALSE;UINT8 bThroughCallHandler = FALSE;void ProcBegin(UINT32 dwOpcode);UINT8 *pbLocalReg[8] ={	"ch",	"cl",	"dh",	"dl",	"bh",	"bl",	"dl",	"al"};UINT8 *pbPushReg[8] = {	"cl",	"ch",	"byte [_z80de]",	"byte [_z80de + 1]",	"bl",	"bh",	"ah",	"al"};UINT8 *pbFlags[8] ={	"nz",	"z",	"nc",	"c",	"po",	"pe",	"ns",	"s"};UINT8 *pbMathReg[8] ={	"ch",	"cl",	"byte [_z80de + 1]",	"byte [_z80de]",	"bh",	"bl",	"INVALID",	"al"};UINT8 *pbRegPairs[4] = {	"cx",	// BC	"word [_z80de]", // DE	"bx",	// HL	"word [_z80sp]"  // SP};UINT8 *pbPopRegPairs[4] = {	"cx",	// BC	"word [_z80de]", // DE	"bx",	// HL	"ax"  // SP};UINT8 *pbIndexedRegPairs[4] = {	"cx",	// BC	"word [_z80de]", // DE	"di",	// IX/IY	"word [_z80sp]"  // SP};// Timing tablesUINT8 bTimingRegular[0x100] ={	0x04, 0x0a, 0x07, 0x06, 0x04, 0x04, 0x07, 0x04, 0x04, 0x0b, 0x07, 0x06, 0x04, 0x04, 0x07, 0x04,	0x08, 0x0a, 0x07, 0x06, 0x04, 0x04, 0x07, 0x04, 0x07, 0x0b, 0x07, 0x06, 0x04, 0x04, 0x07, 0x04,	0x07, 0x0a, 0x10, 0x06, 0x04, 0x04, 0x07, 0x04, 0x07, 0x0b, 0x10, 0x06, 0x04, 0x04, 0x07, 0x04,	0x07, 0x0a, 0x0d, 0x06, 0x0b, 0x0b, 0x0a, 0x04, 0x07, 0x0b, 0x0d, 0x06, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x04,	0x05, 0x0a, 0x0a, 0x0a, 0x0a, 0x0b, 0x07, 0x0b, 0x05, 0x0a, 0x0a, 0x00, 0x0a, 0x0a, 0x07, 0x0b,	0x05, 0x0a, 0x0a, 0x0b, 0x0a, 0x0b, 0x07, 0x0b, 0x05, 0x04, 0x0a, 0x0b, 0x0a, 0x00, 0x07, 0x0b,	0x05, 0x0a, 0x0a, 0x13, 0x0a, 0x0b, 0x07, 0x0b, 0x05, 0x04, 0x0a, 0x04, 0x0a, 0x00, 0x07, 0x0b,	0x05, 0x0a, 0x0a, 0x04, 0x0a, 0x0b, 0x07, 0x0b, 0x05, 0x06, 0x0a, 0x04, 0x0a, 0x00, 0x07, 0x0b};UINT8 bTimingCB[0x100] ={	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08};UINT8 bTimingXXCB[0x100] ={	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,	0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,	0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,	0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00};UINT8 bTimingDDFD[0x100] ={	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x0e, 0x14, 0x0a, 0x09, 0x09, 0x09, 0x00, 0x00, 0x0f, 0x14, 0x0a, 0x09, 0x09, 0x09, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x17, 0x17, 0x13, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x13, 0x09,	0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x13, 0x09,	0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x13, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x0e, 0x00, 0x17, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};UINT8 bTimingED[0x100] = {	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x0e, 0x08, 0x09, 0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x0e, 0x08, 0x09,	0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x08, 0x08, 0x09, 0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x08, 0x08, 0x09,	0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x08, 0x08, 0x12, 0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x08, 0x08, 0x12,	0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x08, 0x08, 0x00, 0x0c, 0x0c, 0x0f, 0x14, 0x08, 0x08, 0x08, 0x00,	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 	0x15, 0x15, 0x15, 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x15, 0x15, 0x10, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };void EDHandler(UINT32 dwOpcode);void DDHandler(UINT32 dwOpcode);void FDHandler(UINT32 dwOpcode);void CBHandler(UINT32 dwOpcode);void PushPopOperations(UINT32 dwOpcode);void AddRegpairOperations(UINT32 dwOpcode);void CallHandler(UINT32 dwOpcode);void MiscHandler(UINT32 dwOpcode);void IMHandler(UINT32 dwOpcode);void IRHandler(UINT32 dwOpcode);void LdRegPairImmediate(UINT32 dwOpcode);void LoadImmediate(UINT32 dwOpcode);void LdRegpairPtrByte(UINT32 dwOpcode);void MathOperation(UINT32 dwOpcode);void RegIntoMemory(UINT32 dwOpcode);void JpHandler(UINT32 dwOpcode);void LdRegImmediate(UINT32 dwOpcode);void IncRegister(UINT32 dwOpcode);void DecRegister(UINT32 dwOpcode);void IncDecRegpair(UINT32 dwOpcode);void LdRegReg(UINT32 dwOpcode);void MathOperationDirect(UINT32 dwOpcode);void JrHandler(UINT32 dwOpcode);void RetHandler(UINT32 dwOpcode);void RestartHandler(UINT32 dwOpcode);void ToRegFromHl(UINT32);void RraRlaHandler(UINT32);void LdByteRegpair(UINT32);void IncDecHLPtr(UINT32 dwOpcode);void InOutHandler(UINT32 dwOpcode);void RLCRRCRLRRSLASRASRLHandler(UINT32 dwOpcode);void BITHandler(UINT32 dwOpcode);void RESSETHandler(UINT32 dwOpcode);void PushPopOperationsIndexed(UINT32 dwOpcode);void LDILDRLDIRLDDRHandler(UINT32);void LdRegpair(UINT32 dwOpcode);void ExtendedRegIntoMemory(UINT32 dwOpcode);void NegHandler(UINT32 dwOpcode);void ExtendedInHandler(UINT32 dwOpcode);void ExtendedOutHandler(UINT32 dwOpcode);void RetIRetNHandler(UINT32 dwOcode);void AdcSbcRegpair(UINT32 dwOpcode);void CPICPDCPIRCPDRHandler(UINT32 dwOpcode);void RRDRLDHandler(UINT32 dwOpcode);void UndocRegToIndex(UINT32 dwOpcode);void UndocIndexToReg(UINT32 dwOpcode);void MathOperationIndexed(UINT32 dwOpcode);void IncDecIndexed(UINT32 dwOpcode);void DDFDCBHandler(UINT32 dwOpcode);void JPIXIYHandler(UINT32 dwOpcode);void AddIndexHandler(UINT32 dwOpcode);void SPToIndex(UINT32 dwOpcode);void LdByteToIndex(UINT32 dwOpcode);void LdRegIndexOffset(UINT32 dwOpcode);void IncDecIndexReg(UINT32 dwOpcode);void ExIndexed(UINT32 dwOpcode);void UndocIncDecIndexReg(UINT32 dwOpcode);void UndocLoadHalfIndexReg(UINT32 dwOpcode);void UndocMathIndex(UINT32 dwOpcode);void ddcbBitWise(UINT32 dwOpcode);void LdIndexPtrReg(UINT32 dwOpcode);void StoreIndexReg(UINT32 dwOpcode);void LoadIndexReg(UINT32 dwOpcode);void OTIROTDROUTIOUTDHandler(UINT32 dwOpcode);void INIRINDRINIINDHandler(UINT32 dwOpcode);struct sOp{	UINT32 bOpCode;	void (*Emitter)(UINT32);};struct sOp StandardOps[] ={	{0xd3,  InOutHandler},		// V	{0xdb,  InOutHandler},		// V	{0x0a, LdByteRegpair},		// V	{0x1a, LdByteRegpair},		// V	{0x17,  RraRlaHandler},		// V	{0x1f,  RraRlaHandler},		// V	{0x05,  DecRegister},		// V	{0x0d,  DecRegister},		// V	{0x15,  DecRegister},		// V	{0x1d,  DecRegister},		// V	{0x25,  DecRegister},		// V	{0x2d,  DecRegister},		// V	{0x3d,  DecRegister},		// V	{0x04,  IncRegister},		// V	{0x0c,  IncRegister},		// V	{0x14,  IncRegister},		// V	{0x1c,  IncRegister},		// V	{0x24,  IncRegister},		// V	{0x2c,  IncRegister},		// V	{0x3c,  IncRegister},		// V	{0x32,	RegIntoMemory},	// V	{0x22,	RegIntoMemory},	// V	{0xc3,	JpHandler},			// V	{0xc2, JpHandler},			// V	{0xca, JpHandler},			// V	{0xd2, JpHandler},			// V	{0xda, JpHandler},			// V	{0xe2, JpHandler},			// V	{0xea, JpHandler},			// V	{0xf2, JpHandler},			// V	{0xfa, JpHandler},			// V	{0x06, LdRegImmediate},		// V	{0x0e, LdRegImmediate},		// V	{0x16, LdRegImmediate},		// V	{0x1e, LdRegImmediate},		// V	{0x26, LdRegImmediate},		// V	{0x2e, LdRegImmediate},		// V	{0x3e, LdRegImmediate},		// V	{0x0b,  IncDecRegpair},		// V	{0x1b,  IncDecRegpair},		// V	{0x2b,  IncDecRegpair},		// V	{0x3b,  IncDecRegpair},		// V	{0x03,  IncDecRegpair},		// V	{0x13,  IncDecRegpair},		// V	{0x23,  IncDecRegpair},		// V	{0x33,  IncDecRegpair},		// V	{0x34,	IncDecHLPtr},		// V	{0x35,	IncDecHLPtr},		// V	{0xcb,	CBHandler},	{0xdd,	DDHandler},	{0xed,	EDHandler},	{0xfd,	FDHandler},	{0x01,	LdRegPairImmediate},	// V	{0x11,	LdRegPairImmediate},	// V	{0x21,	LdRegPairImmediate},	// V	{0x31,	LdRegPairImmediate},	// V	{0xe3,	MiscHandler},	// V	{0x2a,	MiscHandler},	// V	{0xfb,	MiscHandler},	// V	{0xf9,	MiscHandler},	// V	{0xd9,	MiscHandler},	// V	{0x76,	MiscHandler},	// V

⌨️ 快捷键说明

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