get/set 32 bit memory

This commit is contained in:
Kelvin Sherlock 2016-10-12 11:11:24 -04:00
parent a745f91b78
commit 91e7a1e98e
3 changed files with 32 additions and 0 deletions

View File

@ -602,6 +602,23 @@ get_memory24_c(word32 addr, int cycs)
(get_memory_c(addr+2, (int)fcycs) << 16);
}
word32
get_memory32_c(word32 addr, int cycs)
{
double fcycs;
fcycs = 0;
return get_memory_c(addr, (int)fcycs) +
(get_memory_c(addr+1, (int)fcycs) << 8) +
(get_memory_c(addr+2, (int)fcycs) << 16) +
(get_memory_c(addr+3, (int)fcycs) << 24);
}
void
set_memory_c(word32 addr, word32 val, int cycs)
{
@ -642,6 +659,17 @@ set_memory24_c(word32 addr, word32 val, int cycs)
set_memory_c(addr + 2, val >> 16, 0);
}
void
set_memory32_c(word32 addr, word32 val, int cycs)
{
set_memory_c(addr, val, 0);
set_memory_c(addr + 1, val >> 8, 0);
set_memory_c(addr + 2, val >> 16, 0);
set_memory_c(addr + 3, val >> 24, 0);
}
word32
do_adc_sbc8(word32 in1, word32 in2, word32 psr, int sub)
{

View File

@ -59,6 +59,7 @@ word32 get_itimer(void);
word32 get_memory_c(word32 addr, int cycs);
word32 get_memory16_c(word32 addr, int cycs);
word32 get_memory24_c(word32 addr, int cycs);
word32 get_memory32_c(word32 addr, int cycs);
int get_memory_asm(word32 addr, int cycs);
int get_memory16_asm(word32 addr, int cycs);
@ -69,6 +70,7 @@ int get_memory16_act_stub_asm(word32 addr, int cycs);
void set_memory_c(word32 addr, word32 val, int cycs);
void set_memory16_c(word32 addr, word32 val, int cycs);
void set_memory24_c(word32 addr, word32 val, int cycs);
void set_memory32_c(word32 addr, word32 val, int cycs);
int enter_engine(Engine_reg *ptr);
void clr_halt_act(void);

View File

@ -34,9 +34,11 @@ void set_memory24_pieces_stub(word32 addr, word32 val, double *fcycs_ptr, Fplus
word32 get_memory_c(word32 addr, int cycs);
word32 get_memory16_c(word32 addr, int cycs);
word32 get_memory24_c(word32 addr, int cycs);
word32 get_memory32_c(word32 addr, int cycs);
void set_memory_c(word32 addr, word32 val, int cycs);
void set_memory16_c(word32 addr, word32 val, int cycs);
void set_memory24_c(word32 addr, word32 val, int cycs);
void set_memory32_c(word32 addr, word32 val, int cycs);
word32 do_adc_sbc8(word32 in1, word32 in2, word32 psr, int sub);
word32 do_adc_sbc16(word32 in1, word32 in2, word32 psr, int sub);
void fixed_memory_ptrs_init(void);