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:
OBattler
2018-10-30 13:32:25 +01:00
parent 6410e0ac75
commit 3a8bd15b9d
31 changed files with 3116 additions and 3370 deletions

View File

@@ -8,7 +8,7 @@
*
* Main emulator module where most things are controlled.
*
* Version: @(#)pc.c 1.0.87 2018/10/26
* Version: @(#)pc.c 1.0.88 2018/10/28
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
@@ -651,10 +651,8 @@ again2:
keyboard_init();
joystick_init();
video_init();
device_init();
timer_reset();
video_init();
fdd_init();
@@ -662,9 +660,6 @@ again2:
hdc_init(hdc_name);
pc_full_speed();
shadowbios = 0;
return(1);
}
@@ -723,6 +718,8 @@ pc_reset_hard_close(void)
device_close_all();
scsi_device_close_all();
midi_close();
cdrom_close();
@@ -834,6 +831,8 @@ pc_reset_hard_init(void)
pic_reset();
cpu_cache_int_enabled = cpu_cache_ext_enabled = 0;
pc_full_speed();
if (machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].cpu_type >= CPU_286)
setpitclock(machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed);
else
@@ -908,6 +907,8 @@ pc_close(thread_t *ptr)
device_close_all();
scsi_device_close_all();
midi_close();
network_close();