コード例 #1
0
ファイル: i8085.c プロジェクト: chrisjubb/pinmame
INLINE void execute_one(int opcode)
{
        i8085_ICount -= I.cputype ? i8085_lut_cycles_8085[opcode] : i8085_lut_cycles_8080[opcode];

	switch (opcode)
	{
		case 0x00:	/* NOP	*/
			/* no op */
			break;
		case 0x01:      /* LXI	B,nnnn */
			I.BC.w.l = ARG16();
			break;
		case 0x02: 	/* STAX B */
			WM(I.BC.d, I.AF.b.h);
			break;
		case 0x03: 	/* INX	B */
			I.BC.w.l++;
			if( I.cputype ) { if (I.BC.w.l == 0x0000) I.AF.b.l |= X5F; else I.AF.b.l &= ~X5F; }
			break;
		case 0x04: 	/* INR	B */
			M_INR(I.BC.b.h);
			break;
		case 0x05: 	/* DCR	B */
			M_DCR(I.BC.b.h);
			break;
		case 0x06: 	/* MVI	B,nn */
			M_MVI(I.BC.b.h);
			break;
		case 0x07: 	/* RLC	*/
			M_RLC;
			break;
		case 0x08:
			if( I.cputype ) {
						/* DSUB */
				M_DSUB();
			} else {
						/* NOP undocumented */
			}
			break;
		case 0x09: 	/* DAD	B */
			M_DAD(BC);
			break;
		case 0x0a: 	/* LDAX B */
			I.AF.b.h = RM(I.BC.d);
			break;
		case 0x0b: 	/* DCX	B */
			I.BC.w.l--;
			if( I.cputype ) { if (I.BC.w.l == 0xffff) I.AF.b.l |= X5F; else I.AF.b.l &= ~X5F; }
			break;
		case 0x0c: 	/* INR	C */
			M_INR(I.BC.b.l);
			break;
		case 0x0d: 	/* DCR	C */
			M_DCR(I.BC.b.l);
			break;
		case 0x0e: 	/* MVI	C,nn */
			M_MVI(I.BC.b.l);
			break;
		case 0x0f: 	/* RRC	*/
			M_RRC;
			break;

		case 0x10:
			if( I.cputype ) {
						/* ASRH */
				I.AF.b.l = (I.AF.b.l & ~CF) | (I.HL.b.l & CF);
				I.HL.w.l = (I.HL.w.l >> 1);
			} else {
						/* NOP undocumented */
			}
			break;
コード例 #2
0
ファイル: z180op.c プロジェクト: DarrenBranford/MAME4iOS
/**********************************************************
 * main opcodes
 **********************************************************/
OP(op,00) { 														} /* NOP              */
OP(op,01) { cpustate->_BC = ARG16(cpustate);											} /* LD   BC,w        */
OP(op,02) { WM(cpustate,  cpustate->_BC, cpustate->_A );											} /* LD   (BC),A      */
OP(op,03) { cpustate->_BC++;													} /* INC  BC          */
OP(op,04) { cpustate->_B = INC(cpustate, cpustate->_B);											} /* INC  B           */
OP(op,05) { cpustate->_B = DEC(cpustate, cpustate->_B);											} /* DEC  B           */
OP(op,06) { cpustate->_B = ARG(cpustate);											} /* LD   B,n         */
OP(op,07) { RLCA;													} /* RLCA             */

OP(op,08) { EX_AF;													} /* EX   AF,AF'      */
OP(op,09) { ADD16(HL,BC);											} /* ADD  HL,BC       */
OP(op,0a) { cpustate->_A = RM(cpustate, cpustate->_BC);											} /* LD   A,(BC)      */
OP(op,0b) { cpustate->_BC--;													} /* DEC  BC          */
OP(op,0c) { cpustate->_C = INC(cpustate, cpustate->_C);											} /* INC  C           */
OP(op,0d) { cpustate->_C = DEC(cpustate, cpustate->_C);											} /* DEC  C           */
OP(op,0e) { cpustate->_C = ARG(cpustate);											} /* LD   C,n         */
OP(op,0f) { RRCA;													} /* RRCA             */

OP(op,10) { cpustate->_B--; JR_COND( cpustate->_B, 0x10 );								} /* DJNZ o           */
OP(op,11) { cpustate->_DE = ARG16(cpustate);											} /* LD   DE,w        */
OP(op,12) { WM(cpustate,  cpustate->_DE, cpustate->_A );											} /* LD   (DE),A      */
OP(op,13) { cpustate->_DE++;													} /* INC  DE          */
OP(op,14) { cpustate->_D = INC(cpustate, cpustate->_D);											} /* INC  D           */
OP(op,15) { cpustate->_D = DEC(cpustate, cpustate->_D);											} /* DEC  D           */
OP(op,16) { cpustate->_D = ARG(cpustate);											} /* LD   D,n         */
OP(op,17) { RLA;													} /* RLA              */
コード例 #3
0
ファイル: z180op.c プロジェクト: broftkd/historic-mame
	}																\
}

#else

#define CHECK_BC_LOOP
#define CHECK_DE_LOOP
#define CHECK_HL_LOOP

#endif

/**********************************************************
 * main opcodes
 **********************************************************/
OP(op,00) { 														} /* NOP              */
OP(op,01) { _BC = ARG16();											} /* LD   BC,w        */
OP(op,02) { WM( _BC, _A );											} /* LD   (BC),A      */
OP(op,03) { _BC++;													} /* INC  BC          */
OP(op,04) { _B = INC(_B);											} /* INC  B           */
OP(op,05) { _B = DEC(_B);											} /* DEC  B           */
OP(op,06) { _B = ARG(); 											} /* LD   B,n         */
OP(op,07) { RLCA;													} /* RLCA             */

OP(op,08) { EX_AF;													} /* EX   AF,AF'      */
OP(op,09) { ADD16(HL,BC);											} /* ADD  HL,BC       */
OP(op,0a) { _A = RM(_BC);											} /* LD   A,(BC)      */
OP(op,0b) { _BC--; CHECK_BC_LOOP;									} /* DEC  BC          */
OP(op,0c) { _C = INC(_C);											} /* INC  C           */
OP(op,0d) { _C = DEC(_C);											} /* DEC  C           */
OP(op,0e) { _C = ARG(); 											} /* LD   C,n         */
OP(op,0f) { RRCA;													} /* RRCA             */