Changes to re-implement the Host CD-ROM Drive mode, phase 2. This also adds 2 new status-bar menu items to optical drives, Lock and Unlock, which disable or enable media removal/insertion on the host drive.

This commit is contained in:
waltje
2018-10-19 02:37:00 -04:00
parent 0ef62220d1
commit af443c0f04
27 changed files with 1006 additions and 781 deletions

View File

@@ -8,7 +8,7 @@
* *
* Generic interface for CD-ROM/DVD/BD implementations. * Generic interface for CD-ROM/DVD/BD implementations.
* *
* Version: @(#)cdrom.c 1.0.21 2018/10/17 * Version: @(#)cdrom.c 1.0.21 2018/10/18
* *
* Authors: Fred N. van Kempen, <decwiz@yahoo.com> * Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -351,6 +351,24 @@ cdrom_reset_bus(int bus)
} }
/* API: notify the CDROM layer about a media change. */
void
cdrom_notify(const char *drive, int present)
{
cdrom_t *dev;
int i;
for (i = 0; i < CDROM_NUM; i++) {
dev = &cdrom[i];
if (dev->host_drive == *drive) {
if (dev->ops->notify_change)
dev->ops->notify_change(dev, present);
}
}
}
int int
cdrom_string_to_bus(const char *str) cdrom_string_to_bus(const char *str)
{ {

View File

@@ -8,7 +8,7 @@
* *
* Definitions for the CDROM module.. * Definitions for the CDROM module..
* *
* Version: @(#)cdrom.h 1.0.14 2018/10/17 * Version: @(#)cdrom.h 1.0.15 2018/10/18
* *
* Authors: Fred N. van Kempen, <decwiz@yahoo.com> * Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -88,7 +88,8 @@ struct cdrom;
/* Define the various CD-ROM drive operations (ops). */ /* Define the various CD-ROM drive operations (ops). */
typedef struct { typedef struct {
int (*ready)(struct cdrom *dev); int (*ready)(struct cdrom *dev);
int (*medium_changed)(struct cdrom *dev); void (*notify_change)(struct cdrom *dev, int media_present);
void (*medium_lock)(struct cdrom *dev, int locked);
int (*media_type_id)(struct cdrom *dev); int (*media_type_id)(struct cdrom *dev);
uint32_t (*size)(struct cdrom *dev); uint32_t (*size)(struct cdrom *dev);
@@ -123,7 +124,9 @@ typedef struct cdrom {
int8_t bus_type, /* 0 = ATAPI, 1 = SCSI */ int8_t bus_type, /* 0 = ATAPI, 1 = SCSI */
bus_mode, /* Bit 0 = PIO suported; bus_mode, /* Bit 0 = PIO suported;
* Bit 1 = DMA supportd. */ * Bit 1 = DMA supportd. */
sound_on; sound_on,
can_lock, /* device can be locked */
is_locked; /* device is currently locked */
union { union {
uint8_t ide_channel; /* IDE drive: channel (0/1) */ uint8_t ide_channel; /* IDE drive: channel (0/1) */
@@ -198,6 +201,8 @@ extern void cdrom_insert(uint8_t id);
extern void cdrom_eject(uint8_t id); extern void cdrom_eject(uint8_t id);
extern void cdrom_reload(uint8_t id); extern void cdrom_reload(uint8_t id);
extern void cdrom_notify(const char *drive, int present);
extern int cdrom_image_open(cdrom_t *dev, const wchar_t *fn); extern int cdrom_image_open(cdrom_t *dev, const wchar_t *fn);
#ifdef USE_HOST_CDROM #ifdef USE_HOST_CDROM

View File

@@ -8,7 +8,7 @@
* *
* CD-ROM image support. * CD-ROM image support.
* *
* Version: @(#)cdrom_image.cpp 1.0.13 2018/10/17 * Version: @(#)cdrom_image.cpp 1.0.14 2018/10/18
* *
* Authors: Fred N. van Kempen, <decwiz@yahoo.com> * Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -309,14 +309,6 @@ image_get_last_block(cdrom_t *dev)
} }
static int
image_medium_changed(UNUSED(cdrom_t *dev))
{
/* There is no way to change the medium within an already mounted image. */
return 0;
}
static uint8_t static uint8_t
image_getcurrentsubchannel(cdrom_t *dev, uint8_t *b, int msf) image_getcurrentsubchannel(cdrom_t *dev, uint8_t *b, int msf)
{ {
@@ -1060,7 +1052,8 @@ image_media_type_id(cdrom_t *dev)
static const cdrom_ops_t cdrom_image_ops = { static const cdrom_ops_t cdrom_image_ops = {
image_ready, image_ready,
image_medium_changed, NULL,
NULL,
image_media_type_id, image_media_type_id,
image_size, image_size,

View File

@@ -11,7 +11,7 @@
* *
* FIXME: TO BE REMOVED * FIXME: TO BE REMOVED
* *
* Version: @(#)cdrom_null.c 1.0.6 2018/10/17 * Version: @(#)cdrom_null.c 1.0.7 2018/10/18
* *
* Author: Miran Grca, <mgrca8@gmail.com> * Author: Miran Grca, <mgrca8@gmail.com>
* Sarah Walker, <tommowalker@tommowalker.co.uk> * Sarah Walker, <tommowalker@tommowalker.co.uk>
@@ -53,14 +53,6 @@ null_ready(cdrom_t *dev)
} }
/* Always return 0, the contents of a null CD-ROM drive never change. */
static int
null_medium_changed(cdrom_t *dev)
{
return(0);
}
static int static int
null_media_type_id(cdrom_t *dev) null_media_type_id(cdrom_t *dev)
{ {
@@ -128,7 +120,8 @@ null_readsector_raw(cdrom_t *dev, uint8_t *buffer, int sector, int ismsf, int cd
static cdrom_ops_t cdrom_null_ops = { static cdrom_ops_t cdrom_null_ops = {
null_ready, null_ready,
null_medium_changed, NULL,
NULL,
null_media_type_id, null_media_type_id,
null_size, null_size,

View File

@@ -8,7 +8,7 @@
* *
* Emulation of SCSI (and ATAPI) CD-ROM drives. * Emulation of SCSI (and ATAPI) CD-ROM drives.
* *
* Version: @(#)scsi_cdrom.c 1.0.2 2018/10/17 * Version: @(#)scsi_cdrom.c 1.0.2 2018/10/18
* *
* Authors: Fred N. van Kempen, <decwiz@yahoo.com> * Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -1350,9 +1350,6 @@ pre_execution_check(scsi_cdrom_t *dev, uint8_t *cdb)
goto skip_ready_check; goto skip_ready_check;
} }
if (dev->drv->ops->medium_changed(dev->drv))
scsi_cdrom_insert((void *) dev);
ready = dev->drv->ops->ready(dev->drv); ready = dev->drv->ops->ready(dev->drv);
skip_ready_check: skip_ready_check:
@@ -1483,9 +1480,6 @@ request_sense_for_scsi(void *p, uint8_t *buffer, uint8_t alloc_length)
scsi_cdrom_t *dev = (scsi_cdrom_t *) p; scsi_cdrom_t *dev = (scsi_cdrom_t *) p;
int ready = 0; int ready = 0;
if (dev->drv->ops->medium_changed(dev->drv))
scsi_cdrom_insert((void *) dev);
ready = dev->drv->ops->ready(dev->drv); ready = dev->drv->ops->ready(dev->drv);
if (!ready && dev->unit_attention) { if (!ready && dev->unit_attention) {
@@ -2274,7 +2268,8 @@ scsi_cdrom_command(void *p, uint8_t *cdb)
dev->drv->ops->stop(dev->drv); dev->drv->ops->stop(dev->drv);
break; break;
case 1: /* Start the disc and read the TOC. */ case 1: /* Start the disc and read the TOC. */
dev->drv->ops->medium_changed(dev->drv); /* This causes a TOC reload. */ /* This causes a TOC reload. */
(void)dev->drv->ops->ready(dev->drv);
break; break;
case 2: /* Eject the disc if possible. */ case 2: /* Eject the disc if possible. */
if (dev->drv->ops->stop) if (dev->drv->ops->stop)

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Belorussian (Belarus)" language. * String definitions for "Belorussian (Belarus)" language.
* *
* Version: @(#)VARCem-BY.str 1.0.5 2018/10/01 * Version: @(#)VARCem-BY.str 1.0.5 2018/10/18
* *
* Authors: paul_met, <paul_met@yandex.ru> * Authors: paul_met, <paul_met@yandex.ru>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -110,6 +110,8 @@
#define STR_ENABLED "Даступна" #define STR_ENABLED "Даступна"
#define STR_OFF "Выкл" #define STR_OFF "Выкл"
#define STR_ON "Укл" #define STR_ON "Укл"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Тып" #define STR_TYPE "Тып"
#define STR_FILENAME "Імя файла:" #define STR_FILENAME "Імя файла:"
#define STR_PROGRESS "Прагрэс:" #define STR_PROGRESS "Прагрэс:"
@@ -291,11 +293,12 @@
#define STR_3900 "(пуста)" #define STR_3900 "(пуста)"
#define STR_3901 "(хост-дыск %c:)" #define STR_3901 "(хост-дыск %c:)"
#define STR_3902 " [Абаронены ад запісу]" #define STR_3902 " [Абаронены ад запісу]"
#define STR_3903 "Новы вобраз.." #define STR_3903 " [Locked]"
#define STR_3904 "Открыть образ.." #define STR_3904 "Новы вобраз.."
#define STR_3905 "Загрузіць папярэдні лад" #define STR_3905 "Открыть образ.."
#define STR_3906 "Выняць" #define STR_3906 "Загрузіць папярэдні лад"
#define STR_3907 "Паведаміць аб змене дыска" #define STR_3907 "Выняць"
#define STR_3908 "Паведаміць аб змене дыска"
#define STR_3910 "Flopp %i (%s): %ls" #define STR_3910 "Flopp %i (%s): %ls"
#define STR_3911 "Усе вобразы\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Прасунутыя сектарная вобразы\0*.imd;*.json;*.td0\0Простые секторные вобразы\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Вобразы з магнітным патокам\0*.fdi\0Вобразы з бітавым патокам\0*.86f\0Усе файлы\0*.*\0" #define STR_3911 "Усе вобразы\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Прасунутыя сектарная вобразы\0*.imd;*.json;*.td0\0Простые секторные вобразы\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Вобразы з магнітным патокам\0*.fdi\0Вобразы з бітавым патокам\0*.86f\0Усе файлы\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Czech (Czech Republic)" language. * String definitions for "Czech (Czech Republic)" language.
* *
* Version: @(#)VARCem-CZ.str 1.0.5 2018/10/01 * Version: @(#)VARCem-CZ.str 1.0.5 2018/10/18
* *
* Authors: David Hrdlička, <hrdlickadavid@outlook.com> * Authors: David Hrdlička, <hrdlickadavid@outlook.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Nepovoleno" #define STR_ENABLED "Nepovoleno"
#define STR_OFF "Zapnuto" #define STR_OFF "Zapnuto"
#define STR_ON "Vypnuto" #define STR_ON "Vypnuto"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Typ" #define STR_TYPE "Typ"
#define STR_FILENAME "Jméno souboru:" #define STR_FILENAME "Jméno souboru:"
#define STR_PROGRESS "Průběh:" #define STR_PROGRESS "Průběh:"
@@ -294,11 +296,12 @@
#define STR_3900 "(prázdné)" #define STR_3900 "(prázdné)"
#define STR_3901 "(hostitelská jednotka %c:)" #define STR_3901 "(hostitelská jednotka %c:)"
#define STR_3902 " [Chráněno proti zápisu]" #define STR_3902 " [Chráněno proti zápisu]"
#define STR_3903 "&Nový obraz..." #define STR_3903 " [Locked]"
#define STR_3904 "N&ačíst obraz..." #define STR_3904 "&Nový obraz..."
#define STR_3905 "&Znovu načíst předchozí obraz" #define STR_3905 "N&ačíst obraz..."
#define STR_3906 "&Vyjmout" #define STR_3906 "&Znovu načíst předchozí obraz"
#define STR_3907 "&Notify disk change" #define STR_3907 "&Vyjmout"
#define STR_3908 "&Notify disk change"
#define STR_3910 "Disketa %i (%s): %ls" #define STR_3910 "Disketa %i (%s): %ls"
#define STR_3911 "Všechny obrazy\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Pokročilé sektorové obrazy\0*.imd;*.json;*.td0\0Základní sektorové obrazy\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Obrazy magnetického toku\0*.fdi\0Obrazy povrchu\0*.86f\0Všechny soubory\0*.*\0" #define STR_3911 "Všechny obrazy\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Pokročilé sektorové obrazy\0*.imd;*.json;*.td0\0Základní sektorové obrazy\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Obrazy magnetického toku\0*.fdi\0Obrazy povrchu\0*.86f\0Všechny soubory\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "German (Germany)" language. * String definitions for "German (Germany)" language.
* *
* Version: @(#)VARCem-DE.str 1.0.13 2018/10/01 * Version: @(#)VARCem-DE.str 1.0.13 2018/10/18
* *
* Authors: Michael Drüing, <michael@drueing.de> * Authors: Michael Drüing, <michael@drueing.de>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Aktiviert" #define STR_ENABLED "Aktiviert"
#define STR_OFF "Aus" #define STR_OFF "Aus"
#define STR_ON "An" #define STR_ON "An"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Typ" #define STR_TYPE "Typ"
#define STR_FILENAME "Dateiname:" #define STR_FILENAME "Dateiname:"
#define STR_PROGRESS "Fortschritt:" #define STR_PROGRESS "Fortschritt:"
@@ -310,11 +312,12 @@
#define STR_3900 "(leer)" #define STR_3900 "(leer)"
#define STR_3901 "(Hostlaufwerk %c:)" #define STR_3901 "(Hostlaufwerk %c:)"
#define STR_3902 " [Schreibgeschützt]" #define STR_3902 " [Schreibgeschützt]"
#define STR_3903 "&Neues Abbild..." #define STR_3903 " [Locked]"
#define STR_3904 "Abbild &laden..." #define STR_3904 "&Neues Abbild..."
#define STR_3905 "Vor&heriges Abbild erneut laden" #define STR_3905 "Abbild &laden..."
#define STR_3906 "Aus&werfen" #define STR_3906 "Vor&heriges Abbild erneut laden"
#define STR_3907 "Ä&nderungsbenachrichtigung bei Wechsel" #define STR_3907 "Aus&werfen"
#define STR_3908 "Ä&nderungsbenachrichtigung bei Wechsel"
#define STR_3910 "Diskettenlaufwerk %i (%s): %ls" #define STR_3910 "Diskettenlaufwerk %i (%s): %ls"
#define STR_3911 "Alle Abbilder\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Komplexe Sektorabbilder\0*.imd;*.json;*.td0\0Einfache Sektorabbilder\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Magnetfluss-Abbilder\0*.fdi\0Bitstrom-Abbilder\0*.86f\0Alle Dateien\0*.*\0" #define STR_3911 "Alle Abbilder\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Komplexe Sektorabbilder\0*.imd;*.json;*.td0\0Einfache Sektorabbilder\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Magnetfluss-Abbilder\0*.fdi\0Bitstrom-Abbilder\0*.86f\0Alle Dateien\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Dutch (Netherlands)" language. * String definitions for "Dutch (Netherlands)" language.
* *
* Version: @(#)VARCem-DU.str 1.0.12 2018/10/01 * Version: @(#)VARCem-DU.str 1.0.13 2018/10/18
* *
* Author: Fred N. van Kempen, <decwiz@yahoo.com> * Author: Fred N. van Kempen, <decwiz@yahoo.com>
* *
@@ -46,7 +46,7 @@
*/ */
/* Main application strings (2000) - DO NOT TRANSLATE! */ /* Main application strings (2000) - DO NOT TRANSLATE! */
#define STR_VERSION 1,0,12 #define STR_VERSION 1,0,13
#define STR_AUTHOR "Fred N. van Kempen" #define STR_AUTHOR "Fred N. van Kempen"
#define STR_EMAIL "waltje@varcem.com" #define STR_EMAIL "waltje@varcem.com"
#define STR_NAME "VARCem" #define STR_NAME "VARCem"
@@ -110,6 +110,8 @@
#define STR_ENABLED "Ingeschakeld" #define STR_ENABLED "Ingeschakeld"
#define STR_OFF "Uit" #define STR_OFF "Uit"
#define STR_ON "Aan" #define STR_ON "Aan"
#define STR_UNLOCK "Niet Verwisselbaar"
#define STR_LOCK "Verwisselbaar"
#define STR_TYPE "Type" #define STR_TYPE "Type"
#define STR_FILENAME "Bestandsnaam:" #define STR_FILENAME "Bestandsnaam:"
#define STR_PROGRESS "Voortgang:" #define STR_PROGRESS "Voortgang:"
@@ -291,12 +293,13 @@
/* UI: Status Bar (3900.) */ /* UI: Status Bar (3900.) */
#define STR_3900 "(leeg)" #define STR_3900 "(leeg)"
#define STR_3901 "(PC station %c:)" #define STR_3901 "(PC station %c:)"
#define STR_3902 " [Schrijfbeveiligd" #define STR_3902 " [Schrijfbeveiligd]"
#define STR_3903 "&Nieuw bestand..." #define STR_3903 " [Niet verwijderbaar]"
#define STR_3904 "&Bestaand bestand..." #define STR_3904 "&Nieuw bestand..."
#define STR_3905 "&Her-laad vorige bestand" #define STR_3905 "&Bestaand bestand..."
#define STR_3906 "&Uitwerpen" #define STR_3906 "&Her-laad vorige bestand"
#define STR_3907 "&Terugmelding disk-wissel" #define STR_3907 "&Uitwerpen"
#define STR_3908 "&Terugmelding disk-wissel"
#define STR_3910 "Diskette %i (%s): %ls" #define STR_3910 "Diskette %i (%s): %ls"
#define STR_3911 "Alle diskettebestanden\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced Sector bestanden\0*.imd;*.json;*.td0\0Basic Sector bestanden\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux bestanden\0*.fdi\0Surface bestanden\0*.86f\0Alle bestanden\0*.*\0" #define STR_3911 "Alle diskettebestanden\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced Sector bestanden\0*.imd;*.json;*.td0\0Basic Sector bestanden\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux bestanden\0*.fdi\0Surface bestanden\0*.86f\0Alle bestanden\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Spanish (Spain, Normal Sort)" language. * String definitions for "Spanish (Spain, Normal Sort)" language.
* *
* Version: @(#)VARCem-ES.str 1.0.12 2018/10/01 * Version: @(#)VARCem-ES.str 1.0.13 2018/10/18
* *
* Authors: Natalia Portillo, <claunia@claunia.com> * Authors: Natalia Portillo, <claunia@claunia.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -48,7 +48,7 @@
*/ */
/* Main application strings (2000) - DO NOT TRANSLATE! */ /* Main application strings (2000) - DO NOT TRANSLATE! */
#define STR_VERSION 1,0,11 #define STR_VERSION 1,0,13
#define STR_AUTHOR "Natalia Portillo" #define STR_AUTHOR "Natalia Portillo"
#define STR_EMAIL "claunia@claunia.com" #define STR_EMAIL "claunia@claunia.com"
#define STR_NAME "VARCem" #define STR_NAME "VARCem"
@@ -112,6 +112,8 @@
#define STR_ENABLED "Activado" #define STR_ENABLED "Activado"
#define STR_OFF "Apagado" #define STR_OFF "Apagado"
#define STR_ON "Encendido" #define STR_ON "Encendido"
#define STR_UNLOCK "Desbloquear"
#define STR_LOCK "Bloqueada"
#define STR_TYPE "Tipo" #define STR_TYPE "Tipo"
#define STR_FILENAME "Archivo:" #define STR_FILENAME "Archivo:"
#define STR_PROGRESS "Progreso:" #define STR_PROGRESS "Progreso:"
@@ -294,11 +296,12 @@
#define STR_3900 "(vacío)" #define STR_3900 "(vacío)"
#define STR_3901 "(unidad nativa %c:)" #define STR_3901 "(unidad nativa %c:)"
#define STR_3902 " [Protegida contra escritura]" #define STR_3902 " [Protegida contra escritura]"
#define STR_3903 "&Nueva imagen.." #define STR_3903 " [Desbloqueada]"
#define STR_3904 "&Cargar imagen.." #define STR_3904 "&Nueva imagen.."
#define STR_3905 "&Recargar imagen anterior" #define STR_3905 "&Cargar imagen.."
#define STR_3906 "&Expulsar" #define STR_3906 "&Recargar imagen anterior"
#define STR_3907 "&Notificar cambio de disco" #define STR_3907 "&Expulsar"
#define STR_3908 "&Notificar cambio de disco"
#define STR_3910 "Disquetera %i (%s): %ls" #define STR_3910 "Disquetera %i (%s): %ls"
#define STR_3911 "Todas las imágenes\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Imágenes por sectores avanzadas\0*.imd;*.json;*.td0\0Imágenes por sectores básicas\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Imágenes de flujo\0*.fdi\0Imágenes de superficie\0*.86f\0Todos los archivos\0*.*\0" #define STR_3911 "Todas las imágenes\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Imágenes por sectores avanzadas\0*.imd;*.json;*.td0\0Imágenes por sectores básicas\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Imágenes de flujo\0*.fdi\0Imágenes de superficie\0*.86f\0Todos los archivos\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Finnish (Finland)" language. * String definitions for "Finnish (Finland)" language.
* *
* Version: @(#)VARCem-FI.str 1.0.9 2018/10/01 * Version: @(#)VARCem-FI.str 1.0.9 2018/10/18
* *
* Authors: Daniel Gurney, <dgurney@varcem.com> * Authors: Daniel Gurney, <dgurney@varcem.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Käytössä" #define STR_ENABLED "Käytössä"
#define STR_OFF "Pois" #define STR_OFF "Pois"
#define STR_ON "Päällä" #define STR_ON "Päällä"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Tyyppi" #define STR_TYPE "Tyyppi"
#define STR_FILENAME "Tiedostonimi:" #define STR_FILENAME "Tiedostonimi:"
#define STR_PROGRESS "Edistyminen:" #define STR_PROGRESS "Edistyminen:"
@@ -294,11 +296,12 @@
#define STR_3900 "(tyhjä)" #define STR_3900 "(tyhjä)"
#define STR_3901 "(isäntäasema %c:)" #define STR_3901 "(isäntäasema %c:)"
#define STR_3902 " [Kirjoitussuojattu]" #define STR_3902 " [Kirjoitussuojattu]"
#define STR_3903 "&Uusi levykuva.." #define STR_3903 " [Locked]"
#define STR_3904 "&Lataa levykuva.." #define STR_3904 "&Uusi levykuva.."
#define STR_3905 "L&ataa edellinen levykuva uudelleen" #define STR_3905 "&Lataa levykuva.."
#define STR_3906 "&Poista" #define STR_3906 "L&ataa edellinen levykuva uudelleen"
#define STR_3907 "&Huomauta levyn vaihdosta" #define STR_3907 "&Poista"
#define STR_3908 "&Huomauta levyn vaihdosta"
#define STR_3910 "Levyke %i (%s): %ls" #define STR_3910 "Levyke %i (%s): %ls"
#define STR_3911 "Kaikki levykuvat\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Edistyneet sektorilevykuvat\0*.imd;*.json;*.td0\0Perussektorilevykuvat\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Virtauslevykuvat\0*.fdi\0Pintalevykuvat\0*.86f\0Kaikki tiedostot\0*.*\0" #define STR_3911 "Kaikki levykuvat\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Edistyneet sektorilevykuvat\0*.imd;*.json;*.td0\0Perussektorilevykuvat\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Virtauslevykuvat\0*.fdi\0Pintalevykuvat\0*.86f\0Kaikki tiedostot\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "French (France)" language. * String definitions for "French (France)" language.
* *
* Version: @(#)VARCem-FR.str 1.0.11 2018/10/01 * Version: @(#)VARCem-FR.str 1.0.11 2018/10/18
* *
* Authors: Altheos, <altheos@varcem.com> * Authors: Altheos, <altheos@varcem.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Activé" #define STR_ENABLED "Activé"
#define STR_OFF "Arrêt" #define STR_OFF "Arrêt"
#define STR_ON "Marche" #define STR_ON "Marche"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Type" #define STR_TYPE "Type"
#define STR_FILENAME "Nom:" #define STR_FILENAME "Nom:"
#define STR_PROGRESS "Progression:" #define STR_PROGRESS "Progression:"
@@ -294,11 +296,12 @@
#define STR_3900 "(vide)" #define STR_3900 "(vide)"
#define STR_3901 "(Lecteur hôte %c:)" #define STR_3901 "(Lecteur hôte %c:)"
#define STR_3902 " [Protégé en écriture]" #define STR_3902 " [Protégé en écriture]"
#define STR_3903 "&Nouvelle image..." #define STR_3903 " [Locked]"
#define STR_3904 "&Image existante..." #define STR_3904 "&Nouvelle image..."
#define STR_3905 "&Recharger l'image précédente" #define STR_3905 "&Image existante..."
#define STR_3906 "E&jecter" #define STR_3906 "&Recharger l'image précédente"
#define STR_3907 "&Notification de changement de disque" #define STR_3907 "E&jecter"
#define STR_3908 "&Notification de changement de disque"
#define STR_3910 "Disquette %i (%s): %ls" #define STR_3910 "Disquette %i (%s): %ls"
#define STR_3911 "Toutes les images\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Images secteur avancées\0*.imd;*.json;*.td0\0Images secteur basiques\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Images Flux\0*.fdi\0Images de surface\0*.86f\0Tous les fichiers\0*.*\0" #define STR_3911 "Toutes les images\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Images secteur avancées\0*.imd;*.json;*.td0\0Images secteur basiques\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Images Flux\0*.fdi\0Images de surface\0*.86f\0Tous les fichiers\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Italian (Italy)" language. * String definitions for "Italian (Italy)" language.
* *
* Version: @(#)VARCem-IT.str 1.0.8 2018/10/01 * Version: @(#)VARCem-IT.str 1.0.8 2018/10/18
* *
* Authors: Miran Grca, <mgrca8@gmail.com> * Authors: Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Attivato" #define STR_ENABLED "Attivato"
#define STR_OFF "Spento" #define STR_OFF "Spento"
#define STR_ON "Acceso" #define STR_ON "Acceso"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Tipo" #define STR_TYPE "Tipo"
#define STR_FILENAME "Nome di file:" #define STR_FILENAME "Nome di file:"
#define STR_PROGRESS "Progresso:" #define STR_PROGRESS "Progresso:"
@@ -292,11 +294,12 @@
#define STR_3900 "(vuoto)" #define STR_3900 "(vuoto)"
#define STR_3901 "(unità host %c:)" #define STR_3901 "(unità host %c:)"
#define STR_3902 " [Protetto contro la scrittura]" #define STR_3902 " [Protetto contro la scrittura]"
#define STR_3903 "&Nuova immagine..." #define STR_3903 " [Locked]"
#define STR_3904 "&Carica immagine..." #define STR_3904 "&Nuova immagine..."
#define STR_3905 "&Ricarica immagine precedente" #define STR_3905 "&Carica immagine..."
#define STR_3906 "&Espelli" #define STR_3906 "&Ricarica immagine precedente"
#define STR_3907 "&Notifica cambio di disco" #define STR_3907 "&Espelli"
#define STR_3908 "&Notifica cambio di disco"
#define STR_3910 "Floppy %i (%s): %ls" #define STR_3910 "Floppy %i (%s): %ls"
#define STR_3911 "Tutte le immagini\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Immagini di settori avvanzate\0*.imd;*.json;*.td0\0Immagini di settori basiche\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Immagini di flusso magnetico\0*.fdi\0Immagini bitstream\0*.86f\0Tutti i file\0*.*\0" #define STR_3911 "Tutte le immagini\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Immagini di settori avvanzate\0*.imd;*.json;*.td0\0Immagini di settori basiche\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Immagini di flusso magnetico\0*.fdi\0Immagini bitstream\0*.86f\0Tutti i file\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Japanese (Japan)" language. * String definitions for "Japanese (Japan)" language.
* *
* Version: @(#)VARCem-JP.str 1.0.10 2018/10/01 * Version: @(#)VARCem-JP.str 1.0.10 2018/10/18
* *
* Authors: Basic2004, <basic2004@gmail.com> * Authors: Basic2004, <basic2004@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "使用する" #define STR_ENABLED "使用する"
#define STR_OFF "オフ" #define STR_OFF "オフ"
#define STR_ON "オン" #define STR_ON "オン"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "形式" #define STR_TYPE "形式"
#define STR_FILENAME "ファイル名:" #define STR_FILENAME "ファイル名:"
#define STR_PROGRESS "進行状況:" #define STR_PROGRESS "進行状況:"
@@ -293,12 +295,13 @@
/* UI: Status Bar (3900.) */ /* UI: Status Bar (3900.) */
#define STR_3900 "(空)" #define STR_3900 "(空)"
#define STR_3901 "(ホストドライブ %c:)" #define STR_3901 "(ホストドライブ %c:)"
#define STR_3902 "[書き込み禁止]" #define STR_3902 " [書き込み禁止]"
#define STR_3903 "新規のイメージ(&N).." #define STR_3903 " [Locked]"
#define STR_3904 "イメージをロード(&L).." #define STR_3904 "新規のイメージ(&N).."
#define STR_3905 "前のイメージをロード(&R)" #define STR_3905 "イメージをロード(&L).."
#define STR_3906 "取り出し(&U)" #define STR_3906 "前のイメージをリロード(&R)"
#define STR_3907 "ディスク交換を通知(&N)" #define STR_3907 "取り出し(&U)"
#define STR_3908 "ディスク交換を通知(&N)"
#define STR_3910 "フロッピー %i (%s): %ls" #define STR_3910 "フロッピー %i (%s): %ls"
#define STR_3911 "すべてのイメージ\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced sector images\0*.imd;*.json;*.td0\0Basic sector images\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux images\0*.fdi\0Surface images\0*.86f\0すべてのファイル\0*.*\0" #define STR_3911 "すべてのイメージ\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced sector images\0*.imd;*.json;*.td0\0Basic sector images\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux images\0*.fdi\0Surface images\0*.86f\0すべてのファイル\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Korean (South Korea)" language. * String definitions for "Korean (South Korea)" language.
* *
* Version: @(#)VARCem-KR.str 1.0.12 2018/10/01 * Version: @(#)VARCem-KR.str 1.0.12 2018/10/18
* *
* Authors: Yeong Uk Jo, <greatpsycho@yahoo.com> * Authors: Yeong Uk Jo, <greatpsycho@yahoo.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "사용" #define STR_ENABLED "사용"
#define STR_OFF "꺼짐" #define STR_OFF "꺼짐"
#define STR_ON "켜짐" #define STR_ON "켜짐"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "형식" #define STR_TYPE "형식"
#define STR_FILENAME "파일 이름:" #define STR_FILENAME "파일 이름:"
#define STR_PROGRESS "진행 상황:" #define STR_PROGRESS "진행 상황:"
@@ -294,11 +296,12 @@
#define STR_3900 "(비었음)" #define STR_3900 "(비었음)"
#define STR_3901 "(호스트 드라이브 %c:)" #define STR_3901 "(호스트 드라이브 %c:)"
#define STR_3902 " [쓰기 방지됨]" #define STR_3902 " [쓰기 방지됨]"
#define STR_3903 "새 이미지(&N).." #define STR_3903 " [Locked]"
#define STR_3904 "이미지 불러오기(&L).." #define STR_3904 "이미지(&N).."
#define STR_3905 "이전 이미지 다시 불러오기(&R)" #define STR_3905 "이미지 불러오기(&L).."
#define STR_3906 "이미지 제거(&U)" #define STR_3906 "이전 이미지 다시 불러오기(&R)"
#define STR_3907 "디스크 교체 알림(&N)" #define STR_3907 "이미지 제거(&U)"
#define STR_3908 "디스크 교체 알림(&N)"
#define STR_3910 "플로피 %i (%s): %ls" #define STR_3910 "플로피 %i (%s): %ls"
#define STR_3911 "모든 이미지\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced sector images\0*.imd;*.json;*.td0\0Basic sector images\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux images\0*.fdi\0Surface images\0*.86f\0모든 파일\0*.*\0" #define STR_3911 "모든 이미지\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced sector images\0*.imd;*.json;*.td0\0Basic sector images\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux images\0*.fdi\0Surface images\0*.86f\0모든 파일\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Kazakh (Kazakhstan)" language. * String definitions for "Kazakh (Kazakhstan)" language.
* *
* Version: @(#)VARCem-KZ.str 1.0.4 2018/10/01 * Version: @(#)VARCem-KZ.str 1.0.4 2018/10/18
* *
* Authors: Arbars Zagadkin, <arbars.zagadkin@mail.ru> * Authors: Arbars Zagadkin, <arbars.zagadkin@mail.ru>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -111,6 +111,8 @@
#define STR_ENABLED "Қол жетімді" #define STR_ENABLED "Қол жетімді"
#define STR_OFF "Өшіру" #define STR_OFF "Өшіру"
#define STR_ON "Қосу" #define STR_ON "Қосу"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Түрі" #define STR_TYPE "Түрі"
#define STR_FILENAME "Файлдың аты:" #define STR_FILENAME "Файлдың аты:"
#define STR_PROGRESS "Прогресс:" #define STR_PROGRESS "Прогресс:"
@@ -292,11 +294,12 @@
#define STR_3900 "(бос)" #define STR_3900 "(бос)"
#define STR_3901 "(хост-табақжады %c:)" #define STR_3901 "(хост-табақжады %c:)"
#define STR_3902 " [Жазбадан қорғалған]" #define STR_3902 " [Жазбадан қорғалған]"
#define STR_3903 "Жана бейне.." #define STR_3903 " [Locked]"
#define STR_3904 "Бейне ашу.." #define STR_3904 "Жана бейне.."
#define STR_3905 "Алдыңғы бейнесі жүкту" #define STR_3905 "Бейне ашу.."
#define STR_3906 "Ашып шығу" #define STR_3906 "Алдыңғы бейнесі жүкту"
#define STR_3907 "Табақжадының ауысымы хабарлау" #define STR_3907 "Ашып шығу"
#define STR_3908 "Табақжадының ауысымы хабарлау"
#define STR_3910 "Иікпелі табакжад %i (%s): %ls" #define STR_3910 "Иікпелі табакжад %i (%s): %ls"
#define STR_3911 "Бәрі бейнелер\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0 Кенейтілген секторлық бейнелер\0*.imd;*.json;*.td0\0Тұр секторлық бейнелер\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Магниттік ағыспен бейнелер\0*.fdi\0Биттік ағыспен бейнелер\0*.86f\0Бәрі файлдар\0*.*\0" #define STR_3911 "Бәрі бейнелер\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0 Кенейтілген секторлық бейнелер\0*.imd;*.json;*.td0\0Тұр секторлық бейнелер\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Магниттік ағыспен бейнелер\0*.fdi\0Биттік ағыспен бейнелер\0*.86f\0Бәрі файлдар\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Lithuanian (Lithuania)" language. * String definitions for "Lithuanian (Lithuania)" language.
* *
* Version: @(#)VARCem-LT.str 1.0.5 2018/10/01 * Version: @(#)VARCem-LT.str 1.0.5 2018/10/18
* *
* Author: Vegas (emu-land.net) * Author: Vegas (emu-land.net)
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -111,6 +111,8 @@
#define STR_ENABLED "Pasiekiama" #define STR_ENABLED "Pasiekiama"
#define STR_OFF "Išjungtas" #define STR_OFF "Išjungtas"
#define STR_ON "Ijungtas" #define STR_ON "Ijungtas"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Tipas" #define STR_TYPE "Tipas"
#define STR_FILENAME "Failo pavadinimas:" #define STR_FILENAME "Failo pavadinimas:"
#define STR_PROGRESS "Progresas:" #define STR_PROGRESS "Progresas:"
@@ -293,11 +295,12 @@
#define STR_3900 "(tuščia)" #define STR_3900 "(tuščia)"
#define STR_3901 "(host diskas %c:)" #define STR_3901 "(host diskas %c:)"
#define STR_3902 " [Apsaugota irašymui]" #define STR_3902 " [Apsaugota irašymui]"
#define STR_3903 "&Naujas atvaizdas.." #define STR_3903 " [Locked]"
#define STR_3904 "&įkelti atvaizdas.." #define STR_3904 "&Naujas atvaizdas.."
#define STR_3905 "&Perkrauti ankstesnį atvaizda" #define STR_3905 "&įkelti atvaizdas.."
#define STR_3906 "&krauti" #define STR_3906 "&Perkrauti ankstesnį atvaizda"
#define STR_3907 "&Pranešti apie disko keitimą" #define STR_3907 "&Iškrauti"
#define STR_3908 "&Pranešti apie disko keitimą"
#define STR_3910 "Floppy %i (%s): %ls" #define STR_3910 "Floppy %i (%s): %ls"
#define STR_3911 "Visi atvaizdai\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Išplėstinių sektorių atvaizdai\0*.imd;*.json;*.td0\0Pagrindinių sektorių atvaizdai\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Srauto atvaizdai\0*.fdi\0Paviršiaus atvaizdai\0*.86f\0Visi failai\0*.*\0" #define STR_3911 "Visi atvaizdai\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Išplėstinių sektorių atvaizdai\0*.imd;*.json;*.td0\0Pagrindinių sektorių atvaizdai\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Srauto atvaizdai\0*.fdi\0Paviršiaus atvaizdai\0*.86f\0Visi failai\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Norwegian (Norway)" language. * String definitions for "Norwegian (Norway)" language.
* *
* Version: @(#)VARCem-NO.str 1.0.5 2018/10/01 * Version: @(#)VARCem-NO.str 1.0.5 2018/10/18
* *
* Author: Fred N. van Kempen, <decwiz@yahoo.com> * Author: Fred N. van Kempen, <decwiz@yahoo.com>
* Tore Sinding Bekkedal, <toresbe@gmail.com< * Tore Sinding Bekkedal, <toresbe@gmail.com<
@@ -111,6 +111,8 @@
#define STR_ENABLED "Aktivert" #define STR_ENABLED "Aktivert"
#define STR_OFF "Av" #define STR_OFF "Av"
#define STR_ON "På" #define STR_ON "På"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Type" #define STR_TYPE "Type"
#define STR_FILENAME "Filnavn:" #define STR_FILENAME "Filnavn:"
#define STR_PROGRESS "Framdrift:" #define STR_PROGRESS "Framdrift:"
@@ -293,11 +295,12 @@
#define STR_3900 "(tom)" #define STR_3900 "(tom)"
#define STR_3901 "(vertsdisk %c:)" #define STR_3901 "(vertsdisk %c:)"
#define STR_3902 " [Skrivebeskyttet]" #define STR_3902 " [Skrivebeskyttet]"
#define STR_3903 "&Nytt avtrykk.." #define STR_3903 " [Locked]"
#define STR_3904 "&Last inn avtrykk.." #define STR_3904 "&Nytt avtrykk.."
#define STR_3905 "Oppdate&re avtrykk" #define STR_3905 "&Last inn avtrykk.."
#define STR_3906 "Løs &ut" #define STR_3906 "Oppdate&re avtrykk"
#define STR_3907 "(&N) Varsle diskbytte" #define STR_3907 "Løs &ut"
#define STR_3908 "(&N) Varsle diskbytte"
#define STR_3910 "Diskett %i (%s): %ls" #define STR_3910 "Diskett %i (%s): %ls"
#define STR_3911 "Alle avtrykk\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Avanserte sektoravtrykk\0*.imd;*.json;*.td0\0Enkle sektoravtrykk\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux-avtrykk\0*.fdi\0Overflateavtrykk\0*.86f\0Alle filer\0*.*\0" #define STR_3911 "Alle avtrykk\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Avanserte sektoravtrykk\0*.imd;*.json;*.td0\0Enkle sektoravtrykk\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux-avtrykk\0*.fdi\0Overflateavtrykk\0*.86f\0Alle filer\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Russian (Russia)" language. * String definitions for "Russian (Russia)" language.
* *
* Version: @(#)VARCem-RU.str 1.0.16 2018/10/01 * Version: @(#)VARCem-RU.str 1.0.17 2018/10/18
* *
* Authors: Tarlabnor, <tarlabnor@varcem.com> * Authors: Tarlabnor, <tarlabnor@varcem.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -47,7 +47,7 @@
*/ */
/* Main application strings (2000) - DO NOT TRANSLATE! */ /* Main application strings (2000) - DO NOT TRANSLATE! */
#define STR_VERSION 1,0,16 #define STR_VERSION 1,0,17
#define STR_AUTHOR "Tarlabnor" #define STR_AUTHOR "Tarlabnor"
#define STR_EMAIL "tarlabnor@varcem.com" #define STR_EMAIL "tarlabnor@varcem.com"
#define STR_NAME "VARCem" #define STR_NAME "VARCem"
@@ -111,6 +111,8 @@
#define STR_ENABLED "Доступно" #define STR_ENABLED "Доступно"
#define STR_OFF "Выкл" #define STR_OFF "Выкл"
#define STR_ON "Вкл" #define STR_ON "Вкл"
#define STR_UNLOCK "Разблокировать"
#define STR_LOCK "Заблокировать"
#define STR_TYPE "Тип" #define STR_TYPE "Тип"
#define STR_FILENAME "Имя файла:" #define STR_FILENAME "Имя файла:"
#define STR_PROGRESS "Прогресс:" #define STR_PROGRESS "Прогресс:"
@@ -293,11 +295,12 @@
#define STR_3900 "(пусто)" #define STR_3900 "(пусто)"
#define STR_3901 "(хост-диск %c:)" #define STR_3901 "(хост-диск %c:)"
#define STR_3902 " [Защищён от записи]" #define STR_3902 " [Защищён от записи]"
#define STR_3903 "Новый образ.." #define STR_3903 " [Заблокирован]"
#define STR_3904 "Открыть образ.." #define STR_3904 "Новый образ.."
#define STR_3905 "Загрузить предыдущий образ" #define STR_3905 "Открыть образ.."
#define STR_3906 "Извлечь" #define STR_3906 "Загрузить предыдущий образ"
#define STR_3907 "Уведомить о смене диска" #define STR_3907 "Извлечь"
#define STR_3908 "Уведомить о смене диска"
#define STR_3910 "Флоппи %i (%s): %ls" #define STR_3910 "Флоппи %i (%s): %ls"
#define STR_3911 "Все образы\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Продвинутые секторные образы\0*.imd;*.json;*.td0\0Простые секторные образы\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Образы с магнитным потоком\0*.fdi\0Образы с битовым потоком\0*.86f\0Все файлы\0*.*\0" #define STR_3911 "Все образы\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Продвинутые секторные образы\0*.imd;*.json;*.td0\0Простые секторные образы\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Образы с магнитным потоком\0*.fdi\0Образы с битовым потоком\0*.86f\0Все файлы\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Slovenian (Slovenia)" language. * String definitions for "Slovenian (Slovenia)" language.
* *
* Version: @(#)VARCem-SL.str 1.0.7 2018/10/01 * Version: @(#)VARCem-SL.str 1.0.7 2018/10/18
* *
* Authors: David Simunic, <simunic.david@outlook.com> * Authors: David Simunic, <simunic.david@outlook.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Omogočeno" #define STR_ENABLED "Omogočeno"
#define STR_OFF "Izključeno" #define STR_OFF "Izključeno"
#define STR_ON "Vključeno" #define STR_ON "Vključeno"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Tip" #define STR_TYPE "Tip"
#define STR_FILENAME "Ime datoteke:" #define STR_FILENAME "Ime datoteke:"
#define STR_PROGRESS "Napredek:" #define STR_PROGRESS "Napredek:"
@@ -294,11 +296,12 @@
#define STR_3900 "(prazno)" #define STR_3900 "(prazno)"
#define STR_3901 "(gostiteljev pogon %c:)" #define STR_3901 "(gostiteljev pogon %c:)"
#define STR_3902 " [Zaščiteno pred pisanjem]" #define STR_3902 " [Zaščiteno pred pisanjem]"
#define STR_3903 "&Nova slika..." #define STR_3903 " [Locked]"
#define STR_3904 "&Obstoječa slika..." #define STR_3904 "&Nova slika..."
#define STR_3905 "&Ponovno naloži prejšnjo sliko" #define STR_3905 "&Obstoječa slika..."
#define STR_3906 "I&zvrzi" #define STR_3906 "&Ponovno naloži prejšnjo sliko"
#define STR_3907 "&Obvesti o spremembi diska" #define STR_3907 "I&zvrzi"
#define STR_3908 "&Obvesti o spremembi diska"
#define STR_3910 "Disketa %i (%s): %ls" #define STR_3910 "Disketa %i (%s): %ls"
#define STR_3911 "Vse slike disket\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Napredne sektorske slike\0*.imd;*.json;*.td0\0Osnovne sektorske slike\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Tokovne slike\0*.fdi\0Površinske slike\0*.86f\0Vse datoteke\0*.*\0" #define STR_3911 "Vse slike disket\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Napredne sektorske slike\0*.imd;*.json;*.td0\0Osnovne sektorske slike\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Tokovne slike\0*.fdi\0Površinske slike\0*.86f\0Vse datoteke\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String definitions for "Ukrainian (Ukraine)" language. * String definitions for "Ukrainian (Ukraine)" language.
* *
* Version: @(#)VARCem-UA.str 1.0.6 2018/10/01 * Version: @(#)VARCem-UA.str 1.0.6 2018/10/18
* *
* Authors: .SVD., <old-dos.ru> * Authors: .SVD., <old-dos.ru>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -112,6 +112,8 @@
#define STR_ENABLED "Досяжно" #define STR_ENABLED "Досяжно"
#define STR_OFF "Вимк." #define STR_OFF "Вимк."
#define STR_ON "Ввiмк." #define STR_ON "Ввiмк."
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Тип" #define STR_TYPE "Тип"
#define STR_FILENAME "Iм'я файла:" #define STR_FILENAME "Iм'я файла:"
#define STR_PROGRESS "Прогрес:" #define STR_PROGRESS "Прогрес:"
@@ -294,11 +296,12 @@
#define STR_3900 "(пусто)" #define STR_3900 "(пусто)"
#define STR_3901 "(хост-диск %c:)" #define STR_3901 "(хост-диск %c:)"
#define STR_3902 " [Захищений вiд запису]" #define STR_3902 " [Захищений вiд запису]"
#define STR_3903 "Новый iмiдж.." #define STR_3903 " [Locked]"
#define STR_3904 "Вiдкрити iмiдж.." #define STR_3904 "Новый iмiдж.."
#define STR_3905 "Завантажити попереднiй iмiдж" #define STR_3905 "Вiдкрити iмiдж.."
#define STR_3906 "Вийняти" #define STR_3906 "Завантажити попереднiй iмiдж"
#define STR_3907 "Повiдомити про змiну диска" #define STR_3907 "Вийняти"
#define STR_3908 "Повiдомити про змiну диска"
#define STR_3910 "Флоппi %i (%s): %ls" #define STR_3910 "Флоппi %i (%s): %ls"
#define STR_3911 "Усi iмiджi\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Просунутi секторнi iмiджi\0*.imd;*.json;*.td0\0Простi секторнi iмiджi\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Iмiджi з магнiтним стром\0*.fdi\0Iмiджi з бовим стром\0*.86f\0Усi файли\0*.*\0" #define STR_3911 "Усi iмiджi\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Просунутi секторнi iмiджi\0*.imd;*.json;*.td0\0Простi секторнi iмiджi\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Iмiджi з магнiтним стром\0*.fdi\0Iмiджi з бовим стром\0*.86f\0Усi файли\0*.*\0"

View File

@@ -8,7 +8,7 @@
* *
* String table for the application, shared by all platforms. * String table for the application, shared by all platforms.
* *
* Version: @(#)VARCem.def 1.0.2 2018/10/01 * Version: @(#)VARCem.def 1.0.3 2018/10/18
* *
* Author: Fred N. van Kempen, <decwiz@yahoo.com> * Author: Fred N. van Kempen, <decwiz@yahoo.com>
* *
@@ -101,6 +101,8 @@ STRTBL( IDS_DISABLED, STR_DISABLED )
STRTBL( IDS_ENABLED, STR_ENABLED ) STRTBL( IDS_ENABLED, STR_ENABLED )
STRTBL( IDS_OFF, STR_OFF ) STRTBL( IDS_OFF, STR_OFF )
STRTBL( IDS_ON, STR_ON ) STRTBL( IDS_ON, STR_ON )
STRTBL( IDS_UNLOCK, STR_UNLOCK )
STRTBL( IDS_LOCK, STR_LOCK )
STRTBL( IDS_TYPE, STR_TYPE ) STRTBL( IDS_TYPE, STR_TYPE )
STRTBL( IDS_FILENAME, STR_FILENAME ) STRTBL( IDS_FILENAME, STR_FILENAME )
STRTBL( IDS_PROGRESS, STR_PROGRESS ) STRTBL( IDS_PROGRESS, STR_PROGRESS )
@@ -288,7 +290,7 @@ STRTBL( IDS_3904, STR_3904 )
STRTBL( IDS_3905, STR_3905 ) STRTBL( IDS_3905, STR_3905 )
STRTBL( IDS_3906, STR_3906 ) STRTBL( IDS_3906, STR_3906 )
STRTBL( IDS_3907, STR_3907 ) STRTBL( IDS_3907, STR_3907 )
/* 3908 available */ STRTBL( IDS_3908, STR_3908 )
/* 3909 available */ /* 3909 available */
STRTBL( IDS_3910, STR_3910 ) STRTBL( IDS_3910, STR_3910 )
STRTBL( IDS_3911, STR_3911 ) STRTBL( IDS_3911, STR_3911 )

View File

@@ -13,7 +13,7 @@
* it as the line-by-line base for the translated version, and * it as the line-by-line base for the translated version, and
* update fields as needed. * update fields as needed.
* *
* Version: @(#)VARCem.str 1.0.12 2018/10/01 * Version: @(#)VARCem.str 1.0.13 2018/10/18
* *
* Author: Fred N. van Kempen, <decwiz@yahoo.com> * Author: Fred N. van Kempen, <decwiz@yahoo.com>
* *
@@ -115,6 +115,8 @@
#define STR_ENABLED "Enabled" #define STR_ENABLED "Enabled"
#define STR_OFF "Off" #define STR_OFF "Off"
#define STR_ON "On" #define STR_ON "On"
#define STR_UNLOCK "Unlock"
#define STR_LOCK "Lock"
#define STR_TYPE "Type" #define STR_TYPE "Type"
#define STR_FILENAME "File name:" #define STR_FILENAME "File name:"
#define STR_PROGRESS "Progress:" #define STR_PROGRESS "Progress:"
@@ -297,11 +299,12 @@
#define STR_3900 "(empty)" #define STR_3900 "(empty)"
#define STR_3901 "(host drive %c:)" #define STR_3901 "(host drive %c:)"
#define STR_3902 " [Write Protected]" #define STR_3902 " [Write Protected]"
#define STR_3903 "&New image.." #define STR_3903 " [Locked]"
#define STR_3904 "&Load image.." #define STR_3904 "&New image.."
#define STR_3905 "&Reload previous image" #define STR_3905 "&Load image.."
#define STR_3906 "&Unload" #define STR_3906 "&Reload previous image"
#define STR_3907 "&Notify disk change" #define STR_3907 "&Unload"
#define STR_3908 "&Notify disk change"
#define STR_3910 "Floppy %i (%s): %ls" #define STR_3910 "Floppy %i (%s): %ls"
#define STR_3911 "All images\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.ddi;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced sector images\0*.imd;*.json;*.td0\0Basic sector images\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.ddi;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux images\0*.fdi\0Surface images\0*.86f\0All files\0*.*\0" #define STR_3911 "All images\0*.0??;*.1??;*.360;*.720;*.86f;*.bin;*.cq?;*.ddi;*.dsk;*.flp;*.hdm;*.im?;*.json;*.td0;*.*fd?;*.xdf\0Advanced sector images\0*.imd;*.json;*.td0\0Basic sector images\0*.0??;*.1??;*.360;*.720;*.bin;*.cq?;*.ddi;*.dsk;*.flp;*.hdm;*.im?;*.xdf;*.*fd?\0Flux images\0*.fdi\0Surface images\0*.86f\0All files\0*.*\0"

View File

@@ -12,7 +12,7 @@
* those are not used by the platform code. This is easier to * those are not used by the platform code. This is easier to
* maintain. * maintain.
* *
* Version: @(#)ui_resource.h 1.0.17 2018/10/16 * Version: @(#)ui_resource.h 1.0.18 2018/10/18
* *
* Author: Fred N. van Kempen, <decwiz@yahoo.com> * Author: Fred N. van Kempen, <decwiz@yahoo.com>
* *
@@ -170,7 +170,7 @@
#define IDM_SBAR (IDM_BASE+1024) #define IDM_SBAR (IDM_BASE+1024)
#define IDM_FLOPPY_IMAGE_NEW (IDM_SBAR + 0x0000) #define IDM_FLOPPY_IMAGE_NEW (IDM_SBAR + 0x0000)
#define IDM_FLOPPY_IMAGE_EXISTING (IDM_SBAR + 0x0100) #define IDM_FLOPPY_IMAGE_EXIST (IDM_SBAR + 0x0100)
#define IDM_FLOPPY_EXPORT (IDM_SBAR + 0x0200) #define IDM_FLOPPY_EXPORT (IDM_SBAR + 0x0200)
#define IDM_FLOPPY_EJECT (IDM_SBAR + 0x0300) #define IDM_FLOPPY_EJECT (IDM_SBAR + 0x0300)
@@ -178,15 +178,17 @@
#define IDM_CDROM_EMPTY (IDM_SBAR + 0x0900) #define IDM_CDROM_EMPTY (IDM_SBAR + 0x0900)
#define IDM_CDROM_RELOAD (IDM_SBAR + 0x0a00) #define IDM_CDROM_RELOAD (IDM_SBAR + 0x0a00)
#define IDM_CDROM_IMAGE (IDM_SBAR + 0x0b00) #define IDM_CDROM_IMAGE (IDM_SBAR + 0x0b00)
#define IDM_CDROM_HOST_DRIVE (IDM_SBAR + 0x0c00) #define IDM_CDROM_LOCK (IDM_SBAR + 0x0c00)
#define IDM_CDROM_UNLOCK (IDM_SBAR + 0x0d00)
#define IDM_CDROM_HOST_DRIVE (IDM_SBAR + 0x0f00)
#define IDM_ZIP_IMAGE_NEW (IDM_SBAR + 0x1000) #define IDM_ZIP_IMAGE_NEW (IDM_SBAR + 0x1000)
#define IDM_ZIP_IMAGE_EXISTING (IDM_SBAR + 0x1100) #define IDM_ZIP_IMAGE_EXIST (IDM_SBAR + 0x1100)
#define IDM_ZIP_EJECT (IDM_SBAR + 0x1200) #define IDM_ZIP_EJECT (IDM_SBAR + 0x1200)
#define IDM_ZIP_RELOAD (IDM_SBAR + 0x1300) #define IDM_ZIP_RELOAD (IDM_SBAR + 0x1300)
#define IDM_DISK_IMAGE_NEW (IDM_SBAR + 0x1800) #define IDM_DISK_IMAGE_NEW (IDM_SBAR + 0x1800)
#define IDM_DISK_IMAGE_EXISTING (IDM_SBAR + 0x1900) #define IDM_DISK_IMAGE_EXIST (IDM_SBAR + 0x1900)
#define IDM_DISK_EJECT (IDM_SBAR + 0x1a00) #define IDM_DISK_EJECT (IDM_SBAR + 0x1a00)
#define IDM_DISK_RELOAD (IDM_SBAR + 0x1b00) #define IDM_DISK_RELOAD (IDM_SBAR + 0x1b00)
#define IDM_DISK_NOTIFY (IDM_SBAR + 0x1c00) #define IDM_DISK_NOTIFY (IDM_SBAR + 0x1c00)
@@ -304,19 +306,21 @@
#define IDS_ENABLED 3103 /* "Enabled" */ #define IDS_ENABLED 3103 /* "Enabled" */
#define IDS_OFF 3104 /* "Off" */ #define IDS_OFF 3104 /* "Off" */
#define IDS_ON 3105 /* "On" */ #define IDS_ON 3105 /* "On" */
#define IDS_TYPE 3106 /* "Type" */ #define IDS_UNLOCK 3106 /* "Unlock" */
#define IDS_FILENAME 3107 /* "File name:" */ #define IDS_LOCK 3107 /* "Lock" */
#define IDS_PROGRESS 3108 /* "Progress:" */ #define IDS_TYPE 3108 /* "Type" */
#define IDS_BUS 3109 /* "Bus:" */ #define IDS_FILENAME 3109 /* "File name:" */
#define IDS_CHANNEL 3110 /* "Channel:" */ #define IDS_PROGRESS 3110 /* "Progress:" */
#define IDS_ID 3111 /* "ID:" */ #define IDS_BUS 3111 /* "Bus:" */
#define IDS_LUN 3112 /* "LUN:" */ #define IDS_CHANNEL 3112 /* "Channel:" */
#define IDS_INV_NAME 3113 /* "Please enter a valid file name" */ #define IDS_ID 3113 /* "ID:" */
#define IDS_IMG_EXIST 3114 /* "This image exists and will be.." */ #define IDS_LUN 3114 /* "LUN:" */
#define IDS_OPEN_READ 3115 /* "Unable to open for read" */ #define IDS_INV_NAME 3115 /* "Please enter a valid file name" */
#define IDS_OPEN_WRITE 3116 /* "Unable to open for write" */ #define IDS_IMG_EXIST 3116 /* "This image exists and will be.." */
#define IDS_DEVCONF_1 3117 /* "Configuration" */ #define IDS_OPEN_READ 3117 /* "Unable to open for read" */
#define IDS_DEVCONF_2 3118 /* "Device:" */ #define IDS_OPEN_WRITE 3118 /* "Unable to open for write" */
#define IDS_DEVCONF_1 3119 /* "Configuration" */
#define IDS_DEVCONF_2 3120 /* "Device:" */
/* UI: dialog: About (3200.) */ /* UI: dialog: About (3200.) */
@@ -484,11 +488,12 @@
#define IDS_3900 3900 /* "(empty)" */ #define IDS_3900 3900 /* "(empty)" */
#define IDS_3901 3901 /* "(host drive %c:)" */ #define IDS_3901 3901 /* "(host drive %c:)" */
#define IDS_3902 3902 /* "[WP]" */ #define IDS_3902 3902 /* "[WP]" */
#define IDS_3903 3903 /* "&New image..." */ #define IDS_3903 3903 /* "[Locked]" */
#define IDS_3904 3904 /* "&Load image..." */ #define IDS_3904 3904 /* "&New image..." */
#define IDS_3905 3905 /* "&Reload previous image" */ #define IDS_3905 3905 /* "&Load image..." */
#define IDS_3906 3906 /* "&Unload" */ #define IDS_3906 3906 /* "&Reload previous image" */
#define IDS_3907 3907 /* "Notify disk &change" */ #define IDS_3907 3907 /* "&Unload" */
#define IDS_3908 3908 /* "Notify disk &change" */
#define IDS_3910 3910 /* "Floppy %i (%s): %ls" */ #define IDS_3910 3910 /* "Floppy %i (%s): %ls" */
#define IDS_3911 3911 /* "All floppy images (*.0??;*.." */ #define IDS_3911 3911 /* "All floppy images (*.0??;*.." */
#define IDS_3912 3912 /* "All floppy images (*.dsk..." */ #define IDS_3912 3912 /* "All floppy images (*.dsk..." */

View File

@@ -8,7 +8,7 @@
* *
* Common UI support functions for the Status Bar module. * Common UI support functions for the Status Bar module.
* *
* Version: @(#)ui_stbar.c 1.0.13 2018/10/17 * Version: @(#)ui_stbar.c 1.0.13 2018/10/18
* *
* Authors: Fred N. van Kempen, <decwiz@yahoo.com> * Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -207,6 +207,8 @@ ui_sb_tip_update(uint8_t tag)
{ {
wchar_t tip[512]; wchar_t tip[512];
wchar_t temp[512]; wchar_t temp[512];
cdrom_t *cdev;
zip_drive_t *zdev;
const wchar_t *str; const wchar_t *str;
const char *stransi; const char *stransi;
sbpart_t *ptr; sbpart_t *ptr;
@@ -234,41 +236,43 @@ ui_sb_tip_update(uint8_t tag)
case SB_CDROM: case SB_CDROM:
drive = ptr->tag & 0x0f; drive = ptr->tag & 0x0f;
bus = cdrom[drive].bus_type; cdev = &cdrom[drive];
bus = cdev->bus_type;
id = IDS_3580 + (bus - 1); id = IDS_3580 + (bus - 1);
wcscpy(temp, get_string(id)); wcscpy(temp, get_string(id));
str = cdrom[drive].image_path; str = cdev->image_path;
if (*str == L'\0') if (*str == L'\0')
str = get_string(IDS_3900); /*"(empty)"*/ str = get_string(IDS_3900); /*"(empty)"*/
if (cdrom[drive].host_drive == 200) { if (cdev->host_drive == 200) {
swprintf(tip, sizeof_w(tip), swprintf(tip, sizeof_w(tip), get_string(IDS_3920),
get_string(IDS_3920), drive+1, temp, str); drive+1, temp, str);
} else if ((cdrom[drive].host_drive >= 'A') && } else if ((cdev->host_drive >= 'A') &&
(cdrom[drive].host_drive <= 'Z')) { (cdev->host_drive <= 'Z')) {
swprintf(temp, sizeof_w(temp), swprintf(temp, sizeof_w(temp), get_string(IDS_3901),
get_string(IDS_3901), cdev->host_drive & ~0x20);
cdrom[drive].host_drive & ~0x20); swprintf(tip, sizeof_w(tip), get_string(IDS_3920),
swprintf(tip, sizeof_w(tip),
get_string(IDS_3920),
drive+1, get_string(id), temp); drive+1, get_string(id), temp);
} else { } else {
swprintf(tip, sizeof_w(tip), swprintf(tip, sizeof_w(tip), get_string(IDS_3920),
get_string(IDS_3920), drive+1, temp, str); drive+1, temp, str);
} }
if (cdev->is_locked)
wcscat(tip, get_string(IDS_3903)); /*"[LOCKED]"*/
break; break;
case SB_ZIP: case SB_ZIP:
drive = ptr->tag & 0x0f; drive = ptr->tag & 0x0f;
bus = zip_drives[drive].bus_type; zdev = &zip_drives[drive];
bus = zdev->bus_type;
id = IDS_3580 + (bus - 1); id = IDS_3580 + (bus - 1);
wcscpy(temp, get_string(id)); wcscpy(temp, get_string(id));
type = zip_drives[drive].is_250 ? 250 : 100; type = zdev->is_250 ? 250 : 100;
str = zip_drives[drive].image_path; str = zdev->image_path;
if (*str == L'\0') if (*str == L'\0')
str = get_string(IDS_3900); /*"(empty)"*/ str = get_string(IDS_3900); /*"(empty)"*/
swprintf(tip, sizeof_w(tip), swprintf(tip, sizeof_w(tip), get_string(IDS_3950),
get_string(IDS_3950), type, drive+1, temp, str); type, drive+1, temp, str);
if (zip_drives[drive].ui_writeprot) if (zdev->ui_writeprot)
wcscat(tip, get_string(IDS_3902)); /*"[WP]"*/ wcscat(tip, get_string(IDS_3902)); /*"[WP]"*/
break; break;
@@ -289,14 +293,12 @@ ui_sb_tip_update(uint8_t tag)
case SB_NETWORK: case SB_NETWORK:
stransi = network_card_getname(network_card); stransi = network_card_getname(network_card);
swprintf(tip, sizeof_w(tip), swprintf(tip, sizeof_w(tip), get_string(IDS_3960), stransi);
get_string(IDS_3960), stransi);
break; break;
case SB_SOUND: case SB_SOUND:
stransi = sound_card_getname(sound_card); stransi = sound_card_getname(sound_card);
swprintf(tip, sizeof_w(tip), swprintf(tip, sizeof_w(tip), get_string(IDS_3970), stransi);
get_string(IDS_3970), stransi);
break; break;
default: default:
@@ -316,13 +318,13 @@ ui_sb_tip_update(uint8_t tag)
static void static void
menu_disk(int part, int drive) menu_disk(int part, int drive)
{ {
sb_menu_add_item(part, IDM_DISK_NOTIFY|drive, get_string(IDS_3907)); sb_menu_add_item(part, IDM_DISK_NOTIFY|drive, get_string(IDS_3908));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_DISK_IMAGE_NEW|drive, get_string(IDS_3903)); sb_menu_add_item(part, IDM_DISK_IMAGE_NEW|drive, get_string(IDS_3904));
sb_menu_add_item(part, IDM_DISK_IMAGE_EXISTING|drive, get_string(IDS_3904)); sb_menu_add_item(part, IDM_DISK_IMAGE_EXIST|drive, get_string(IDS_3905));
sb_menu_add_item(part, IDM_DISK_RELOAD|drive, get_string(IDS_3905)); sb_menu_add_item(part, IDM_DISK_RELOAD|drive, get_string(IDS_3906));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_DISK_EJECT|drive, get_string(IDS_3906)); sb_menu_add_item(part, IDM_DISK_EJECT|drive, get_string(IDS_3907));
} }
@@ -330,11 +332,11 @@ menu_disk(int part, int drive)
static void static void
menu_floppy(int part, int drive) menu_floppy(int part, int drive)
{ {
sb_menu_add_item(part, IDM_FLOPPY_IMAGE_NEW|drive, get_string(IDS_3903)); sb_menu_add_item(part, IDM_FLOPPY_IMAGE_NEW|drive, get_string(IDS_3904));
sb_menu_add_item(part, IDM_FLOPPY_IMAGE_EXISTING|drive, sb_menu_add_item(part, IDM_FLOPPY_IMAGE_EXIST|drive,
get_string(IDS_3904)); get_string(IDS_3905));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_FLOPPY_EJECT|drive, get_string(IDS_3906)); sb_menu_add_item(part, IDM_FLOPPY_EJECT|drive, get_string(IDS_3907));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_FLOPPY_EXPORT|drive, sb_menu_add_item(part, IDM_FLOPPY_EXPORT|drive,
get_string(IDS_3914)); get_string(IDS_3914));
@@ -346,10 +348,38 @@ menu_floppy(int part, int drive)
} }
/* Create the "CD-ROM drive" menu. */ /* Update the "CD-ROM drive" menu. */
static void
menu_cdrom_update(int part, int drive)
{
cdrom_t *dev = &cdrom[drive];
if (dev->can_lock) {
if (dev->is_locked) {
sb_menu_set_item(part, IDM_CDROM_LOCK | drive, 1);
sb_menu_enable_item(part, IDM_CDROM_LOCK | drive, 0);
sb_menu_set_item(part, IDM_CDROM_UNLOCK | drive, 0);
sb_menu_enable_item(part, IDM_CDROM_UNLOCK | drive, 1);
} else {
sb_menu_set_item(part, IDM_CDROM_UNLOCK | drive, 1);
sb_menu_enable_item(part, IDM_CDROM_UNLOCK | drive, 0);
sb_menu_set_item(part, IDM_CDROM_LOCK | drive, 0);
sb_menu_enable_item(part, IDM_CDROM_LOCK | drive, 1);
}
} else {
sb_menu_set_item(part, IDM_CDROM_LOCK | drive, 0);
sb_menu_enable_item(part, IDM_CDROM_LOCK | drive, 0);
sb_menu_set_item(part, IDM_CDROM_UNLOCK | drive, 0);
sb_menu_enable_item(part, IDM_CDROM_UNLOCK | drive, 0);
}
}
/* Create the "Optical Drive" menu. */
static void static void
menu_cdrom(int part, int drive) menu_cdrom(int part, int drive)
{ {
cdrom_t *dev = &cdrom[drive];
#ifdef USE_HOST_CDROM #ifdef USE_HOST_CDROM
wchar_t temp[64]; wchar_t temp[64];
int i; int i;
@@ -357,53 +387,60 @@ menu_cdrom(int part, int drive)
sb_menu_add_item(part, IDM_CDROM_MUTE | drive, get_string(IDS_3923)); sb_menu_add_item(part, IDM_CDROM_MUTE | drive, get_string(IDS_3923));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_CDROM_IMAGE | drive, get_string(IDS_3904)); sb_menu_add_item(part, IDM_CDROM_IMAGE | drive, get_string(IDS_3905));
sb_menu_add_item(part, IDM_CDROM_RELOAD | drive, get_string(IDS_3905)); sb_menu_add_item(part, IDM_CDROM_RELOAD | drive, get_string(IDS_3906));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_CDROM_EMPTY | drive, get_string(IDS_3906)); sb_menu_add_item(part, IDM_CDROM_EMPTY | drive, get_string(IDS_3907));
#ifdef USE_HOST_CDROM #ifdef USE_HOST_CDROM
if (cdrom_host_drive_available_num == 0) { if (cdrom_host_drive_available_num == 0) {
#endif #endif
if ((cdrom[drive].host_drive >= 'A') && if ((dev->host_drive >= 'A') && (dev->host_drive <= 'Z'))
(cdrom[drive].host_drive <= 'Z')) dev->host_drive = 0;
cdrom[drive].host_drive = 0;
#ifdef USE_HOST_CDROM #ifdef USE_HOST_CDROM
goto check_items; goto check_items;
} else { } else {
if ((cdrom[drive].host_drive >= 'A') && if ((dev->host_drive >= 'A') &&
(cdrom[drive].host_drive <= 'Z')) { (dev->host_drive <= 'Z')) {
if (! cdrom_host_drive_available[cdrom[drive].host_drive - 'A']) { if (! cdrom_host_drive_available[dev->host_drive - 'A']) {
cdrom[drive].host_drive = 0; dev->host_drive = 0;
} }
} }
} }
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
/* Add entries for all available host drives. */
for (i = 3; i < 26; i++) { for (i = 3; i < 26; i++) {
swprintf(temp, sizeof_w(temp), get_string(IDS_3921), i+'A'); swprintf(temp, sizeof_w(temp), get_string(IDS_3921), i+'A');
if (cdrom_host_drive_available[i]) if (cdrom_host_drive_available[i])
sb_menu_add_item(part, IDM_CDROM_HOST_DRIVE | (i << 3)|drive, temp); sb_menu_add_item(part, IDM_CDROM_HOST_DRIVE | (i << 3)|drive, temp);
} }
sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_CDROM_LOCK | drive, get_string(IDS_LOCK));
sb_menu_enable_item(part, IDM_CDROM_LOCK | drive, 0);
sb_menu_add_item(part, IDM_CDROM_UNLOCK | drive, get_string(IDS_UNLOCK));
sb_menu_enable_item(part, IDM_CDROM_UNLOCK | drive, 0);
check_items: check_items:
#endif #endif
if (! cdrom[drive].sound_on) if (! dev->sound_on)
sb_menu_set_item(part, IDM_CDROM_MUTE | drive, 1); sb_menu_set_item(part, IDM_CDROM_MUTE | drive, 1);
if (cdrom[drive].host_drive == 200) if (dev->host_drive == 200)
sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 1); sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 1);
else else
if ((cdrom[drive].host_drive >= 'A') && if ((dev->host_drive >= 'A') &&
(cdrom[drive].host_drive <= 'Z')) { (dev->host_drive <= 'Z')) {
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive | sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive |
((cdrom[drive].host_drive - 'A') << 3), 1); ((dev->host_drive - 'A') << 3), 1);
} else { } else {
cdrom[drive].host_drive = 0; dev->host_drive = 0;
sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 1); sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 1);
} }
menu_cdrom_update(part, drive);
} }
@@ -411,11 +448,11 @@ check_items:
static void static void
menu_zip(int part, int drive) menu_zip(int part, int drive)
{ {
sb_menu_add_item(part, IDM_ZIP_IMAGE_NEW|drive, get_string(IDS_3903)); sb_menu_add_item(part, IDM_ZIP_IMAGE_NEW|drive, get_string(IDS_3904));
sb_menu_add_item(part, IDM_ZIP_IMAGE_EXISTING|drive, get_string(IDS_3904)); sb_menu_add_item(part, IDM_ZIP_IMAGE_EXIST|drive, get_string(IDS_3905));
sb_menu_add_item(part, IDM_ZIP_RELOAD|drive, get_string(IDS_3905)); sb_menu_add_item(part, IDM_ZIP_RELOAD|drive, get_string(IDS_3906));
sb_menu_add_item(part, -1, NULL); sb_menu_add_item(part, -1, NULL);
sb_menu_add_item(part, IDM_ZIP_EJECT|drive, get_string(IDS_3906)); sb_menu_add_item(part, IDM_ZIP_EJECT|drive, get_string(IDS_3907));
if (zip_drives[drive].image_path[0] == L'\0') { if (zip_drives[drive].image_path[0] == L'\0') {
sb_menu_enable_item(part, IDM_ZIP_EJECT | drive, 0); sb_menu_enable_item(part, IDM_ZIP_EJECT | drive, 0);
@@ -742,7 +779,7 @@ void
ui_sb_menu_command(int idm, uint8_t tag) ui_sb_menu_command(int idm, uint8_t tag)
{ {
wchar_t temp[512]; wchar_t temp[512];
int new_cdrom_drive; cdrom_t *cdev;
wchar_t *str; wchar_t *str;
int drive; int drive;
int part; int part;
@@ -757,7 +794,7 @@ ui_sb_menu_command(int idm, uint8_t tag)
dlg_new_image(drive, part, 0); dlg_new_image(drive, part, 0);
break; break;
case IDM_FLOPPY_IMAGE_EXISTING: case IDM_FLOPPY_IMAGE_EXIST:
drive = tag & 0x03; drive = tag & 0x03;
part = find_tag(SB_FLOPPY | drive); part = find_tag(SB_FLOPPY | drive);
if (part == -1) break; if (part == -1) break;
@@ -800,61 +837,69 @@ ui_sb_menu_command(int idm, uint8_t tag)
case IDM_CDROM_MUTE: case IDM_CDROM_MUTE:
drive = tag & 0x07; drive = tag & 0x07;
part = find_tag(SB_CDROM | drive); part = find_tag(SB_CDROM | drive);
cdev = &cdrom[drive];
if (part == -1) break; if (part == -1) break;
cdrom[drive].sound_on ^= 1; cdev->sound_on ^= 1;
sb_menu_set_item(part, IDM_CDROM_MUTE | drive, sb_menu_set_item(part, IDM_CDROM_MUTE | drive, cdev->sound_on);
cdrom[drive].sound_on);
config_save(); config_save();
sound_cd_stop(); sound_cd_stop();
break; break;
case IDM_CDROM_EMPTY: case IDM_CDROM_EMPTY:
drive = tag & 0x07; drive = tag & 0x07;
part = find_tag(SB_CDROM | drive);
if (part == -1) break;
ui_cdrom_eject(drive); ui_cdrom_eject(drive);
menu_cdrom_update(part, drive);
break; break;
case IDM_CDROM_RELOAD: case IDM_CDROM_RELOAD:
drive = tag & 0x07; drive = tag & 0x07;
part = find_tag(SB_CDROM | drive);
if (part == -1) break;
ui_cdrom_reload(drive); ui_cdrom_reload(drive);
menu_cdrom_update(part, drive);
break; break;
case IDM_CDROM_IMAGE: case IDM_CDROM_IMAGE:
drive = tag & 0x07; drive = tag & 0x07;
part = find_tag(SB_CDROM | drive); part = find_tag(SB_CDROM | drive);
cdev = &cdrom[drive];
if (part == -1) break; if (part == -1) break;
/* Browse for a new image to use. */ /* Browse for a new image to use. */
str = cdrom[drive].image_path; str = cdev->image_path;
if (! dlg_file(get_string(IDS_3922), str, temp, if (! dlg_file(get_string(IDS_3922), str, temp,
DLG_FILE_LOAD|DLG_FILE_RO)) break; DLG_FILE_LOAD|DLG_FILE_RO)) break;
/* Save current drive/pathname for later re-use. */ /* Save current drive/pathname for later re-use. */
cdrom[drive].prev_host_drive = cdrom[drive].host_drive; cdev->prev_host_drive = cdev->host_drive;
if (! cdrom[drive].prev_image_path) if (! cdev->prev_image_path)
cdrom[drive].prev_image_path = (wchar_t *)mem_alloc(1024); cdev->prev_image_path = (wchar_t *)mem_alloc(1024);
wcscpy(cdrom[drive].prev_image_path, str); wcscpy(cdev->prev_image_path, str);
/* Close the current drive/pathname. */ /* Close the current drive/pathname. */
cdrom[drive].ops->close(&cdrom[drive]); cdev->ops->close(cdev);
memset(cdrom[drive].image_path, 0, sizeof(cdrom[drive].image_path)); memset(cdev->image_path, 0, sizeof(cdev->image_path));
/* Now open new image. */ /* Now open new image. */
cdrom_image_open(&cdrom[drive], temp); cdrom_image_open(cdev, temp);
/* Signal media change to the emulated machine. */ /* Signal media change to the emulated machine. */
cdrom_insert(drive); cdrom_insert(drive);
/* Update stuff. */ /* Update stuff. */
sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 0); sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 0);
if ((cdrom[drive].host_drive >= 'A') && if ((cdev->host_drive >= 'A') && (cdev->host_drive <= 'Z')) {
(cdrom[drive].host_drive <= 'Z')) {
sb_menu_set_item(part, sb_menu_set_item(part,
IDM_CDROM_HOST_DRIVE | drive | ((cdrom[drive].host_drive - 'A') << 3), IDM_CDROM_HOST_DRIVE | drive | ((cdev->host_drive - 'A') << 3),
0); 0);
} }
cdrom[drive].host_drive = (wcslen(cdrom[drive].image_path) == 0) ? 0 : 200; cdev->host_drive = (wcslen(cdev->image_path) == 0) ? 0 : 200;
if (cdrom[drive].host_drive == 200) { if (cdev->host_drive == 200) {
sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 1); sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 1);
ui_sb_icon_state(SB_CDROM | drive, 0); ui_sb_icon_state(SB_CDROM | drive, 0);
} else { } else {
@@ -863,29 +908,50 @@ ui_sb_menu_command(int idm, uint8_t tag)
ui_sb_icon_state(SB_CDROM | drive, 1); ui_sb_icon_state(SB_CDROM | drive, 1);
} }
sb_menu_enable_item(part, IDM_CDROM_RELOAD | drive, 0); sb_menu_enable_item(part, IDM_CDROM_RELOAD | drive, 0);
menu_cdrom_update(part, drive);
ui_sb_icon_state(SB_CDROM | drive, 0);
ui_sb_tip_update(SB_CDROM | drive);
ui_sb_tip_update(SB_CDROM | drive); ui_sb_tip_update(SB_CDROM | drive);
config_save(); config_save();
break; break;
case IDM_CDROM_HOST_DRIVE: case IDM_CDROM_LOCK:
case IDM_CDROM_UNLOCK:
drive = tag & 0x07; drive = tag & 0x07;
i = ((tag >> 3) & 0x001f) + 'A';
part = find_tag(SB_CDROM | drive); part = find_tag(SB_CDROM | drive);
cdev = &cdrom[drive];
if (part == -1) break; if (part == -1) break;
new_cdrom_drive = i; if (cdev->ops->medium_lock)
if (cdrom[drive].host_drive == new_cdrom_drive) { cdev->ops->medium_lock(cdev,
(idm == IDM_CDROM_LOCK) ? 1 : 0);
menu_cdrom_update(part, drive);
ui_sb_tip_update(SB_CDROM | drive);
break;
case IDM_CDROM_HOST_DRIVE:
drive = tag & 0x07;
part = find_tag(SB_CDROM | drive);
i = ((tag >> 3) & 0x001f) + 'A';
cdev = &cdrom[drive];
if (part == -1) break;
if (cdev->host_drive == i) {
/* Switching to the same drive. Do nothing. */ /* Switching to the same drive. Do nothing. */
break; break;
} }
cdrom[drive].prev_host_drive = cdrom[drive].host_drive; cdev->prev_host_drive = cdev->host_drive;
/* Close the current drive/pathname. */ /* Close the current drive/pathname. */
cdrom[drive].ops->close(&cdrom[drive]); cdev->ops->close(cdev);
memset(cdrom[drive].image_path, 0, sizeof(cdrom[drive].image_path)); memset(cdev->image_path, 0, sizeof(cdev->image_path));
if ((cdev->host_drive >= 'A') && (cdev->host_drive <= 'Z'))
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive |
((cdev->host_drive - 'A') << 3), 0);
cdev->host_drive = i;
#ifdef USE_HOST_CDROM #ifdef USE_HOST_CDROM
cdrom_host_open(&cdrom[drive], new_cdrom_drive); cdrom_host_open(cdev, i);
#endif #endif
/* Signal media change to the emulated machine. */ /* Signal media change to the emulated machine. */
@@ -893,14 +959,12 @@ ui_sb_menu_command(int idm, uint8_t tag)
/* Update stuff. */ /* Update stuff. */
sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 0); sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 0);
if ((cdrom[drive].host_drive >= 'A') &&
(cdrom[drive].host_drive <= 'Z')) {
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive | ((cdrom[drive].host_drive - 'A') << 3), 0);
}
cdrom[drive].host_drive = new_cdrom_drive;
sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 0); sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 0);
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive | ((cdrom[drive].host_drive - 'A') << 3), 1);
sb_menu_enable_item(part, IDM_CDROM_RELOAD | drive, 0); sb_menu_enable_item(part, IDM_CDROM_RELOAD | drive, 0);
if ((cdev->host_drive >= 'A') && (cdev->host_drive <= 'Z'))
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive |
((cdev->host_drive - 'A') << 3), 0);
menu_cdrom_update(part, drive);
ui_sb_icon_state(SB_CDROM | drive, 0); ui_sb_icon_state(SB_CDROM | drive, 0);
ui_sb_tip_update(SB_CDROM | drive); ui_sb_tip_update(SB_CDROM | drive);
config_save(); config_save();
@@ -914,7 +978,7 @@ ui_sb_menu_command(int idm, uint8_t tag)
dlg_new_image(drive, part, 1); dlg_new_image(drive, part, 1);
break; break;
case IDM_ZIP_IMAGE_EXISTING: case IDM_ZIP_IMAGE_EXIST:
drive = tag & 0x03; drive = tag & 0x03;
part = find_tag(SB_ZIP | drive); part = find_tag(SB_ZIP | drive);
if (part == -1) break; if (part == -1) break;
@@ -952,7 +1016,7 @@ ui_sb_menu_command(int idm, uint8_t tag)
dlg_new_image(drive, part, 1); dlg_new_image(drive, part, 1);
break; break;
case IDM_DISK_IMAGE_EXISTING: case IDM_DISK_IMAGE_EXIST:
drive = tag & 0x0f; drive = tag & 0x0f;
part = find_tag(SB_DISK | drive); part = find_tag(SB_DISK | drive);
if (part == -1) break; if (part == -1) break;

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
* *
* Implement the user Interface module. * Implement the user Interface module.
* *
* Version: @(#)win_ui.c 1.0.29 2018/10/16 * Version: @(#)win_ui.c 1.0.30 2018/10/18
* *
* Authors: Fred N. van Kempen, <decwiz@yahoo.com> * Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -41,6 +41,9 @@
#include <windowsx.h> #include <windowsx.h>
#include <commctrl.h> #include <commctrl.h>
#include <commdlg.h> #include <commdlg.h>
#ifdef USE_HOST_CDROM
# include <dbt.h>
#endif
#include <stdio.h> #include <stdio.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
@@ -55,6 +58,7 @@
#include "../devices/input/keyboard.h" #include "../devices/input/keyboard.h"
#include "../devices/input/mouse.h" #include "../devices/input/mouse.h"
#include "../devices/video/video.h" #include "../devices/video/video.h"
#include "../devices/cdrom/cdrom.h"
#include "win.h" #include "win.h"
#include "resource.h" #include "resource.h"
@@ -302,6 +306,51 @@ LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
} }
#ifdef USE_HOST_CDROM
static void
HandleMediaEvent(WPARAM wParam, LPARAM lParam)
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
int f = -1, i;
char d;
switch (wParam) {
case DBT_DEVICEARRIVAL:
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME) {
if (lpdbv->dbcv_flags & DBTF_MEDIA)
f = 1;
}
break;
case DBT_DEVICEREMOVECOMPLETE:
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME) {
if (lpdbv->dbcv_flags & DBTF_MEDIA)
f = 0;
}
break;
default:
/* We don't care.. */
break;
}
/* Now report all 'changed' drives to the CD-ROM handler. */
if (f != -1) {
for (i = 0; i < 26; i++) {
if (lpdbv->dbcv_unitmask & 1) {
/* Get the drive letter. */
d = 'A' + i;
cdrom_notify(&d, f);
}
lpdbv->dbcv_unitmask >>= 1;
}
}
}
#endif
static LRESULT CALLBACK static LRESULT CALLBACK
MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{ {
@@ -486,6 +535,12 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
PostQuitMessage(0); PostQuitMessage(0);
break; break;
#ifdef USE_HOST_CDROM
case WM_DEVICECHANGE:
HandleMediaEvent(wParam, lParam);
break;
#endif
case WM_SYSCOMMAND: case WM_SYSCOMMAND:
/* /*
* Disable ALT key *ALWAYS*, * Disable ALT key *ALWAYS*,