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:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* 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
|
||||
cdrom_string_to_bus(const char *str)
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -88,7 +88,8 @@ struct cdrom;
|
||||
/* Define the various CD-ROM drive operations (ops). */
|
||||
typedef struct {
|
||||
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);
|
||||
|
||||
uint32_t (*size)(struct cdrom *dev);
|
||||
@@ -123,7 +124,9 @@ typedef struct cdrom {
|
||||
int8_t bus_type, /* 0 = ATAPI, 1 = SCSI */
|
||||
bus_mode, /* Bit 0 = PIO suported;
|
||||
* Bit 1 = DMA supportd. */
|
||||
sound_on;
|
||||
sound_on,
|
||||
can_lock, /* device can be locked */
|
||||
is_locked; /* device is currently locked */
|
||||
|
||||
union {
|
||||
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_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);
|
||||
|
||||
#ifdef USE_HOST_CDROM
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* 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
|
||||
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 = {
|
||||
image_ready,
|
||||
image_medium_changed,
|
||||
NULL,
|
||||
NULL,
|
||||
image_media_type_id,
|
||||
|
||||
image_size,
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*
|
||||
* 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>
|
||||
* 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
|
||||
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 = {
|
||||
null_ready,
|
||||
null_medium_changed,
|
||||
NULL,
|
||||
NULL,
|
||||
null_media_type_id,
|
||||
|
||||
null_size,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -1350,9 +1350,6 @@ pre_execution_check(scsi_cdrom_t *dev, uint8_t *cdb)
|
||||
goto skip_ready_check;
|
||||
}
|
||||
|
||||
if (dev->drv->ops->medium_changed(dev->drv))
|
||||
scsi_cdrom_insert((void *) dev);
|
||||
|
||||
ready = dev->drv->ops->ready(dev->drv);
|
||||
|
||||
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;
|
||||
int ready = 0;
|
||||
|
||||
if (dev->drv->ops->medium_changed(dev->drv))
|
||||
scsi_cdrom_insert((void *) dev);
|
||||
|
||||
ready = dev->drv->ops->ready(dev->drv);
|
||||
|
||||
if (!ready && dev->unit_attention) {
|
||||
@@ -2274,7 +2268,8 @@ scsi_cdrom_command(void *p, uint8_t *cdb)
|
||||
dev->drv->ops->stop(dev->drv);
|
||||
break;
|
||||
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;
|
||||
case 2: /* Eject the disc if possible. */
|
||||
if (dev->drv->ops->stop)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -110,6 +110,8 @@
|
||||
#define STR_ENABLED "Даступна"
|
||||
#define STR_OFF "Выкл"
|
||||
#define STR_ON "Укл"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Тып"
|
||||
#define STR_FILENAME "Імя файла:"
|
||||
#define STR_PROGRESS "Прагрэс:"
|
||||
@@ -291,11 +293,12 @@
|
||||
#define STR_3900 "(пуста)"
|
||||
#define STR_3901 "(хост-дыск %c:)"
|
||||
#define STR_3902 " [Абаронены ад запісу]"
|
||||
#define STR_3903 "Новы вобраз.."
|
||||
#define STR_3904 "Открыть образ.."
|
||||
#define STR_3905 "Загрузіць папярэдні лад"
|
||||
#define STR_3906 "Выняць"
|
||||
#define STR_3907 "Паведаміць аб змене дыска"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "Новы вобраз.."
|
||||
#define STR_3905 "Открыть образ.."
|
||||
#define STR_3906 "Загрузіць папярэдні лад"
|
||||
#define STR_3907 "Выняць"
|
||||
#define STR_3908 "Паведаміць аб змене дыска"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Nepovoleno"
|
||||
#define STR_OFF "Zapnuto"
|
||||
#define STR_ON "Vypnuto"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Typ"
|
||||
#define STR_FILENAME "Jméno souboru:"
|
||||
#define STR_PROGRESS "Průběh:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(prázdné)"
|
||||
#define STR_3901 "(hostitelská jednotka %c:)"
|
||||
#define STR_3902 " [Chráněno proti zápisu]"
|
||||
#define STR_3903 "&Nový obraz..."
|
||||
#define STR_3904 "N&ačíst obraz..."
|
||||
#define STR_3905 "&Znovu načíst předchozí obraz"
|
||||
#define STR_3906 "&Vyjmout"
|
||||
#define STR_3907 "&Notify disk change"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Nový obraz..."
|
||||
#define STR_3905 "N&ačíst obraz..."
|
||||
#define STR_3906 "&Znovu načíst předchozí obraz"
|
||||
#define STR_3907 "&Vyjmout"
|
||||
#define STR_3908 "&Notify disk change"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Aktiviert"
|
||||
#define STR_OFF "Aus"
|
||||
#define STR_ON "An"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Typ"
|
||||
#define STR_FILENAME "Dateiname:"
|
||||
#define STR_PROGRESS "Fortschritt:"
|
||||
@@ -310,11 +312,12 @@
|
||||
#define STR_3900 "(leer)"
|
||||
#define STR_3901 "(Hostlaufwerk %c:)"
|
||||
#define STR_3902 " [Schreibgeschützt]"
|
||||
#define STR_3903 "&Neues Abbild..."
|
||||
#define STR_3904 "Abbild &laden..."
|
||||
#define STR_3905 "Vor&heriges Abbild erneut laden"
|
||||
#define STR_3906 "Aus&werfen"
|
||||
#define STR_3907 "Ä&nderungsbenachrichtigung bei Wechsel"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Neues Abbild..."
|
||||
#define STR_3905 "Abbild &laden..."
|
||||
#define STR_3906 "Vor&heriges Abbild erneut laden"
|
||||
#define STR_3907 "Aus&werfen"
|
||||
#define STR_3908 "Ä&nderungsbenachrichtigung bei Wechsel"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
*
|
||||
@@ -46,7 +46,7 @@
|
||||
*/
|
||||
|
||||
/* 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_EMAIL "waltje@varcem.com"
|
||||
#define STR_NAME "VARCem"
|
||||
@@ -110,6 +110,8 @@
|
||||
#define STR_ENABLED "Ingeschakeld"
|
||||
#define STR_OFF "Uit"
|
||||
#define STR_ON "Aan"
|
||||
#define STR_UNLOCK "Niet Verwisselbaar"
|
||||
#define STR_LOCK "Verwisselbaar"
|
||||
#define STR_TYPE "Type"
|
||||
#define STR_FILENAME "Bestandsnaam:"
|
||||
#define STR_PROGRESS "Voortgang:"
|
||||
@@ -291,12 +293,13 @@
|
||||
/* UI: Status Bar (3900.) */
|
||||
#define STR_3900 "(leeg)"
|
||||
#define STR_3901 "(PC station %c:)"
|
||||
#define STR_3902 " [Schrijfbeveiligd"
|
||||
#define STR_3903 "&Nieuw bestand..."
|
||||
#define STR_3904 "&Bestaand bestand..."
|
||||
#define STR_3905 "&Her-laad vorige bestand"
|
||||
#define STR_3906 "&Uitwerpen"
|
||||
#define STR_3907 "&Terugmelding disk-wissel"
|
||||
#define STR_3902 " [Schrijfbeveiligd]"
|
||||
#define STR_3903 " [Niet verwijderbaar]"
|
||||
#define STR_3904 "&Nieuw bestand..."
|
||||
#define STR_3905 "&Bestaand bestand..."
|
||||
#define STR_3906 "&Her-laad vorige bestand"
|
||||
#define STR_3907 "&Uitwerpen"
|
||||
#define STR_3908 "&Terugmelding disk-wissel"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -48,7 +48,7 @@
|
||||
*/
|
||||
|
||||
/* 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_EMAIL "claunia@claunia.com"
|
||||
#define STR_NAME "VARCem"
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Activado"
|
||||
#define STR_OFF "Apagado"
|
||||
#define STR_ON "Encendido"
|
||||
#define STR_UNLOCK "Desbloquear"
|
||||
#define STR_LOCK "Bloqueada"
|
||||
#define STR_TYPE "Tipo"
|
||||
#define STR_FILENAME "Archivo:"
|
||||
#define STR_PROGRESS "Progreso:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(vacío)"
|
||||
#define STR_3901 "(unidad nativa %c:)"
|
||||
#define STR_3902 " [Protegida contra escritura]"
|
||||
#define STR_3903 "&Nueva imagen.."
|
||||
#define STR_3904 "&Cargar imagen.."
|
||||
#define STR_3905 "&Recargar imagen anterior"
|
||||
#define STR_3906 "&Expulsar"
|
||||
#define STR_3907 "&Notificar cambio de disco"
|
||||
#define STR_3903 " [Desbloqueada]"
|
||||
#define STR_3904 "&Nueva imagen.."
|
||||
#define STR_3905 "&Cargar imagen.."
|
||||
#define STR_3906 "&Recargar imagen anterior"
|
||||
#define STR_3907 "&Expulsar"
|
||||
#define STR_3908 "&Notificar cambio de disco"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Käytössä"
|
||||
#define STR_OFF "Pois"
|
||||
#define STR_ON "Päällä"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Tyyppi"
|
||||
#define STR_FILENAME "Tiedostonimi:"
|
||||
#define STR_PROGRESS "Edistyminen:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(tyhjä)"
|
||||
#define STR_3901 "(isäntäasema %c:)"
|
||||
#define STR_3902 " [Kirjoitussuojattu]"
|
||||
#define STR_3903 "&Uusi levykuva.."
|
||||
#define STR_3904 "&Lataa levykuva.."
|
||||
#define STR_3905 "L&ataa edellinen levykuva uudelleen"
|
||||
#define STR_3906 "&Poista"
|
||||
#define STR_3907 "&Huomauta levyn vaihdosta"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Uusi levykuva.."
|
||||
#define STR_3905 "&Lataa levykuva.."
|
||||
#define STR_3906 "L&ataa edellinen levykuva uudelleen"
|
||||
#define STR_3907 "&Poista"
|
||||
#define STR_3908 "&Huomauta levyn vaihdosta"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Activé"
|
||||
#define STR_OFF "Arrêt"
|
||||
#define STR_ON "Marche"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Type"
|
||||
#define STR_FILENAME "Nom:"
|
||||
#define STR_PROGRESS "Progression:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(vide)"
|
||||
#define STR_3901 "(Lecteur hôte %c:)"
|
||||
#define STR_3902 " [Protégé en écriture]"
|
||||
#define STR_3903 "&Nouvelle image..."
|
||||
#define STR_3904 "&Image existante..."
|
||||
#define STR_3905 "&Recharger l'image précédente"
|
||||
#define STR_3906 "E&jecter"
|
||||
#define STR_3907 "&Notification de changement de disque"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Nouvelle image..."
|
||||
#define STR_3905 "&Image existante..."
|
||||
#define STR_3906 "&Recharger l'image précédente"
|
||||
#define STR_3907 "E&jecter"
|
||||
#define STR_3908 "&Notification de changement de disque"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Attivato"
|
||||
#define STR_OFF "Spento"
|
||||
#define STR_ON "Acceso"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Tipo"
|
||||
#define STR_FILENAME "Nome di file:"
|
||||
#define STR_PROGRESS "Progresso:"
|
||||
@@ -292,11 +294,12 @@
|
||||
#define STR_3900 "(vuoto)"
|
||||
#define STR_3901 "(unità host %c:)"
|
||||
#define STR_3902 " [Protetto contro la scrittura]"
|
||||
#define STR_3903 "&Nuova immagine..."
|
||||
#define STR_3904 "&Carica immagine..."
|
||||
#define STR_3905 "&Ricarica immagine precedente"
|
||||
#define STR_3906 "&Espelli"
|
||||
#define STR_3907 "&Notifica cambio di disco"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Nuova immagine..."
|
||||
#define STR_3905 "&Carica immagine..."
|
||||
#define STR_3906 "&Ricarica immagine precedente"
|
||||
#define STR_3907 "&Espelli"
|
||||
#define STR_3908 "&Notifica cambio di disco"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "使用する"
|
||||
#define STR_OFF "オフ"
|
||||
#define STR_ON "オン"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "形式"
|
||||
#define STR_FILENAME "ファイル名:"
|
||||
#define STR_PROGRESS "進行状況:"
|
||||
@@ -293,12 +295,13 @@
|
||||
/* UI: Status Bar (3900.) */
|
||||
#define STR_3900 "(空)"
|
||||
#define STR_3901 "(ホストドライブ %c:)"
|
||||
#define STR_3902 "[書き込み禁止]"
|
||||
#define STR_3903 "新規のイメージ(&N).."
|
||||
#define STR_3904 "イメージをロード(&L).."
|
||||
#define STR_3905 "前のイメージをリロード(&R)"
|
||||
#define STR_3906 "取り出し(&U)"
|
||||
#define STR_3907 "ディスク交換を通知(&N)"
|
||||
#define STR_3902 " [書き込み禁止]"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "新規のイメージ(&N).."
|
||||
#define STR_3905 "イメージをロード(&L).."
|
||||
#define STR_3906 "前のイメージをリロード(&R)"
|
||||
#define STR_3907 "取り出し(&U)"
|
||||
#define STR_3908 "ディスク交換を通知(&N)"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "사용"
|
||||
#define STR_OFF "꺼짐"
|
||||
#define STR_ON "켜짐"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "형식"
|
||||
#define STR_FILENAME "파일 이름:"
|
||||
#define STR_PROGRESS "진행 상황:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(비었음)"
|
||||
#define STR_3901 "(호스트 드라이브 %c:)"
|
||||
#define STR_3902 " [쓰기 방지됨]"
|
||||
#define STR_3903 "새 이미지(&N).."
|
||||
#define STR_3904 "이미지 불러오기(&L).."
|
||||
#define STR_3905 "이전 이미지 다시 불러오기(&R)"
|
||||
#define STR_3906 "이미지 제거(&U)"
|
||||
#define STR_3907 "디스크 교체 알림(&N)"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "새 이미지(&N).."
|
||||
#define STR_3905 "이미지 불러오기(&L).."
|
||||
#define STR_3906 "이전 이미지 다시 불러오기(&R)"
|
||||
#define STR_3907 "이미지 제거(&U)"
|
||||
#define STR_3908 "디스크 교체 알림(&N)"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -111,6 +111,8 @@
|
||||
#define STR_ENABLED "Қол жетімді"
|
||||
#define STR_OFF "Өшіру"
|
||||
#define STR_ON "Қосу"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Түрі"
|
||||
#define STR_FILENAME "Файлдың аты:"
|
||||
#define STR_PROGRESS "Прогресс:"
|
||||
@@ -292,11 +294,12 @@
|
||||
#define STR_3900 "(бос)"
|
||||
#define STR_3901 "(хост-табақжады %c:)"
|
||||
#define STR_3902 " [Жазбадан қорғалған]"
|
||||
#define STR_3903 "Жана бейне.."
|
||||
#define STR_3904 "Бейне ашу.."
|
||||
#define STR_3905 "Алдыңғы бейнесі жүкту"
|
||||
#define STR_3906 "Ашып шығу"
|
||||
#define STR_3907 "Табақжадының ауысымы хабарлау"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "Жана бейне.."
|
||||
#define STR_3905 "Бейне ашу.."
|
||||
#define STR_3906 "Алдыңғы бейнесі жүкту"
|
||||
#define STR_3907 "Ашып шығу"
|
||||
#define STR_3908 "Табақжадының ауысымы хабарлау"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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)
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -111,6 +111,8 @@
|
||||
#define STR_ENABLED "Pasiekiama"
|
||||
#define STR_OFF "Išjungtas"
|
||||
#define STR_ON "Ijungtas"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Tipas"
|
||||
#define STR_FILENAME "Failo pavadinimas:"
|
||||
#define STR_PROGRESS "Progresas:"
|
||||
@@ -293,11 +295,12 @@
|
||||
#define STR_3900 "(tuščia)"
|
||||
#define STR_3901 "(host diskas %c:)"
|
||||
#define STR_3902 " [Apsaugota irašymui]"
|
||||
#define STR_3903 "&Naujas atvaizdas.."
|
||||
#define STR_3904 "&įkelti atvaizdas.."
|
||||
#define STR_3905 "&Perkrauti ankstesnį atvaizda"
|
||||
#define STR_3906 "&Iškrauti"
|
||||
#define STR_3907 "&Pranešti apie disko keitimą"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Naujas atvaizdas.."
|
||||
#define STR_3905 "&įkelti atvaizdas.."
|
||||
#define STR_3906 "&Perkrauti ankstesnį atvaizda"
|
||||
#define STR_3907 "&Iškrauti"
|
||||
#define STR_3908 "&Pranešti apie disko keitimą"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Tore Sinding Bekkedal, <toresbe@gmail.com<
|
||||
@@ -111,6 +111,8 @@
|
||||
#define STR_ENABLED "Aktivert"
|
||||
#define STR_OFF "Av"
|
||||
#define STR_ON "På"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Type"
|
||||
#define STR_FILENAME "Filnavn:"
|
||||
#define STR_PROGRESS "Framdrift:"
|
||||
@@ -293,11 +295,12 @@
|
||||
#define STR_3900 "(tom)"
|
||||
#define STR_3901 "(vertsdisk %c:)"
|
||||
#define STR_3902 " [Skrivebeskyttet]"
|
||||
#define STR_3903 "&Nytt avtrykk.."
|
||||
#define STR_3904 "&Last inn avtrykk.."
|
||||
#define STR_3905 "Oppdate&re avtrykk"
|
||||
#define STR_3906 "Løs &ut"
|
||||
#define STR_3907 "(&N) Varsle diskbytte"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Nytt avtrykk.."
|
||||
#define STR_3905 "&Last inn avtrykk.."
|
||||
#define STR_3906 "Oppdate&re avtrykk"
|
||||
#define STR_3907 "Løs &ut"
|
||||
#define STR_3908 "(&N) Varsle diskbytte"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -47,7 +47,7 @@
|
||||
*/
|
||||
|
||||
/* 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_EMAIL "tarlabnor@varcem.com"
|
||||
#define STR_NAME "VARCem"
|
||||
@@ -111,6 +111,8 @@
|
||||
#define STR_ENABLED "Доступно"
|
||||
#define STR_OFF "Выкл"
|
||||
#define STR_ON "Вкл"
|
||||
#define STR_UNLOCK "Разблокировать"
|
||||
#define STR_LOCK "Заблокировать"
|
||||
#define STR_TYPE "Тип"
|
||||
#define STR_FILENAME "Имя файла:"
|
||||
#define STR_PROGRESS "Прогресс:"
|
||||
@@ -293,11 +295,12 @@
|
||||
#define STR_3900 "(пусто)"
|
||||
#define STR_3901 "(хост-диск %c:)"
|
||||
#define STR_3902 " [Защищён от записи]"
|
||||
#define STR_3903 "Новый образ.."
|
||||
#define STR_3904 "Открыть образ.."
|
||||
#define STR_3905 "Загрузить предыдущий образ"
|
||||
#define STR_3906 "Извлечь"
|
||||
#define STR_3907 "Уведомить о смене диска"
|
||||
#define STR_3903 " [Заблокирован]"
|
||||
#define STR_3904 "Новый образ.."
|
||||
#define STR_3905 "Открыть образ.."
|
||||
#define STR_3906 "Загрузить предыдущий образ"
|
||||
#define STR_3907 "Извлечь"
|
||||
#define STR_3908 "Уведомить о смене диска"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Omogočeno"
|
||||
#define STR_OFF "Izključeno"
|
||||
#define STR_ON "Vključeno"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Tip"
|
||||
#define STR_FILENAME "Ime datoteke:"
|
||||
#define STR_PROGRESS "Napredek:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(prazno)"
|
||||
#define STR_3901 "(gostiteljev pogon %c:)"
|
||||
#define STR_3902 " [Zaščiteno pred pisanjem]"
|
||||
#define STR_3903 "&Nova slika..."
|
||||
#define STR_3904 "&Obstoječa slika..."
|
||||
#define STR_3905 "&Ponovno naloži prejšnjo sliko"
|
||||
#define STR_3906 "I&zvrzi"
|
||||
#define STR_3907 "&Obvesti o spremembi diska"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&Nova slika..."
|
||||
#define STR_3905 "&Obstoječa slika..."
|
||||
#define STR_3906 "&Ponovno naloži prejšnjo sliko"
|
||||
#define STR_3907 "I&zvrzi"
|
||||
#define STR_3908 "&Obvesti o spremembi diska"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -112,6 +112,8 @@
|
||||
#define STR_ENABLED "Досяжно"
|
||||
#define STR_OFF "Вимк."
|
||||
#define STR_ON "Ввiмк."
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Тип"
|
||||
#define STR_FILENAME "Iм'я файла:"
|
||||
#define STR_PROGRESS "Прогрес:"
|
||||
@@ -294,11 +296,12 @@
|
||||
#define STR_3900 "(пусто)"
|
||||
#define STR_3901 "(хост-диск %c:)"
|
||||
#define STR_3902 " [Захищений вiд запису]"
|
||||
#define STR_3903 "Новый iмiдж.."
|
||||
#define STR_3904 "Вiдкрити iмiдж.."
|
||||
#define STR_3905 "Завантажити попереднiй iмiдж"
|
||||
#define STR_3906 "Вийняти"
|
||||
#define STR_3907 "Повiдомити про змiну диска"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "Новый iмiдж.."
|
||||
#define STR_3905 "Вiдкрити iмiдж.."
|
||||
#define STR_3906 "Завантажити попереднiй iмiдж"
|
||||
#define STR_3907 "Вийняти"
|
||||
#define STR_3908 "Повiдомити про змiну диска"
|
||||
|
||||
#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тним стрiмом\0*.fdi\0Iмiджi з бiтовим стрiмом\0*.86f\0Усi файли\0*.*\0"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
*
|
||||
@@ -101,6 +101,8 @@ STRTBL( IDS_DISABLED, STR_DISABLED )
|
||||
STRTBL( IDS_ENABLED, STR_ENABLED )
|
||||
STRTBL( IDS_OFF, STR_OFF )
|
||||
STRTBL( IDS_ON, STR_ON )
|
||||
STRTBL( IDS_UNLOCK, STR_UNLOCK )
|
||||
STRTBL( IDS_LOCK, STR_LOCK )
|
||||
STRTBL( IDS_TYPE, STR_TYPE )
|
||||
STRTBL( IDS_FILENAME, STR_FILENAME )
|
||||
STRTBL( IDS_PROGRESS, STR_PROGRESS )
|
||||
@@ -288,7 +290,7 @@ STRTBL( IDS_3904, STR_3904 )
|
||||
STRTBL( IDS_3905, STR_3905 )
|
||||
STRTBL( IDS_3906, STR_3906 )
|
||||
STRTBL( IDS_3907, STR_3907 )
|
||||
/* 3908 available */
|
||||
STRTBL( IDS_3908, STR_3908 )
|
||||
/* 3909 available */
|
||||
STRTBL( IDS_3910, STR_3910 )
|
||||
STRTBL( IDS_3911, STR_3911 )
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* it as the line-by-line base for the translated version, and
|
||||
* 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>
|
||||
*
|
||||
@@ -115,6 +115,8 @@
|
||||
#define STR_ENABLED "Enabled"
|
||||
#define STR_OFF "Off"
|
||||
#define STR_ON "On"
|
||||
#define STR_UNLOCK "Unlock"
|
||||
#define STR_LOCK "Lock"
|
||||
#define STR_TYPE "Type"
|
||||
#define STR_FILENAME "File name:"
|
||||
#define STR_PROGRESS "Progress:"
|
||||
@@ -297,11 +299,12 @@
|
||||
#define STR_3900 "(empty)"
|
||||
#define STR_3901 "(host drive %c:)"
|
||||
#define STR_3902 " [Write Protected]"
|
||||
#define STR_3903 "&New image.."
|
||||
#define STR_3904 "&Load image.."
|
||||
#define STR_3905 "&Reload previous image"
|
||||
#define STR_3906 "&Unload"
|
||||
#define STR_3907 "&Notify disk change"
|
||||
#define STR_3903 " [Locked]"
|
||||
#define STR_3904 "&New image.."
|
||||
#define STR_3905 "&Load image.."
|
||||
#define STR_3906 "&Reload previous image"
|
||||
#define STR_3907 "&Unload"
|
||||
#define STR_3908 "&Notify disk change"
|
||||
|
||||
#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"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* those are not used by the platform code. This is easier to
|
||||
* 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>
|
||||
*
|
||||
@@ -170,7 +170,7 @@
|
||||
#define IDM_SBAR (IDM_BASE+1024)
|
||||
|
||||
#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_EJECT (IDM_SBAR + 0x0300)
|
||||
|
||||
@@ -178,15 +178,17 @@
|
||||
#define IDM_CDROM_EMPTY (IDM_SBAR + 0x0900)
|
||||
#define IDM_CDROM_RELOAD (IDM_SBAR + 0x0a00)
|
||||
#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_EXISTING (IDM_SBAR + 0x1100)
|
||||
#define IDM_ZIP_IMAGE_EXIST (IDM_SBAR + 0x1100)
|
||||
#define IDM_ZIP_EJECT (IDM_SBAR + 0x1200)
|
||||
#define IDM_ZIP_RELOAD (IDM_SBAR + 0x1300)
|
||||
|
||||
#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_RELOAD (IDM_SBAR + 0x1b00)
|
||||
#define IDM_DISK_NOTIFY (IDM_SBAR + 0x1c00)
|
||||
@@ -304,19 +306,21 @@
|
||||
#define IDS_ENABLED 3103 /* "Enabled" */
|
||||
#define IDS_OFF 3104 /* "Off" */
|
||||
#define IDS_ON 3105 /* "On" */
|
||||
#define IDS_TYPE 3106 /* "Type" */
|
||||
#define IDS_FILENAME 3107 /* "File name:" */
|
||||
#define IDS_PROGRESS 3108 /* "Progress:" */
|
||||
#define IDS_BUS 3109 /* "Bus:" */
|
||||
#define IDS_CHANNEL 3110 /* "Channel:" */
|
||||
#define IDS_ID 3111 /* "ID:" */
|
||||
#define IDS_LUN 3112 /* "LUN:" */
|
||||
#define IDS_INV_NAME 3113 /* "Please enter a valid file name" */
|
||||
#define IDS_IMG_EXIST 3114 /* "This image exists and will be.." */
|
||||
#define IDS_OPEN_READ 3115 /* "Unable to open for read" */
|
||||
#define IDS_OPEN_WRITE 3116 /* "Unable to open for write" */
|
||||
#define IDS_DEVCONF_1 3117 /* "Configuration" */
|
||||
#define IDS_DEVCONF_2 3118 /* "Device:" */
|
||||
#define IDS_UNLOCK 3106 /* "Unlock" */
|
||||
#define IDS_LOCK 3107 /* "Lock" */
|
||||
#define IDS_TYPE 3108 /* "Type" */
|
||||
#define IDS_FILENAME 3109 /* "File name:" */
|
||||
#define IDS_PROGRESS 3110 /* "Progress:" */
|
||||
#define IDS_BUS 3111 /* "Bus:" */
|
||||
#define IDS_CHANNEL 3112 /* "Channel:" */
|
||||
#define IDS_ID 3113 /* "ID:" */
|
||||
#define IDS_LUN 3114 /* "LUN:" */
|
||||
#define IDS_INV_NAME 3115 /* "Please enter a valid file name" */
|
||||
#define IDS_IMG_EXIST 3116 /* "This image exists and will be.." */
|
||||
#define IDS_OPEN_READ 3117 /* "Unable to open for read" */
|
||||
#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.) */
|
||||
@@ -484,11 +488,12 @@
|
||||
#define IDS_3900 3900 /* "(empty)" */
|
||||
#define IDS_3901 3901 /* "(host drive %c:)" */
|
||||
#define IDS_3902 3902 /* "[WP]" */
|
||||
#define IDS_3903 3903 /* "&New image..." */
|
||||
#define IDS_3904 3904 /* "&Load image..." */
|
||||
#define IDS_3905 3905 /* "&Reload previous image" */
|
||||
#define IDS_3906 3906 /* "&Unload" */
|
||||
#define IDS_3907 3907 /* "Notify disk &change" */
|
||||
#define IDS_3903 3903 /* "[Locked]" */
|
||||
#define IDS_3904 3904 /* "&New image..." */
|
||||
#define IDS_3905 3905 /* "&Load image..." */
|
||||
#define IDS_3906 3906 /* "&Reload previous image" */
|
||||
#define IDS_3907 3907 /* "&Unload" */
|
||||
#define IDS_3908 3908 /* "Notify disk &change" */
|
||||
#define IDS_3910 3910 /* "Floppy %i (%s): %ls" */
|
||||
#define IDS_3911 3911 /* "All floppy images (*.0??;*.." */
|
||||
#define IDS_3912 3912 /* "All floppy images (*.dsk..." */
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -207,6 +207,8 @@ ui_sb_tip_update(uint8_t tag)
|
||||
{
|
||||
wchar_t tip[512];
|
||||
wchar_t temp[512];
|
||||
cdrom_t *cdev;
|
||||
zip_drive_t *zdev;
|
||||
const wchar_t *str;
|
||||
const char *stransi;
|
||||
sbpart_t *ptr;
|
||||
@@ -234,41 +236,43 @@ ui_sb_tip_update(uint8_t tag)
|
||||
|
||||
case SB_CDROM:
|
||||
drive = ptr->tag & 0x0f;
|
||||
bus = cdrom[drive].bus_type;
|
||||
cdev = &cdrom[drive];
|
||||
bus = cdev->bus_type;
|
||||
id = IDS_3580 + (bus - 1);
|
||||
wcscpy(temp, get_string(id));
|
||||
str = cdrom[drive].image_path;
|
||||
str = cdev->image_path;
|
||||
if (*str == L'\0')
|
||||
str = get_string(IDS_3900); /*"(empty)"*/
|
||||
if (cdrom[drive].host_drive == 200) {
|
||||
swprintf(tip, sizeof_w(tip),
|
||||
get_string(IDS_3920), drive+1, temp, str);
|
||||
} else if ((cdrom[drive].host_drive >= 'A') &&
|
||||
(cdrom[drive].host_drive <= 'Z')) {
|
||||
swprintf(temp, sizeof_w(temp),
|
||||
get_string(IDS_3901),
|
||||
cdrom[drive].host_drive & ~0x20);
|
||||
swprintf(tip, sizeof_w(tip),
|
||||
get_string(IDS_3920),
|
||||
if (cdev->host_drive == 200) {
|
||||
swprintf(tip, sizeof_w(tip), get_string(IDS_3920),
|
||||
drive+1, temp, str);
|
||||
} else if ((cdev->host_drive >= 'A') &&
|
||||
(cdev->host_drive <= 'Z')) {
|
||||
swprintf(temp, sizeof_w(temp), get_string(IDS_3901),
|
||||
cdev->host_drive & ~0x20);
|
||||
swprintf(tip, sizeof_w(tip), get_string(IDS_3920),
|
||||
drive+1, get_string(id), temp);
|
||||
} else {
|
||||
swprintf(tip, sizeof_w(tip),
|
||||
get_string(IDS_3920), drive+1, temp, str);
|
||||
swprintf(tip, sizeof_w(tip), get_string(IDS_3920),
|
||||
drive+1, temp, str);
|
||||
}
|
||||
if (cdev->is_locked)
|
||||
wcscat(tip, get_string(IDS_3903)); /*"[LOCKED]"*/
|
||||
break;
|
||||
|
||||
case SB_ZIP:
|
||||
drive = ptr->tag & 0x0f;
|
||||
bus = zip_drives[drive].bus_type;
|
||||
zdev = &zip_drives[drive];
|
||||
bus = zdev->bus_type;
|
||||
id = IDS_3580 + (bus - 1);
|
||||
wcscpy(temp, get_string(id));
|
||||
type = zip_drives[drive].is_250 ? 250 : 100;
|
||||
str = zip_drives[drive].image_path;
|
||||
type = zdev->is_250 ? 250 : 100;
|
||||
str = zdev->image_path;
|
||||
if (*str == L'\0')
|
||||
str = get_string(IDS_3900); /*"(empty)"*/
|
||||
swprintf(tip, sizeof_w(tip),
|
||||
get_string(IDS_3950), type, drive+1, temp, str);
|
||||
if (zip_drives[drive].ui_writeprot)
|
||||
swprintf(tip, sizeof_w(tip), get_string(IDS_3950),
|
||||
type, drive+1, temp, str);
|
||||
if (zdev->ui_writeprot)
|
||||
wcscat(tip, get_string(IDS_3902)); /*"[WP]"*/
|
||||
break;
|
||||
|
||||
@@ -289,14 +293,12 @@ ui_sb_tip_update(uint8_t tag)
|
||||
|
||||
case SB_NETWORK:
|
||||
stransi = network_card_getname(network_card);
|
||||
swprintf(tip, sizeof_w(tip),
|
||||
get_string(IDS_3960), stransi);
|
||||
swprintf(tip, sizeof_w(tip), get_string(IDS_3960), stransi);
|
||||
break;
|
||||
|
||||
case SB_SOUND:
|
||||
stransi = sound_card_getname(sound_card);
|
||||
swprintf(tip, sizeof_w(tip),
|
||||
get_string(IDS_3970), stransi);
|
||||
swprintf(tip, sizeof_w(tip), get_string(IDS_3970), stransi);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -316,13 +318,13 @@ ui_sb_tip_update(uint8_t tag)
|
||||
static void
|
||||
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, IDM_DISK_IMAGE_NEW|drive, get_string(IDS_3903));
|
||||
sb_menu_add_item(part, IDM_DISK_IMAGE_EXISTING|drive, get_string(IDS_3904));
|
||||
sb_menu_add_item(part, IDM_DISK_RELOAD|drive, get_string(IDS_3905));
|
||||
sb_menu_add_item(part, IDM_DISK_IMAGE_NEW|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_3906));
|
||||
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
|
||||
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_EXISTING|drive,
|
||||
get_string(IDS_3904));
|
||||
sb_menu_add_item(part, IDM_FLOPPY_IMAGE_NEW|drive, get_string(IDS_3904));
|
||||
sb_menu_add_item(part, IDM_FLOPPY_IMAGE_EXIST|drive,
|
||||
get_string(IDS_3905));
|
||||
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, IDM_FLOPPY_EXPORT|drive,
|
||||
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
|
||||
menu_cdrom(int part, int drive)
|
||||
{
|
||||
cdrom_t *dev = &cdrom[drive];
|
||||
#ifdef USE_HOST_CDROM
|
||||
wchar_t temp[64];
|
||||
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, -1, NULL);
|
||||
sb_menu_add_item(part, IDM_CDROM_IMAGE | drive, get_string(IDS_3904));
|
||||
sb_menu_add_item(part, IDM_CDROM_RELOAD | drive, get_string(IDS_3905));
|
||||
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_3906));
|
||||
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
|
||||
if (cdrom_host_drive_available_num == 0) {
|
||||
#endif
|
||||
if ((cdrom[drive].host_drive >= 'A') &&
|
||||
(cdrom[drive].host_drive <= 'Z'))
|
||||
cdrom[drive].host_drive = 0;
|
||||
if ((dev->host_drive >= 'A') && (dev->host_drive <= 'Z'))
|
||||
dev->host_drive = 0;
|
||||
|
||||
#ifdef USE_HOST_CDROM
|
||||
goto check_items;
|
||||
} else {
|
||||
if ((cdrom[drive].host_drive >= 'A') &&
|
||||
(cdrom[drive].host_drive <= 'Z')) {
|
||||
if (! cdrom_host_drive_available[cdrom[drive].host_drive - 'A']) {
|
||||
cdrom[drive].host_drive = 0;
|
||||
if ((dev->host_drive >= 'A') &&
|
||||
(dev->host_drive <= 'Z')) {
|
||||
if (! cdrom_host_drive_available[dev->host_drive - 'A']) {
|
||||
dev->host_drive = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sb_menu_add_item(part, -1, NULL);
|
||||
|
||||
/* Add entries for all available host drives. */
|
||||
for (i = 3; i < 26; i++) {
|
||||
swprintf(temp, sizeof_w(temp), get_string(IDS_3921), i+'A');
|
||||
if (cdrom_host_drive_available[i])
|
||||
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:
|
||||
#endif
|
||||
if (! cdrom[drive].sound_on)
|
||||
if (! dev->sound_on)
|
||||
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);
|
||||
else
|
||||
if ((cdrom[drive].host_drive >= 'A') &&
|
||||
(cdrom[drive].host_drive <= 'Z')) {
|
||||
if ((dev->host_drive >= 'A') &&
|
||||
(dev->host_drive <= 'Z')) {
|
||||
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive |
|
||||
((cdrom[drive].host_drive - 'A') << 3), 1);
|
||||
((dev->host_drive - 'A') << 3), 1);
|
||||
} else {
|
||||
cdrom[drive].host_drive = 0;
|
||||
dev->host_drive = 0;
|
||||
sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 1);
|
||||
}
|
||||
|
||||
menu_cdrom_update(part, drive);
|
||||
}
|
||||
|
||||
|
||||
@@ -411,11 +448,11 @@ check_items:
|
||||
static void
|
||||
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_EXISTING|drive, get_string(IDS_3904));
|
||||
sb_menu_add_item(part, IDM_ZIP_RELOAD|drive, get_string(IDS_3905));
|
||||
sb_menu_add_item(part, IDM_ZIP_IMAGE_NEW|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_3906));
|
||||
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') {
|
||||
sb_menu_enable_item(part, IDM_ZIP_EJECT | drive, 0);
|
||||
@@ -742,7 +779,7 @@ void
|
||||
ui_sb_menu_command(int idm, uint8_t tag)
|
||||
{
|
||||
wchar_t temp[512];
|
||||
int new_cdrom_drive;
|
||||
cdrom_t *cdev;
|
||||
wchar_t *str;
|
||||
int drive;
|
||||
int part;
|
||||
@@ -757,7 +794,7 @@ ui_sb_menu_command(int idm, uint8_t tag)
|
||||
dlg_new_image(drive, part, 0);
|
||||
break;
|
||||
|
||||
case IDM_FLOPPY_IMAGE_EXISTING:
|
||||
case IDM_FLOPPY_IMAGE_EXIST:
|
||||
drive = tag & 0x03;
|
||||
part = find_tag(SB_FLOPPY | drive);
|
||||
if (part == -1) break;
|
||||
@@ -800,61 +837,69 @@ ui_sb_menu_command(int idm, uint8_t tag)
|
||||
case IDM_CDROM_MUTE:
|
||||
drive = tag & 0x07;
|
||||
part = find_tag(SB_CDROM | drive);
|
||||
cdev = &cdrom[drive];
|
||||
if (part == -1) break;
|
||||
|
||||
cdrom[drive].sound_on ^= 1;
|
||||
sb_menu_set_item(part, IDM_CDROM_MUTE | drive,
|
||||
cdrom[drive].sound_on);
|
||||
cdev->sound_on ^= 1;
|
||||
sb_menu_set_item(part, IDM_CDROM_MUTE | drive, cdev->sound_on);
|
||||
config_save();
|
||||
sound_cd_stop();
|
||||
break;
|
||||
|
||||
case IDM_CDROM_EMPTY:
|
||||
drive = tag & 0x07;
|
||||
part = find_tag(SB_CDROM | drive);
|
||||
if (part == -1) break;
|
||||
|
||||
ui_cdrom_eject(drive);
|
||||
menu_cdrom_update(part, drive);
|
||||
break;
|
||||
|
||||
case IDM_CDROM_RELOAD:
|
||||
drive = tag & 0x07;
|
||||
part = find_tag(SB_CDROM | drive);
|
||||
if (part == -1) break;
|
||||
|
||||
ui_cdrom_reload(drive);
|
||||
menu_cdrom_update(part, drive);
|
||||
break;
|
||||
|
||||
case IDM_CDROM_IMAGE:
|
||||
drive = tag & 0x07;
|
||||
part = find_tag(SB_CDROM | drive);
|
||||
cdev = &cdrom[drive];
|
||||
if (part == -1) break;
|
||||
|
||||
/* 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,
|
||||
DLG_FILE_LOAD|DLG_FILE_RO)) break;
|
||||
|
||||
/* Save current drive/pathname for later re-use. */
|
||||
cdrom[drive].prev_host_drive = cdrom[drive].host_drive;
|
||||
if (! cdrom[drive].prev_image_path)
|
||||
cdrom[drive].prev_image_path = (wchar_t *)mem_alloc(1024);
|
||||
wcscpy(cdrom[drive].prev_image_path, str);
|
||||
cdev->prev_host_drive = cdev->host_drive;
|
||||
if (! cdev->prev_image_path)
|
||||
cdev->prev_image_path = (wchar_t *)mem_alloc(1024);
|
||||
wcscpy(cdev->prev_image_path, str);
|
||||
|
||||
/* Close the current drive/pathname. */
|
||||
cdrom[drive].ops->close(&cdrom[drive]);
|
||||
memset(cdrom[drive].image_path, 0, sizeof(cdrom[drive].image_path));
|
||||
cdev->ops->close(cdev);
|
||||
memset(cdev->image_path, 0, sizeof(cdev->image_path));
|
||||
|
||||
/* Now open new image. */
|
||||
cdrom_image_open(&cdrom[drive], temp);
|
||||
cdrom_image_open(cdev, temp);
|
||||
|
||||
/* Signal media change to the emulated machine. */
|
||||
cdrom_insert(drive);
|
||||
|
||||
/* Update stuff. */
|
||||
sb_menu_set_item(part, IDM_CDROM_EMPTY | drive, 0);
|
||||
if ((cdrom[drive].host_drive >= 'A') &&
|
||||
(cdrom[drive].host_drive <= 'Z')) {
|
||||
if ((cdev->host_drive >= 'A') && (cdev->host_drive <= 'Z')) {
|
||||
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);
|
||||
}
|
||||
cdrom[drive].host_drive = (wcslen(cdrom[drive].image_path) == 0) ? 0 : 200;
|
||||
if (cdrom[drive].host_drive == 200) {
|
||||
cdev->host_drive = (wcslen(cdev->image_path) == 0) ? 0 : 200;
|
||||
if (cdev->host_drive == 200) {
|
||||
sb_menu_set_item(part, IDM_CDROM_IMAGE | drive, 1);
|
||||
ui_sb_icon_state(SB_CDROM | drive, 0);
|
||||
} else {
|
||||
@@ -863,29 +908,50 @@ ui_sb_menu_command(int idm, uint8_t tag)
|
||||
ui_sb_icon_state(SB_CDROM | drive, 1);
|
||||
}
|
||||
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);
|
||||
config_save();
|
||||
break;
|
||||
|
||||
case IDM_CDROM_HOST_DRIVE:
|
||||
case IDM_CDROM_LOCK:
|
||||
case IDM_CDROM_UNLOCK:
|
||||
drive = tag & 0x07;
|
||||
i = ((tag >> 3) & 0x001f) + 'A';
|
||||
part = find_tag(SB_CDROM | drive);
|
||||
cdev = &cdrom[drive];
|
||||
if (part == -1) break;
|
||||
|
||||
new_cdrom_drive = i;
|
||||
if (cdrom[drive].host_drive == new_cdrom_drive) {
|
||||
if (cdev->ops->medium_lock)
|
||||
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. */
|
||||
break;
|
||||
}
|
||||
cdrom[drive].prev_host_drive = cdrom[drive].host_drive;
|
||||
cdev->prev_host_drive = cdev->host_drive;
|
||||
|
||||
/* Close the current drive/pathname. */
|
||||
cdrom[drive].ops->close(&cdrom[drive]);
|
||||
memset(cdrom[drive].image_path, 0, sizeof(cdrom[drive].image_path));
|
||||
cdev->ops->close(cdev);
|
||||
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
|
||||
cdrom_host_open(&cdrom[drive], new_cdrom_drive);
|
||||
cdrom_host_open(cdev, i);
|
||||
#endif
|
||||
|
||||
/* Signal media change to the emulated machine. */
|
||||
@@ -893,14 +959,12 @@ ui_sb_menu_command(int idm, uint8_t tag)
|
||||
|
||||
/* Update stuff. */
|
||||
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_HOST_DRIVE | drive | ((cdrom[drive].host_drive - 'A') << 3), 1);
|
||||
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_tip_update(SB_CDROM | drive);
|
||||
config_save();
|
||||
@@ -914,7 +978,7 @@ ui_sb_menu_command(int idm, uint8_t tag)
|
||||
dlg_new_image(drive, part, 1);
|
||||
break;
|
||||
|
||||
case IDM_ZIP_IMAGE_EXISTING:
|
||||
case IDM_ZIP_IMAGE_EXIST:
|
||||
drive = tag & 0x03;
|
||||
part = find_tag(SB_ZIP | drive);
|
||||
if (part == -1) break;
|
||||
@@ -952,7 +1016,7 @@ ui_sb_menu_command(int idm, uint8_t tag)
|
||||
dlg_new_image(drive, part, 1);
|
||||
break;
|
||||
|
||||
case IDM_DISK_IMAGE_EXISTING:
|
||||
case IDM_DISK_IMAGE_EXIST:
|
||||
drive = tag & 0x0f;
|
||||
part = find_tag(SB_DISK | drive);
|
||||
if (part == -1) break;
|
||||
|
||||
1098
src/win/win_cdrom.c
1098
src/win/win_cdrom.c
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* 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>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -41,6 +41,9 @@
|
||||
#include <windowsx.h>
|
||||
#include <commctrl.h>
|
||||
#include <commdlg.h>
|
||||
#ifdef USE_HOST_CDROM
|
||||
# include <dbt.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
@@ -55,6 +58,7 @@
|
||||
#include "../devices/input/keyboard.h"
|
||||
#include "../devices/input/mouse.h"
|
||||
#include "../devices/video/video.h"
|
||||
#include "../devices/cdrom/cdrom.h"
|
||||
#include "win.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
|
||||
MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
@@ -486,6 +535,12 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
#ifdef USE_HOST_CDROM
|
||||
case WM_DEVICECHANGE:
|
||||
HandleMediaEvent(wParam, lParam);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WM_SYSCOMMAND:
|
||||
/*
|
||||
* Disable ALT key *ALWAYS*,
|
||||
|
||||
Reference in New Issue
Block a user