Extensive rework of SCSI and ATAPI devices and numerous bug fixes and cleanups;
Extensive rework of CD-ROM image handling; The settings save code now forces some devices' (SCSI disk, CD-ROM, etc.) pointers to NULL before resetting the machine - fixes segmentation faults after changing settings; Added the NCR 53c825A and 53c875 SCSI controllers; Fixed IDE/ATAPI DMA; Slight changed to PCI IDE bus master operation.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
#
|
||||
# Makefile for Win32 (MinGW32) environment.
|
||||
#
|
||||
# Version: @(#)Makefile.mingw 1.0.133 2018/10/22
|
||||
# Version: @(#)Makefile.mingw 1.0.134 2018/10/26
|
||||
#
|
||||
# Authors: Miran Grca, <mgrca8@gmail.com>
|
||||
# Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -483,7 +483,7 @@ SCSIOBJ := scsi.o scsi_device.o \
|
||||
scsi_cdrom.o scsi_disk.o \
|
||||
scsi_x54x.o \
|
||||
scsi_aha154x.o scsi_buslogic.o \
|
||||
scsi_ncr5380.o scsi_ncr53c810.o
|
||||
scsi_ncr5380.o scsi_ncr53c8xx.o
|
||||
|
||||
NETOBJ := network.o \
|
||||
net_pcap.o \
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Windows 86Box Settings dialog handler.
|
||||
*
|
||||
* Version: @(#)win_settings.c 1.0.72 2018/10/26
|
||||
* Version: @(#)win_settings.c 1.0.73 2018/10/30
|
||||
*
|
||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||
* David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
@@ -477,6 +477,10 @@ win_settings_save(void)
|
||||
|
||||
/* Hard disks category */
|
||||
memcpy(hdd, temp_hdd, HDD_NUM * sizeof(hard_disk_t));
|
||||
for (i = 0; i < HDD_NUM; i++) {
|
||||
hdd[i].f = NULL;
|
||||
hdd[i].priv = NULL;
|
||||
}
|
||||
|
||||
/* Floppy drives category */
|
||||
for (i = 0; i < FDD_NUM; i++) {
|
||||
@@ -487,7 +491,21 @@ win_settings_save(void)
|
||||
|
||||
/* Removable devices category */
|
||||
memcpy(cdrom, temp_cdrom, CDROM_NUM * sizeof(cdrom_t));
|
||||
for (i = 0; i < CDROM_NUM; i++) {
|
||||
cdrom[i].img_fp = NULL;
|
||||
cdrom[i].priv = NULL;
|
||||
cdrom[i].ops = NULL;
|
||||
cdrom[i].image = NULL;
|
||||
cdrom[i].insert = NULL;
|
||||
cdrom[i].close = NULL;
|
||||
cdrom[i].get_volume = NULL;
|
||||
cdrom[i].get_channel = NULL;
|
||||
}
|
||||
memcpy(zip_drives, temp_zip_drives, ZIP_NUM * sizeof(zip_drive_t));
|
||||
for (i = 0; i < ZIP_NUM; i++) {
|
||||
zip_drives[i].f = NULL;
|
||||
zip_drives[i].priv = NULL;
|
||||
}
|
||||
|
||||
/* Mark configuration as changed. */
|
||||
config_changed = 1;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Implement the application's Status Bar.
|
||||
*
|
||||
* Version: @(#)win_stbar.c 1.0.23 2018/10/26
|
||||
* Version: @(#)win_stbar.c 1.0.24 2018/10/28
|
||||
*
|
||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -780,7 +780,7 @@ ui_sb_mount_zip_img(uint8_t id, int part, uint8_t wp, wchar_t *file_name)
|
||||
zip_t *dev = (zip_t *) zip_drives[id].priv;
|
||||
|
||||
zip_disk_close(dev);
|
||||
zip_drives[id].ui_writeprot = wp;
|
||||
zip_drives[id].read_only = wp;
|
||||
zip_load(dev, file_name);
|
||||
zip_insert(dev);
|
||||
if (sb_ready) {
|
||||
@@ -906,8 +906,6 @@ StatusBarProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
if (!file_dlg_w_st(hwnd, IDS_2075, cdrom[id].image_path, 0)) {
|
||||
cdrom[id].prev_host_drive = cdrom[id].host_drive;
|
||||
wcscpy(temp_path, wopenfilestring);
|
||||
if (!cdrom[id].prev_image_path)
|
||||
cdrom[id].prev_image_path = (wchar_t *) malloc(1024 * sizeof(wchar_t));
|
||||
wcscpy(cdrom[id].prev_image_path, cdrom[id].image_path);
|
||||
if (cdrom[id].ops && cdrom[id].ops->exit)
|
||||
cdrom[id].ops->exit(&(cdrom[id]));
|
||||
|
||||
@@ -870,7 +870,7 @@ ui_init(int nCmdShow)
|
||||
plat_resize(scrnsz_x, scrnsz_y);
|
||||
|
||||
/* Fire up the machine. */
|
||||
pc_reset_hard();
|
||||
pc_reset_hard_init();
|
||||
|
||||
/* Set the PAUSE mode depending on the renderer. */
|
||||
plat_pause(0);
|
||||
|
||||
Reference in New Issue
Block a user