split memories away from Pico

saves ~3k of code on ARM because Pico no longer crosses ldr limit
This commit is contained in:
notaz 2017-10-05 02:06:21 +03:00
parent e64886365d
commit 88fd63ad10
30 changed files with 633 additions and 587 deletions

View file

@ -318,7 +318,7 @@ static void carthw_pier_write8(u32 a, u32 d)
base = d << 19;
goto do_map;
case 0x09:
SRam.changed = 1;
Pico.sv.changed = 1;
eeprom_spi_write(d);
break;
case 0x0b:
@ -449,11 +449,11 @@ void carthw_pier_startup(void)
// save EEPROM
eeprom_state = eeprom_spi_init(&eeprom_size);
SRam.flags = 0;
SRam.size = 0x10000;
SRam.data = calloc(1, SRam.size);
if (!SRam.data)
SRam.size = 0;
Pico.sv.flags = 0;
Pico.sv.size = 0x10000;
Pico.sv.data = calloc(1, Pico.sv.size);
if (!Pico.sv.data)
Pico.sv.size = 0;
carthw_pier_state[2].ptr = eeprom_state;
carthw_pier_state[2].size = eeprom_size;

View file

@ -210,7 +210,7 @@ void eeprom_spi_write(unsigned char data)
if (spi_eeprom.opcode & 0x01)
{
/* READ operation */
spi_eeprom.buffer = SRam.data[spi_eeprom.addr];
spi_eeprom.buffer = Pico.sv.data[spi_eeprom.addr];
spi_eeprom.state = READ_BYTE;
}
else
@ -266,7 +266,7 @@ void eeprom_spi_write(unsigned char data)
/* $C000-$FFFF (sector #3) is protected */
if (spi_eeprom.addr < 0xC000)
{
SRam.data[spi_eeprom.addr] = spi_eeprom.buffer;
Pico.sv.data[spi_eeprom.addr] = spi_eeprom.buffer;
}
break;
}
@ -276,7 +276,7 @@ void eeprom_spi_write(unsigned char data)
/* $8000-$FFFF (sectors #2 and #3) is protected */
if (spi_eeprom.addr < 0x8000)
{
SRam.data[spi_eeprom.addr] = spi_eeprom.buffer;
Pico.sv.data[spi_eeprom.addr] = spi_eeprom.buffer;
}
break;
}
@ -290,7 +290,7 @@ void eeprom_spi_write(unsigned char data)
default:
{
/* no sectors protected */
SRam.data[spi_eeprom.addr] = spi_eeprom.buffer;
Pico.sv.data[spi_eeprom.addr] = spi_eeprom.buffer;
break;
}
}
@ -332,7 +332,7 @@ void eeprom_spi_write(unsigned char data)
{
/* read next array byte */
spi_eeprom.addr = (spi_eeprom.addr + 1) & SIZE_MASK;
spi_eeprom.buffer = SRam.data[spi_eeprom.addr];
spi_eeprom.buffer = Pico.sv.data[spi_eeprom.addr];
}
}
}