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

📄 codes.h

📁 ESS3890+SL原代码(1*16内存)
💻 H
📖 第 1 页 / 共 2 页
字号:
case DEC_H:     ICount -= 4;     M_DEC(R->HL.B.h);break;case DEC_L:     ICount -= 4;     M_DEC(R->HL.B.l);break;case DEC_A:     ICount -= 4;     M_DEC(R->AF.B.h);break;case DEC_xHL:     ICount -= 12;     I=RdZ80(R->HL.W);M_DEC(I);WrZ80(R->HL.W,I);break;case INC_B:     ICount -= 4;     M_INC(R->BC.B.h);break;case INC_C:     ICount -= 4;     M_INC(R->BC.B.l);break;case INC_D:     ICount -= 4;     M_INC(R->DE.B.h);break;case INC_E:     ICount -= 4;     M_INC(R->DE.B.l);break;case INC_H:     ICount -= 4;     M_INC(R->HL.B.h);break;case INC_L:     ICount -= 4;     M_INC(R->HL.B.l);break;case INC_A:     ICount -= 4;     M_INC(R->AF.B.h);break;case INC_xHL:     ICount -= 12;     I=RdZ80(R->HL.W);M_INC(I);WrZ80(R->HL.W,I);break;case RLCA:     ICount -= 4;  I=R->AF.B.h>>7;  R->AF.B.h=(R->AF.B.h<<1)|I;  R->AF.B.l=I;  break;case RLA:     ICount -= 4;  I=R->AF.B.h>>7;  R->AF.B.h=(R->AF.B.h<<1)|(R->AF.B.l&0x01);  R->AF.B.l=I;  break;case RRCA:  ICount -= 4;  I=R->AF.B.h&0x01;  R->AF.B.h=(R->AF.B.h>>1)|(I<<7);  R->AF.B.l=I;  break;case RRA:  ICount -= 4;  I=R->AF.B.h&0x01;  R->AF.B.h=(R->AF.B.h>>1)|(R->AF.B.l<<7);  R->AF.B.l=I;  break;case RST00:     ICount -= 16;     M_RST(0x0000);break;case RST08:     ICount -= 16;     M_RST(0x0008);break;case RST10:     ICount -= 16;     M_RST(0x0010);break;case RST18:     ICount -= 16;     M_RST(0x0018);break;case RST20:     ICount -= 16;     M_RST(0x0020);break;case RST28:     ICount -= 16;     M_RST(0x0028);break;case RST30:     ICount -= 16;     M_RST(0x0030);break;case RST38:     ICount -= 16;     M_RST(0x0038);break;case PUSH_BC:     ICount -= 16;     M_PUSH(BC);break;case PUSH_DE:     ICount -= 16;     M_PUSH(DE);break;case PUSH_HL:     ICount -= 16;     M_PUSH(HL);break;case PUSH_AF:     ICount -= 16;     WrZ80(--R->SP.W,R->AF.B.h);     WrZ80(--R->SP.W,PZ80toGB[R->AF.B.l]);     break;case POP_BC:     ICount -= 12;     M_POP(BC);break;case POP_DE:     ICount -= 12;     M_POP(DE);break;case POP_HL:     ICount -= 12;     M_POP(HL);break;case POP_AF:     ICount -= 12;     R->AF.B.l=PGBtoZ80[RdZ80(R->SP.W++)];               R->AF.B.h=RdZ80(R->SP.W++);               break;case JP:     ICount -= 16;     M_JP;break;case JR:     ICount -= 8;     M_JR;break;case CALL: M_CALL;break;case RET:     ICount -= 16;     M_RET;break;case SCF:     ICount -= 12;     S(C_FLAG);R(/*N_FLAG|H_FLAG*/0x12);break;case CPL:     ICount -= 4;     R->AF.B.h=~R->AF.B.h;S(/*N_FLAG|H_FLAG*/0x12);break;case NOP:     ICount -= 4;     break;case STOP:     ICount -= 4;  /* High speed switch */  if(HIGHSPD&0x01)  {    R->IPeriod=HIGHSPD&0x80? R->IPeriod/2:R->IPeriod*2;    HIGHSPD=(HIGHSPD&0xFE)^0x80;    RPC.W++;    break;  }  /* Wait for a keypress */  if((JOYPAD&0x0F)==0x0F)  {    RPC.W--;    ICount=0;  }  break;case HALT:  /* GameBoy CPU skips HALT with interrupts disabled */  /* In this case, it may also execute the opcode    */  /* after HALT twice, but we do not emulate it here */  /* When HALT is used right after EI, it still      */  /* HALTs the CPU (see Byelorussian Mig21 demo)     */  ICount -= 4;  if(R->IFF&0x21)  {    RPC.W--;    R->IFF|=0x80;    ICount=0;  }  break;case DI:   ICount -= 4;  /* If EI pending, cancel it */  if(R->IFF&0x20) ICount+=R->IBackup-1;  /* Interrupts off, pending EI off */  R->IFF&=0xDE;  break;case EI:     ICount -= 4;  if(!(R->IFF&0x01))  {    R->IFF|=0x20;    R->IBackup=ICount;    ICount=1;  }  break;case CCF:     ICount -= 4;  R->AF.B.l^=C_FLAG;R(/*N_FLAG|H_FLAG*/0x12);  R->AF.B.l|=R->AF.B.l&C_FLAG? 0:H_FLAG;  break;case LD_B_B:     ICount -= 4;     R->BC.B.h=R->BC.B.h;break;case LD_C_B:     ICount -= 4;     R->BC.B.l=R->BC.B.h;break;case LD_D_B:     ICount -= 4;     R->DE.B.h=R->BC.B.h;break;case LD_E_B:     ICount -= 4;     R->DE.B.l=R->BC.B.h;break;case LD_H_B:     ICount -= 4;     R->HL.B.h=R->BC.B.h;break;case LD_L_B:     ICount -= 4;     R->HL.B.l=R->BC.B.h;break;case LD_A_B:     ICount -= 4;     R->AF.B.h=R->BC.B.h;break;case LD_xHL_B:     ICount -= 8;     WrZ80(R->HL.W,R->BC.B.h);break;case LD_B_C:     ICount -= 4;     R->BC.B.h=R->BC.B.l;break;case LD_C_C:     ICount -= 4;     R->BC.B.l=R->BC.B.l;break;case LD_D_C:     ICount -= 4;     R->DE.B.h=R->BC.B.l;break;case LD_E_C:     ICount -= 4;     R->DE.B.l=R->BC.B.l;break;case LD_H_C:     ICount -= 4;     R->HL.B.h=R->BC.B.l;break;case LD_L_C:     ICount -= 4;     R->HL.B.l=R->BC.B.l;break;case LD_A_C:     ICount -= 4;     R->AF.B.h=R->BC.B.l;break;case LD_xHL_C:     ICount -= 8;     WrZ80(R->HL.W,R->BC.B.l);break;case LD_B_D:     ICount -= 4;     R->BC.B.h=R->DE.B.h;break;case LD_C_D:     ICount -= 4;     R->BC.B.l=R->DE.B.h;break;case LD_D_D:     ICount -= 4;     R->DE.B.h=R->DE.B.h;break;case LD_E_D:     ICount -= 4;     R->DE.B.l=R->DE.B.h;break;case LD_H_D:     ICount -= 4;     R->HL.B.h=R->DE.B.h;break;case LD_L_D:     ICount -= 4;     R->HL.B.l=R->DE.B.h;break;case LD_A_D:     ICount -= 4;     R->AF.B.h=R->DE.B.h;break;case LD_xHL_D:     ICount -= 8;     WrZ80(R->HL.W,R->DE.B.h);break;case LD_B_E:     ICount -= 4;     R->BC.B.h=R->DE.B.l;break;case LD_C_E:     ICount -= 4;     R->BC.B.l=R->DE.B.l;break;case LD_D_E:     ICount -= 4;     R->DE.B.h=R->DE.B.l;break;case LD_E_E:     ICount -= 4;     R->DE.B.l=R->DE.B.l;break;case LD_H_E:     ICount -= 4;     R->HL.B.h=R->DE.B.l;break;case LD_L_E:     ICount -= 4;     R->HL.B.l=R->DE.B.l;break;case LD_A_E:     ICount -= 4;     R->AF.B.h=R->DE.B.l;break;case LD_xHL_E:     ICount -= 8;     WrZ80(R->HL.W,R->DE.B.l);break;case LD_B_H:     ICount -= 4;     R->BC.B.h=R->HL.B.h;break;case LD_C_H:     ICount -= 4;     R->BC.B.l=R->HL.B.h;break;case LD_D_H:     ICount -= 4;     R->DE.B.h=R->HL.B.h;break;case LD_E_H:     ICount -= 4;     R->DE.B.l=R->HL.B.h;break;case LD_H_H:     ICount -= 4;     R->HL.B.h=R->HL.B.h;break;case LD_L_H:     ICount -= 4;     R->HL.B.l=R->HL.B.h;break;case LD_A_H:     ICount -= 4;     R->AF.B.h=R->HL.B.h;break;case LD_xHL_H:     ICount -= 8;     WrZ80(R->HL.W,R->HL.B.h);break;case LD_B_L:     ICount -= 4;     R->BC.B.h=R->HL.B.l;break;case LD_C_L:     ICount -= 4;     R->BC.B.l=R->HL.B.l;break;case LD_D_L:     ICount -= 4;     R->DE.B.h=R->HL.B.l;break;case LD_E_L:     ICount -= 4;     R->DE.B.l=R->HL.B.l;break;case LD_H_L:     ICount -= 4;     R->HL.B.h=R->HL.B.l;break;case LD_L_L:     ICount -= 4;     R->HL.B.l=R->HL.B.l;break;case LD_A_L:     ICount -= 4;     R->AF.B.h=R->HL.B.l;break;case LD_xHL_L:     ICount -= 8;     WrZ80(R->HL.W,R->HL.B.l);break;case LD_B_A:     ICount -= 4;     R->BC.B.h=R->AF.B.h;break;case LD_C_A:     ICount -= 4;     R->BC.B.l=R->AF.B.h;break;case LD_D_A:     ICount -= 4;     R->DE.B.h=R->AF.B.h;break;case LD_E_A:     ICount -= 4;     R->DE.B.l=R->AF.B.h;break;case LD_H_A:     ICount -= 4;     R->HL.B.h=R->AF.B.h;break;case LD_L_A:     ICount -= 4;     R->HL.B.l=R->AF.B.h;break;case LD_A_A:     ICount -= 4;     R->AF.B.h=R->AF.B.h;break;case LD_xHL_A:     ICount -= 8;     WrZ80(R->HL.W,R->AF.B.h);break;case LD_xBC_A:     ICount -= 8;     WrZ80(R->BC.W,R->AF.B.h);break;case LD_xDE_A:     ICount -= 8;     WrZ80(R->DE.W,R->AF.B.h);break;case LD_B_xHL:     ICount -= 8;     R->BC.B.h=RdZ80(R->HL.W);break;case LD_C_xHL:     ICount -= 8;     R->BC.B.l=RdZ80(R->HL.W);break;case LD_D_xHL:     ICount -= 8;     R->DE.B.h=RdZ80(R->HL.W);break;case LD_E_xHL:     ICount -= 8;     R->DE.B.l=RdZ80(R->HL.W);break;case LD_H_xHL:     ICount -= 8;     R->HL.B.h=RdZ80(R->HL.W);break;case LD_L_xHL:     ICount -= 8;     R->HL.B.l=RdZ80(R->HL.W);break;case LD_A_xHL:     ICount -= 8;     R->AF.B.h=RdZ80(R->HL.W);break;case LD_B_BYTE:     ICount -= 8;     R->BC.B.h=RdZ80(RPC.W++);break;case LD_C_BYTE:     ICount -= 8;     R->BC.B.l=RdZ80(RPC.W++);break;case LD_D_BYTE:     ICount -= 8;     R->DE.B.h=RdZ80(RPC.W++);break;case LD_E_BYTE:     ICount -= 8;     R->DE.B.l=RdZ80(RPC.W++);break;case LD_H_BYTE:     ICount -= 8;     R->HL.B.h=RdZ80(RPC.W++);break;case LD_L_BYTE:     ICount -= 8;      R->HL.B.l=RdZ80(RPC.W++);break;case LD_A_BYTE:     ICount -= 8;     R->AF.B.h=RdZ80(RPC.W++);break;case LD_xHL_BYTE:     ICount -= 12;     WrZ80(R->HL.W,RdZ80(RPC.W++));break;case DAA:  ICount -= 4;  J.W=R->AF.B.h;  if(R->AF.B.l&C_FLAG) J.W|=256;  if(R->AF.B.l&H_FLAG) J.W|=512;  if(R->AF.B.l&N_FLAG) J.W|=1024;  R->AF.W=PDAATable[J.W];  break;default:  ICount-=4;  break;#endif

⌨️ 快捷键说明

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