diff --git a/avr/usbload/command.c b/avr/usbload/command.c index 80abba7..d0ee599 100644 --- a/avr/usbload/command.c +++ b/avr/usbload/command.c @@ -18,7 +18,6 @@ * ===================================================================================== */ -#include #include #include #include @@ -35,7 +34,7 @@ extern usb_transaction_t usb_trans; -extern system_t system; +extern system_t my_system; extern const char *_rom[]; extern const char _rom01[]; diff --git a/avr/usbload/irq.c b/avr/usbload/irq.c index 8b1a423..0c9b6c4 100644 --- a/avr/usbload/irq.c +++ b/avr/usbload/irq.c @@ -23,7 +23,6 @@ #include #include -#include #include /* for sei() */ #include @@ -35,7 +34,7 @@ #include "sram.h" #include "system.h" -extern system_t system; +extern system_t my_system; void (*jump_to_app) (void) = 0x0000; @@ -45,7 +44,7 @@ void irq_init() PCMSK3 |= (1 << PCINT27); PCICR |= (1 << PCIE3); sei(); - system.reset_irq = RESET_IRQ_ON; + my_system.reset_irq = RESET_IRQ_ON; } void irq_stop() @@ -53,20 +52,20 @@ void irq_stop() cli(); PCMSK3 &= ~(1 << PCINT27); sei(); - system.reset_irq = RESET_IRQ_OFF; + my_system.reset_irq = RESET_IRQ_OFF; } void leave_application(void) { cli(); usbDeviceDisconnect(); - system.avr_reset_count++; + my_system.avr_reset_count++; wdt_enable(WDTO_15MS); while (1); } -ISR(SIG_PIN_CHANGE3) +ISR(PCINT3_vect) { if (snes_reset_test()) { info_P(PSTR("Catch SNES reset button\n")); diff --git a/avr/usbload/main.c b/avr/usbload/main.c index 7be7d64..4d7b07d 100644 --- a/avr/usbload/main.c +++ b/avr/usbload/main.c @@ -20,7 +20,6 @@ -#include #include #include #include @@ -54,7 +53,7 @@ #ifndef NO_DEBUG extern FILE uart_stdout; #endif -extern system_t system; +extern system_t my_system; uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC); diff --git a/avr/usbload/shell.c b/avr/usbload/shell.c index bdaf949..a2baf80 100644 --- a/avr/usbload/shell.c +++ b/avr/usbload/shell.c @@ -42,7 +42,7 @@ #include "system.h" -extern system_t system; +extern system_t my_system; const char STR_ROM[] PROGMEM = "Rom"; const char STR_RAM[] PROGMEM = "Sram"; @@ -219,7 +219,7 @@ enum cmds { CMD_HELP }; -uint8_t cmdlist[][CMD_HELP] PROGMEM = { +const uint8_t cmdlist[][CMD_HELP] PROGMEM = { {"DUMP"}, {"DUMPVEC"}, {"DUMPHEADER"}, @@ -339,7 +339,7 @@ void shell_run(void) } } else if (strcmp_P((char *) t, (PGM_P) cmdlist[CMD_DUMPVEC]) == 0) { uint16_t offset; - if (system.rom_mode == LOROM) + if (my_system.rom_mode == LOROM) offset = 0x8000; else offset = 0x0000; @@ -359,7 +359,7 @@ void shell_run(void) } else if (strcmp_P((char *) t, (PGM_P) cmdlist[CMD_DUMPHEADER]) == 0) { - if (system.rom_mode == LOROM) + if (my_system.rom_mode == LOROM) offset = 0x8000; else offset = 0x0000; diff --git a/avr/usbload/system.c b/avr/usbload/system.c index b529897..9792cab 100644 --- a/avr/usbload/system.c +++ b/avr/usbload/system.c @@ -21,7 +21,6 @@ #include #include -#include #include /* for _delay_ms() */ #include @@ -35,32 +34,32 @@ #include "requests.h" #include "irq.h" -system_t system; +system_t my_system; void system_init(void) { snes_reset_hi(); snes_reset_off(); - system.reset_line = RESET_OFF; + my_system.reset_line = RESET_OFF; snes_irq_hi(); snes_irq_off(); - system.irq_line = IRQ_OFF; + my_system.irq_line = IRQ_OFF; snes_wr_disable(); - system.wr_line = WR_DISABLE; + my_system.wr_line = WR_DISABLE; avr_bus_active(); - system.bus_mode = MODE_AVR; + my_system.bus_mode = MODE_AVR; snes_lorom(); - system.rom_mode = LOROM; + my_system.rom_mode = LOROM; - system.snes_reset_count = 0; - system.avr_reset_count = 0; + my_system.snes_reset_count = 0; + my_system.avr_reset_count = 0; - system.reset_irq = RESET_IRQ_OFF; + my_system.reset_irq = RESET_IRQ_OFF; } @@ -74,7 +73,7 @@ void system_send_snes_reset() snes_reset_hi(); snes_reset_off(); sei(); - system.snes_reset_count++; + my_system.snes_reset_count++; } void system_send_snes_irq() @@ -89,13 +88,13 @@ void system_send_snes_irq() void system_snes_irq_off() { snes_irq_off(); - system.irq_line = IRQ_OFF; + my_system.irq_line = IRQ_OFF; } void system_snes_irq_on() { snes_irq_on(); - system.irq_line = IRQ_ON; + my_system.irq_line = IRQ_ON; } @@ -103,27 +102,27 @@ void system_set_bus_avr() { avr_bus_active(); info_P(PSTR("Activate AVR bus\n")); - system.bus_mode = MODE_AVR; + my_system.bus_mode = MODE_AVR; } void system_set_wr_disable() { snes_wr_disable(); - system.wr_line = WR_DISABLE; + my_system.wr_line = WR_DISABLE; info_P(PSTR("Disable SNES WR\n")); } void system_set_wr_enable() { snes_wr_enable(); - system.wr_line = WR_ENABLE; + my_system.wr_line = WR_ENABLE; info_P(PSTR("Enable SNES WR\n")); } void system_set_bus_snes() { snes_bus_active(); - system.bus_mode = MODE_SNES; + my_system.bus_mode = MODE_SNES; info_P(PSTR("Activate SNES bus\n")); } @@ -131,11 +130,11 @@ void system_set_rom_mode(usb_transaction_t * usb_trans) { if (usb_trans->req_bank_size == 0x8000) { snes_lorom(); - system.rom_mode = LOROM; + my_system.rom_mode = LOROM; info_P(PSTR("Set SNES lorom \n")); } else { snes_hirom(); - system.rom_mode = HIROM; + my_system.rom_mode = HIROM; info_P(PSTR("Set SNES hirom \n")); } } @@ -143,7 +142,7 @@ void system_set_rom_mode(usb_transaction_t * usb_trans) void system_set_rom_lorom() { snes_lorom(); - system.rom_mode = LOROM; + my_system.rom_mode = LOROM; info_P(PSTR("Set SNES lorom \n")); } @@ -151,7 +150,7 @@ void system_set_rom_lorom() void system_set_rom_hirom() { snes_hirom(); - system.rom_mode = HIROM; + my_system.rom_mode = HIROM; info_P(PSTR("Set SNES hirom \n")); } @@ -181,13 +180,13 @@ char *system_status_rom(uint8_t val) void system_status() { - info_P(PSTR("\nBus Mode %s\n"), system_status_bus(system.bus_mode)); - info_P(PSTR("Rom Mode %s\n"), system_status_rom(system.rom_mode)); + info_P(PSTR("\nBus Mode %s\n"), system_status_bus(my_system.bus_mode)); + info_P(PSTR("Rom Mode %s\n"), system_status_rom(my_system.rom_mode)); info_P(PSTR("Reset Line %s\n"), - system_status_helper(system.reset_line)); - info_P(PSTR("IRQ Line %s\n"), system_status_helper(system.irq_line)); - info_P(PSTR("WR Line %s\n"), system_status_helper(system.wr_line)); - info_P(PSTR("Reset IRQ %s\n"), system_status_helper(system.reset_irq)); - info_P(PSTR("SNES Reset 0x%02x\n"), system.snes_reset_count); - info_P(PSTR("AVR Reset 0x%02x\n"), system.avr_reset_count); + system_status_helper(my_system.reset_line)); + info_P(PSTR("IRQ Line %s\n"), system_status_helper(my_system.irq_line)); + info_P(PSTR("WR Line %s\n"), system_status_helper(my_system.wr_line)); + info_P(PSTR("Reset IRQ %s\n"), system_status_helper(my_system.reset_irq)); + info_P(PSTR("SNES Reset 0x%02x\n"), my_system.snes_reset_count); + info_P(PSTR("AVR Reset 0x%02x\n"), my_system.avr_reset_count); } diff --git a/avr/usbload/timer.c b/avr/usbload/timer.c index cbb2b1a..ebc72a3 100644 --- a/avr/usbload/timer.c +++ b/avr/usbload/timer.c @@ -24,7 +24,6 @@ #include #include #include -#include #include /* for sei() */ #include "debug.h" @@ -53,8 +52,7 @@ extern uint8_t snes_reset_line; uint16_t prescaler; uint16_t volatile second; // count seconds - -ISR(SIG_OUTPUT_COMPARE1A) +ISR(TIMER1_COMPA_vect) {