add system struct and modify functions
This commit is contained in:
parent
650b182ab4
commit
1d0eae3aec
@ -56,11 +56,6 @@ extern FILE uart_stdout;
|
||||
|
||||
uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC | DEBUG_SHM );
|
||||
|
||||
typedef struct system_t {
|
||||
uint8_t bus_mode;
|
||||
uint8_t rom_mode;
|
||||
uint8_t req_bank;
|
||||
} system_t;
|
||||
|
||||
usb_transaction_t usb_trans;
|
||||
|
||||
|
||||
@ -33,14 +33,40 @@
|
||||
#include "debug.h"
|
||||
#include "info.h"
|
||||
#include "requests.h"
|
||||
#include "irq.h"
|
||||
|
||||
|
||||
|
||||
typedef struct system_t {
|
||||
enum bus_mode_e { MODE_AVR, MODE_SNES } bus_mode;
|
||||
enum rom_mode_e { LOROM, HOROM } rom_mode;
|
||||
enum reset_line_e { RESET_OFF, RESET_ON } reset_line;
|
||||
enum irq_line_e { IRQ_ON, IRQ_OFF } irq_line;
|
||||
enum wr_line_e { WR_DISABLE, WR_ENABLE } wr_line;
|
||||
|
||||
uint8_t reset_count;
|
||||
} system_t;
|
||||
|
||||
system_t system;
|
||||
|
||||
void system_init(void)
|
||||
{
|
||||
snes_reset_hi();
|
||||
snes_reset_off();
|
||||
system.reset_line = RESET_OFF;
|
||||
|
||||
snes_irq_hi();
|
||||
snes_irq_off();
|
||||
system.irq_line = IRQ_OFF;
|
||||
|
||||
system.reset_count = 0;
|
||||
|
||||
snes_wr_disable();
|
||||
system.wr_line = WR_DISABLE;
|
||||
|
||||
avr_bus_active();
|
||||
system.bus_mode = MODE_AVR;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -54,6 +80,7 @@ void system_reset()
|
||||
snes_reset_hi();
|
||||
snes_reset_off();
|
||||
sei();
|
||||
system.reset_count++;
|
||||
}
|
||||
|
||||
void system_send_irq()
|
||||
@ -67,19 +94,24 @@ void system_send_irq()
|
||||
|
||||
void system_bus_avr()
|
||||
{
|
||||
info_P(PSTR("Activate AVR bus\n"));
|
||||
avr_bus_active();
|
||||
info_P(PSTR("Disable SNES WR\n"));
|
||||
info_P(PSTR("Activate AVR bus\n"));
|
||||
system.bus_mode = MODE_AVR;
|
||||
snes_wr_disable();
|
||||
system.wr_line = WR_DISABLE;
|
||||
info_P(PSTR("Disable SNES WR\n"));
|
||||
}
|
||||
|
||||
void system_bus_snes()
|
||||
{
|
||||
snes_wr_disable();
|
||||
system.wr_line = WR_DISABLE;
|
||||
info_P(PSTR("Disable SNES WR\n"));
|
||||
snes_bus_active();
|
||||
system.bus_mode = MODE_SNES;
|
||||
info_P(PSTR("Activate SNES bus\n"));
|
||||
irq_stop();
|
||||
|
||||
}
|
||||
|
||||
void system_rom_mode(usb_transaction_t *usb_trans)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user