Commit Graph

53 Commits

Author SHA1 Message Date
OBattler
16c722b32f Realistic CD-ROM timings on ATAPI PIO, ATAPI DMA, SCSI NCR 53c810, and SCSI Adaptec/Buslogic;
Added ability to select emulated CD-ROM drive speed;
The Adaptec and BusLogic SCSI controllers are no longer threaded;
Two fixes in video/vid_s3.c.
2018-03-07 20:06:08 +01:00
OBattler
e441601cd9 Some minor fixes in the AHA/BusLogic code;
Added the Cirrus Logic CL-GD 5428 ISA, 5430 VLB, and 5430 PCI;
The makefile now makes the compiler use the -flto flag only if OPTIM=y.
2018-02-19 12:32:54 +01:00
OBattler
e0a9de85c9 Changed several char arrays all around the code to const char pointers, debloats the executable file from 8.7 MB to 5.6 MB;
Replaced the Cirrus Logic code with the latest code from TheCollector1995 - the CL-GD 5428 is now fully working, as is the CL-GD 5429;
Minor clean-up in the AHA/BusLogic BIOS commands code;
Slightly rewritten mem_readb_phys_dma() and mem_writeb_phys_dma().
2018-02-18 10:32:51 +01:00
waltje
c7946fbce7 Fix logging issues. 2017-12-10 02:54:20 -05:00
OBattler
772955bf59 The PS/2 Model 80 memory expansion board initialization now correctly sets up the RAM mappings;
The per-device log functions now all call pclog().
2017-12-05 23:35:35 +01:00
OBattler
c15fb69584 Fixed the AHA-1640 and BT-640A MCA SCSI controllers, they both work correctly now;
IBM PS/2 Model 80-486 now correctly loads and saves a second NVR file.
2017-12-05 22:39:21 +01:00
waltje
ce1bab2967 Cleanups to make all logging functions use stdlog instead of stdout.
The new --logfile (-L) commandline option sets a file to log to.
The new --debug (-D) forces output to stderr if no logfile is given.
2017-11-24 02:24:06 -05:00
waltje
7c67e867c8 Major commit, cleaning a lot of old stuff.
IBM.H is gone, video stuff re-organized. Keyboard stuff reorganized.
Machines that have their own video, mouse and/or keyboard now have all this in their machine file.
Fixed and other cleanups here and there.
2017-11-05 02:00:50 -05:00
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
cd9253c9b8 Start SCSI Command (Adaptec and BusLogic) and Start BIOS SCSI Command (Adaptec) controller commands now set the event the thread is waiting for to signal that it's time to stop waiting. 2017-10-20 23:15:22 +02:00
waltje
555a14746c Merge branch 'master' of https://github.com/OBattler/86Box 2017-10-19 21:09:20 -04:00
waltje
0af26c1c3b More cleanups, also updated Makefile.local with all "user-settable" parts. 2017-10-19 21:08:41 -04:00
OBattler
b755b27304 Reworked network and SCSI thread initialization and termination;
Hard disk controller name and other related strings are now char * instead of fixed-size arrays.
2017-10-19 23:55:51 +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
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
6674865c56 The AHA and BusLogic controller reset now resets less things, fixes NT 3.1 Setup hanging after detecting the AHA-1542CF with BIOS enabled. 2017-10-17 01:35:41 +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
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
e8d133fe57 Fixed AHA-154x EEPROM reads and writes. 2017-10-14 19:14:17 +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
waltje
e9bd160ad1 More general cleanups and bugfixes. 2017-10-13 02:45:04 -04:00
OBattler
1b3cb1b501 Fixed a compile-breaking mistake in scsi_aha154x.c. 2017-10-11 18:17:46 +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
9e487d96c0 The AHA-154x SCSI controllers now process both normal and BIOS mailboxes at the same time. 2017-10-11 03:44:41 +02:00
OBattler
af189a55da Implemented the WRITE CHANNEL 2 BUFFER and READ CHANNEL 2 BUFFER commands for the AHA-154x. 2017-10-11 01:39:12 +02: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
waltje
efc129eb22 Fixed come crashes (AHA1542, general with SB tips) etc. 2017-10-09 03:19:10 -04:00
OBattler
329fb8ee47 Adaptec AHA-1542C/CF BIOS mailboxes now works correctly, and disabled the shadow RAM handling for both controllers, both controllers' BIOS'es now work correctly. 2017-10-09 06:16:37 +02:00
OBattler
02bbfb26eb Timers are now 64-bit. 2017-10-09 01:48:36 +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
waltje
e4cdd40222 Buslogic-imported typos. 2017-09-06 01:01:47 -04: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
734d7a5a5a Various SCSI and CD-ROM bugfixes. 2017-09-02 05:41:19 +02:00
OBattler
fdd45d3a7e SCSI mailbox processing is now threaded. 2017-09-01 19:36:08 +02:00