add sharedmem read

This commit is contained in:
optixx 2009-08-06 11:22:14 +02:00
parent 97962b8e89
commit 6ef9989320
2 changed files with 51 additions and 4 deletions

View File

@ -52,6 +52,7 @@ void shared_memory_scratchpad_tx_restore()
sram_write(SHARED_MEM_TX_LOC_PAYLOAD, scratchpad_payload);
}
void shared_memory_irq_hook()
{
irq_addr_lo = sram_read(SHARED_IRQ_LOC_LO);
@ -84,10 +85,9 @@ void shared_memory_write(uint8_t cmd, uint8_t value)
snes_bus_active();
_delay_ms(50);
avr_bus_active();
snes_irq_lo();
snes_irq_off();
//snes_irq_lo();
//snes_irq_off();
snes_lorom();
snes_wr_disable();
@ -95,3 +95,50 @@ void shared_memory_write(uint8_t cmd, uint8_t value)
shared_memory_irq_restore();
}
void shared_memory_yield()
{
snes_hirom();
snes_wr_disable();
snes_bus_active();
_delay_ms(10);
avr_bus_active();
snes_lorom();
snes_wr_disable();
}
int shared_memory_read(uint8_t *cmd, uint8_t *len,uint8_t *buffer)
{
uint8_t state;
state = sram_read(SHARED_MEM_RX_LOC_STATE);
if (state != SHARED_MEM_RX_AVR_ACK){
return 1;
}
*cmd = sram_read(SHARED_MEM_RX_LOC_CMD);
*len = sram_read(SHARED_MEM_RX_LOC_LEN);
info("Read shared memory 0x%04x=0x%02x 0x%04x=0x%02x \n",
SHARED_MEM_RX_LOC_CMD, *cmd, SHARED_MEM_RX_LOC_LEN, *len);
sram_bulk_read_buffer(SHARED_MEM_RX_LOC_PAYLOAD,buffer, *len);
sram_write(SHARED_MEM_RX_LOC_STATE, SHARED_MEM_RX_AVR_RTS);
snes_hirom();
snes_wr_disable();
snes_bus_active();
_delay_ms(50);
avr_bus_active();
//snes_irq_lo();
//snes_irq_off();
snes_lorom();
snes_wr_disable();
return 0;
}

View File

@ -55,6 +55,6 @@
#define SHARED_IRQ_HANDLER_HI 0x10
void shared_memory_write(uint8_t cmd, uint8_t value);
void shared_memory_read(uint8_t *cmd, uint8_t *len,uint8_t *buffer);
int shared_memory_read(uint8_t *cmd, uint8_t *len,uint8_t *buffer);
#endif