diff --git a/menu.cpp b/menu.cpp index cac136e..1834f51 100644 --- a/menu.cpp +++ b/menu.cpp @@ -784,7 +784,6 @@ void HandleUI(void) switch (user_io_core_type()) { case CORE_TYPE_MIST: - case CORE_TYPE_MINIMIG2: case CORE_TYPE_8BIT: case CORE_TYPE_SHARPMZ: case CORE_TYPE_ARCHIE: @@ -1081,7 +1080,6 @@ void HandleUI(void) { SelectFile(0, SCANO_CORES, MENU_CORE_FILE_SELECTED1, MENU_NONE1); } - else if (user_io_core_type() == CORE_TYPE_MINIMIG2) menustate = MENU_MAIN1; else if (user_io_core_type() == CORE_TYPE_MIST) menustate = MENU_MIST_MAIN1; else if (user_io_core_type() == CORE_TYPE_ARCHIE) menustate = MENU_ARCHIE_MAIN1; else { @@ -1090,6 +1088,10 @@ void HandleUI(void) OsdCoreNameSet(""); SelectFile(0, SCANO_CORES, MENU_CORE_FILE_SELECTED1, MENU_SYSTEM1); } + else if (is_minimig()) + { + menustate = MENU_MAIN1; + } else { if ((get_key_mod() & (LGUI | RGUI)) && !is_x86_core() && has_menu()) //Win+Menu @@ -1695,7 +1697,7 @@ void HandleUI(void) } m = 0; - if (user_io_core_type() == CORE_TYPE_MINIMIG2) + if (is_minimig()) { m = 1; menumask &= ~0x100; @@ -1852,10 +1854,6 @@ void HandleUI(void) { // go back to core requesting this menu switch (user_io_core_type()) { - case CORE_TYPE_MINIMIG2: - menusub = 0; - menustate = MENU_MAIN1; - break; case CORE_TYPE_MIST: menusub = 5; menustate = MENU_MIST_MAIN1; @@ -1865,8 +1863,16 @@ void HandleUI(void) menustate = MENU_ARCHIE_MAIN1; break; case CORE_TYPE_8BIT: - menusub = 0; - menustate = MENU_8BIT_MAIN1; + if (is_minimig()) + { + menusub = 0; + menustate = MENU_MAIN1; + } + else + { + menusub = 0; + menustate = MENU_8BIT_MAIN1; + } break; case CORE_TYPE_SHARPMZ: menusub = menusub_last; @@ -2033,11 +2039,8 @@ void HandleUI(void) else if (right) { // go back to core requesting this menu - switch (user_io_core_type()) { - case CORE_TYPE_MINIMIG2: - menusub = 0; - menustate = MENU_MAIN1; - break; + switch (user_io_core_type()) + { case CORE_TYPE_MIST: menusub = 5; menustate = MENU_MIST_MAIN1; @@ -2047,8 +2050,16 @@ void HandleUI(void) menustate = MENU_ARCHIE_MAIN1; break; case CORE_TYPE_8BIT: - menusub = 0; - menustate = MENU_8BIT_MAIN1; + if (is_minimig()) + { + menusub = 0; + menustate = MENU_MAIN1; + } + else + { + menusub = 0; + menustate = MENU_8BIT_MAIN1; + } break; case CORE_TYPE_SHARPMZ: menusub = menusub_last; @@ -2313,7 +2324,6 @@ void HandleUI(void) OsdWrite(12, s, 0, 0, 1); s[0] = 0; - if (user_io_core_type() != CORE_TYPE_MINIMIG2) { int len = strlen(OsdCoreName()); if (len > 30) len = 30; @@ -3226,7 +3236,7 @@ void HandleUI(void) /******************************************************************/ case MENU_RESET1: m = 0; - if (user_io_core_type() == CORE_TYPE_MINIMIG2) m = 1; + if (is_minimig()) m = 1; helptext = helptexts[HELPTEXT_NONE]; OsdSetTitle("Reset", 0); menumask = 0x03; // Yes / No @@ -3246,7 +3256,7 @@ void HandleUI(void) case MENU_RESET2: m = 0; - if (user_io_core_type() == CORE_TYPE_MINIMIG2) m = 1; + if (is_minimig()) m = 1; if (user_io_core_type() == CORE_TYPE_SHARPMZ) m = 2; if (select && menusub == 0) diff --git a/spi.cpp b/spi.cpp index 7fd9e05..541718b 100644 --- a/spi.cpp +++ b/spi.cpp @@ -190,27 +190,6 @@ void spi_osd_cmd8(uint8_t cmd, uint8_t parm) DisableOsd(); } -void spi_osd_cmd16(uint8_t cmd, uint16_t parm) -{ - EnableOsd(); - spi8(cmd); - spi_w(parm); - DisableOsd(); -} - -void spi_osd_cmd32_cont(uint8_t cmd, uint32_t parm) -{ - EnableOsd(); - spi8(cmd); - spi32(parm); -} - -void spi_osd_cmd32(uint8_t cmd, uint32_t parm) -{ - spi_osd_cmd32_cont(cmd, parm); - DisableOsd(); -} - void spi_uio_cmd32le_cont(uint8_t cmd, uint32_t parm) { EnableIO(); diff --git a/spi.h b/spi.h index 1120af5..4dc7a7d 100644 --- a/spi.h +++ b/spi.h @@ -49,9 +49,6 @@ void spi_osd_cmd_cont(uint8_t cmd); void spi_osd_cmd(uint8_t cmd); void spi_osd_cmd8_cont(uint8_t cmd, uint8_t parm); void spi_osd_cmd8(uint8_t cmd, uint8_t parm); -void spi_osd_cmd16(uint8_t cmd, uint16_t parm); -void spi_osd_cmd32_cont(uint8_t cmd, uint32_t parm); -void spi_osd_cmd32(uint8_t cmd, uint32_t parm); /* User_io related SPI functions */ uint8_t spi_uio_cmd_cont(uint8_t cmd); diff --git a/user_io.cpp b/user_io.cpp index 29e1098..9687f39 100644 --- a/user_io.cpp +++ b/user_io.cpp @@ -171,11 +171,6 @@ unsigned char user_io_core_type() return core_type; } -char is_minimig() -{ - return(core_type == CORE_TYPE_MINIMIG2); -} - char is_archie() { return(core_type == CORE_TYPE_ARCHIE); @@ -210,9 +205,6 @@ const char *user_io_get_core_name_ex() { switch (user_io_core_type()) { - case CORE_TYPE_MINIMIG2: - return "MINIMIG"; - case CORE_TYPE_MIST: return "ST"; @@ -271,6 +263,13 @@ char is_neogeo_core() return (is_neogeo_type == 1); } +static int is_minimig_type = 0; +char is_minimig() +{ + if (!is_minimig_type) is_minimig_type = strcasecmp(core_name, "minimig") ? 2 : 1; + return (is_minimig_type == 1); +} + static int is_no_type = 0; static int disable_osd = 0; char has_menu() @@ -290,6 +289,7 @@ static void user_io_read_core_name() is_cpc_type = 0; is_zx81_type = 0; is_neogeo_type = 0; + is_minimig_type = 0; core_name[0] = 0; // get core name @@ -678,7 +678,6 @@ void user_io_init(const char *path) } if ((core_type != CORE_TYPE_DUMB) && - (core_type != CORE_TYPE_MINIMIG2) && (core_type != CORE_TYPE_MIST) && (core_type != CORE_TYPE_ARCHIE) && (core_type != CORE_TYPE_8BIT) && @@ -698,7 +697,6 @@ void user_io_init(const char *path) // set core name. This currently only sets a name for the 8 bit cores user_io_read_core_name(); - spi_uio_cmd16(UIO_SET_MEMSZ, sdram_sz(-1)); // send a reset @@ -729,12 +727,6 @@ void user_io_init(const char *path) puts("Identified core without user interface"); break; - case CORE_TYPE_MINIMIG2: - puts("Identified Minimig V2 core"); - spi_uio_cmd16(UIO_SET_MEMSZ, sdram_sz(-1)); - BootInit(); - break; - case CORE_TYPE_MIST: puts("Identified MiST core"); ikbd_init(); @@ -784,7 +776,12 @@ void user_io_init(const char *path) } else { - if (is_x86_core()) + if (is_minimig()) + { + puts("Identified Minimig V2 core"); + BootInit(); + } + else if (is_x86_core()) { x86_config_load(); x86_init(); @@ -2061,8 +2058,7 @@ void cd_generate_toc(uint16_t req_type, uint8_t *buffer) void user_io_poll() { - if ((core_type != CORE_TYPE_MINIMIG2) && - (core_type != CORE_TYPE_MIST) && + if ((core_type != CORE_TYPE_MIST) && (core_type != CORE_TYPE_ARCHIE) && (core_type != CORE_TYPE_SHARPMZ) && (core_type != CORE_TYPE_8BIT)) @@ -2090,7 +2086,7 @@ void user_io_poll() user_io_send_buttons(0); - if (core_type == CORE_TYPE_MINIMIG2) + if (is_minimig()) { //HDD & FDD query unsigned char c1, c2; @@ -2581,7 +2577,7 @@ void user_io_poll() if (core_type == CORE_TYPE_SHARPMZ) sharpmz_poll(); static uint8_t leds = 0; - if(use_ps2ctl && core_type != CORE_TYPE_MINIMIG2) + if(use_ps2ctl && !is_minimig()) { leds |= (KBD_LED_FLAG_STATUS | KBD_LED_CAPS_CONTROL); @@ -2814,7 +2810,7 @@ void user_io_poll() static void send_keycode(unsigned short key, int press) { - if (core_type == CORE_TYPE_MINIMIG2) + if (is_minimig()) { if (press > 1) return; @@ -3020,17 +3016,20 @@ void user_io_mouse(unsigned char b, int16_t x, int16_t y, int16_t w) { switch (core_type) { - case CORE_TYPE_MINIMIG2: - mouse_pos[X] += x; - mouse_pos[Y] += y; - mouse_flags |= 0x80 | (b & 7); - return; - case CORE_TYPE_8BIT: - mouse_pos[X] += x; - mouse_pos[Y] -= y; // ps2 y axis is reversed over usb - mouse_wheel += w; - mouse_flags |= 0x08 | (b & 7); + if (is_minimig()) + { + mouse_pos[X] += x; + mouse_pos[Y] += y; + mouse_flags |= 0x80 | (b & 7); + } + else + { + mouse_pos[X] += x; + mouse_pos[Y] -= y; // ps2 y axis is reversed over usb + mouse_wheel += w; + mouse_flags |= 0x08 | (b & 7); + } return; case CORE_TYPE_MIST: @@ -3072,13 +3071,10 @@ void user_io_check_reset(unsigned short modifiers, char useKeys) else switch (core_type) { - case CORE_TYPE_MINIMIG2: - minimig_reset(); - break; - case CORE_TYPE_ARCHIE: case CORE_TYPE_8BIT: - kbd_reset = 1; + if(is_minimig()) minimig_reset(); + else kbd_reset = 1; break; } } diff --git a/user_io.h b/user_io.h index 5d64eef..fb96a00 100644 --- a/user_io.h +++ b/user_io.h @@ -150,7 +150,6 @@ #define CORE_TYPE_DUMB 0xa0 // core without any io controller interaction #define CORE_TYPE_MIST 0xa3 // mist atari st core #define CORE_TYPE_8BIT 0xa4 // generic core -#define CORE_TYPE_MINIMIG2 0xa5 // new Minimig with AGA #define CORE_TYPE_ARCHIE 0xa6 // Acorn Archimedes #define CORE_TYPE_SHARPMZ 0xa7 // Sharp MZ Series #define CORE_TYPE_8BIT2 0xa8 // generic core using dual SDRAM