Fixed Host MIDI Out Device ID saving;
Did the UI-related preparations for adding removable hard disks.
This commit is contained in:
128
src/WIN/86Box.rc
128
src/WIN/86Box.rc
@@ -92,6 +92,118 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_CDROM_4_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 01"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_01_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_01_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_01_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 02"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_02_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_02_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_02_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 03"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_03_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_03_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_03_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 04"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_04_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_04_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_04_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 05"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_05_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_05_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_05_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 06"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_06_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_06_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_06_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 07"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_07_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_07_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_07_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 08"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_08_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_08_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_08_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 09"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_09_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_09_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_09_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 10"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_10_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_10_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_10_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 11"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_11_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_11_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_11_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 12"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_12_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_12_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_12_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 13"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_13_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_13_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_13_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 14"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_14_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_14_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_14_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 15"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_15_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_15_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_15_IMAGE
|
||||
END
|
||||
POPUP "Removable disk 16"
|
||||
BEGIN
|
||||
MENUITEM "E&mpty", IDM_RDISK_16_EMPTY
|
||||
MENUITEM "&Reload previous disc", IDM_RDISK_16_RELOAD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Image...", IDM_RDISK_16_IMAGE
|
||||
END
|
||||
END
|
||||
|
||||
MAINMENU MENU DISCARDABLE
|
||||
@@ -536,14 +648,14 @@ END
|
||||
163 ICON DISCARDABLE "ICONS/cdrom_atapi_dma_active.ico"
|
||||
164 ICON DISCARDABLE "ICONS/cdrom_scsi.ico"
|
||||
165 ICON DISCARDABLE "ICONS/cdrom_scsi_active.ico"
|
||||
176 ICON DISCARDABLE "ICONS/hard_disk_mfm.ico"
|
||||
177 ICON DISCARDABLE "ICONS/hard_disk_mfm_active.ico"
|
||||
178 ICON DISCARDABLE "ICONS/hard_disk.ico"
|
||||
179 ICON DISCARDABLE "ICONS/hard_disk_active.ico"
|
||||
180 ICON DISCARDABLE "ICONS/hard_disk_ide.ico"
|
||||
181 ICON DISCARDABLE "ICONS/hard_disk_ide_active.ico"
|
||||
182 ICON DISCARDABLE "ICONS/hard_disk_scsi.ico"
|
||||
183 ICON DISCARDABLE "ICONS/hard_disk_scsi_active.ico"
|
||||
192 ICON DISCARDABLE "ICONS/hard_disk_mfm.ico"
|
||||
193 ICON DISCARDABLE "ICONS/hard_disk_mfm_active.ico"
|
||||
194 ICON DISCARDABLE "ICONS/hard_disk.ico"
|
||||
195 ICON DISCARDABLE "ICONS/hard_disk_active.ico"
|
||||
196 ICON DISCARDABLE "ICONS/hard_disk_ide.ico"
|
||||
197 ICON DISCARDABLE "ICONS/hard_disk_ide_active.ico"
|
||||
198 ICON DISCARDABLE "ICONS/hard_disk_scsi.ico"
|
||||
199 ICON DISCARDABLE "ICONS/hard_disk_scsi_active.ico"
|
||||
256 ICON DISCARDABLE "ICONS/machine.ico"
|
||||
257 ICON DISCARDABLE "ICONS/video.ico"
|
||||
258 ICON DISCARDABLE "ICONS/input_devices.ico"
|
||||
|
||||
@@ -180,6 +180,55 @@
|
||||
#define IDM_CDROM_4_EMPTY 40179
|
||||
#define IDM_CDROM_4_REAL 40195
|
||||
|
||||
#define IDM_RDISK_01_IMAGE 3200
|
||||
#define IDM_RDISK_01_RELOAD 3216
|
||||
#define IDM_RDISK_01_EMPTY 3232
|
||||
#define IDM_RDISK_02_IMAGE 3201
|
||||
#define IDM_RDISK_02_RELOAD 3217
|
||||
#define IDM_RDISK_02_EMPTY 3233
|
||||
#define IDM_RDISK_03_IMAGE 3202
|
||||
#define IDM_RDISK_03_RELOAD 3218
|
||||
#define IDM_RDISK_03_EMPTY 3234
|
||||
#define IDM_RDISK_04_IMAGE 3203
|
||||
#define IDM_RDISK_04_RELOAD 3219
|
||||
#define IDM_RDISK_04_EMPTY 3235
|
||||
#define IDM_RDISK_05_IMAGE 3204
|
||||
#define IDM_RDISK_05_RELOAD 3220
|
||||
#define IDM_RDISK_05_EMPTY 3236
|
||||
#define IDM_RDISK_06_IMAGE 3205
|
||||
#define IDM_RDISK_06_RELOAD 3221
|
||||
#define IDM_RDISK_06_EMPTY 3237
|
||||
#define IDM_RDISK_07_IMAGE 3206
|
||||
#define IDM_RDISK_07_RELOAD 3222
|
||||
#define IDM_RDISK_07_EMPTY 3238
|
||||
#define IDM_RDISK_08_IMAGE 3207
|
||||
#define IDM_RDISK_08_RELOAD 3223
|
||||
#define IDM_RDISK_08_EMPTY 3239
|
||||
#define IDM_RDISK_09_IMAGE 3208
|
||||
#define IDM_RDISK_09_RELOAD 3224
|
||||
#define IDM_RDISK_09_EMPTY 3240
|
||||
#define IDM_RDISK_10_IMAGE 3209
|
||||
#define IDM_RDISK_10_RELOAD 3225
|
||||
#define IDM_RDISK_10_EMPTY 3241
|
||||
#define IDM_RDISK_11_IMAGE 3210
|
||||
#define IDM_RDISK_11_RELOAD 3226
|
||||
#define IDM_RDISK_11_EMPTY 3242
|
||||
#define IDM_RDISK_12_IMAGE 3211
|
||||
#define IDM_RDISK_12_RELOAD 3227
|
||||
#define IDM_RDISK_12_EMPTY 3243
|
||||
#define IDM_RDISK_13_IMAGE 3212
|
||||
#define IDM_RDISK_13_RELOAD 3228
|
||||
#define IDM_RDISK_13_EMPTY 3244
|
||||
#define IDM_RDISK_14_IMAGE 3213
|
||||
#define IDM_RDISK_14_RELOAD 3229
|
||||
#define IDM_RDISK_14_EMPTY 3245
|
||||
#define IDM_RDISK_15_IMAGE 3214
|
||||
#define IDM_RDISK_15_RELOAD 3230
|
||||
#define IDM_RDISK_15_EMPTY 3246
|
||||
#define IDM_RDISK_16_IMAGE 3215
|
||||
#define IDM_RDISK_16_RELOAD 3231
|
||||
#define IDM_RDISK_16_EMPTY 3247
|
||||
|
||||
#define IDM_IDE_TER_ENABLED 44000
|
||||
#define IDM_IDE_TER_IRQ9 44009
|
||||
#define IDM_IDE_TER_IRQ10 44010
|
||||
|
||||
@@ -696,7 +696,7 @@ void update_status_bar_icon(int tag, int active)
|
||||
int found = -1;
|
||||
int temp_flags = 0;
|
||||
|
||||
if ((tag & 0xf0) >= 0x30)
|
||||
if ((tag & 0xf0) >= 0x40)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -833,7 +833,7 @@ void update_tip(int meaning)
|
||||
|
||||
if (part != -1)
|
||||
{
|
||||
switch(meaning & 0x30)
|
||||
switch(meaning & 0xf0)
|
||||
{
|
||||
case 0x00:
|
||||
create_floppy_tip(part);
|
||||
@@ -841,7 +841,12 @@ void update_tip(int meaning)
|
||||
case 0x10:
|
||||
create_cdrom_tip(part);
|
||||
break;
|
||||
#if 0
|
||||
case 0x20:
|
||||
create_removable_hd_tip(part);
|
||||
break;
|
||||
#endif
|
||||
case 0x30:
|
||||
create_hd_tip(part);
|
||||
break;
|
||||
default:
|
||||
@@ -883,7 +888,7 @@ void status_settextw(wchar_t *wstr)
|
||||
|
||||
for (i = 0; i < sb_parts; i++)
|
||||
{
|
||||
if (sb_part_meanings[i] == 0x30)
|
||||
if (sb_part_meanings[i] == 0x40)
|
||||
{
|
||||
part = i;
|
||||
}
|
||||
@@ -949,32 +954,44 @@ void update_status_bar_panes(HWND hwnds)
|
||||
sb_parts++;
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
if (hdc[i].bus == 5)
|
||||
{
|
||||
edge += sb_icon_width;
|
||||
iStatusWidths[sb_parts] = edge;
|
||||
sb_part_meanings[sb_parts] = 0x20 | i;
|
||||
sb_parts++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (c_mfm && !(models[model].flags & MODEL_HAS_IDE) && !!memcmp(hdd_controller_name, "none", 4) && !!memcmp(hdd_controller_name, "xtide", 5))
|
||||
{
|
||||
edge += sb_icon_width;
|
||||
iStatusWidths[sb_parts] = edge;
|
||||
sb_part_meanings[sb_parts] = 0x20;
|
||||
sb_part_meanings[sb_parts] = 0x30;
|
||||
sb_parts++;
|
||||
}
|
||||
if (c_ide_pio && ((models[model].flags & MODEL_HAS_IDE) || !memcmp(hdd_controller_name, "xtide", 5)))
|
||||
{
|
||||
edge += sb_icon_width;
|
||||
iStatusWidths[sb_parts] = edge;
|
||||
sb_part_meanings[sb_parts] = 0x21;
|
||||
sb_part_meanings[sb_parts] = 0x31;
|
||||
sb_parts++;
|
||||
}
|
||||
if (c_ide_dma && ((models[model].flags & MODEL_HAS_IDE) || !memcmp(hdd_controller_name, "xtide", 5)))
|
||||
{
|
||||
edge += sb_icon_width;
|
||||
iStatusWidths[sb_parts] = edge;
|
||||
sb_part_meanings[sb_parts] = 0x22;
|
||||
sb_part_meanings[sb_parts] = 0x32;
|
||||
sb_parts++;
|
||||
}
|
||||
if (c_scsi)
|
||||
{
|
||||
edge += sb_icon_width;
|
||||
iStatusWidths[sb_parts] = edge;
|
||||
sb_part_meanings[sb_parts] = 0x23;
|
||||
sb_part_meanings[sb_parts] = 0x33;
|
||||
sb_parts++;
|
||||
}
|
||||
if (sb_parts)
|
||||
@@ -982,14 +999,14 @@ void update_status_bar_panes(HWND hwnds)
|
||||
iStatusWidths[sb_parts - 1] += (24 - sb_icon_width);
|
||||
}
|
||||
iStatusWidths[sb_parts] = -1;
|
||||
sb_part_meanings[sb_parts] = 0x30;
|
||||
sb_part_meanings[sb_parts] = 0x40;
|
||||
sb_parts++;
|
||||
|
||||
SendMessage(hwnds, SB_SETPARTS, (WPARAM) sb_parts, (LPARAM) iStatusWidths);
|
||||
|
||||
for (i = 0; i < sb_parts; i++)
|
||||
{
|
||||
switch (sb_part_meanings[i] & 0x30)
|
||||
switch (sb_part_meanings[i] & 0xf0)
|
||||
{
|
||||
case 0x00:
|
||||
/* Floppy */
|
||||
@@ -1030,12 +1047,20 @@ void update_status_bar_panes(HWND hwnds)
|
||||
sb_part_icons[i] = j | sb_icon_flags[i];
|
||||
create_cdrom_tip(i);
|
||||
break;
|
||||
#if 0
|
||||
case 0x20:
|
||||
/* Removable hard disk */
|
||||
sb_icon_flags[i] = (wcslen(discfns[sb_part_meanings[i] & 0xf]) == 0) ? 256 : 0;
|
||||
sb_part_icons[i] = 176 + sb_icon_flags[i];
|
||||
create_floppy_tip(i);
|
||||
break;
|
||||
#endif
|
||||
case 0x30:
|
||||
/* Hard disk */
|
||||
sb_part_icons[i] = 176 + ((sb_part_meanings[i] & 0xf) << 1);
|
||||
sb_part_icons[i] = 192 + ((sb_part_meanings[i] & 0xf) << 1);
|
||||
create_hd_tip(i);
|
||||
break;
|
||||
case 0x30:
|
||||
case 0x40:
|
||||
/* Status text */
|
||||
SendMessage(hwnds, SB_SETTEXT, i | SBT_NOBORDERS, (LPARAM) L"Welcome to Unicode 86Box! :p");
|
||||
sb_part_icons[i] = -1;
|
||||
@@ -1082,7 +1107,14 @@ HWND EmulatorStatusBar(HWND hwndParent, int idStatus, HINSTANCE hinst)
|
||||
hIcon[i] = LoadIconEx((PCTSTR) i);
|
||||
}
|
||||
|
||||
for (i = 176; i < 184; i++)
|
||||
#if 0
|
||||
for (i = 176; i < 178; i++)
|
||||
{
|
||||
hIcon[i] = LoadIconEx((PCTSTR) i);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 192; i < 200; i++)
|
||||
{
|
||||
hIcon[i] = LoadIconEx((PCTSTR) i);
|
||||
}
|
||||
@@ -1107,6 +1139,13 @@ HWND EmulatorStatusBar(HWND hwndParent, int idStatus, HINSTANCE hinst)
|
||||
hIcon[i] = LoadIconEx((PCTSTR) i);
|
||||
}
|
||||
|
||||
#if 0
|
||||
for (i = 432; i < 434; i++)
|
||||
{
|
||||
hIcon[i] = LoadIconEx((PCTSTR) i);
|
||||
}
|
||||
#endif
|
||||
|
||||
GetWindowRect(hwndParent, &rectDialog);
|
||||
dw = rectDialog.right - rectDialog.left;
|
||||
dh = rectDialog.bottom - rectDialog.top;
|
||||
@@ -2192,14 +2231,20 @@ VOID APIENTRY HandlePopupMenu(HWND hwnd, POINT pt, int id)
|
||||
pt.x = id * sb_icon_width; /* Justify to the left. */
|
||||
pt.y = 0; /* Justify to the top. */
|
||||
ClientToScreen(hwnd, (LPPOINT) &pt);
|
||||
if ((sb_part_meanings[id] & 0x30) == 0x00)
|
||||
if ((sb_part_meanings[id] & 0xf0) == 0x00)
|
||||
{
|
||||
menu_id = sb_part_meanings[id] & 0xf;
|
||||
}
|
||||
else if ((sb_part_meanings[id] & 0x30) == 0x10)
|
||||
else if ((sb_part_meanings[id] & 0xf0) == 0x10)
|
||||
{
|
||||
menu_id = (sb_part_meanings[id] & 0xf) + 4;
|
||||
}
|
||||
#if 0
|
||||
else if ((sb_part_meanings[id] & 0xf0) == 0x20)
|
||||
{
|
||||
menu_id = (sb_part_meanings[id] & 0xf) + 8;
|
||||
}
|
||||
#endif
|
||||
if (menu_id != -1)
|
||||
{
|
||||
pmenu = GetSubMenu(smenu, menu_id);
|
||||
|
||||
46
src/config.c
46
src/config.c
@@ -997,15 +997,7 @@ static void loadconfig_hard_disks(void)
|
||||
sprintf(temps, "hdd_%02i_scsi_location", c + 1);
|
||||
sprintf(temps2, "%02u:%02u", c, 0);
|
||||
p = config_get_string(cat, temps, temps2);
|
||||
if (p != NULL)
|
||||
{
|
||||
sscanf(p, "%02u:%02u", &hdc[c].scsi_id, &hdc[c].scsi_lun);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* FIXME: Can never happen, 'temps' above is non-NULL. */
|
||||
sscanf(temps2, "%02u:%02u", &hdc[c].scsi_id, &hdc[c].scsi_lun);
|
||||
}
|
||||
sscanf(p, "%02u:%02u", &hdc[c].scsi_id, &hdc[c].scsi_lun);
|
||||
|
||||
if (hdc[c].scsi_id > 15)
|
||||
{
|
||||
@@ -1019,12 +1011,7 @@ static void loadconfig_hard_disks(void)
|
||||
memset(hdd_fn[c], 0, 1024);
|
||||
sprintf(temps, "hdd_%02i_fn", c + 1);
|
||||
wp = config_get_wstring(cat, temps, L"");
|
||||
/*FIXME: wcslen(wp) instead of 512? */
|
||||
if (wp) memcpy(hdd_fn[c], wp, 512);
|
||||
else {
|
||||
memcpy(hdd_fn[c], L"", 2);
|
||||
hdd_fn[c][0] = L'\0';
|
||||
}
|
||||
memcpy(hdd_fn[c], wp, (wcslen(wp) << 1) + 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,10 +1031,7 @@ static void loadconfig_removable_devices(void)
|
||||
{
|
||||
sprintf(temps, "fdd_%02i_type", c + 1);
|
||||
p = config_get_string(cat, temps, (c < 2) ? "525_2dd" : "none");
|
||||
if (p)
|
||||
fdd_set_type(c, fdd_get_from_internal_name(p));
|
||||
else /*FIXME: never happens, "none" is non-NULL */
|
||||
fdd_set_type(c, (c < 2) ? 2 : 0);
|
||||
fdd_set_type(c, fdd_get_from_internal_name(p));
|
||||
if (fdd_get_type(c) > 13)
|
||||
{
|
||||
fdd_set_type(c, 13);
|
||||
@@ -1055,12 +1039,7 @@ static void loadconfig_removable_devices(void)
|
||||
|
||||
sprintf(temps, "fdd_%02i_fn", c + 1);
|
||||
wp = config_get_wstring(cat, temps, L"");
|
||||
/*FIXME: see above, wcslen(wp) ? */
|
||||
if (wp) memcpy(discfns[c], wp, 512);
|
||||
else {
|
||||
memcpy(discfns[c], L"", 2);
|
||||
discfns[c][0] = L'\0';
|
||||
}
|
||||
memcpy(discfns[c], wp, (wcslen(wp) << 1) + 2);
|
||||
printf("Floppy: %ws\n", discfns[c]);
|
||||
sprintf(temps, "fdd_%02i_writeprot", c + 1);
|
||||
ui_writeprot[c] = !!config_get_int(cat, temps, 0);
|
||||
@@ -1096,15 +1075,7 @@ static void loadconfig_removable_devices(void)
|
||||
sprintf(temps, "cdrom_%02i_scsi_location", c + 1);
|
||||
sprintf(temps2, "%02u:%02u", c + 2, 0);
|
||||
p = config_get_string(cat, temps, temps2);
|
||||
if (p != NULL)
|
||||
{
|
||||
sscanf(p, "%02u:%02u", &cdrom_drives[c].scsi_device_id, &cdrom_drives[c].scsi_device_lun);
|
||||
}
|
||||
else /*FIXME: never happens, 'temps2' is non-NULL */
|
||||
{
|
||||
sscanf(temps2, "%02u:%02u", &cdrom_drives[c].scsi_device_id, &cdrom_drives[c].scsi_device_lun);
|
||||
}
|
||||
|
||||
sscanf(p, "%02u:%02u", &cdrom_drives[c].scsi_device_id, &cdrom_drives[c].scsi_device_lun);
|
||||
|
||||
if (cdrom_drives[c].scsi_device_id > 15)
|
||||
{
|
||||
@@ -1117,12 +1088,7 @@ static void loadconfig_removable_devices(void)
|
||||
|
||||
sprintf(temps, "cdrom_%02i_image_path", c + 1);
|
||||
wp = config_get_wstring(cat, temps, L"");
|
||||
/*FIXME see above, wcslen(wp) */
|
||||
if (wp != NULL) memcpy(cdrom_image[c].image_path, wp, 512);
|
||||
else {
|
||||
memcpy(cdrom_image[c].image_path, L"", 2);
|
||||
cdrom_image[c].image_path[0] = L'\0';
|
||||
}
|
||||
memcpy(cdrom_image[c].image_path, wp, (wcslen(wp) << 1) + 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -433,7 +433,7 @@ static void esdi_callback(void *p)
|
||||
fatal("Read past end of drive\n");
|
||||
fseek(drive->hdfile, esdi->rba * 512, SEEK_SET);
|
||||
fread(esdi->data, 512, 1, drive->hdfile);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
}
|
||||
while (esdi->data_pos < 256)
|
||||
{
|
||||
@@ -522,11 +522,11 @@ static void esdi_callback(void *p)
|
||||
fwrite(esdi->data, 512, 1, drive->hdfile);
|
||||
esdi->rba++;
|
||||
esdi->sector_pos++;
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
|
||||
esdi->data_pos = 0;
|
||||
}
|
||||
update_status_bar_icon(0x20, 0);
|
||||
update_status_bar_icon(0x30, 0);
|
||||
|
||||
esdi->status = STATUS_CMD_IN_PROGRESS;
|
||||
esdi->cmd_state = 2;
|
||||
|
||||
26
src/ide.c
26
src/ide.c
@@ -1399,7 +1399,7 @@ uint32_t ide_read_data(int ide_board, int length)
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 0);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1722,7 +1722,7 @@ void callbackide(int ide_board)
|
||||
|
||||
ide_irq_raise(ide);
|
||||
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
return;
|
||||
|
||||
case WIN_READ_DMA:
|
||||
@@ -1756,12 +1756,12 @@ void callbackide(int ide_board)
|
||||
ide_next_sector(ide);
|
||||
ide->atastat = BUSY_STAT;
|
||||
idecallback[ide_board]=6*IDE_TIME;
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ide_irq_raise(ide);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 0);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1799,7 +1799,7 @@ void callbackide(int ide_board)
|
||||
ide->blockcount = 0;
|
||||
}
|
||||
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
return;
|
||||
|
||||
case WIN_WRITE:
|
||||
@@ -1822,12 +1822,12 @@ void callbackide(int ide_board)
|
||||
ide->atastat = DRQ_STAT | READY_STAT | DSC_STAT;
|
||||
ide->pos=0;
|
||||
ide_next_sector(ide);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ide->atastat = READY_STAT | DSC_STAT;
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 0);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 0);
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -1863,12 +1863,12 @@ void callbackide(int ide_board)
|
||||
ide_next_sector(ide);
|
||||
ide->atastat = BUSY_STAT;
|
||||
idecallback[ide_board]=6*IDE_TIME;
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ide_irq_raise(ide);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 0);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1899,12 +1899,12 @@ void callbackide(int ide_board)
|
||||
ide->atastat = DRQ_STAT | READY_STAT | DSC_STAT;
|
||||
ide->pos=0;
|
||||
ide_next_sector(ide);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ide->atastat = READY_STAT | DSC_STAT;
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 0);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 0);
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -1921,7 +1921,7 @@ void callbackide(int ide_board)
|
||||
ide->pos=0;
|
||||
ide->atastat = READY_STAT | DSC_STAT;
|
||||
ide_irq_raise(ide);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1);
|
||||
update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1);
|
||||
return;
|
||||
|
||||
case WIN_FORMAT:
|
||||
@@ -1943,7 +1943,7 @@ void callbackide(int ide_board)
|
||||
ide->atastat = READY_STAT | DSC_STAT;
|
||||
ide_irq_raise(ide);
|
||||
|
||||
/* update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x22 : 0x21, 1); */
|
||||
/* update_status_bar_icon((hdc[ide->hdc_num].bus == 3) ? 0x32 : 0x31, 1); */
|
||||
return;
|
||||
|
||||
case WIN_DRIVE_DIAGNOSTICS:
|
||||
|
||||
12
src/mfm_at.c
12
src/mfm_at.c
@@ -439,7 +439,7 @@ uint16_t mfm_readw(uint16_t port, void *p)
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_bar_icon(0x20, 0);
|
||||
update_status_bar_icon(0x30, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -505,7 +505,7 @@ void mfm_callback(void *p)
|
||||
mfm->pos = 0;
|
||||
mfm->status = STAT_DRQ | STAT_READY | STAT_DSC;
|
||||
mfm_irq_raise(mfm);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
break;
|
||||
|
||||
case CMD_WRITE:
|
||||
@@ -526,12 +526,12 @@ void mfm_callback(void *p)
|
||||
mfm->status = STAT_DRQ | STAT_READY | STAT_DSC;
|
||||
mfm->pos = 0;
|
||||
mfm_next_sector(mfm);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
mfm->status = STAT_READY | STAT_DSC;
|
||||
update_status_bar_icon(0x20, 0);
|
||||
update_status_bar_icon(0x30, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -540,7 +540,7 @@ void mfm_callback(void *p)
|
||||
mfm->pos = 0;
|
||||
mfm->status = STAT_READY | STAT_DSC;
|
||||
mfm_irq_raise(mfm);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
break;
|
||||
|
||||
case CMD_FORMAT:
|
||||
@@ -560,7 +560,7 @@ void mfm_callback(void *p)
|
||||
}
|
||||
mfm->status = STAT_READY | STAT_DSC;
|
||||
mfm_irq_raise(mfm);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
break;
|
||||
|
||||
case CMD_DIAGNOSE:
|
||||
|
||||
@@ -374,7 +374,7 @@ static void xebec_callback(void *p)
|
||||
|
||||
xebec_complete(xebec);
|
||||
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -431,7 +431,7 @@ static void xebec_callback(void *p)
|
||||
|
||||
fseeko64(drive->hdfile, addr * 512, SEEK_SET);
|
||||
fread(xebec->sector_buf, 512, 1, drive->hdfile);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
}
|
||||
if (xebec->irq_dma_mask & DMA_ENA)
|
||||
xebec->callback = XEBEC_TIME;
|
||||
@@ -485,7 +485,7 @@ static void xebec_callback(void *p)
|
||||
|
||||
fseeko64(drive->hdfile, addr * 512, SEEK_SET);
|
||||
fread(xebec->sector_buf, 512, 1, drive->hdfile);
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
|
||||
xebec->state = STATE_SEND_DATA;
|
||||
|
||||
@@ -500,7 +500,7 @@ static void xebec_callback(void *p)
|
||||
else
|
||||
{
|
||||
xebec_complete(xebec);
|
||||
update_status_bar_icon(0x20, 0);
|
||||
update_status_bar_icon(0x30, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -572,7 +572,7 @@ static void xebec_callback(void *p)
|
||||
fwrite(xebec->sector_buf, 512, 1, drive->hdfile);
|
||||
}
|
||||
|
||||
update_status_bar_icon(0x20, 1);
|
||||
update_status_bar_icon(0x30, 1);
|
||||
|
||||
xebec_next_sector(xebec);
|
||||
xebec->data_pos = 0;
|
||||
|
||||
@@ -852,11 +852,11 @@ void scsi_hd_command(uint8_t id, uint8_t *cdb)
|
||||
shdc[id].all_blocks_total = shdc[id].block_total;
|
||||
if (shdc[id].packet_status != CDROM_PHASE_COMPLETE)
|
||||
{
|
||||
update_status_bar_icon(0x23, 1);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_bar_icon(0x23, 0);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 0);
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -913,11 +913,11 @@ void scsi_hd_command(uint8_t id, uint8_t *cdb)
|
||||
shdc[id].all_blocks_total = shdc[id].block_total;
|
||||
if (shdc[id].packet_status != CDROM_PHASE_COMPLETE)
|
||||
{
|
||||
update_status_bar_icon(0x23, 1);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_bar_icon(0x23, 0);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 0);
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -1129,7 +1129,7 @@ void scsi_hd_callback(uint8_t id)
|
||||
shdc[id].status = READY_STAT;
|
||||
shdc[id].phase = 3;
|
||||
shdc[id].packet_status = 0xFF;
|
||||
update_status_bar_icon(0x23, 0);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 0);
|
||||
return;
|
||||
case CDROM_PHASE_DATA_OUT:
|
||||
scsi_hd_log("SCSI HD %i: PHASE_DATA_OUT\n", id);
|
||||
@@ -1142,7 +1142,7 @@ void scsi_hd_callback(uint8_t id)
|
||||
shdc[id].packet_status = CDROM_PHASE_COMPLETE;
|
||||
shdc[id].status = READY_STAT;
|
||||
shdc[id].phase = 3;
|
||||
update_status_bar_icon(0x23, 0);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 0);
|
||||
return;
|
||||
case CDROM_PHASE_DATA_IN:
|
||||
scsi_hd_log("SCSI HD %i: PHASE_DATA_IN\n", id);
|
||||
@@ -1155,7 +1155,7 @@ void scsi_hd_callback(uint8_t id)
|
||||
shdc[id].packet_status = CDROM_PHASE_COMPLETE;
|
||||
shdc[id].status = READY_STAT;
|
||||
shdc[id].phase = 3;
|
||||
update_status_bar_icon(0x23, 0);
|
||||
update_status_bar_icon((hdc[id].bus == 5) ? (0x20 | id) : 0x23, 0);
|
||||
return;
|
||||
case CDROM_PHASE_ERROR:
|
||||
scsi_hd_log("SCSI HD %i: PHASE_ERROR\n", id);
|
||||
|
||||
Reference in New Issue
Block a user