Attach IC memory accessors

This commit is contained in:
meepingsnesroms
2019-08-15 16:22:23 -07:00
parent 4129e74af0
commit 7ab964efcb
5 changed files with 17 additions and 7 deletions

View File

@@ -184,6 +184,7 @@ support_palm_os5{
../../src/pxa260/pxa260Ssp.h \
../../src/pxa260/pxa260_types.h \
../../src/pxa260/pxa260_math64.h \
../../src/pxa260/pxa260Accessors.c.h \
../../src/pxa260/pxa260.h \
../../src/armv5te/os/os.h \
../../src/armv5te/asmcode.h \

View File

@@ -24,9 +24,11 @@ static uint32_t pxa260_io_read_word(uint32_t addr){
case PXA260_SSP_BASE >> 16:
out = pxa260SspReadWord(addr);
break;
case PXA260_IC_BASE >> 16:
pxa260icPrvMemAccessF(&pxa260Ic, addr, 4, false, &out);
break;
case PXA260_DMA_BASE >> 16:
case PXA260_IC_BASE >> 16:
case PXA260_RTC_BASE >> 16:
case PXA260_FFUART_BASE >> 16:
case PXA260_BTUART_BASE >> 16:
@@ -69,9 +71,11 @@ static void pxa260_io_write_word(uint32_t addr, uint32_t value){
case PXA260_SSP_BASE >> 16:
pxa260SspWriteWord(addr, value);
break;
case PXA260_IC_BASE >> 16:
pxa260icPrvMemAccessF(&pxa260Ic, addr, 4, true, &value);
break;
case PXA260_DMA_BASE >> 16:
case PXA260_IC_BASE >> 16:
case PXA260_RTC_BASE >> 16:
case PXA260_FFUART_BASE >> 16:
case PXA260_BTUART_BASE >> 16:

View File

@@ -17,7 +17,7 @@ static void pxa260icPrvHandleChanges(Pxa260ic* ic){
ic->wasIrq = nowIrq;
}
static Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Boolean write, void* buf){
Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Boolean write, void* buf){
Pxa260ic* ic = userData;
UInt32 val = 0;
@@ -76,7 +76,6 @@ static Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Bool
}
void pxa260icInit(Pxa260ic* ic){
__mem_zero(ic, sizeof(Pxa260ic));
}

View File

@@ -55,6 +55,7 @@ typedef struct{
}Pxa260ic;
Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Boolean write, void* buf);
void pxa260icInit(Pxa260ic* ic);
void pxa260icInt(Pxa260ic* ic, UInt8 intNum, Boolean raise); //interrupt caused by emulated hardware/ interrupt handled by guest

View File

@@ -46,6 +46,7 @@ static uint8_t tsc2101CurrentPage;
static uint8_t tsc2101CurrentRegister;
static bool tsc2101CommandFinished;
static bool tsc2101Read;
static bool tsc2101ChipSelect;
static uint16_t tsc2101RegisterRead(uint8_t page, uint8_t address){
@@ -54,7 +55,7 @@ static uint16_t tsc2101RegisterRead(uint8_t page, uint8_t address){
switch(combinedRegisterNumber){
case TOUCH_CONTROL_STATUS:
//simple read, no actions needed
return tsc2101Registers[combinedRegisterNumber];
//return tsc2101Registers[combinedRegisterNumber];
default:
debugLog("Unimplemented TSC2101 register read, page:0x%01X, address:0x%02X\n", page, address);
@@ -81,6 +82,7 @@ void tsc2101Reset(void){
tsc2101CurrentRegister = 0;
tsc2101CommandFinished = false;
tsc2101Read = false;
tsc2101ChipSelect = true;
//TODO: need to add all the registers here
tsc2101Registers[TOUCH_CONTROL_STATUS] = 0x8000;
@@ -99,8 +101,11 @@ void tsc2101LoadState(uint8_t* data){
}
void tsc2101SetChipSelect(bool value){
tsc2101CurrentWordBitsRemaining = 16;
tsc2101Read = false;
if(value && !tsc2101ChipSelect){
tsc2101CurrentWordBitsRemaining = 16;
tsc2101Read = false;
}
tsc2101ChipSelect = value;
}
bool tsc2101ExchangeBit(bool bit){