Merge pull request #5532 from maron2000/add_translations

Add more missing translations
This commit is contained in:
Jonathan Campbell 2025-03-05 01:51:03 -08:00 committed by GitHub
commit 94443fe074
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 1025 additions and 143 deletions

View File

@ -3808,7 +3808,7 @@ allotment. Choose a different drive letter to mount to.
El Torito emulation requires a proper CD-ROM drive letter.
.
:PROGRAM_ELTORITO_DRIVE_EXISTS
El Torito CD-ROM drive specified already exists as a non-CD-ROM device\n");
El Torito CD-ROM drive specified already exists as a non-CD-ROM device
.
:PROGRAM_ELTORITO_NOT_CDDRIVE
El Torito CD-ROM drive specified is not actually a CD-ROM drive.
@ -3871,8 +3871,8 @@ Sanity check failed: Volume size not aligned
Error: Generated filesystem has too few clusters given the parameters
.
:PROGRAM_IMGMAKE_CLUSTERCOUNT
Warning: Cluster count is too high given the volume size. Reporting a
smaller sector count.
Warning: Cluster count is too high given the volume size.
Reporting a smaller sector count.
.
:PROGRAM_IMGMAKE_CLUSTER_ALIGN
Sanity check failed: First cluster not aligned
@ -3928,3 +3928,281 @@ Bytes/sector too large
:PROGRAM_BOOT_DRIVE_READERROR
Error reading drive
.
:PROGRAM_START_HELP_WIN
Starts a separate window to run a specified program or command.
START [+|-|_] command [arguments]
[+|-|_]: To maximize/minimize/hide the program.
The options /MAX, /MIN, /HID are also accepted.
command: The command, program or file to start.
arguments: Arguments to pass to the application.
START opens the Windows command prompt automatically to run these commands
and wait for a key press before exiting (specified by "startincon" option):
%s
Note: The path specified in this command is the path on the host system.
.
:PROGRAM_START_HELP
Starts a separate window to run a specified program or command.
START /OPEN file
START command [arguments]
/OPEN: To open a file or URL with the associated program.
file: The file or URL to open with the associated program.
command: The command or program to start or run.
arguments: Arguments to pass to the application.
Note: The path specified in this command is the path on the host system.
.
:PROGRAM_START_COMPLETED
The command execution is completed.
.
:PROGRAM_START_COMMAND
Starting %s...
.
:PROGRAM_START_CTRLC
(Press Ctrl+C to exit immediately)
.
:PROGRAM_START_HOST_ERROR
Error: START cannot launch application to run on your current host system.
.
:PROGRAM_START_LAUNCH_ERROR
Error: START could not launch application.
.
:PROGRAM_IMGMOUNT_ELTORITO_NO_FILE
Do not specify files when mounting floppy drives from El Torito bootable CDs
.
:PROGRAM_IMGMOUNT_RAMDRIVE_NO_FILE
Do not specify files when mounting RAM drives
.
:PROGRAM_IMGMOUNT_INVALID_SECTORSIZE
Sector size must be larger than 512 bytes and evenly divide the image cluster size of %lu bytes.
.
:PROGRAM_IMGMOUNT_OPEN_ERROR
Unable to open '%s'
.
:PROGRAM_IMGMOUNT_QCOW2_INVALID
qcow2 image '%s' is not supported
.
:PROGRAM_IMGMOUNT_GEOMETRY_ERROR
Unable to detect geometry
.
:PROGRAM_IMGMOUNT_DOS_VERSION
Mounting this image file requires a reported DOS version of %u.%u or higher.
%s
.
:PROGRAM_IMGMOUNT_INVALID_FLOPPYSIZE
Floppy size not recognized
.
:PROGRAM_IMGMOUNT_MULTIPLE_USED
Multiple images given and another drive already uses multiple images
.
:PROGRAM_IMGMOUNT_MULTIPLE_NOTSUPPORTED
Multiple disk images not supported for that drive
.
:PROGRAM_IMGMOUNT_HD_FDPOSITION
Cannot mount hard drive in floppy position.
.
:PROGRAM_IMGMOUNT_FD_HDPOSITION
Cannot mount floppy in hard drive position.
.
:PROGRAM_ELTORITO_ISOMOUNT
El Torito bootable CD: -fs iso mounting not supported
.
:PROGRAM_MODE_STATUS
Status for device CON:
----------------------
Columns=%d
Lines=%d
.
:PROGRAM_MODE_NOTSUPPORTED
Code page operation not supported on this device
.
:PROGRAM_MODE_RATE_DELAY
Rate and delay must be specified together
.
:PROGRAM_UTF8_HELP
Converts UTF-8 text to view in the current code page.
UTF8 < [drive:][path]filename
command-name | UTF8
.
:PROGRAM_UTF8_NO_TEXT
No input text found.
.
:PROGRAM_UTF8_INVALIDCP
Invalid code page for text conversion.
.
:PROGRAM_UTF8_NOT_UTF8
The input text is UTF-16.
.
:PROGRAM_UTF8_CONVERSION_ERROR
An error occurred during text conversion.
.
:PROGRAM_UTF16_HELP
Converts UTF-16 text to view in the current code page.
UTF16 [/BE|/LE] < [drive:][path]filename
command-name | UTF16 [/BE|/LE]
/BE Use UTF-16 Big Endian
/LE Use UTF-16 Little Endian
.
:PROGRAM_VTEXT_HELP
Changes V-text mode for the DOS/V emulation.
VTEXT [mode]
[mode] can be 0, 1, 2, for no V-text, V-text 1, and V-text 2 respectively.
Type VTEXT without a parameter to show the current V-text mode status.
.
:PROGRAM_NMITEST_HELP
Generates a non-maskable interrupt (NMI).
NMITEST
Note: This is a debugging tool to test if the interrupt handler works properly.
.
:PROGRAM_NMITEST_GENERATE_NMI
Generating a non-maskable interrupt (NMI)...
.
:PROGRAM_CAPMOUSE_HELP
Captures or releases the mouse inside DOSBox-X.
CAPMOUSE [/C|/R]
/C Capture the mouse
/R Release the mouse
.
:PROGRAM_CAPMOUSE_MOUSE
Mouse
.
:PROGRAM_CAPMOUSE_CURRENTLY
is currently
.
:PROGRAM_CAPMOUSE_CAPTURED
captured
.
:PROGRAM_CAPMOUSE_RELEASED
released
.
:PROGRAM_AUTOTYPE_HELP
Performs scripted keyboard entry into a running DOS program.
AUTOTYPE [-list] [-w WAIT] [-p PACE] button_1 [button_2 [...]]
Where:
-list: prints all available button names.
-w WAIT: seconds before typing begins. Two second default; max of 30.
-p PACE: seconds between each keystroke. Half-second default; max of 10.
The sequence is comprised of one or more space-separated buttons.
Autotyping begins after WAIT seconds, and each button is entered
every PACE seconds. The , character inserts an extra PACE delay.
Some examples:
←[32;1mAUTOTYPE -w 1 -p 0.3 up enter , right enter←[0m
←[32;1mAUTOTYPE -p 0.2 f1 kp_8 , , enter←[0m
←[32;1mAUTOTYPE -w 1.3 esc enter , p l a y e r enter←[0m
.
:PROGRAM_AUTOTYPE_NO_BINDINGS
AUTOTYPE: The mapper has no key bindings
.
:PROGRAM_AUTOTYPE_CLAMP_VALUE
AUTOTYPE: bounding %s value of %.2f to %.2f
.
:PROGRAM_AUTOTYPE_INVALID_VALUE
AUTOTYPE: %s value '%s' is not a valid floating point number
.
:PROGRAM_ADDKEY_HELP
Generates artificial keypresses.
ADDKEY [pmsec] [key]
For example, the command below types "dir" followed by ENTER after 1 second:
ADDKEY p1000 d i r enter
You could also try AUTOTYPE command instead of this command to perform
scripted keyboard entry into a running DOS program.
.
:PROGRAM_SETCOLOR_HELP
Views or changes the text-mode color scheme settings.
SETCOLOR [color# [value]]
For example:
←[32;1mSETCOLOR 0 (50,50,50)←[0m
Change Color #0 to the specified color value
←[32;1mSETCOLOR 7 -←[0m
Return Color #7 to the default color value
←[32;1mSETCOLOR 3 +←[0m
Return Color #3 to the preset color value
←[32;1mSETCOLOR MONO←[0m
Display current MONO mode status
To change the current background and foreground colors, use COLOR command.
.
:PROGRAM_SETCOLOR_STATUS
MONO mode status: %s (video mode %d)
.
:PROGRAM_SETCOLOR_ACTIVE
active
.
:PROGRAM_SETCOLOR_INACTIVE
inactive
.
:PROGRAM_SETCOLOR_UNAVAILABLE
unavailable
.
:PROGRAM_SETCOLOR_MONO_MODE7
MONO mode status => active (video mode 7)
.
:PROGRAM_SETCOLOR_MONO_MODE3
MONO mode status => inactive (video mode 3)
.
:PROGRAM_SETCOLOR_MONO_FAIL
Failed to change MONO mode
.
:PROGRAM_SETCOLOR_MONO_SYNTAX
Must be + or - for MONO: %s
.
:PROGRAM_SETCOLOR_COLOR
Color %d: (%d,%d,%d) or #%02x%02x%02x
.
:PROGRAM_SETCOLOR_INVALID_NUMBER
Invalid color number - %s
.
:PROGRAM_SETCOLOR_INVALID_VALUE
Invalid color value - %s
.
:PROGRAM_SETCOLOR_NOT_SUPPORTED
Changing color scheme is not supported for the current video mode.
.
:PROGRAM_BOOT_UNKNOWN_BOOTHAX
Unknown boothax mode
.
:PROGRAM_BOOT_SPECIFY_FILE
Must specify BIOS image to boot
.
:PROGRAM_BOOT_BIOS_OPEN_ERROR
Unable to open BIOS image
.
:PROGRAM_BIOSTEST_SPECIFY_FILE
Must specify BIOS file to load.
.
:PROGRAM_BIOSTEST_OPEN_ERROR
Can't open a file
.
:PROGRAM_BIOSTEST_TOO_LARGE
BIOS File too large
.

View File

@ -3683,3 +3683,543 @@ CPU:簡易コア
:MAPPER:togmenu
メニューバー表示切替
.
:PROGRAM_FLAGSAVE_UNFLAGALL
ファイルをセーブするフラグをすべて解除しました。
.
:PROGRAM_FLAGSAVE_UNFLAGGED
ファイル %s をセーブするフラグを解除しました。
.
:PROGRAM_FLAGSAVE_FLAGGED
指定したファイルはすでにフラグを設定済みです。 - %s
.
:PROGRAM_FLAGSAVE_TOOMANY
フラグを設定するファイルの数が多すぎます。
.
:PROGRAM_FLAGSAVE_SAVED
ファイル %s をセーブするフラグを設定しました。
.
:PROGRAM_FLAGSAVE_LIST
フラグを設定したファイル:
.
:PROGRAM_FLAGSAVE_HLP
セーブステート機能でセーブするファイルのフラグを設定します。
FLAGSAVE [ファイル] [/F] [/R]] [/U]
ファイル セーブするファイルのフラグを設定するファイルを指定 (複数指定可)
/F ファイルが見つからなくても強制的にフラグを設定します。
/R 指定したファイルのフラグを解除します。
/U すべてのファイルのフラグを解除します。
パラメータなしで FLAGSAVE を実行すると設定したファイルの一覧を表示します。
.
:PROGRAM_INT2FDBG_NOT_SET
INT 2Fh フックは設定されていません。
.
:PROGRAM_INT2FDBG_ALREADY
INT 2Fh フックは設定済みです。
.
:PROGRAM_INT2FDBG_HELP
デバッグ用途に INT 2Fh をフックします。
INT2FDBG [option]
/I フックを設定する
デバッグ情報のために、コールチェーンの先頭にINT 2Fhをフックします。
パラメータなしで INT2FDBG を実行すると現在のフックの状態を表示します。
.
:PROGRAM_SET80x25
80x25 テキストモードに切り替えます。
.
:PROGRAM_SET80x43
80x43 テキストモードに切り替えます。
.
:PROGRAM_SET80x50
80x50 テキストモードに切り替えます。
.
:PROGRAM_SET80x60
80x60 テキストモードに切り替えます。
.
:PROGRAM_SET132x25
132x25 テキストモードに切り替えます。
.
:PROGRAM_SET132x43
132x43 テキストモードに切り替えます。
.
:PROGRAM_SET132x50
132x50 テキストモードに切り替えます。
.
:PROGRAM_SET132x60
132x60 テキストモードに切り替えます。
.
:PROGRAM_RESCAN_HELP
再スキャンし、ホストによるマウントされたドライブへの変更をキャッシュします。
RESCAN [/A] [/Q]
RESCAN [ドライブ:] [/Q]
[/A] すべてのドライブを再スキャンします。
[/Q] 非表示(Quiet) モードで実行します。
[ドライブ:] 再スキャンするドライブ
パラメータなしで RESCAN を実行するとカレントドライブを再スキャンします。
.
:PROGRAM_CFGTOOL_HELP
DOSBox-X のグラフィカルな設定ツールを起動します。
CFGTOOL
参考: CONFIG コマンドでコマンドラインからも設定の変更が可能です。
.
:PROGRAM_IMGSWAP_HELP
フロッピー、ハードディスク、光学ドライブのイメージを切り替えます。
IMGSWAP drive [position]
drive イメージを切り替えるドライブ
[position] 切り替えるディスク番号を指定
.
:PROGRAM_INTRO_HELP
フルスクリーン表示で DOSBox-X を紹介します。
INTRO [/RUN] [CDROM|MOUNT|USAGE|WELCOME]
.
:PROGRAM_IMGMOUNT_NOT_ASSIGNED
BIOS ディスクインデックスにイメージが設定されていません。
.
:PROGRAM_IMGMOUNT_INVALID_NUMBER
無効なマウント番号です。
.
:PROGRAM_IMGMOUNT_INVALID_FSTYPE
無効な fstype です。
.
:PROGRAM_IMGMOUNT_INVALID_SIZE
無効なサイズパラメータです。
.
:PROGRAM_IMGMOUNT_NOT_MOUNTED_NUMBER
ドライブ番号 %d はマウントされていません。
.
:PROGRAM_IMGMOUNT_UMOUNT_USAGE
無効な IMGMOUNT のアンマウント方法です。
.
:PROGRAM_IMGMOUNT_INVALID_LETTER
無効なドライブ文字です。
.
:PROGRAM_IMGMOUNT_CHOOSE_LETTER
パーティションは、標準INT 13hのハードディスク割り当てと競合してマウントすること
はできません。別のドライブ文字を選択して下さい。
.
:PROGRAM_ELTORITO_LETTER
El Torito エミュレーションには 適切なCD-ROM ドライブ文字を指定して下さい。
.
:PROGRAM_ELTORITO_DRIVE_EXISTS
指定したEl Torito CD-ROM ドライブはすでに非CD-ROM デバイスに指定されています。
.
:PROGRAM_ELTORITO_NOT_CDDRIVE
指定したEl Torito CD-ROM ドライブは CD-ROM ドライブではありません。
.
:PROGRAM_ELTORITO_REQUIRE_FLOPPY
El Torito エミュレーションには -t floppy を指定する必要があります。
.
:PROGRAM_ELTORITO_NO_BOOT_RECORD
El Torito CD-ROM ブートレコードが見つかりません。
.
:PROGRAM_ELTORITO_ENTRY_UNREADABLE
El Torito エントリが読み取れません。
.
:PROGRAM_ELTORITO_NO_BOOTABLE_FLOPPY
El Torito 起動用フロッピーが見つかりません。
.
:PROGRAM_ELTORITO_BOOTABLE_SECTION
ブート可能領域が見つかりませんでした。
.
:PROGRAM_ELTORITO_BOOTSECTOR
El Torito ブートセクタが読み取れません。
.
:PROGRAM_IMGMAKE_ALIGNMENT
無効な alignment オプションです。
.
:PROGRAM_IMGMAKE_PARTOFS
無効な -partofs オプションです。
.
:PROGRAM_IMGMAKE_FAT
無効な -fat オプションです。 12, 16, 32のいずれかを指定して下さい。
.
:PROGRAM_IMGMAKE_FATCOPIES
無効な -fatcopies オプションです。
.
:PROGRAM_IMGMAKE_SPC
無効な -spc オプションです。指定可能な値の範囲外です。
.
:PROGRAM_IMGMAKE_SPC2
無効な -spc オプションです。2の累乗で指定して下さい。
.
:PROGRAM_IMGMAKE_ROOTDIR
無効な -rootdir オプションです。
.
PROGRAM_IMGMAKE_BOOTSECT
ブートセクタの位置が不正です。
.
PROGRAM_IMGMAKE_VOLUME_ALIGN
健全性チェック: ボリュームサイズの位置が不正です。
.
:PROGRAM_IMGMAKE_FAT_ALIGN
健全性チェック: FAT テーブルの位置が不正です。
.
:PROGRAM_IMGMAKE_SECTPERFAT
エラー: 生成されたファイルシステムは 1FAT あたり256セクタ以上ですが FAT32 では
ありません。
.
:PROGRAM_IMGMAKE_VOLSIZE
健全性チェック: ボリュームサイズの位置が不正です。
.
:PROGRAM_IMGMAKE_CLUSTERS
エラー: 設定したパラメータに対して、生成されたファイルシステムのクラスタ数が小
さすぎます
.
:PROGRAM_IMGMAKE_CLUSTERCOUNT
警告: クラスタ数がボリュームのサイズに対して大きすぎます。
より小さいセクタ数を設定します。
.
:PROGRAM_IMGMAKE_CLUSTER_ALIGN
健全性チェック: 第一クラスタの位置が不正です。
.
:PROGRAM_IMGMAKE_CLUSTER_SIZE
警告: クラスタサイズ >= 64KB は MS-DOS と SCANDISK と互換性がありません。
.
:PROGRAM_BOOT_UNSUPPORTED
サポートされていないブートモードです。
.
:PROGRAM_MOUNT_OVERLAY_REPLACE
既存のオーバレイは新しいものに置き換えられました。
.
:PROGRAM_LOADFIX_EMS_FREE
EMS ハンドル %u: 解放できませんでした。
.
:PROGRAM_LOADFIX_XMS_FREE
XMS ハンドル %u: 解放できませんでした。
.
:PROGRAM_LOADFIX_EMS_ALLOC
EMS ブロックを割り当てました (%uKB)
.
:PROGRAM_LOADFIX_EMS_ALLOCERROR
EMS ブロックを割り当てることができませんでした。
.
PROGRAM_LOADFIX_NOEMS
EMS は有効ではありません。
.
:PROGRAM_LOADFIX_XMS_ALLOC
XMS ブロックを割り当てました (%uKB)
.
:PROGRAM_LOADFIX_XMS_ALLOCERROR
XMS ブロックを割り当てることができませんでした。
.
:PROGRAM_LOADFIX_NOXMS
XMS は有効ではありません。
.
:PROGRAM_LOADFIX_NOALLOC
最も低い MCB は 64KBより上のため、メモリを確保しません。
.
:PROGRAM_BOOT_SWAP_ALREADY
複数イメージを指定しましたが、すでに別のドライブで複数イメージを設定しています
.
:PROGRAM_BOOT_NOT_SPECIFIED
イメージを指定して下さい。
.
:PROGRAM_BOOT_IS_PC88
D88 イメージは PC-88 用と思われます。ブートできません。
.
:PROGRAM_BOOT_BPS_TOOLARGE
バイト/セクタ が大きすぎます
.
:PROGRAM_BOOT_DRIVE_READERROR
ドライブを読み込みできませんでした。
.
:PROGRAM_START_HELP_WIN
別ウィンドウで指定したコマンドまたはプログラムを実行します。
START [+|-|_] コマンド [引数]
[+|-|_] : プログラムを最大化・最小化・非表示にする。
/MAX, /MIN, /HID でも指定可能です。
コマンド : 実行するコマンドまたはプログラム
引数 : アプリケーションに渡す引数
START はWindowsコマンドプロンプトから指定したコマンド・プログラムを実行します。
"startincon"オプションで指定した以下のコマンドは終了後にキー入力を待ちます:
%s
参考: ファイル・コマンドへのパスはホストシステムのものを指定します。
.
:PROGRAM_START_HELP
別ウィンドウで指定したコマンドまたはプログラムを実行します。
START /OPEN ファイル
START コマンド [引数]
/OPEN : 関連付けされたプログラムで指定したファイル・URLを開きます。
ファイル : 関連付けされたプログラムで開くファイル・URL
コマンド : 実行するコマンドまたはプログラム
引数 : アプリケーションに渡す引数
参考: ファイル・コマンドへのパスはホストシステムのものを指定します。
.
:PROGRAM_START_COMPLETED
実行したコマンドが終了しました。
.
:PROGRAM_START_COMMAND
%s を起動します...
.
:PROGRAM_START_CTRLC
(すぐに中止する場合は Ctrl+C を押して下さい)
.
:PROGRAM_START_HOST_ERROR
エラー: START は現在のホストシステムではアプリケーションを起動できません。
.
:PROGRAM_START_LAUNCH_ERROR
エラー: START はアプリケーションを起動できませんでした。
.
:PROGRAM_IMGMOUNT_ELTORITO_NO_FILE
El Torito ブートCDをフロッピードライブとしてマウントする場合、ファイルを指定し
ないで下さい。
.
:PROGRAM_IMGMOUNT_RAMDRIVE_NO_FILE
RAM ドライブをマウントする時はファイルを指定しないで下さい。
.
:PROGRAM_IMGMOUNT_INVALID_SECTORSIZE
セクタサイズは 512 バイトより大きく、かつイメージのクラスタサイズ %lu バイトが
セクタサイズの倍数とする必要があります。
.
:PROGRAM_IMGMOUNT_OPEN_ERROR
ファイルを開くことができませんでした: '%s'
.
:PROGRAM_IMGMOUNT_QCOW2_INVALID
qcow2 イメージ '%s' はサポートされていない形式です。
.
:PROGRAM_IMGMOUNT_GEOMETRY_ERROR
ジオメトリを検出できませんでした。
.
:PROGRAM_IMGMOUNT_DOS_VERSION
このイメージをマウントするためにDOSバージョンを %u.%u 以上にする必要があります
%s
.
:PROGRAM_IMGMOUNT_INVALID_FLOPPYSIZE
フロッピーのサイズを認識できませんでした。
.
:PROGRAM_IMGMOUNT_MULTIPLE_USED
複数イメージを指定しましたが、すでに別のドライブで複数イメージを設定しています
.
:PROGRAM_IMGMOUNT_MULTIPLE_NOTSUPPORTED
そのドライブは複数イメージのマウントに対応していません。
.
:PROGRAM_IMGMOUNT_HD_FDPOSITION
ハードディスクはフロッピーの場所にマウントできません。
.
:PROGRAM_IMGMOUNT_FD_HDPOSITION
フロッピーはハードディスクの場所にマウントできません。
.
:PROGRAM_ELTORITO_ISOMOUNT
El Torito ブート CD: -fs iso によるマウントはサポートされていません。
.
:PROGRAM_MODE_STATUS
CON デバイスの状態:
----------------------
桁 =%d
行 =%d
.
:PROGRAM_MODE_NOTSUPPORTED
このデバイスではコードページに関する設定はできません。
.
:PROGRAM_MODE_RATE_DELAY
RATE と DELAY は一緒に指定して下さい。
.
:PROGRAM_UTF8_HELP
UTF-8 のテキストを表示できるよう、現在のコードページへ変換します。
UTF8 < [ドライブ:][パス]ファイル名
コマンド名 | UTF8
.
:PROGRAM_UTF8_NO_TEXT
入力テキストがありません。
.
:PROGRAM_UTF8_INVALIDCP
現在のコードページは変換できません。
.
:PROGRAM_UTF8_NOT_UTF8
入力されたテキストは UTF-16 です。
.
:PROGRAM_UTF8_CONVERSION_ERROR
テキストの変換でエラーがありました。
.
:PROGRAM_UTF16_HELP
UTF-16のテキストを表示できるよう、現在のコードページへ変換します。
UTF16 [/BE|/LE] < [ドライブ:][パス]ファイル名
コマンド名 | UTF16 [/BE|/LE]
/BE UTF-16 ビッグエンディアンを使用
/LE UTF-16 リトルエンディアンを使用
.
:PROGRAM_VTEXT_HELP
DOS/V エミュレーションの V-text モードを表示・変更します。
VTEXT [mode]
[mode] 設定値: 0, 1, 2 それぞれV-textなし、V-text 1, V-text 2 に該当
パラメータなしで VTEXT を実行すると現在の V-text モードの状態を表示します。
.
:PROGRAM_NMITEST_HELP
マスク不可割り込み(NMI)を生成します。
NMITEST
参考: これは割り込みハンドラが意図通り動作することを確認するデバッグツールです
.
:PROGRAM_NMITEST_GENERATE_NMI
マスク不可割り込み(NMI)を生成します (NMI)...
.
:PROGRAM_CAPMOUSE_HELP
DOSBox-X 内のマウスをキャプチャまたは解放します。
CAPMOUSE [/C|/R]
/C マウスをキャプチャする
/R マウスのキャプチャを解放する
.
:PROGRAM_CAPMOUSE_MOUSE
マウス
.
:PROGRAM_CAPMOUSE_CURRENTLY
は現在
.
:PROGRAM_CAPMOUSE_CAPTURED
キャプチャされています。
.
:PROGRAM_CAPMOUSE_RELEASED
解放されています。
.
:PROGRAM_AUTOTYPE_HELP
実行中の DOS プログラムにスクリプトに基づきキー入力を実施します。
AUTOTYPE [-list] [-w WAIT] [-p PACE] button_1 [button_2 [...]]
-list: 設定可能なボタンの一覧を表示します。
-w WAIT: タイプを開始するまでの時間(秒)。デフォルト 2秒、最大 30秒
-p PACE: キー入力間の時間(秒)。 デフォルト 0.5秒、最大10秒
シーケンスはスペースで区切られた一つ以上のボタンで構成されます。
WAIT 秒後にキー入力を開始し、PACE 秒ごとにキーを入力します。
, (カンマ)で PACE 秒の遅延を追加します。
実行例:
AUTOTYPE -w 1 -p 0.3 up enter , right enter
AUTOTYPE -p 0.2 f1 kp_8 , , enter
AUTOTYPE -w 1.3 esc enter , p l a y e r enter
.
:PROGRAM_AUTOTYPE_NO_BINDINGS
AUTOTYPE: マッパーに該当する割り当てがありません。
.
:PROGRAM_AUTOTYPE_CLAMP_VALUE
AUTOTYPE: %s の値を %.2f から %.2f へ変更します。
.
:PROGRAM_AUTOTYPE_INVALID_VALUE
AUTOTYPE: %s 値 '%s' は有効な浮動小数ではありません
.
:PROGRAM_ADDKEY_HELP
人工的なキー入力を生成します。
ADDKEY [pmsec] [key]
以下の例では、"dir" コマンドをタイプし、1秒後にエンターキーをタイプします。
ADDKEY p1000 d i r enter
このコマンドの代わりに、AUTOTYPE コマンドで実行中のDOSプログラムにスクリプトに
よるキー入力を設定することもできます。
.
:PROGRAM_SETCOLOR_HELP
テキストモードの色設定を表示または変更します。
SETCOLOR [color# [value]]
設定例:
SETCOLOR 0 (50,50,50)
色番号 #0 を設定した値に変更します
SETCOLOR 7 -
色番号 #7 の設定をデフォルト値に戻します
SETCOLOR 3 +
色番号 #3 の設定を設定した値に戻します
SETCOLOR MONO
現在の MONO モードの状態を表示します
文字色・背景色の変更には COLOR コマンドを使って下さい。
.
:PROGRAM_SETCOLOR_STATUS
MONO モード 状態: %s (video mode %d)
.
:PROGRAM_SETCOLOR_ACTIVE
有効
.
:PROGRAM_SETCOLOR_INACTIVE
無効
.
:PROGRAM_SETCOLOR_UNAVAILABLE
設定不可
.
:PROGRAM_SETCOLOR_MONO_MODE7
MONO モード 状態 => 有効 (ビデオモード 7)
.
:PROGRAM_SETCOLOR_MONO_MODE3
MONO モード 状態 => 無効 (ビデオモード 3)
.
:PROGRAM_SETCOLOR_MONO_FAIL
MONO モードへ変更できませんでした。
.
:PROGRAM_SETCOLOR_MONO_SYNTAX
MONOは + または - を指定して下さい: %s
.
:PROGRAM_SETCOLOR_COLOR
色番号 %d: (%d,%d,%d) または #%02x%02x%02x
.
:PROGRAM_SETCOLOR_INVALID_NUMBER
色番号が無効です - %s
.
:PROGRAM_SETCOLOR_INVALID_VALUE
色の値が無効です - %s
.
:PROGRAM_SETCOLOR_NOT_SUPPORTED
現在のビデオモードは色設定の変更ができません。
.
:PROGRAM_BOOT_UNKNOWN_BOOTHAX
不明な boothax モードです。
.
:PROGRAM_BOOT_SPECIFY_FILE
起動する BIOS イメージを指定して下さい。
.
:PROGRAM_BOOT_BIOS_OPEN_ERROR
BIOS イメージを開くことができませんでした。
.
:PROGRAM_BIOSTEST_SPECIFY_FILE
読み込む BIOS ファイルを指定して下さい。
.
:PROGRAM_BIOSTEST_OPEN_ERROR
ファイルが開けません。
.
:PROGRAM_BIOSTEST_TOO_LARGE
BIOS ファイルが大きすぎます。
.

View File

@ -2010,7 +2010,7 @@ public:
else if (boothax_str == "")
boothax = BOOTHAX_NONE;
else {
if (!quiet) WriteOut("Unknown boothax mode");
if (!quiet) WriteOut(MSG_Get("PROGRAM_BOOT_UNKNOWN_BOOTHAX"));
return;
}
@ -2025,7 +2025,7 @@ public:
uint32_t isz1,isz2;
if (bios.empty()) {
if (!quiet) WriteOut("Must specify BIOS image to boot\n");
if (!quiet) WriteOut(MSG_Get("PROGRAM_BOOT_SPECIFY_FILE"));
return;
}
@ -2048,7 +2048,7 @@ public:
/* load it */
FILE *romfp = getFSFile(bios.c_str(), &isz1, &isz2);
if (romfp == NULL) {
if (!quiet) WriteOut("Unable to open BIOS image\n");
if (!quiet) WriteOut(MSG_Get("PROGRAM_BOOT_BIOS_OPEN_ERROR"));
return;
}
Bitu loadsz = (isz2 + 0xFU) & (~0xFU);
@ -3244,7 +3244,7 @@ class BIOSTEST : public Program {
public:
void Run(void) override {
if (!(cmd->FindCommand(1, temp_line))) {
WriteOut("Must specify BIOS file to load.\n");
WriteOut(MSG_Get("PROGRAM_BIOSTEST_SPECIFY_FILE"));
return;
}
if (cmd->FindExist("-?", false) || cmd->FindExist("/?", false)) {
@ -3264,12 +3264,12 @@ public:
FILE* tmpfile = ldp->GetSystemFilePtr(fullname, "rb");
if (tmpfile == NULL) {
WriteOut("Can't open a file");
WriteOut(MSG_Get("PROGRAM_BIOSTEST_OPEN_ERROR"));
return;
}
fseek(tmpfile, 0L, SEEK_END);
if (ftell(tmpfile) > 64 * 1024) {
WriteOut("BIOS File too large");
WriteOut(MSG_Get("PROGRAM_BIOSTEST_TOO_LARGE"));
fclose(tmpfile);
return;
}
@ -5219,7 +5219,7 @@ imageDiskMemory* CreateRamDrive(Bitu sizes[], const int reserved_cylinders, cons
if (dsk == NULL) {
//create hard drive
if (forceFloppy) {
if (obj!=NULL) obj->WriteOut("Floppy size not recognized\n");
if (obj!=NULL) obj->WriteOut(MSG_Get("PROGRAM_IMGMOUNT_INVALID_FLOPPYSIZE"));
return NULL;
}
@ -5249,7 +5249,7 @@ imageDiskMemory* CreateRamDrive(Bitu sizes[], const int reserved_cylinders, cons
if (dsk == NULL) {
//create hard drive
if (forceFloppy) {
if (obj!=NULL) obj->WriteOut("Floppy size not recognized\n");
if (obj!=NULL) obj->WriteOut(MSG_Get("PROGRAM_IMGMOUNT_INVALID_FLOPPYSIZE"));
return NULL;
}
dsk = new imageDiskMemory((uint16_t)sizes[3], (uint16_t)sizes[2], (uint16_t)sizes[1], (uint16_t)sizes[0]);
@ -5643,7 +5643,7 @@ class IMGMOUNT : public Program {
// some generic checks
if (el_torito != "") {
if (paths.size() != 0) {
WriteOut("Do not specify files when mounting floppy drives from El Torito bootable CDs\n");
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_ELTORITO_NO_FILE"));
return;
}
}
@ -5651,7 +5651,7 @@ class IMGMOUNT : public Program {
}
else if (type == "ram") {
if (paths.size() != 0) {
WriteOut("Do not specify files when mounting RAM drives\n");
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_RAMDRIVE_NO_FILE"));
return;
}
}
@ -5706,7 +5706,7 @@ class IMGMOUNT : public Program {
return;
}
if (el_torito != "") {
WriteOut("El Torito bootable CD: -fs iso mounting not supported\n"); /* <- NTS: Will never implement, either */
WriteOut(MSG_Get("PROGRAM_ELTORITO_ISOMOUNT")); /* <- NTS: Will never implement, either */
return;
}
//supports multiple files
@ -5719,12 +5719,12 @@ class IMGMOUNT : public Program {
if (driveIndex <= 1) {
if (swapInDisksSpecificDrive >= 0 && swapInDisksSpecificDrive <= 1 &&
swapInDisksSpecificDrive != driveIndex) {
WriteOut("Multiple images given and another drive already uses multiple images\n");
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_MULTIPLE_USED"));
return;
}
}
else {
WriteOut("Multiple disk images not supported for that drive\n");
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_MULTIPLE_NOTSUPPORTED"));
return;
}
}
@ -5741,10 +5741,10 @@ class IMGMOUNT : public Program {
if (newImage == NULL) return;
newImage->Addref();
if (newImage->hardDrive && (driveIndex < 2)) {
WriteOut("Cannot mount hard drive in floppy position.\n");
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_HD_FDPOSITION"));
}
else if (!newImage->hardDrive && (driveIndex >= 2)) {
WriteOut("Cannot mount floppy in hard drive position.\n");
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_FD_HDPOSITION"));
}
else {
if (AttachToBiosAndIdeByIndex(newImage, (unsigned char)driveIndex, (unsigned char)ide_index, ide_slave)) {
@ -6439,7 +6439,7 @@ class IMGMOUNT : public Program {
const char* fname = ro ? paths[i].c_str() + 1 : paths[i].c_str();
FILE* newDisk = fopen_lock(fname, ro ? "rb" : "rb+", ro);
if(!newDisk) {
if(!qmount) WriteOut("Unable to open '%s'\n", fname);
if(!qmount) WriteOut(MSG_Get("PROGRAM_IMGMOUNT_OPEN_ERROR"), fname);
return false;
}
QCow2Image::QCow2Header qcow2_header = QCow2Image::read_header(newDisk);
@ -6449,7 +6449,7 @@ class IMGMOUNT : public Program {
if(qcow2_header.magic == QCow2Image::magic && (qcow2_header.version == 2 || qcow2_header.version == 3)) {
uint32_t cluster_size = 1u << qcow2_header.cluster_bits;
if((sizes[0] < 512) || ((cluster_size % sizes[0]) != 0)) {
WriteOut("Sector size must be larger than 512 bytes and evenly divide the image cluster size of %lu bytes.\n", cluster_size);
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_INVALID_SECTORSIZE"), cluster_size);
return false;
}
// sectors = (uint64_t)qcow2_header.size / (uint64_t)sizes[0]; /* unused */
@ -6466,7 +6466,7 @@ class IMGMOUNT : public Program {
newImage->cylinders = sizes[3]; // cylinders
}
else {
WriteOut("qcow2 image '%s' is not supported\n", fname);
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_QCOW2_INVALID"), fname);
fclose(newDisk);
newImage = NULL;
}
@ -6513,7 +6513,7 @@ class IMGMOUNT : public Program {
errorMessage = MSG_Get("PROGRAM_IMGMOUNT_CANT_CREATE");
if (fdrive->req_ver_major>0) {
static char ver_msg[150];
sprintf(ver_msg, "Mounting this image file requires a reported DOS version of %u.%u or higher.\n%s", fdrive->req_ver_major, fdrive->req_ver_minor, errorMessage);
sprintf(ver_msg, MSG_Get("PROGRAM_IMGMOUNT_DOS_VERSION"), fdrive->req_ver_major, fdrive->req_ver_minor, errorMessage);
errorMessage = ver_msg;
}
} else {
@ -7005,7 +7005,7 @@ class IMGMOUNT : public Program {
const char* fname=readonly?fileName+1:fileName;
FILE *newDisk = file==NULL?fopen_lock(fname, readonly||roflag?"rb":"rb+", roflag):file;
if (!newDisk) {
if (!qmount) WriteOut("Unable to open '%s'\n", fname);
if (!qmount) WriteOut(MSG_Get("PROGRAM_IMGMOUNT_OPEN_ERROR"), fname);
return NULL;
}
@ -7015,7 +7015,7 @@ class IMGMOUNT : public Program {
if (qcow2_header.magic == QCow2Image::magic && (qcow2_header.version == 2 || qcow2_header.version == 3)) {
uint32_t cluster_size = 1u << qcow2_header.cluster_bits;
if ((sizes[0] < 512) || ((cluster_size % sizes[0]) != 0)) {
WriteOut("Sector size must be larger than 512 bytes and evenly divide the image cluster size of %lu bytes.\n", cluster_size);
WriteOut(MSG_Get("PROGRAM_IMGMOUNT_INVALID_SECTORSIZE"), cluster_size);
return nullptr;
}
sectors = (uint64_t)qcow2_header.size / (uint64_t)sizes[0];
@ -7272,11 +7272,11 @@ public:
void Run(void) override;
private:
void PrintStatus() {
WriteOut("Status for device CON:\n----------------------\nColumns=%d\nLines=%d\n", COLS, LINES);
WriteOut(MSG_Get("PROGRAM_MODE_STATUS"), COLS, LINES);
#if defined(USE_TTF)
if(!ttf.inUse)
#endif
WriteOut("\nCode page operation not supported on this device\n");
WriteOut(MSG_Get("PROGRAM_MODE_NOTSUPPORTED"));
}
int LINES = 25, COLS = 80;
};
@ -7306,7 +7306,7 @@ void MODE::Run(void) {
if (cmd->FindStringBegin("lines=",temp_line,false)) lines=atoi(temp_line.c_str()); else lines=LINES;
bool optr=cmd->FindStringBegin("rate=", temp_line,true), optd=cmd->FindStringBegin("delay=",temp_line,true), optc=cmd->FindStringBegin("cols=", temp_line,true), optl=cmd->FindStringBegin("lines=",temp_line,true);
if ((optr&&!optd)||(optd&&!optr)) {
WriteOut("Rate and delay must be specified together\n");
WriteOut(MSG_Get("PROGRAM_MODE_RATE_DELAY"));
return;
}
if (cmd->GetCount()>1) goto modeparam;
@ -7403,10 +7403,10 @@ class NMITEST : public Program {
public:
void Run(void) override {
if (cmd->FindExist("-?", false) || cmd->FindExist("/?", false)) {
WriteOut("Generates a non-maskable interrupt (NMI).\n\nNMITEST\n\nNote: This is a debugging tool to test if the interrupt handler works properly.\n");
WriteOut(MSG_Get("PROGRAM_NMITEST_HELP"));
return;
}
WriteOut("Generating a non-maskable interrupt (NMI)...\n");
WriteOut(MSG_Get("PROGRAM_NMITEST_GENERATE_NMI"));
CPU_Raise_NMI();
}
};
@ -7444,10 +7444,7 @@ public:
break;
case 0:
default:
WriteOut("Captures or releases the mouse inside DOSBox-X.\n\n");
WriteOut("CAPMOUSE [/C|/R]\n");
WriteOut(" /C Capture the mouse\n");
WriteOut(" /R Release the mouse\n");
WriteOut(MSG_Get("PROGRAM_CAPMOUSE_HELP"));
return;
}
@ -7456,9 +7453,9 @@ public:
GFX_CaptureMouse(cap);
}
std::string msg;
msg.append("Mouse ");
if (val==-1) msg.append("is currently ");
msg.append(Mouse_IsLocked() ? "captured" : "released");
msg.append(MSG_Get("PROGRAM_CAPMOUSE_MOUSE"));
if (val==-1) msg.append(MSG_Get("PROGRAM_CAPMOUSE_CURRENTLY"));
msg.append(Mouse_IsLocked() ? MSG_Get("PROGRAM_CAPMOUSE_CAPTURED") : MSG_Get("PROGRAM_CAPMOUSE_RELEASED"));
msg.append(".\n");
WriteOut(msg.c_str());
}
@ -7595,22 +7592,8 @@ void AUTOTYPE_ProgramStart(Program **make);
void AUTOTYPE::PrintUsage()
{
constexpr const char *msg =
"Performs scripted keyboard entry into a running DOS program.\n\n"
"AUTOTYPE [-list] [-w WAIT] [-p PACE] button_1 [button_2 [...]]\n\n"
"Where:\n"
" -list: prints all available button names.\n"
" -w WAIT: seconds before typing begins. Two second default; max of 30.\n"
" -p PACE: seconds between each keystroke. Half-second default; max of 10.\n\n"
" The sequence is comprised of one or more space-separated buttons.\n"
" Autotyping begins after WAIT seconds, and each button is entered\n"
" every PACE seconds. The , character inserts an extra PACE delay.\n\n"
"Some examples:\n"
" \033[32;1mAUTOTYPE -w 1 -p 0.3 up enter , right enter\033[0m\n"
" \033[32;1mAUTOTYPE -p 0.2 f1 kp_8 , , enter\033[0m\n"
" \033[32;1mAUTOTYPE -w 1.3 esc enter , p l a y e r enter\033[0m\n";
resetcolor = true;
WriteOut(msg);
WriteOut(MSG_Get("PROGRAM_AUTOTYPE_HELP"));
}
// Prints the key-names for the mapper's currently-bound events.
@ -7625,8 +7608,7 @@ void AUTOTYPE::PrintKeys()
// Sanity check to avoid dividing by 0
if (!max_length) {
WriteOut_NoParsing(
"AUTOTYPE: The mapper has no key bindings\n");
WriteOut_NoParsing(MSG_Get("PROGRAM_AUTOTYPE_NO_BINDINGS"));
return;
}
@ -7700,14 +7682,9 @@ bool AUTOTYPE::ReadDoubleArg(const std::string &name,
// Inform them if we had to clamp their value
if (fabs(user_value - value) >
std::numeric_limits<double>::epsilon())
WriteOut("AUTOTYPE: bounding %s value of %.2f "
"to %.2f\n",
name.c_str(), user_value, value);
WriteOut(MSG_Get("PROGRAM_AUTOTYPE_CLAMP_VALUE"), name.c_str(), user_value, value);
} else { // Otherwise we couldn't parse their value
WriteOut("AUTOTYPE: %s value '%s' is not a valid "
"floating point number\n",
name.c_str(), str_value.c_str());
WriteOut(MSG_Get("PROGRAM_AUTOTYPE_INVALID_VALUE"), name.c_str(), str_value.c_str());
}
} else { // Otherwise they haven't passed this flag
value = def_value;
@ -7771,11 +7748,7 @@ public:
void Run(void) override;
private:
void PrintUsage() {
constexpr const char *msg =
"Generates artificial keypresses.\n\nADDKEY [pmsec] [key]\n\n"
"For example, the command below types \"dir\" followed by ENTER after 1 second:\n\nADDKEY p1000 d i r enter\n\n"
"You could also try AUTOTYPE command instead of this command to perform\nscripted keyboard entry into a running DOS program.\n";
WriteOut(msg);
WriteOut(MSG_Get("PROGRAM_ADDKEY_HELP"));
}
};
@ -7862,10 +7835,7 @@ public:
void Run(void) override;
private:
void PrintUsage() {
constexpr const char *msg =
"Converts UTF-8 text to view in the current code page.\n\n"
"UTF8 < [drive:][path]filename\ncommand-name | UTF8\n";
WriteOut(msg);
WriteOut(MSG_Get("PROGRAM_UTF8_HELP"));
}
};
@ -7876,7 +7846,7 @@ void UTF8::Run()
return;
}
if (usecon) {
WriteOut("No input text found.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_NO_TEXT"));
return;
}
// int cp=dos.loaded_codepage; /* unused */
@ -7891,7 +7861,7 @@ void UTF8::Run()
_Iconv<char,test_char_t> *x = _Iconv<char,test_char_t>::create("UTF-8");
_Iconv<test_char_t,char> *fx = _Iconv<test_char_t,char>::create(target);
if (x == NULL || fx == NULL) {
WriteOut("Invalid code page for text conversion.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_INVALIDCP"));
return;
}
test_string dst;
@ -7904,7 +7874,7 @@ void UTF8::Run()
DOS_ReadFile (STDIN,&c,&m);
if (m) text+=std::string(1, c);
if (m && first && text.size() == 2 && (((uint8_t)text[0] == 0xFE && (uint8_t)text[1] == 0xFF) || ((uint8_t)text[0] == 0xFF && (uint8_t)text[1] == 0xFE))) {
WriteOut("The input text is UTF-16.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_NOT_UTF8"));
break;
}
if (m && first && text.size() == 3 && (uint8_t)text[0] == 0xEF && (uint8_t)text[1] == 0xBB && (uint8_t)text[2] == 0xBF) {
@ -7917,7 +7887,7 @@ void UTF8::Run()
} else {
x->set_src(text.c_str());
if ((customcp && dos.loaded_codepage==customcp) || (altcp && dos.loaded_codepage==altcp) || x->string_convert_dest(dst) < 0 || (text.size() && !fx->string_convert(dst).size())) {
WriteOut("An error occurred during text conversion.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_CONVERSION_ERROR"));
morelen=false;
return;
} else
@ -7942,11 +7912,7 @@ public:
void Run(void) override;
private:
void PrintUsage() {
constexpr const char *msg =
"Converts UTF-16 text to view in the current code page.\n\n"
"UTF16 [/BE|/LE] < [drive:][path]filename\ncommand-name | UTF16 [/BE|/LE]\n\n"
" /BE Use UTF-16 Big Endian\n /LE Use UTF-16 Little Endian\n";
WriteOut(msg);
WriteOut(MSG_Get("PROGRAM_UTF16_HELP"));
}
};
@ -7957,7 +7923,7 @@ void UTF16::Run()
return;
}
if (usecon) {
WriteOut("No input text found.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_NO_TEXT"));
return;
}
char target[11] = "CP437";
@ -7971,7 +7937,7 @@ void UTF16::Run()
uint8_t buf[3];uint16_t m=2;
DOS_ReadFile (STDIN,buf,&m);
if (m<2) {
if (m==1) WriteOut("An error occurred during text conversion.\n");
if (m==1) WriteOut(MSG_Get("PROGRAM_UTF8_CONVERSION_ERROR"));
return;
}
bool le=true;
@ -7989,7 +7955,7 @@ void UTF16::Run()
#endif
_Iconv<test_char_t,char> *x = _Iconv<test_char_t,char>::create(target);
if (x == NULL) {
WriteOut("Invalid code page for text conversion.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_INVALIDCP"));
return;
}
test_char dst;
@ -8004,7 +7970,7 @@ void UTF16::Run()
if (!first || (buf[0] == 0xFE && buf[1]== 0xFF) || (buf[0] == 0xFF && buf[1]== 0xFE)) DOS_ReadFile (STDIN,buf,&m);
first=false;
if (m==1) {
WriteOut("An error occurred during text conversion.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_CONVERSION_ERROR"));
break;
} else if (m==2) {
ch=buf[le?1:0]*0x100+buf[le?0:1];
@ -8021,7 +7987,7 @@ void UTF16::Run()
} else {
x->set_src(wch);
if ((customcp && dos.loaded_codepage==customcp) || (altcp && dos.loaded_codepage==altcp) || x->string_convert_dest(dst) < 0 || (c && !dst.size())) {
WriteOut("An error occurred during text conversion.\n");
WriteOut(MSG_Get("PROGRAM_UTF8_CONVERSION_ERROR"));
delete[] wch;
morelen=false;
return;
@ -8049,9 +8015,7 @@ public:
void Run(void) override;
private:
void PrintUsage() {
constexpr const char *msg =
"Changes V-text mode for the DOS/V emulation.\n\nVTEXT [mode]\n\n[mode] can be 0, 1, 2, for no V-text, V-text 1, and V-text 2 respectively.\n\nType VTEXT without a parameter to show the current V-text mode status.\n";
WriteOut(msg);
WriteOut(MSG_Get("PROGRAM_VTEXT_HELP"));
}
};
@ -8748,9 +8712,7 @@ public:
void Run(void) override;
private:
void PrintUsage() {
constexpr const char *msg =
"Views or changes the text-mode color scheme settings.\n\nSETCOLOR [color# [value]]\n\nFor example:\n\n SETCOLOR 0 (50,50,50)\n\nChange Color #0 to the specified color value\n\n SETCOLOR 7 -\n\nReturn Color #7 to the default color value\n\n SETCOLOR 3 +\n\nReturn Color #3 to the preset color value\n\n SETCOLOR MONO\n\nDisplay current MONO mode status\n\nTo change the current background and foreground colors, use COLOR command.\n";
WriteOut(msg);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_HELP"));
}
};
@ -8787,15 +8749,15 @@ void SETCOLOR::Run()
int i=atoi(args);
if (!strcasecmp(args,"MONO")) {
if (p==NULL)
WriteOut("MONO mode status: %s (video mode %d)\n",CurMode->mode==7?"active":CurMode->mode==3?"inactive":"unavailable",CurMode->mode);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_STATUS"),CurMode->mode==7? MSG_Get("PROGRAM_SETCOLOR_ACTIVE"):CurMode->mode==3? MSG_Get("PROGRAM_SETCOLOR_INACTIVE"): MSG_Get("PROGRAM_SETCOLOR_UNAVAILABLE"),CurMode->mode);
else if (!strcmp(trim(p+1),"+")) {
if (CurMode->mode!=7) INT10_SetVideoMode(7);
WriteOut(CurMode->mode==7?"MONO mode status => active (video mode 7)\n":"Failed to change MONO mode\n");
WriteOut(CurMode->mode==7? MSG_Get("PROGRAM_SETCOLOR_MONO_MODE7"): MSG_Get("PROGRAM_SETCOLOR_MONO_FAIL"));
} else if (!strcmp(trim(p+1),"-")) {
if (CurMode->mode!=3) INT10_SetVideoMode(3);
WriteOut(CurMode->mode==3?"MONO mode status => inactive (video mode 3)\n":"Failed to change MONO mode\n");
WriteOut(CurMode->mode==3? MSG_Get("PROGRAM_SETCOLOR_MONO_MODE3"):MSG_Get("PROGRAM_SETCOLOR_MONO_FAIL"));
} else
WriteOut("Must be + or - for MONO: %s\n",trim(p+1));
WriteOut(MSG_Get("PROGRAM_SETCOLOR_MONO_SYNTAX"),trim(p+1));
} else if (!strcmp(args,"0")||!strcmp(args,"00")||!strcmp(args,"+0")||!strcmp(args,"-0")||(i>0&&i<16)) {
if (p==NULL) {
#if defined(USE_TTF)
@ -8803,13 +8765,13 @@ void SETCOLOR::Run()
altBGR[i].red = colornul||(colorChanged&&!IS_VGA_ARCH)?altBGR1[i].red:rgbcolors[i].red;
altBGR[i].green = colornul||(colorChanged&&!IS_VGA_ARCH)?altBGR1[i].green:rgbcolors[i].green;
altBGR[i].blue = colornul||(colorChanged&&!IS_VGA_ARCH)?altBGR1[i].blue:rgbcolors[i].blue;
WriteOut("Color %d: (%d,%d,%d) or #%02x%02x%02x\n",i,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_COLOR"),i,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue);
#else
WriteOut("Color %d: (%d,%d,%d) or #%02x%02x%02x\n",i,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_COLOR"),i,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue);
#endif
}
} else {
WriteOut("Invalid color number - %s\n", trim(args));
WriteOut(MSG_Get("PROGRAM_SETCOLOR_INVALID_NUMBER"), trim(args));
DOS_SetError(DOSERR_DATA_INVALID);
return;
} if (p!=NULL&&strcasecmp(args,"MONO")) {
@ -8831,7 +8793,7 @@ void SETCOLOR::Run()
sprintf(value,"#%6x",rgbVal[0]);
nextRGB = strchr(nextRGB, '#') + 7;
} else {
WriteOut("Invalid color value - %s\n",nextRGB);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_INVALID_VALUE"),nextRGB);
return;
}
}
@ -8843,35 +8805,35 @@ void SETCOLOR::Run()
if (!ttf.inUse) {
#endif
if (!IS_VGA_ARCH)
WriteOut("Changing color scheme is not supported for the current video mode.\n");
WriteOut(MSG_Get("PROGRAM_SETCOLOR_NOT_SUPPORTED"));
else if (setVGAColor(value, i))
//WriteOut("Color %d: (%d,%d,%d) or #%02x%02x%02x\n",i,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue);
WriteOut("Color %d: (%d,%d,%d) or #%02x%02x%02x\n",i,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_COLOR"),i,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue,altBGR0[i].red,altBGR0[i].green,altBGR0[i].blue);
else
WriteOut("Invalid color value - %s\n",value);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_INVALID_VALUE"),value);
#if defined(USE_TTF)
} else if (setColors(value,i)) {
bool colornul = staycolors || (IS_VGA_ARCH && (altBGR1[i].red > 4 || altBGR1[i].green > 4 || altBGR1[i].blue > 4) && rgbcolors[i].red < 5 && rgbcolors[i].green < 5 && rgbcolors[i].blue < 5);
altBGR[i].red = (colornul||(colorChanged&&!IS_VGA_ARCH))?altBGR1[i].red:rgbcolors[i].red;
altBGR[i].green = (colornul||(colorChanged&&!IS_VGA_ARCH))?altBGR1[i].green:rgbcolors[i].green;
altBGR[i].blue = (colornul||(colorChanged&&!IS_VGA_ARCH))?altBGR1[i].blue:rgbcolors[i].blue;
WriteOut("Color %d => (%d,%d,%d) or #%02x%02x%02x\n",i,altBGR[i].red,altBGR[i].green,altBGR[i].blue,altBGR[i].red,altBGR[i].green,altBGR[i].blue);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_COLOR"),i,altBGR[i].red,altBGR[i].green,altBGR[i].blue,altBGR[i].red,altBGR[i].green,altBGR[i].blue);
resetFontSize();
} else
WriteOut("Invalid color value - %s\n",value);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_INVALID_VALUE"),value);
#endif
}
} else {
WriteOut("MONO mode status: %s (video mode %d)\n",CurMode->mode==7?"active":CurMode->mode==3?"inactive":"unavailable",CurMode->mode);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_STATUS"), CurMode->mode == 7 ? MSG_Get("PROGRAM_SETCOLOR_ACTIVE") : CurMode->mode == 3 ? MSG_Get("PROGRAM_SETCOLOR_INACTIVE") : MSG_Get("PROGRAM_SETCOLOR_UNAVAILABLE"), CurMode->mode);
for (int i = 0; i < 16; i++) {
#if defined(USE_TTF)
bool colornul = staycolors || (IS_VGA_ARCH && (altBGR1[i].red > 4 || altBGR1[i].green > 4 || altBGR1[i].blue > 4) && rgbcolors[i].red < 5 && rgbcolors[i].green < 5 && rgbcolors[i].blue < 5);
altBGR[i].red = colornul||(colorChanged&&!IS_VGA_ARCH)?altBGR1[i].red:rgbcolors[i].red;
altBGR[i].green = colornul||(colorChanged&&!IS_VGA_ARCH)?altBGR1[i].green:rgbcolors[i].green;
altBGR[i].blue = colornul||(colorChanged&&!IS_VGA_ARCH)?altBGR1[i].blue:rgbcolors[i].blue;
WriteOut("Color %d: (%d,%d,%d) or #%02x%02x%02x\n",i,altBGR[i].red,altBGR[i].green,altBGR[i].blue,altBGR[i].red,altBGR[i].green,altBGR[i].blue);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_COLOR"),i,altBGR[i].red,altBGR[i].green,altBGR[i].blue,altBGR[i].red,altBGR[i].green,altBGR[i].blue);
#else
WriteOut("Color %d: (%d,%d,%d) or #%02x%02x%02x\n",i,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue);
WriteOut(MSG_Get("PROGRAM_SETCOLOR_COLOR"),i,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue,rgbcolors[i].red,rgbcolors[i].green,rgbcolors[i].blue);
#endif
}
}
@ -9046,7 +9008,9 @@ public:
strcat(dir, " ");
if (cmdstr!=NULL) strcat(dir, TranslateHostPath(cmdstr));
if (!strcasecmp(cmd,"for")) strcat(dir, ")");
strcat(dir, " & echo( & echo The command execution is completed. & pause\"");
strcat(dir, " & echo( & echo ");
strcat(dir, MSG_Get("PROGRAM_START_COMPLETED"));
strcat(dir," & pause\"");
lpExecInfo.lpFile = "CMD.EXE";
lpExecInfo.lpParameters = dir;
} else {
@ -9061,7 +9025,7 @@ public:
strcat(winDirNew, Drives[DOS_GetDefaultDrive()]->curdir);
if (SetCurrentDirectory(winDirNew)) setdir=true;
}
if (!startquiet) WriteOut("Starting %s...\n", cmd);
if (!startquiet) WriteOut(MSG_Get("PROGRAM_START_COMMAND"), cmd);
ShellExecuteEx(&lpExecInfo);
int ErrorCode = GetLastError();
if (setdir) SetCurrentDirectory(winDirCur);
@ -9082,7 +9046,7 @@ public:
exitCode=0;
break;
}
if (++count==20000&&ret&&exitCode==STILL_ACTIVE&&!startquiet) WriteOut("(Press Ctrl+C to exit immediately)\n");
if (++count==20000&&ret&&exitCode==STILL_ACTIVE&&!startquiet) WriteOut(MSG_Get("PROGRAM_START_CTRLC"));
} while (ret!=0&&exitCode==STILL_ACTIVE);
ErrorCode = GetLastError();
CloseHandle(lpExecInfo.hProcess);
@ -9095,7 +9059,7 @@ public:
DOS_SetError(0);
return;
}
if (!startquiet) WriteOut("Starting %s...\n", cmd);
if (!startquiet) WriteOut(MSG_Get("PROGRAM_START_COMMAND"), cmd);
bool open=false;
if (!strncasecmp(cmd, "/open ", 5) || !strncasecmp(cmd, "-open ", 6)) {
open=true;
@ -9112,11 +9076,11 @@ public:
#endif
:"")+std::string(cmd)+(startwait||(strlen(cmd)>2&&!strcmp(cmd+strlen(cmd)-2," &"))?"":" &")).c_str());
#else
WriteOut("Error: START cannot launch application to run on your current host system.\n");
WriteOut(MSG_Get("PROGRAM_START_HOST_ERROR"));
return;
#endif
if (ret==-1) {
WriteOut("Error: START could not launch application.\n");
WriteOut(MSG_Get("PROGRAM_START_LAUNCH_ERROR"));
return;
}
DOS_SetError(ret);
@ -9125,29 +9089,11 @@ public:
private:
void PrintUsage() {
constexpr const char *msg =
"Starts a separate window to run a specified program or command.\n\n"
#if defined(WIN32)
"START [+|-|_] command [arguments]\n\n"
" [+|-|_]: To maximize/minimize/hide the program.\n"
" The options /MAX, /MIN, /HID are also accepted.\n"
" command: The command, program or file to start.\n"
" arguments: Arguments to pass to the application.\n\n"
"START opens the Windows command prompt automatically to run these commands\n"
"and wait for a key press before exiting (specified by \"startincon\" option):\n%s\n\n"
WriteOut(MSG_Get("PROGRAM_START_HELP_WIN"), startincon.c_str());
#else
"START /OPEN file\nSTART command [arguments]\n\n"
" /OPEN: To open a file or URL with the associated program.\n"
" file: The file or URL to open with the associated program.\n"
" command: The command or program to start or run.\n"
" arguments: Arguments to pass to the application.\n\n"
WriteOut(MSG_Get("PROGRAM_START_HELP"));
#endif
"Note: The path specified in this command is the path on the host system.\n";
WriteOut(msg
#if defined(WIN32)
,startincon.c_str()
#endif
);
}
};
@ -9939,6 +9885,9 @@ void DOS_SetupPrograms(void) {
MSG_Add("PROGRAM_BOOT_IS_PC88","The D88 image appears to target PC-88 and cannot be booted.");
MSG_Add("PROGRAM_BOOT_BPS_TOOLARGE","Bytes/sector too large");
MSG_Add("PROGRAM_BOOT_DRIVE_READERROR","Error reading drive");
MSG_Add("PROGRAM_BOOT_UNKNOWN_BOOTHAX","Unknown boothax mode");
MSG_Add("PROGRAM_BOOT_SPECIFY_FILE","Must specify BIOS image to boot\n");
MSG_Add("PROGRAM_BOOT_BIOS_OPEN_ERROR","Unable to open BIOS image\n");
MSG_Add("PROGRAM_LOADROM_HELP","Loads the specified ROM image file for video BIOS or IBM BASIC.\n\nLOADROM ROM_file\n");
MSG_Add("PROGRAM_LOADROM_HELP","Must specify ROM file to load.\n");
@ -9949,7 +9898,9 @@ void DOS_SetupPrograms(void) {
MSG_Add("PROGRAM_LOADROM_UNRECOGNIZED","ROM file not recognized.\n");
MSG_Add("PROGRAM_LOADROM_BASIC_LOADED","BASIC ROM loaded.\n");
MSG_Add("PROGRAM_BIOSTEST_HELP","Boots into a BIOS image for running CPU tester BIOS.\n\nBIOSTEST image_file\n");
MSG_Add("PROGRAM_BIOSTEST_SPECIFY_FILE","Must specify BIOS file to load.\n");
MSG_Add("PROGRAM_BIOSTEST_OPEN_ERROR","Can't open a file");
MSG_Add("PROGRAM_BIOSTEST_TOO_LARGE", "BIOS File too large");
MSG_Add("VHD_ERROR_OPENING", "Could not open the specified VHD file.\n");
MSG_Add("VHD_INVALID_DATA", "The specified VHD file is corrupt and cannot be opened.\n");
MSG_Add("VHD_UNSUPPORTED_TYPE", "The specified VHD file is of an unsupported type.\n");
@ -9985,7 +9936,32 @@ void DOS_SetupPrograms(void) {
MSG_Add("PROGRAM_IMGMOUNT_MOUNT_NUMBER","Drive number %d mounted as %s\n");
MSG_Add("PROGRAM_IMGMOUNT_NON_LOCAL_DRIVE", "The image must be on a host, local or network drive.\n");
MSG_Add("PROGRAM_IMGMOUNT_MULTIPLE_NON_CUEISO_FILES", "Using multiple files is only supported for cue/iso images.\n");
MSG_Add("PROGRAM_IMGMOUNT_MULTIPLE_USED","Multiple images given and another drive already uses multiple images\n");
MSG_Add("PROGRAM_IMGMOUNT_MULTIPLE_NOTSUPPORTED","Multiple disk images not supported for that drive\n");
MSG_Add("PROGRAM_IMGMOUNT_HD_FDPOSITION","Cannot mount hard drive in floppy position.\n");
MSG_Add("PROGRAM_IMGMOUNT_FD_HDPOSITION","Cannot mount floppy in hard drive position.\n");
MSG_Add("PROGRAM_IMGMOUNT_NOT_ASSIGNED","BIOS disk index does not have an image assigned");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_NUMBER","Invalid mount number\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_FSTYPE","Invalid fstype\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_SIZE","Invalid size parameter\n");
MSG_Add("PROGRAM_IMGMOUNT_NOT_MOUNTED_NUMBER","Drive number %d is not mounted.\n");
MSG_Add("PROGRAM_IMGMOUNT_UMOUNT_USAGE", "Incorrect IMGMOUNT unmount usage.\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_LETTER","Invalid drive letter");
MSG_Add("PROGRAM_IMGMOUNT_CHOOSE_LETTER",
"Partitions cannot be mounted in conflict with the standard INT 13h hard disk\n"
"allotment. Choose a different drive letter to mount to.");
MSG_Add("PROGRAM_IMGMOUNT_ELTORITO_NO_FILE",
"Do not specify files when mounting floppy drives from El Torito bootable CDs\n");
MSG_Add("PROGRAM_IMGMOUNT_RAMDRIVE_NO_FILE", "Do not specify files when mounting RAM drives\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_SECTORSIZE",
"Sector size must be larger than 512 bytes and evenly divide the image cluster size of %lu bytes.\n");
MSG_Add("PROGRAM_IMGMOUNT_OPEN_ERROR","Unable to open '%s'\n");
MSG_Add("PROGRAM_IMGMOUNT_QCOW2_INVALID","qcow2 image '%s' is not supported\n");
MSG_Add("PROGRAM_IMGMOUNT_GEOMETRY_ERROR", "Unable to detect geometry\n");
MSG_Add("PROGRAM_IMGMOUNT_DOS_VERSION",
"Mounting this image file requires a reported DOS version of %u.%u or higher.\n%s");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_FLOPPYSIZE","Floppy size not recognized\n");
MSG_Add("PROGRAM_IMGMOUNT_HELP",
"Mounts floppy, hard drive and optical disc images.\n"
"\033[32;1mIMGMOUNT\033[0m \033[37;1mdrive\033[0m \033[36;1mfile\033[0m [-ro] [-t floppy] [-fs fat] [-size ss,s,h,c]\n"
@ -10151,6 +10127,11 @@ void DOS_SetupPrograms(void) {
"\033[34;1mMODE CON COLS=\033[0mc \033[34;1mLINES=\033[0mn :columns and lines, c=80 or 132, n=25, 43, 50, or 60\n"
"\033[34;1mMODE CON RATE=\033[0mr \033[34;1mDELAY=\033[0md :typematic rates, r=1-32 (32=fastest), d=1-4 (1=lowest)\n");
MSG_Add("PROGRAM_MODE_INVALID_PARAMETERS","Invalid parameter(s).\n");
MSG_Add("PROGRAM_MODE_STATUS",
"Status for device CON:\n----------------------\nColumns=%d\nLines=%d\n");
MSG_Add("PROGRAM_MODE_NOTSUPPORTED","\nCode page operation not supported on this device\n");
MSG_Add("PROGRAM_MODE_RATE_DELAY","Rate and delay must be specified together\n");
MSG_Add("PROGRAM_PORT_INVALID_NUMBER","Must specify a port number between 1 and 9.\n");
MSG_Add("PROGRAM_VHDMAKE_WRITERR", "Could not write to new VHD image \"%s\", aborting.\n");
MSG_Add("PROGRAM_VHDMAKE_REMOVEERR", "Could not erase file \"%s\"\n");
@ -10230,16 +10211,6 @@ void DOS_SetupPrograms(void) {
" \033[36;1m[position]\033[0m Disk position to swap to.\n");
MSG_Add("PROGRAM_INTRO_HELP",
"A full-screen introduction to DOSBox-X.\n\nINTRO [/RUN] [CDROM|MOUNT|USAGE|WELCOME]\n");
MSG_Add("PROGRAM_IMGMOUNT_NOT_ASSIGNED","BIOS disk index does not have an image assigned");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_NUMBER","Invalid mount number\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_FSTYPE","Invalid fstype\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_SIZE","Invalid size parameter\n");
MSG_Add("PROGRAM_IMGMOUNT_NOT_MOUNTED_NUMBER","Drive number %d is not mounted.\n");
MSG_Add("PROGRAM_IMGMOUNT_UMOUNT_USAGE", "Incorrect IMGMOUNT unmount usage.\n");
MSG_Add("PROGRAM_IMGMOUNT_INVALID_LETTER","Invalid drive letter");
MSG_Add("PROGRAM_IMGMOUNT_CHOOSE_LETTER",
"Partitions cannot be mounted in conflict with the standard INT 13h hard disk\n"
"allotment. Choose a different drive letter to mount to.");
MSG_Add("PROGRAM_ELTORITO_LETTER","El Torito emulation requires a proper CD-ROM drive letter\n");
MSG_Add("PROGRAM_ELTORITO_DRIVE_EXISTS","El Torito CD-ROM drive specified already exists as a non-CD-ROM device\n");
MSG_Add("PROGRAM_ELTORITO_NOT_CDDRIVE","El Torito CD-ROM drive specified is not actually a CD-ROM drive\n");
@ -10249,6 +10220,99 @@ void DOS_SetupPrograms(void) {
MSG_Add("PROGRAM_ELTORITO_NO_BOOTABLE_FLOPPY","El Torito bootable floppy not found\n");
MSG_Add("PROGRAM_ELTORITO_BOOTABLE_SECTION","Unable to locate bootable section\n");
MSG_Add("PROGRAM_ELTORITO_BOOTSECTOR","El Torito boot sector unreadable\n");
MSG_Add("PROGRAM_ELTORITO_ISOMOUNT","El Torito bootable CD: -fs iso mounting not supported\n");
MSG_Add("PROGRAM_START_HELP_WIN",
"Starts a separate window to run a specified program or command.\n\n"
"START [+|-|_] command [arguments]\n\n"
" [+|-|_]: To maximize/minimize/hide the program.\n"
" The options /MAX, /MIN, /HID are also accepted.\n"
" command: The command, program or file to start.\n"
" arguments: Arguments to pass to the application.\n\n"
"START opens the Windows command prompt automatically to run these commands\n"
"and wait for a key press before exiting (specified by \"startincon\" option):\n%s\n\n"
"Note: The path specified in this command is the path on the host system.\n");
MSG_Add("PROGRAM_START_HELP",
"Starts a separate window to run a specified program or command.\n\n"
"START /OPEN file\nSTART command [arguments]\n\n"
" /OPEN: To open a file or URL with the associated program.\n"
" file: The file or URL to open with the associated program.\n"
" command: The command or program to start or run.\n"
" arguments: Arguments to pass to the application.\n\n"
"Note: The path specified in this command is the path on the host system.\n");
MSG_Add("PROGRAM_START_COMPLETED", "The command execution is completed.");
MSG_Add("PROGRAM_START_COMMAND", "Starting %s...\n");
MSG_Add("PROGRAM_START_CTRLC", "(Press Ctrl+C to exit immediately)\n");
MSG_Add("PROGRAM_START_HOST_ERROR", "Error: START cannot launch application to run on your current host system.\n");
MSG_Add("PROGRAM_START_LAUNCH_ERROR", "Error: START could not launch application.\n");
MSG_Add("PROGRAM_UTF8_HELP",
"Converts UTF-8 text to view in the current code page.\n\n"
"UTF8 < [drive:][path]filename\ncommand-name | UTF8\n");
MSG_Add("PROGRAM_UTF8_NO_TEXT","No input text found.\n");
MSG_Add("PROGRAM_UTF8_INVALIDCP","Invalid code page for text conversion.\n");
MSG_Add("PROGRAM_UTF8_NOT_UTF8","The input text is UTF-16.\n");
MSG_Add("PROGRAM_UTF8_CONVERSION_ERROR","An error occurred during text conversion.\n");
MSG_Add("PROGRAM_UTF16_HELP",
"Converts UTF-16 text to view in the current code page.\n\n"
"UTF16 [/BE|/LE] < [drive:][path]filename\ncommand-name | UTF16 [/BE|/LE]\n\n"
" /BE Use UTF-16 Big Endian\n /LE Use UTF-16 Little Endian\n");
MSG_Add("PROGRAM_VTEXT_HELP", "Changes V-text mode for the DOS/V emulation.\n\n"
"VTEXT [mode]\n\n[mode] can be 0, 1, 2, for no V-text, V-text 1, and V-text 2 respectively.\n\n"
"Type VTEXT without a parameter to show the current V-text mode status.\n");
MSG_Add("PROGRAM_NMITEST_HELP", "Generates a non-maskable interrupt (NMI).\n\n"
"NMITEST\n\nNote: This is a debugging tool to test if the interrupt handler works properly.\n");
MSG_Add("PROGRAM_NMITEST_GENERATE_NMI","Generating a non-maskable interrupt (NMI)...\n");
MSG_Add("PROGRAM_CAPMOUSE_HELP","Captures or releases the mouse inside DOSBox-X.\n\n"
"CAPMOUSE [/C|/R]\n"
" /C Capture the mouse\n"
" /R Release the mouse\n");
MSG_Add("PROGRAM_CAPMOUSE_MOUSE", "Mouse ");
MSG_Add("PROGRAM_CAPMOUSE_CURRENTLY", "is currently ");
MSG_Add("PROGRAM_CAPMOUSE_CAPTURED", "captured");
MSG_Add("PROGRAM_CAPMOUSE_RELEASED", "released");
MSG_Add("PROGRAM_AUTOTYPE_HELP",
"Performs scripted keyboard entry into a running DOS program.\n\n"
"AUTOTYPE [-list] [-w WAIT] [-p PACE] button_1 [button_2 [...]]\n\n"
"Where:\n"
" -list: prints all available button names.\n"
" -w WAIT: seconds before typing begins. Two second default; max of 30.\n"
" -p PACE: seconds between each keystroke. Half-second default; max of 10.\n\n"
" The sequence is comprised of one or more space-separated buttons.\n"
" Autotyping begins after WAIT seconds, and each button is entered\n"
" every PACE seconds. The , character inserts an extra PACE delay.\n\n"
"Some examples:\n"
" \033[32;1mAUTOTYPE -w 1 -p 0.3 up enter , right enter\033[0m\n"
" \033[32;1mAUTOTYPE -p 0.2 f1 kp_8 , , enter\033[0m\n"
" \033[32;1mAUTOTYPE -w 1.3 esc enter , p l a y e r enter\033[0m\n");
MSG_Add("PROGRAM_AUTOTYPE_NO_BINDINGS","AUTOTYPE: The mapper has no key bindings\n");
MSG_Add("PROGRAM_AUTOTYPE_CLAMP_VALUE", "AUTOTYPE: bounding %s value of %.2f to %.2f\n");
MSG_Add("PROGRAM_AUTOTYPE_INVALID_VALUE",
"AUTOTYPE: %s value '%s' is not a valid floating point number\n");
MSG_Add("PROGRAM_ADDKEY_HELP", "Generates artificial keypresses.\n\n"
"ADDKEY [pmsec] [key]\n\n"
"For example, the command below types \"dir\" followed by ENTER after 1 second:\n\n"
"ADDKEY p1000 d i r enter\n\n"
"You could also try AUTOTYPE command instead of this command to perform\n"
"scripted keyboard entry into a running DOS program.\n");
MSG_Add("PROGRAM_SETCOLOR_HELP", "Views or changes the text-mode color scheme settings.\n\n"
"SETCOLOR [color# [value]]\n\nFor example:\n\n SETCOLOR 0 (50,50,50)\n\n"
"Change Color #0 to the specified color value\n\n SETCOLOR 7 -\n\n"
"Return Color #7 to the default color value\n\n SETCOLOR 3 +\n\n"
"Return Color #3 to the preset color value\n\n SETCOLOR MONO\n\n"
"Display current MONO mode status\n\n"
"To change the current background and foreground colors, use COLOR command.\n");
MSG_Add("PROGRAM_SETCOLOR_STATUS","MONO mode status: %s (video mode %d)\n");
MSG_Add("PROGRAM_SETCOLOR_ACTIVE","active");
MSG_Add("PROGRAM_SETCOLOR_INACTIVE","inactive");
MSG_Add("PROGRAM_SETCOLOR_UNAVAILABLE","unavailable");
MSG_Add("PROGRAM_SETCOLOR_MONO_MODE7","MONO mode status => active (video mode 7)\n");
MSG_Add("PROGRAM_SETCOLOR_MONO_MODE3","MONO mode status => inactive (video mode 3)\n");
MSG_Add("PROGRAM_SETCOLOR_MONO_FAIL","Failed to change MONO mode\n");
MSG_Add("PROGRAM_SETCOLOR_MONO_SYNTAX","Must be + or - for MONO: %s\n");
MSG_Add("PROGRAM_SETCOLOR_COLOR","Color %d: (%d,%d,%d) or #%02x%02x%02x\n");
MSG_Add("PROGRAM_SETCOLOR_INVALID_NUMBER","Invalid color number - %s\n");
MSG_Add("PROGRAM_SETCOLOR_INVALID_VALUE","Invalid color value - %s\n");
MSG_Add("PROGRAM_SETCOLOR_NOT_SUPPORTED","Changing color scheme is not supported for the current video mode.\n");
const Section_prop * dos_section=static_cast<Section_prop *>(control->GetSection("dos"));
hidefiles = dos_section->Get_string("drive z hide files");