diff --git a/software/filemanager/dos.cc b/software/filemanager/dos.cc index fab27055..c58f5073 100644 --- a/software/filemanager/dos.cc +++ b/software/filemanager/dos.cc @@ -132,6 +132,14 @@ void Dos :: parse_command(Message *command, Message **reply, Message **status) if (cmd >= 0x16 && cmd <= 0x1f) command->message[1] = 0xff; if (cmd >= 0x23 && cmd <= 0x2f) command->message[1] = 0xff; } + if (ultimatedosversion == -2) + { + int cmd = command->message[1]; + if (cmd >= 0x09 && cmd <= 0x0f) command->message[1] = 0xff; + if (cmd >= 0x16 && cmd <= 0x1f) command->message[1] = 0xff; + if (cmd >= 0x23 && cmd <= 0x2f) command->message[1] = 0xff; + if (cmd == 0x15) command->message[1] = 0x17; + } switch(command->message[1]) { case DOS_CMD_IDENTIFY: diff --git a/software/io/c64/c64.cc b/software/io/c64/c64.cc index 8777316a..7a18cd36 100644 --- a/software/io/c64/c64.cc +++ b/software/io/c64/c64.cc @@ -216,7 +216,8 @@ void C64 :: set_emulation_flags(cart_def *def) if(getFpgaCapabilities() & CAPAB_COMMAND_INTF) { int choice = cfg->get_value(CFG_CMD_ENABLE); CMD_IF_SLOT_ENABLE = !!choice; - ultimatedosversion = choice; + if (choice != 2 || ultimatedosversion != -2) + ultimatedosversion = choice; CMD_IF_SLOT_BASE = 0x47; // $DF1C } } diff --git a/software/userinterface/config_menu.cc b/software/userinterface/config_menu.cc index 4a27ddd9..dcad651b 100644 --- a/software/userinterface/config_menu.cc +++ b/software/userinterface/config_menu.cc @@ -8,6 +8,10 @@ extern "C" { #include "config.h" #include "config_menu.h" + +extern int ultimatedosversion; + + /************************/ /* ConfigBrowser Object */ /************************/ @@ -147,6 +151,10 @@ int ConfigBrowser :: handle_key(int c) } ret = -2; break; + case KEY_CTRL_HOME: + if (ultimatedosversion == 2) + ultimatedosversion = -2; + break; case KEY_DOWN: // down state->down(1); break;