?? makez80.c
字號:
/* search for [Kayamon] for any changed parts. * * Changes are based from Antiriad's / [J3d!] 27raine version, * along with others in order to get MZ80 v3 to work. * * Note that my changes haven't been done to the C version of MZ80, only * the x86 one. So any porters might need to consider that. *//* Multi-Z80 32 Bit emulator *//* Copyright 1996, 1997, 1998, 1999, 2000 Neil Bradley, All rights reserved * * License agreement: * * (MZ80 Refers to both the assembly and C 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>#define VERSION "3.4"#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];static char mz80Index[50];static char mz80IndexHalfHigh[50];static char mz80IndexHalfLow[50];char majorOp[50];char procname[150];UINT32 dwGlobalLabel = 0;enum{ MZ80_ASSEMBLY_X86, MZ80_C, MZ80_UNKNOWN};UINT8 bPlain = FALSE;UINT8 bNoTiming = FALSE;UINT8 bUseStack = 0;UINT8 bCurrentMode = TIMING_REGULAR; // Current timing modeUINT8 b16BitIo = FALSE;UINT8 bThroughCallHandler = FALSE;UINT8 bOS2 = FALSE;UINT8 bWhat = MZ80_UNKNOWN;void ProcBegin(UINT32 dwOpcode);UINT8 *pbLocalReg[8] ={ "ch", "cl", "dh", "dl", "bh", "bl", "dl", "al"};UINT8 *pbLocalRegC[8] ={ "cpu.z80B", "cpu.z80C", "cpu.z80D", "cpu.z80E", "cpu.z80H", "cpu.z80L", "barf", "cpu.z80A"};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 *pbRegPairC[] ={ "cpu.z80BC", "cpu.z80DE", "cpu.z80HL", "cpu.z80sp"};UINT8 *pbFlagsC[8] ={ "(!(cpu.z80F & Z80_FLAG_ZERO))", "(cpu.z80F & Z80_FLAG_ZERO)", "(!(cpu.z80F & Z80_FLAG_CARRY))", "(cpu.z80F & Z80_FLAG_CARRY)", "(!(cpu.z80F & Z80_FLAG_OVERFLOW_PARITY))", "(cpu.z80F & Z80_FLAG_OVERFLOW_PARITY)", "(!(cpu.z80F & Z80_FLAG_SIGN))", "(cpu.z80F & Z80_FLAG_SIGN)"};UINT8 *pbMathReg[8] ={ "ch", "cl", "byte [_z80de + 1]", "byte [_z80de]", "bh", "bl", "INVALID", "al"};UINT8 *pbMathRegC[8] ={ "cpu.z80B", "cpu.z80C", "cpu.z80D", "cpu.z80E", "cpu.z80H", "cpu.z80L", "bTemp", "cpu.z80A"};UINT8 *pbRegPairs[4] = { "cx", // BC "word [_z80de]", // DE "bx", // HL "word [_z80sp]" // SP};UINT8 *pbRegPairsC[4] = { "cpu.z80BC", // BC "cpu.z80DE", // DE "cpu.z80HL", // HL "cpu.z80sp" // SP};UINT8 *pbPopRegPairs[4] = { "cx", // BC "word [_z80de]", // DE "bx", // HL "ax" // SP};UINT8 *pbPopRegPairC[4] = { "cpu.z80BC", "cpu.z80DE", "cpu.z80HL", "cpu.z80AF"};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, 0x0c, 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, 0x11, 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, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -