Commit Graph

40 Commits

Author SHA1 Message Date
OBattler
bffc39ddbf Fixed some bugs in cdrom.c;
Fixed (hopefully) pass through in the Windows CD-ROM IOCtl code;
Fixed the legacy I/O address handling on the BT-958D, now it behaves correctly - legacy I/O address disabled by default, can be enabled in AutoSCSI (removed the setting from the device config struct);
The BT-958D PCI-configured I/O space now correctly gets 32 ports and not 4.
2017-10-23 01:36:00 +02:00
OBattler
f087130fe9 Fixed CD-ROM ATAPI DMA and made ATAPI PIO much less of a mess;
Fixed MCA write bugs for the AHA-1640 and BT-640;
Fixed a warning in the PC87306 Super I/O chip emulation;
Each renderer now only has a 32-bit blitter - video_blit_memtoscreen_8() now only converts buffer to buffer32 and then calls video_blit_memtoscreen(), 8-bit blitters are now gone.
2017-10-22 03:16:52 +02:00
OBattler
fdec9fa684 The BusLogic SCSI controllers now correctly return invalid status for invalid controller commands, fixes the Windows 95 BusLogic driver;
Applied PCem commits that fix the Sound Blaster Pro compatibility registers on the Sound Blaster 16, CMS/Game Blaster, and Trident TGUI9440.
2017-10-20 08:02:04 +02:00
OBattler
bcffcb4d22 SCSI controller command 0x93 is now an alias of command 0x92 on the BT-445 VLB. 2017-10-17 22:58:55 +02:00
waltje
7f24ba9fe9 Another cleanup run. 2017-10-17 02:01:03 -04:00
OBattler
bfb0093b38 Cleaned up the network and SCSI thread stuff. 2017-10-17 05:15:53 +02:00
OBattler
0d60ba731c Fixed several BT-640A bugs. 2017-10-17 03:55:06 +02:00
OBattler
f3684dba38 Fixed the BT-640A and BT-445S device local flags. 2017-10-17 03:15:29 +02:00
OBattler
95ef5eda3d Added the BusLogic BT-445S VLB. 2017-10-17 03:00:09 +02:00
OBattler
ca39d3a4c9 Added the BusLogic BT-640A MCA;
Fixed the MCA write function of the AHA-1640 MCA - the host ID is now read from the correct variable and the sync and parity check values are now read as well.
2017-10-17 02:50:54 +02:00
OBattler
52eca87ae1 The AHA and BusLogic SCSI controllers now again correctly set the INIT flag on controller hard reset, fixes their NT drivers. 2017-10-17 00:49:32 +02:00
OBattler
88ccca9f35 The AHA and BusLogic SCSI controllers now only check for ID:0 when deciding on selection timeout, the LUN handling is done by the SCSI Command Phase 0 handler and returns CHECK CONDITION status with INVALID LUN sense if nothing is on present on that LUN. 2017-10-16 20:58:43 +02:00
OBattler
e49c411183 Fixed AHA and BusLogic software reset - fixes unnecessary stalls (mostly with BusLogic SCSI BIOS'es);
Fixed BusLogic BT-958D reset - now it actually resets again.
2017-10-16 18:40:34 +02:00
OBattler
1cfa8e2c4d The emulator can now be compiled without the recompiler by using the DYNAREC=n parameter with make;
The BIOS address is now selectable for the BusLogic ISA SCSI controllers.
2017-10-15 02:43:13 +02:00
OBattler
7581474aab The AHA/BusLogic reset controllers' BIOS commands now return 0x80 (no device present error) for CD-ROM drives if the device is market as not supporting CD-ROM boot, fixes sending of WRITE (10) to CD-ROM drives followed by hang;
The CD-ROM and SCSI disk REQUEST SENSE commands no longer incorrectly set the phase to status;
REQUEST SENSE with non-data direction control byte is now treated as a request to send sense bytes from the command directly to the sense buffer;
SCSI and SLiRP threads now terminate themselves again when out of the while loop;
SCSI and SLiRP mutexes are now closed when the threads terminate themselves;
Fixed a bug causing the "Press F12+F8 or middle mouse button to release" string on the title bar to get corrupt.
2017-10-14 18:52:25 +02:00
OBattler
2792da5432 Refactored AHA-154x and BusLogic emulation and made them use a common core;
Fixed AHA-154x scatter/gather transfers;
Two-phased SCSI read-direction commands;
Made scsi_bus.c use a dynamically malloc'd buffer instead of a giant fixed-size buffer;
The AHA-154x/BusLogic thread now uses mutexes;
The BusLogic BT-545C is now the BT-545S;
Added the BusLogic BT-542BH;
The AHA-1542CF now again uses the v2.11 BIOS as the CD booting now works;
Applied PCem commit that adds NMI support to the recompiler;
Applied PCem commit that adds the IBM XT 286;
Applied PCem commits that have to do with sound, including the ES1371;
Fixed the NCR5380 output data register;
Moved the SLiRP mutex stuff from win.c to the appropriate network files;
Added sanity checks to everything in win_thread.c.
2017-10-14 07:03:19 +02:00
OBattler
5e1a8d5c91 The AHA-154x now resets the BIOS mailbox data on controller reset. 2017-10-11 17:59:25 +02:00
waltje
c7cb446684 Another round of cleanups - the main code no longer refers to, let alone uses, anything in the platform folder - completely separated! 2017-10-11 05:43:09 -04:00
OBattler
4484ce9597 Two-phased SCSI write-direction commands on the AHA and BusLogic SCSI controllers, fixes residual lengths for such commands;
Cleaned up the handlers for the BusLogic Execute SCSI Command command;
Made the AHA-1542CF use version 2.01 of the BIOS;
The CD-ROM GET EVENT STATUS NOTIFICATION fix is back.
2017-10-11 01:17:41 +02:00
waltje
bd89e66b7b Separated main code from UI and PLATform support code, plus other generally small fixes here and there. 2017-10-10 03:16:59 -04:00
OBattler
e88899bb3c Fixed AHA and BusLogic mailbox processing so that an outgoing mailbox is not marked as free until it's been completely processed and correctly implemented the AHA-1542C/CF Shadow RAM - the AHA-1542C/CF should be fully working now. 2017-10-10 04:15:29 +02:00
OBattler
253ad40376 All devices now have the bus marked in their name;
The Settings dialog now correctly filters devices by bus;
Split the dual VLB/PCI graphics cards into VLB and PCI versions;
Device filtering is now done using the new device_is_valid() call that compares device flags to machine flags;
Moved the NCR-based SCSI controllers to the main branch;
Moved the NE1000 to the dev branch until it's finished.
2017-10-10 00:14:15 +02:00
OBattler
02bbfb26eb Timers are now 64-bit. 2017-10-09 01:48:36 +02:00
OBattler
d72a2cc924 The RTL8029AS and BT-958D are now only available on PCI boards, and the Setting dialogs now filters PCI network and SCSI cards depending on the machine selected;
Added DEVICE_VLB and DEVICE_AGP flags.
2017-10-08 05:38:45 +02:00
OBattler
05e3dbbb48 Added three NCR5380-based SCSI controllers (in dev branch);
Two-phases SCSI disk write direction commands (needed for the NCR5380);
Renamed cdrom_ioctl.c/h to win_cdrom_ioctl.c/h and moved them to win/;
Moved some CD-ROM and floppy initialization blocks to the appropriate files.
2017-10-08 05:04:38 +02:00
waltje
ffa22a216c More general changes and cleanups, mostly in machine/ now. Also updated SCSI and Network device drivers to use new device init method. 2017-10-07 22:19:11 -04:00
waltje
2b37b7fbfb Major changes to NVR, system initialization (pc.c), and what goes on in the Windows startup (win.c.) Not fully done yet, but good enough for a first commit. 2017-10-07 00:49:53 -04:00
waltje
633adc6b02 Another big change, this time to the NVR. It has been re-done, integrated with the RTC code, and is now ready to be used by other, non-AT-compatible systems, including an ISA card for PC/XT. 2017-10-03 16:28:26 -04:00
waltje
43b055b5ee Another massive cleanup run. Ibm.h no longer includes system header files. ROM loading simplified, and moved from mem.c to rom.c. Fixes in Makefile. Corrected mamy wrong includes. Removed old junk from days long gone. First phase of new SCAT chipset driver - no longer gives errors in BIOS, but NOT DONE YET. 2017-09-25 04:33:16 -04:00
waltje
637ce66da2 First phase of cleaning up the use of pathnames internally. We now have the --vmpath (short: -P) commandline option to override the 'work dir' relative to which the program will try to find certain files and folders. 2017-09-23 21:12:37 -04:00
OBattler
40e7a0efab The WIN_DRIVE_DIAGNOSTICS command now behaves correctly (but I'm redoing the IDE emulation anyway);
The IBM PS/2 Model 486 now uses its own rom set ID;
The AHA-154x and Buslogic SCSI controllers no longer stop scanning for mailboxes when in aggressive round robin mode;
PIC interrupt processing fixes - no more IRQ-caused triple faults in Windows 98 SE.
2017-09-08 00:17:49 +02:00
waltje
b41b4a0926 Multithreading fixes to avoid hanging of the SCSI controllers (as shown on older Linux.) 2017-09-06 02:13:03 -04:00
OBattler
0ef876ef36 Various improvements to PCI and PCI boards. 2017-09-04 05:15:12 +02:00
OBattler
4c3532f31e Applied all mainline PCem commits;
Removed SCSI thread waiting (except after executing the READ SUBCHANNEL command, to alleviate the effects of READ SUBCHANNEL spam done by CD players).
2017-09-02 23:39:26 +02:00
OBattler
c81e5af8a0 More SCSI threading bugfixes - should fix the annoying crashes on hard reset. 2017-09-02 15:33:04 +02:00
OBattler
fdd45d3a7e SCSI mailbox processing is now threaded. 2017-09-01 19:36:08 +02:00
OBattler
0d84add8a3 Extensively reworked the PCI bus emulation, fixes quite a few bugs, including incorrect IRQ routing for the last two slots on the Intel Advanced/ATX. 2017-08-30 04:49:20 +02:00
OBattler
d58eb9dac0 Redid the Buslogic IRQ raising function and fixed PIC level-triggered interrupt handling, fixes NT 4 and later on the BT-958D in level-triggered mode. 2017-08-27 23:57:47 +02:00
OBattler
cb7b1051d8 BT-958D now correctly handles the BIOS using the PCI BAR, and I also fixed a stupid bug in scsi_device.c - the BT-958D BIOS will now boot from SCSI CD-ROM. 2017-08-27 06:20:38 +02:00
c1091d83d3 Lowercase all CAPS to prevent case sensitive errors in non-Windows platforms 2017-08-27 04:33:47 +01:00