diff --git a/CHANGELOG b/CHANGELOG
index e7cbd4b9e..0b523dfa9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -26,7 +26,7 @@
- Added confirmation message while trying to load a
Direct3D pixel shader which may not be needed or
may have undesired effect. (Wengier)
- - Added warning message if the Japanese PC-98 or JEGA
+ - Added warning message if DOS/V or Japanese PC-98/AX
machine type is selected and a language file with
an incompatible code page is specified. (Wengier)
- Added a TrueType font selection page into Windows
diff --git a/contrib/linux/com.dosbox_x.DOSBox-X.metainfo.xml.in b/contrib/linux/com.dosbox_x.DOSBox-X.metainfo.xml.in
index d4b00f833..cb086ded2 100644
--- a/contrib/linux/com.dosbox_x.DOSBox-X.metainfo.xml.in
+++ b/contrib/linux/com.dosbox_x.DOSBox-X.metainfo.xml.in
@@ -10,7 +10,7 @@
Emulation
-
+
diff --git a/contrib/translations/en/en_US.lng b/contrib/translations/en/en_US.lng
index cd232bf2c..cab93b830 100644
--- a/contrib/translations/en/en_US.lng
+++ b/contrib/translations/en/en_US.lng
@@ -1305,6 +1305,10 @@ ECHO is off.
:SHELL_ILLEGAL_SWITCH
Invalid switch - %s
+.
+:SHELL_INVALID_PARAMETER
+Invalid parameter - %s
+
.
:SHELL_MISSING_PARAMETER
Required parameter missing.
@@ -1552,6 +1556,14 @@ The specified drive or path is invalid.
:SHELL_CMD_SUBST_FAILURE
SUBST: There is an error in your command line.
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text is currently enabled.
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text is currently disabled.
+
.
:SHELL_STARTUP_TITLE
Welcome to DOSBox-X !
diff --git a/contrib/translations/es/es_ES.lng b/contrib/translations/es/es_ES.lng
index 45d1d50b8..9fb950dcd 100644
--- a/contrib/translations/es/es_ES.lng
+++ b/contrib/translations/es/es_ES.lng
@@ -1302,6 +1302,10 @@ Carácter de control inesperado: Dec %03u y Hex %#04x.
:SHELL_ILLEGAL_SWITCH
Parámetro no válido - %s
+.
+:SHELL_INVALID_PARAMETER
+Parámetro no válido - %s
+
.
:SHELL_MISSING_PARAMETER
Falta un parámetro requerido.
@@ -1549,6 +1553,14 @@ La ruta o unidad especificada no es válida.
:SHELL_CMD_SUBST_FAILURE
SUBST: Hay un error en tu línea de comando.
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text está habilitado actualmente.
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text está actualmente deshabilitado.
+
.
:SHELL_STARTUP_TITLE
Bienvenido a DOSBox-X!
diff --git a/contrib/translations/fr/fr_FR.lng b/contrib/translations/fr/fr_FR.lng
index 27fcc5d9f..fc25ba249 100644
--- a/contrib/translations/fr/fr_FR.lng
+++ b/contrib/translations/fr/fr_FR.lng
@@ -1303,6 +1303,10 @@ ECHO est désactivé.
:SHELL_ILLEGAL_SWITCH
Commutateur non valide - %s
+.
+:SHELL_INVALID_PARAMETER
+Paramètre invalide - %s
+
.
:SHELL_MISSING_PARAMETER
Paramètre requis manquant.
@@ -1550,6 +1554,14 @@ Le lecteur ou le chemin d'accès spécifié n'est pas valide.
:SHELL_CMD_SUBST_FAILURE
SUBST : Il y a une erreur dans votre ligne de commande.
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text est actuellement activé.
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text est actuellement désactivé.
+
.
:SHELL_STARTUP_TITLE
Bienvenue sur DOSBox-X !
diff --git a/contrib/translations/ja/ja_JP.lng b/contrib/translations/ja/ja_JP.lng
index 2116d255b..b63c837f7 100644
--- a/contrib/translations/ja/ja_JP.lng
+++ b/contrib/translations/ja/ja_JP.lng
@@ -1296,6 +1296,10 @@ ECHO は です。
:SHELL_ILLEGAL_SWITCH
無効なスイッチ - %s
+.
+:SHELL_INVALID_PARAMETER
+無効なパラメーター - %s
+
.
:SHELL_MISSING_PARAMETER
パラメータが足りません。
@@ -1542,6 +1546,14 @@ SUBST はローカルドライブにのみ使用可能です。
:SHELL_CMD_SUBST_FAILURE
SUBST: コマンドラインにエラーがあります。
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text は現在有効になっています。
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text は現在無効になっています。
+
.
:SHELL_STARTUP_TITLE
DOSBox-Xへようこそ !
diff --git a/contrib/translations/tr/tr_TR.lng b/contrib/translations/tr/tr_TR.lng
index 01c5f3e42..24a280097 100644
--- a/contrib/translations/tr/tr_TR.lng
+++ b/contrib/translations/tr/tr_TR.lng
@@ -1305,6 +1305,10 @@ ECHO kapalı.
:SHELL_ILLEGAL_SWITCH
Geçersiz anahtar - %s
+.
+:SHELL_INVALID_PARAMETER
+Geçersiz parametre - %s
+
.
:SHELL_MISSING_PARAMETER
Gereken parametre eksik.
@@ -1552,6 +1556,14 @@ Belirtilen sürücü veya yol geçersiz.
:SHELL_CMD_SUBST_FAILURE
SUBST: Komut satırınızda bir hata var.
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text şu anda etkin.
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text şu anda devre dışı.
+
.
:SHELL_STARTUP_TITLE
DOSBox-X'e hoş geldiniz!
diff --git a/contrib/translations/zh/zh_CN.lng b/contrib/translations/zh/zh_CN.lng
index 8caa7c5bc..04bf1536a 100644
--- a/contrib/translations/zh/zh_CN.lng
+++ b/contrib/translations/zh/zh_CN.lng
@@ -1292,6 +1292,10 @@ ECHO状态为关.
:SHELL_ILLEGAL_SWITCH
开关非法 - %s
+.
+:SHELL_INVALID_PARAMETER
+非法参数 - %s
+
.
:SHELL_MISSING_PARAMETER
缺少必要的参数.
@@ -1535,6 +1539,14 @@ SUBST 命令只能挂载本地驱动器.
:SHELL_CMD_SUBST_INVALID_PATH
指定的驱动器或目录非法.
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text 当前状态为开.
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text 当前状态为关.
+
.
:SHELL_CMD_SUBST_FAILURE
SUBST: 命令行参数错误.
diff --git a/contrib/translations/zh/zh_TW.lng b/contrib/translations/zh/zh_TW.lng
index 1032e1cc1..da54b5166 100644
--- a/contrib/translations/zh/zh_TW.lng
+++ b/contrib/translations/zh/zh_TW.lng
@@ -1288,6 +1288,10 @@ ECHO 狀態為開.
:SHELL_CMD_ECHO_OFF
ECHO 狀態為關.
+.
+:SHELL_INVALID_PARAMETER
+無效的參數 - %s
+
.
:SHELL_ILLEGAL_SWITCH
無效的參數 - %s
@@ -1542,6 +1546,14 @@ SUBST 命令只能掛載本機磁碟機.
:SHELL_CMD_SUBST_FAILURE
SUBST: 命令列參數錯誤.
+.
+:SHELL_CMD_VTEXT_ON
+DOS/V V-text 目前狀態為開.
+
+.
+:SHELL_CMD_VTEXT_OFF
+DOS/V V-text 目前狀態為關.
+
.
:SHELL_STARTUP_TITLE
歡迎使用 DOSBox-X !
diff --git a/include/build_timestamp.h b/include/build_timestamp.h
index a38932dd8..60937613d 100644
--- a/include/build_timestamp.h
+++ b/include/build_timestamp.h
@@ -1,4 +1,4 @@
/*auto-generated*/
-#define UPDATED_STR "Nov 14, 2021 11:29:49pm"
-#define GIT_COMMIT_HASH "588579d"
+#define UPDATED_STR "Nov 16, 2021 10:58:05pm"
+#define GIT_COMMIT_HASH "5d8b20d"
#define COPYRIGHT_END_YEAR "2021"
diff --git a/src/dos/dos_misc.cpp b/src/dos/dos_misc.cpp
index f73e452cd..6fca43da4 100644
--- a/src/dos/dos_misc.cpp
+++ b/src/dos/dos_misc.cpp
@@ -401,7 +401,7 @@ static bool DOS_MultiplexFunctions(void) {
char psp_name[9];
DOS_MCB psp_mcb(dos.psp()-1);
psp_mcb.GetFileName(psp_name);
- if (((!strcmp(psp_name, "INSTALL") || !strcmp(psp_name, "INSTALLD")) && reg_sp >= 0xD000 && mem_readw(SegPhys(ss)+reg_sp)/0x100 == 0x1E) || !strcmp(psp_name, "UNERASE") || !strcmp(psp_name, "UNFORMAT")) return false;
+ if (((!strcmp(psp_name, "INSTALL") || !strcmp(psp_name, "INSTALLD")) && reg_sp >= 0xD000 && mem_readw(SegPhys(ss)+reg_sp)/0x100 == 0x1E) || !strcmp(psp_name, "DISKEDIT") || !strcmp(psp_name, "NDD") || !strcmp(psp_name, "NDIAGS") || !strcmp(psp_name, "UNERASE") || !strcmp(psp_name, "UNFORMAT")) return false;
}
reg_al = 1;
reg_ah = 1;
diff --git a/src/misc/messages.cpp b/src/misc/messages.cpp
index acf1f06df..187dc9fce 100644
--- a/src/misc/messages.cpp
+++ b/src/misc/messages.cpp
@@ -173,7 +173,7 @@ void LoadMessageFile(const char * fname) {
if (!strcmp(p, "CODEPAGE")) {
int c = atoi(r+1);
if ((!res || control->opt_langcp) && c>0 && isSupportedCP(c)) {
- if ((IS_PC98_ARCH||IS_JEGA_ARCH) && c!=437 && c!=932 && !systemmessagebox("DOSBox-X language file", "You have specified a language file which uses a code page incompatible with the Japanese PC-98 or JEGA/AX system.\n\nAre you sure to use the language file for this machine type?", "yesno","question", 2)) {
+ if (((IS_PC98_ARCH||IS_JEGA_ARCH) && c!=437 && c!=932 && !systemmessagebox("DOSBox-X language file", "You have specified a language file which uses a code page incompatible with the Japanese PC-98 or JEGA/AX system.\n\nAre you sure to use the language file for this machine type?", "yesno","question", 2)) || (((IS_JDOSV && c!=932) || (IS_PDOSV && c!=936) || (IS_KDOSV && c!=949) || (IS_CDOSV && c!=950)) && c!=437 && !systemmessagebox("DOSBox-X language file", "You have specified a language file which uses a code page incompatible with the current DOS/V system.\n\nAre you sure to use the language file for this machine type?", "yesno","question", 2))) {
fclose(mfile);
dos.loaded_codepage = cp;
return;
diff --git a/src/shell/shell.cpp b/src/shell/shell.cpp
index d7d1c5505..f1b031751 100644
--- a/src/shell/shell.cpp
+++ b/src/shell/shell.cpp
@@ -1199,6 +1199,7 @@ void SHELL_Init() {
MSG_Add("SHELL_CMD_ECHO_ON","ECHO is on.\n");
MSG_Add("SHELL_CMD_ECHO_OFF","ECHO is off.\n");
MSG_Add("SHELL_ILLEGAL_SWITCH","Invalid switch - %s\n");
+ MSG_Add("SHELL_INVALID_PARAMETER","Invalid parameter - %s\n");
MSG_Add("SHELL_MISSING_PARAMETER","Required parameter missing.\n");
MSG_Add("SHELL_MISSING_FILE","The following file is missing or corrupted: %s\n");
MSG_Add("SHELL_CMD_CHDIR_ERROR","Invalid directory - %s\n");
@@ -1268,6 +1269,8 @@ void SHELL_Init() {
MSG_Add("SHELL_CMD_SUBST_NOT_LOCAL","It is only possible to use SUBST on local drives.\n");
MSG_Add("SHELL_CMD_SUBST_INVALID_PATH","The specified drive or path is invalid.\n");
MSG_Add("SHELL_CMD_SUBST_FAILURE","SUBST: There is an error in your command line.\n");
+ MSG_Add("SHELL_CMD_VTEXT_ON","DOS/V V-text is currently enabled.\n");
+ MSG_Add("SHELL_CMD_VTEXT_OFF","DOS/V V-text is currently disabled.\n");
std::string mapper_keybind = mapper_event_keybind_string("host");
if (mapper_keybind.empty()) mapper_keybind = "unbound";
diff --git a/src/shell/shell_cmds.cpp b/src/shell/shell_cmds.cpp
index 63a679c2a..2a876d600 100644
--- a/src/shell/shell_cmds.cpp
+++ b/src/shell/shell_cmds.cpp
@@ -402,7 +402,7 @@ void DOS_Shell::CMD_INT2FDBG(char * args) {
} else
WriteOut("INT 2Fh hook was already set up.\n");
} else if (*args)
- WriteOut("Invalid parameter - %s\n", args);
+ WriteOut(MSG_Get("SHELL_INVALID_PARAMETER"), args);
}
#endif
@@ -771,7 +771,7 @@ void DOS_Shell::CMD_DELTREE(char * args) {
return;
}
if (!*args) {
- WriteOut(MSG_Get("SHELL_MISSING_PARAMETER"),rem);
+ WriteOut(MSG_Get("SHELL_MISSING_PARAMETER"));
return;
}
@@ -3387,7 +3387,7 @@ void DOS_Shell::CMD_VER(char *args) {
if (*word=='=') word=trim(word+1);
if (isdigit(*word)) {
if (*args) {
- WriteOut("Invalid parameter - %s\n", args);
+ WriteOut(MSG_Get("SHELL_INVALID_PARAMETER"), args);
return;
}
if (set_ver(word))
@@ -3397,7 +3397,7 @@ void DOS_Shell::CMD_VER(char *args) {
return;
}
if (*word) {
- WriteOut("Invalid parameter - %s\n", word);
+ WriteOut(MSG_Get("SHELL_INVALID_PARAMETER"), word);
return;
}
}
@@ -4166,9 +4166,9 @@ void DOS_Shell::CMD_VTEXT(char *args)
else if(!strcasecmp(word, "0"))
new_mode = 0x03;
else {
- WriteOut("Invalid parameter - %s\n", word);
- return;
- }
+ WriteOut(MSG_Get("SHELL_INVALID_PARAMETER"), word);
+ return;
+ }
if(new_mode != 0xff) {
reg_ax = new_mode;
CALLBACK_RunRealInt(0x10);
@@ -4176,6 +4176,5 @@ void DOS_Shell::CMD_VTEXT(char *args)
}
}
uint8_t mode = real_readb(BIOSMEM_SEG, BIOSMEM_CURRENT_MODE);
- WriteOut("DOS/V V-text is currently %s. Video mode is %02xh.\n", mode == 0x70?"enabled":"disabled", mode);
+ WriteOut(MSG_Get(mode == 0x70?"SHELL_CMD_VTEXT_ON":"SHELL_CMD_VTEXT_OFF"));
}
-