mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2024-11-28 11:04:15 +01:00
Added load command for microdrive, no Interface I for +3 model
This commit is contained in:
parent
16751371cd
commit
c9524cab87
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
// #define MUT
|
// #define MUT
|
||||||
|
|
||||||
#define KB_BUFFER_LENGHT 10
|
#define KB_BUFFER_LENGHT 24
|
||||||
#define MAX_PATH_LENGTH 256
|
#define MAX_PATH_LENGTH 256
|
||||||
#define N_SAMPLES 8
|
#define N_SAMPLES 8
|
||||||
|
|
||||||
|
127
src/gui_sdl.c
127
src/gui_sdl.c
@ -163,7 +163,7 @@ static const char *input_messages[] = {
|
|||||||
|
|
||||||
static const char *microdrive_messages[] = {
|
static const char *microdrive_messages[] = {
|
||||||
/*00*/ "Microdrive",
|
/*00*/ "Microdrive",
|
||||||
/*01*/ "^|Insert|Make|Delete",
|
/*01*/ "^|Insert|Load|Make|Delete",
|
||||||
/*02*/ " ",
|
/*02*/ " ",
|
||||||
/*03*/ "Interface I",
|
/*03*/ "Interface I",
|
||||||
/*04*/ "^|on|off",
|
/*04*/ "^|on|off",
|
||||||
@ -977,7 +977,107 @@ void create_mdrfile_sdl() {
|
|||||||
clean_screen();
|
clean_screen();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void microdrive()
|
void load_mdr_file(void)
|
||||||
|
{
|
||||||
|
char model128k;
|
||||||
|
|
||||||
|
model128k = ordenador.mode128k;
|
||||||
|
|
||||||
|
if ((ordenador.mport1 & 0x10)&&(ordenador.mode128k!=4)) //ROM 48k
|
||||||
|
model128k =0;
|
||||||
|
|
||||||
|
//Emulate load *"m";1;"run"
|
||||||
|
countdown_buffer=8;
|
||||||
|
ordenador.kbd_buffer_pointer=17;
|
||||||
|
|
||||||
|
switch (model128k)
|
||||||
|
{
|
||||||
|
case 3: //+3
|
||||||
|
case 2: //+2
|
||||||
|
case 1: //128k
|
||||||
|
ordenador.keyboard_buffer[0][21]= SDLK_6;
|
||||||
|
ordenador.keyboard_buffer[1][21]= SDLK_LSHIFT;
|
||||||
|
ordenador.keyboard_buffer[0][20]= SDLK_RETURN; // Return
|
||||||
|
ordenador.keyboard_buffer[1][20]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][19]= SDLK_SPACE; // Space
|
||||||
|
ordenador.keyboard_buffer[1][19]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][18]= SDLK_SPACE; // Space
|
||||||
|
ordenador.keyboard_buffer[1][18]= 0;
|
||||||
|
ordenador.kbd_buffer_pointer=21;
|
||||||
|
case 4://Spanish 128k
|
||||||
|
ordenador.keyboard_buffer[0][17]= SDLK_l;
|
||||||
|
ordenador.keyboard_buffer[1][17]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][16]= SDLK_o;
|
||||||
|
ordenador.keyboard_buffer[1][16]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][15]= SDLK_a;
|
||||||
|
ordenador.keyboard_buffer[1][15]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][14]= SDLK_d;
|
||||||
|
ordenador.keyboard_buffer[1][14]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][13]= SDLK_b; //*
|
||||||
|
ordenador.keyboard_buffer[1][13]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][12]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][12]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][11]= SDLK_m; //m
|
||||||
|
ordenador.keyboard_buffer[1][11]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][10]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][10]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][9]= SDLK_o; //;
|
||||||
|
ordenador.keyboard_buffer[1][9]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][8]= SDLK_1; //1
|
||||||
|
ordenador.keyboard_buffer[1][8]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][7]= SDLK_o; //;
|
||||||
|
ordenador.keyboard_buffer[1][7]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][6]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][6]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][5]= SDLK_r; //r
|
||||||
|
ordenador.keyboard_buffer[1][5]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][4]= SDLK_u; //u
|
||||||
|
ordenador.keyboard_buffer[1][4]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][3]= SDLK_n; //n
|
||||||
|
ordenador.keyboard_buffer[1][3]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][2]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][2]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][1]= SDLK_RETURN; // Return
|
||||||
|
ordenador.keyboard_buffer[1][1]= 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0: //48k
|
||||||
|
default:
|
||||||
|
ordenador.keyboard_buffer[0][14]= SDLK_j; //Load
|
||||||
|
ordenador.keyboard_buffer[1][14]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][13]= SDLK_b; //*
|
||||||
|
ordenador.keyboard_buffer[1][13]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][12]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][12]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][11]= SDLK_m; //m
|
||||||
|
ordenador.keyboard_buffer[1][11]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][10]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][10]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][9]= SDLK_o; //;
|
||||||
|
ordenador.keyboard_buffer[1][9]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][8]= SDLK_1; //1
|
||||||
|
ordenador.keyboard_buffer[1][8]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][7]= SDLK_o; //;
|
||||||
|
ordenador.keyboard_buffer[1][7]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][6]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][6]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][5]= SDLK_r; //r
|
||||||
|
ordenador.keyboard_buffer[1][5]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][4]= SDLK_u; //u
|
||||||
|
ordenador.keyboard_buffer[1][4]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][3]= SDLK_n; //n
|
||||||
|
ordenador.keyboard_buffer[1][3]= 0;
|
||||||
|
ordenador.keyboard_buffer[0][2]= SDLK_p; //"
|
||||||
|
ordenador.keyboard_buffer[1][2]= SDLK_LCTRL;
|
||||||
|
ordenador.keyboard_buffer[0][1]= SDLK_RETURN; // Return
|
||||||
|
ordenador.keyboard_buffer[1][1]= 0;
|
||||||
|
|
||||||
|
ordenador.kbd_buffer_pointer=14;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int microdrive()
|
||||||
{
|
{
|
||||||
|
|
||||||
unsigned int submenus[3], submenus_old[3];
|
unsigned int submenus[3], submenus_old[3];
|
||||||
@ -997,12 +1097,15 @@ static void microdrive()
|
|||||||
opt = menu_select_title("Microdrive",
|
opt = menu_select_title("Microdrive",
|
||||||
microdrive_messages, submenus);
|
microdrive_messages, submenus);
|
||||||
if (opt < 0)
|
if (opt < 0)
|
||||||
return;
|
return retorno;
|
||||||
|
|
||||||
|
if ((ordenador.mode128k == 3)&&(!submenus[1]))
|
||||||
|
msgInfo("Interface I not compatible", 3000, NULL);
|
||||||
|
else
|
||||||
ordenador.mdr_active = !submenus[1];
|
ordenador.mdr_active = !submenus[1];
|
||||||
|
|
||||||
|
if (ordenador.mdr_active == submenus_old[1]) {ResetComputer();retorno=-2;}
|
||||||
|
|
||||||
if (submenus[1]!=submenus_old[1]) ResetComputer();
|
|
||||||
if (submenus[2]!=submenus_old[2])
|
if (submenus[2]!=submenus_old[2])
|
||||||
{if(ordenador.mdr_cartridge[137922])
|
{if(ordenador.mdr_cartridge[137922])
|
||||||
ordenador.mdr_cartridge[137922]=0;
|
ordenador.mdr_cartridge[137922]=0;
|
||||||
@ -1015,19 +1118,25 @@ static void microdrive()
|
|||||||
ordenador.mdr_file=NULL;
|
ordenador.mdr_file=NULL;
|
||||||
ordenador.mdr_modified=0;
|
ordenador.mdr_modified=0;
|
||||||
}
|
}
|
||||||
|
retorno=-2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opt==0)
|
if (opt==0)
|
||||||
switch (submenus[0])
|
switch (submenus[0])
|
||||||
{
|
{
|
||||||
case 0: // Insert microdrive
|
case 0: // Insert microdrive
|
||||||
retorno = select_mdr();
|
select_mdr();
|
||||||
|
retorno=0;
|
||||||
break;
|
break;
|
||||||
case 1: // Create microdrive file
|
case 1: // load microdrive file
|
||||||
|
load_mdr_file();
|
||||||
|
retorno=-2;
|
||||||
|
break;
|
||||||
|
case 2: // Create microdrive file
|
||||||
create_mdrfile_sdl();
|
create_mdrfile_sdl();
|
||||||
retorno=0;
|
retorno=0;
|
||||||
break;
|
break;
|
||||||
case 2: // Delete microdrive file
|
case 3: // Delete microdrive file
|
||||||
delete_mdr();
|
delete_mdr();
|
||||||
retorno=0;
|
retorno=0;
|
||||||
break;
|
break;
|
||||||
@ -1035,6 +1144,8 @@ static void microdrive()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (!retorno); //Stay in menu if create or delete are selected
|
} while (!retorno); //Stay in menu if create or delete are selected
|
||||||
|
|
||||||
|
return retorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void delete_scr()
|
static void delete_scr()
|
||||||
@ -1948,7 +2059,7 @@ void main_menu()
|
|||||||
manage_configurations();
|
manage_configurations();
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
microdrive();
|
if (microdrive() ==-2) retorno=-1;
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
if (tools()==-2) retorno=-1;
|
if (tools()==-2) retorno=-1;
|
||||||
|
Loading…
Reference in New Issue
Block a user