www.pudn.com > EloGbaR1.zip > interface.c


#include  
#include  
#include   
#include "interface.h" 
#include "gbaemu.h" 
 
u32 get_arm_gpreg (u32 i)                 
{  
	return arm->gp_reg [i]; 
} 
 
void set_arm_gpreg (u32 index, u32 value) 
{  
	arm->gp_reg [index] = value; 
} 
 
u32 get_arm_cpsr (void)					  
{  
	if (CFLAG) CPSR |= C_BIT; else CPSR &= ~C_BIT;  
	if (VFLAG) CPSR |= V_BIT; else CPSR &= ~V_BIT; 
	if (NFLAG) CPSR |= N_BIT; else CPSR &= ~N_BIT; 
	if (ZFLAG) CPSR |= Z_BIT; else CPSR &= ~Z_BIT; 
 
	return arm->cpsr; 
} 
 
void set_arm_cpsr (u32 value)			  
{  
	arm->cpsr = value; 
} 
 
u32 get_bin_size (void) 
{ 
	return bin.rom_size_u32; 
} 
 
u32 get_instruction_pipe (u32 num) 
{ 
	return arm->op; 
} 
 
u32 get_new_message (char *message_destination) 
{ 
	message_string = message_destination; 
	return new_message; 
} 
 
u16 get_io_reg (u32 index) 
{ 
	return io_ram_u16 [index]; 
} 
 
void set_io_reg (u32 index, u16 value) 
{ 
	io_ram_u16 [index] = value; 
} 
 
void output_message (char *message) 
{ 
	new_message = 1; 
	if (message_string) 
		strcpy (message_string, message); 
} 
 
u32 get_rom (u32 offset) 
{ 
	return read_word (offset); 
	//return rom_pages_u32 [(offset>>16)&0x1FF] [(offset>>2)&0x3FFF]; 
} 
 
u32 get_rom_size_u32 (void) 
{ 
	return bin.rom_size_u32; 
} 
 
void dump_vram (void) 
{ 
	FILE *fp; 
 
	fp = fopen ("vram.bin", "wb"); 
 
	fwrite (vram_u8, 0x17FFF, 1, fp); 
 
	fclose (fp); 
} 
 
void setup_graphics (HWND handle) 
{ 
	int i; 
 
	hDC = GetDC(handle); 
 
	for(i=0;i>16)|((op&0xF0)>>4)](op, adress, destination); 
} 
 
void set_keyfield (u16 keyfield) 
{ 
	io_ram_u16 [0x98] = keyfield; 
} 
 
void set_blit_res (u32 x, u32 y) 
{ 
	blit_res_x = x; 
	blit_res_y = y; 
} 
 
void decode_opcode_thumb (u16 op, u32 adress, char *destination) 
{ 
	strcpy (destination, opcode_strings_t [(op>>6)]); 
} 
 
u16 get_rom_u16 (u32 offset) 
{ 
	return read_hword (offset); 
}