mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
split memories away from Pico
saves ~3k of code on ARM because Pico no longer crosses ldr limit
This commit is contained in:
parent
e64886365d
commit
88fd63ad10
30 changed files with 633 additions and 587 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue