コード例 #1
0
ファイル: as_menu.cpp プロジェクト: LibelulaV/Game_2D
void AS_Menu::Draw() {
	int row_x;
	int row_y = Screen::Instance().GetHeight() / 2 - 4 * m_font->GetTextHeight(GetModeText(0));
	Renderer::Instance().SetBlendMode(Renderer::SOLID);
	Renderer::Instance().SetColor(180, 150, 150, 255); 
	Renderer::Instance().DrawImage(m_background, 0, 0, 0, Screen::Instance().GetWidth(), Screen::Instance().GetHeight());
	DrawTitle();
	Renderer::Instance().SetBlendMode(Renderer::ALPHA);
	for (int i = 0; i < TOTAL_OPTIONS; i++) {
		row_x = Screen::Instance().GetWidth() / 2 - m_font->GetTextWidth(GetModeText(i)) / 2;
		if (m_option == i)
			Renderer::Instance().SetColor(255, 0, 127, 255);
		else 
			Renderer::Instance().SetColor(255, 255, 255, 255);
		Renderer::Instance().DrawText(m_font, GetModeText(i), row_x, row_y + m_font->GetTextHeight(GetModeText(i))*i);
		row_y += m_font->GetTextHeight(GetModeText(i));
	}
}
コード例 #2
0
ファイル: arm7.c プロジェクト: broftkd/historic-mame
void arm7_get_info(UINT32 state, cpuinfo *info)
{
	switch (state)
	{
		/* --- the following bits of info are returned as 64-bit signed integers --- */

		/* cpu implementation data */
		case CPUINFO_INT_CONTEXT_SIZE:					info->i = sizeof(ARM7);					break;
		case CPUINFO_INT_INPUT_LINES:					info->i = ARM7_NUM_LINES;				break;
		case CPUINFO_INT_DEFAULT_IRQ_VECTOR:			info->i = 0;							break;
		case CPUINFO_INT_ENDIANNESS:					info->i = CPU_IS_LE;					break;
		case CPUINFO_INT_CLOCK_DIVIDER:					info->i = 1;							break;
		case CPUINFO_INT_MIN_INSTRUCTION_BYTES:			info->i = 2;							break;
		case CPUINFO_INT_MAX_INSTRUCTION_BYTES:			info->i = 4;							break;
		case CPUINFO_INT_MIN_CYCLES:					info->i = 3;							break;
		case CPUINFO_INT_MAX_CYCLES:					info->i = 4;							break;

		case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM:	info->i = 32;					break;
		case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM:	info->i = 32;					break;
		case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM:	info->i = 0;					break;
		case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA:	info->i = 0;					break;
		case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA:	info->i = 0;					break;
		case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA:	info->i = 0;					break;
		case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO:		info->i = 0;					break;
		case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO:		info->i = 0;					break;
		case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO:		info->i = 0;					break;

		/* interrupt lines/exceptions */
		case CPUINFO_INT_INPUT_STATE + ARM7_IRQ_LINE:					info->i = ARM7.pendingIrq; break;
		case CPUINFO_INT_INPUT_STATE + ARM7_FIRQ_LINE:					info->i = ARM7.pendingFiq; break;
		case CPUINFO_INT_INPUT_STATE + ARM7_ABORT_EXCEPTION:			info->i = ARM7.pendingAbtD; break;
		case CPUINFO_INT_INPUT_STATE + ARM7_ABORT_PREFETCH_EXCEPTION:	info->i = ARM7.pendingAbtP; break;
		case CPUINFO_INT_INPUT_STATE + ARM7_UNDEFINE_EXCEPTION:			info->i = ARM7.pendingUnd; break;

		/* registers shared by all operating modes */
		case CPUINFO_INT_REGISTER + ARM7_R0:	info->i = ARM7REG( 0);							break;
		case CPUINFO_INT_REGISTER + ARM7_R1:	info->i = ARM7REG( 1);							break;
		case CPUINFO_INT_REGISTER + ARM7_R2:	info->i = ARM7REG( 2);							break;
		case CPUINFO_INT_REGISTER + ARM7_R3:	info->i = ARM7REG( 3);							break;
		case CPUINFO_INT_REGISTER + ARM7_R4:	info->i = ARM7REG( 4);							break;
		case CPUINFO_INT_REGISTER + ARM7_R5:	info->i = ARM7REG( 5);							break;
		case CPUINFO_INT_REGISTER + ARM7_R6:	info->i = ARM7REG( 6);							break;
		case CPUINFO_INT_REGISTER + ARM7_R7:	info->i = ARM7REG( 7);							break;
		case CPUINFO_INT_REGISTER + ARM7_R8:	info->i = ARM7REG( 8);							break;
		case CPUINFO_INT_REGISTER + ARM7_R9:	info->i = ARM7REG( 9);							break;
		case CPUINFO_INT_REGISTER + ARM7_R10:	info->i = ARM7REG(10);							break;
		case CPUINFO_INT_REGISTER + ARM7_R11:	info->i = ARM7REG(11);							break;
		case CPUINFO_INT_REGISTER + ARM7_R12:	info->i = ARM7REG(12);							break;
		case CPUINFO_INT_REGISTER + ARM7_R13:	info->i = ARM7REG(13);							break;
		case CPUINFO_INT_REGISTER + ARM7_R14:	info->i = ARM7REG(14);							break;
		case CPUINFO_INT_REGISTER + ARM7_R15:	info->i = ARM7REG(15);							break;

		case CPUINFO_INT_PREVIOUSPC:			info->i = 0;    /* not implemented */			break;
		case CPUINFO_INT_PC:
		case CPUINFO_INT_REGISTER + ARM7_PC:	info->i = R15;									break;
		case CPUINFO_INT_SP:					info->i = GetRegister(13);						break;

		/* FIRQ Mode Shadowed Registers */
		case CPUINFO_INT_REGISTER + ARM7_FR8:	info->i = ARM7REG(eR8_FIQ);						break;
		case CPUINFO_INT_REGISTER + ARM7_FR9:	info->i = ARM7REG(eR9_FIQ);						break;
		case CPUINFO_INT_REGISTER + ARM7_FR10:	info->i = ARM7REG(eR10_FIQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_FR11:	info->i = ARM7REG(eR11_FIQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_FR12:	info->i = ARM7REG(eR12_FIQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_FR13:	info->i = ARM7REG(eR13_FIQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_FR14:	info->i = ARM7REG(eR14_FIQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_FSPSR:	info->i = ARM7REG(eSPSR_FIQ);					break;

		/* IRQ Mode Shadowed Registers */
		case CPUINFO_INT_REGISTER + ARM7_IR13:	info->i = ARM7REG(eR13_IRQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_IR14:	info->i = ARM7REG(eR14_IRQ);					break;
		case CPUINFO_INT_REGISTER + ARM7_ISPSR:	info->i = ARM7REG(eSPSR_IRQ);					break;

		/* Supervisor Mode Shadowed Registers */
		case CPUINFO_INT_REGISTER + ARM7_SR13:	info->i = ARM7REG(eR13_SVC);					break;
		case CPUINFO_INT_REGISTER + ARM7_SR14:	info->i = ARM7REG(eR14_SVC);					break;
		case CPUINFO_INT_REGISTER + ARM7_SSPSR:	info->i = ARM7REG(eSPSR_SVC);					break;

		/* Abort Mode Shadowed Registers */
		case CPUINFO_INT_REGISTER + ARM7_AR13:	info->i = ARM7REG(eR13_ABT);					break;
		case CPUINFO_INT_REGISTER + ARM7_AR14:	info->i = ARM7REG(eR14_ABT);					break;
		case CPUINFO_INT_REGISTER + ARM7_ASPSR:	info->i = ARM7REG(eSPSR_ABT);					break;

		/* Undefined Mode Shadowed Registers */
		case CPUINFO_INT_REGISTER + ARM7_UR13:	info->i = ARM7REG(eR13_UND);					break;
		case CPUINFO_INT_REGISTER + ARM7_UR14:	info->i = ARM7REG(eR14_UND);					break;
		case CPUINFO_INT_REGISTER + ARM7_USPSR:	info->i = ARM7REG(eSPSR_UND);					break;

		/* --- the following bits of info are returned as pointers to data or functions --- */
		case CPUINFO_PTR_SET_INFO:				info->setinfo = arm7_set_info;					break;
		case CPUINFO_PTR_GET_CONTEXT:			info->getcontext = arm7_get_context;			break;
		case CPUINFO_PTR_SET_CONTEXT:			info->setcontext = arm7_set_context;			break;
		case CPUINFO_PTR_INIT:					info->init = arm7_init;							break;
		case CPUINFO_PTR_RESET:					info->reset = arm7_reset;						break;
		case CPUINFO_PTR_EXIT:					info->exit = arm7_exit;							break;
		case CPUINFO_PTR_EXECUTE:				info->execute = arm7_execute;					break;
		case CPUINFO_PTR_BURN:					info->burn = NULL;								break;
#ifdef MAME_DEBUG
		case CPUINFO_PTR_DISASSEMBLE:			info->disassemble = arm7_dasm;				    break;
#endif /* MAME_DEBUG */
		case CPUINFO_PTR_INSTRUCTION_COUNTER:	info->icount = &ARM7_ICOUNT;					break;

		/* --- the following bits of info are returned as NULL-terminated strings --- */
		case CPUINFO_STR_NAME:					strcpy(info->s, "ARM7");						break;
		case CPUINFO_STR_CORE_FAMILY:			strcpy(info->s, "Acorn Risc Machine");			break;
		case CPUINFO_STR_CORE_VERSION:			strcpy(info->s, "1.3");							break;
		case CPUINFO_STR_CORE_FILE:				strcpy(info->s, __FILE__);						break;
		case CPUINFO_STR_CORE_CREDITS:			strcpy(info->s, "Copyright 2004-2006 Steve Ellenoff, [email protected]"); break;

		case CPUINFO_STR_FLAGS:
			sprintf(info->s, "%c%c%c%c%c%c%c %s",
				(ARM7REG(eCPSR) & N_MASK) ? 'N' : '-',
				(ARM7REG(eCPSR) & Z_MASK) ? 'Z' : '-',
				(ARM7REG(eCPSR) & C_MASK) ? 'C' : '-',
				(ARM7REG(eCPSR) & V_MASK) ? 'V' : '-',
				(ARM7REG(eCPSR) & I_MASK) ? 'I' : '-',
				(ARM7REG(eCPSR) & F_MASK) ? 'F' : '-',
				(ARM7REG(eCPSR) & T_MASK) ? 'T' : '-',
				GetModeText(ARM7REG(eCPSR)));
		break;

		/* registers shared by all operating modes */
		case CPUINFO_STR_REGISTER + ARM7_PC:	sprintf(info->s, "PC  :%08x", R15 );			break;
		case CPUINFO_STR_REGISTER + ARM7_R0:	sprintf(info->s, "R0  :%08x", ARM7REG( 0) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R1:	sprintf(info->s, "R1  :%08x", ARM7REG( 1) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R2:	sprintf(info->s, "R2  :%08x", ARM7REG( 2) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R3:	sprintf(info->s, "R3  :%08x", ARM7REG( 3) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R4:	sprintf(info->s, "R4  :%08x", ARM7REG( 4) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R5:	sprintf(info->s, "R5  :%08x", ARM7REG( 5) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R6:	sprintf(info->s, "R6  :%08x", ARM7REG( 6) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R7:	sprintf(info->s, "R7  :%08x", ARM7REG( 7) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R8:	sprintf(info->s, "R8  :%08x", ARM7REG( 8) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R9:	sprintf(info->s, "R9  :%08x", ARM7REG( 9) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R10:	sprintf(info->s, "R10 :%08x", ARM7REG(10) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R11:	sprintf(info->s, "R11 :%08x", ARM7REG(11) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R12:	sprintf(info->s, "R12 :%08x", ARM7REG(12) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R13:	sprintf(info->s, "R13 :%08x", ARM7REG(13) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R14:	sprintf(info->s, "R14 :%08x", ARM7REG(14) );	break;
		case CPUINFO_STR_REGISTER + ARM7_R15:	sprintf(info->s, "R15 :%08x", ARM7REG(15) );	break;

		/* FIRQ Mode Shadowed Registers */
		case CPUINFO_STR_REGISTER + ARM7_FR8:	sprintf(info->s, "FR8 :%08x", ARM7REG(eR8_FIQ)  ); break;
		case CPUINFO_STR_REGISTER + ARM7_FR9:	sprintf(info->s, "FR9 :%08x", ARM7REG(eR9_FIQ)  ); break;
		case CPUINFO_STR_REGISTER + ARM7_FR10:	sprintf(info->s, "FR10:%08x", ARM7REG(eR10_FIQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_FR11:	sprintf(info->s, "FR11:%08x", ARM7REG(eR11_FIQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_FR12:	sprintf(info->s, "FR12:%08x", ARM7REG(eR12_FIQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_FR13:	sprintf(info->s, "FR13:%08x", ARM7REG(eR13_FIQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_FR14:	sprintf(info->s, "FR14:%08x", ARM7REG(eR14_FIQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_FSPSR:	sprintf(info->s, "FR16:%08x", ARM7REG(eSPSR_FIQ)); break;

		/* IRQ Mode Shadowed Registers */
		case CPUINFO_STR_REGISTER + ARM7_IR13:	sprintf(info->s, "IR13:%08x", ARM7REG(eR13_IRQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_IR14:	sprintf(info->s, "IR14:%08x", ARM7REG(eR14_IRQ) ); break;
		case CPUINFO_STR_REGISTER + ARM7_ISPSR:	sprintf(info->s, "IR16:%08x", ARM7REG(eSPSR_IRQ)); break;

		/* Supervisor Mode Shadowed Registers */
		case CPUINFO_STR_REGISTER + ARM7_SR13:	sprintf(info->s, "SR13:%08x", ARM7REG(eR13_SVC) ); break;
		case CPUINFO_STR_REGISTER + ARM7_SR14:	sprintf(info->s, "SR14:%08x", ARM7REG(eR14_SVC) ); break;
		case CPUINFO_STR_REGISTER + ARM7_SSPSR:	sprintf(info->s, "SR16:%08x", ARM7REG(eSPSR_SVC)); break;

		/* Abort Mode Shadowed Registers */
		case CPUINFO_STR_REGISTER + ARM7_AR13:	sprintf(info->s, "AR13:%08x", ARM7REG(eR13_ABT) ); break;
		case CPUINFO_STR_REGISTER + ARM7_AR14:	sprintf(info->s, "AR14:%08x", ARM7REG(eR14_ABT) ); break;
		case CPUINFO_STR_REGISTER + ARM7_ASPSR:	sprintf(info->s, "AR16:%08x", ARM7REG(eSPSR_ABT)); break;

		/* Undefined Mode Shadowed Registers */
		case CPUINFO_STR_REGISTER + ARM7_UR13:	sprintf(info->s, "UR13:%08x", ARM7REG(eR13_UND) ); break;
		case CPUINFO_STR_REGISTER + ARM7_UR14:	sprintf(info->s, "UR14:%08x", ARM7REG(eR14_UND) ); break;
		case CPUINFO_STR_REGISTER + ARM7_USPSR:	sprintf(info->s, "UR16:%08x", ARM7REG(eSPSR_UND)); break;
	}
}