Commit Graph

127 Commits

Author SHA1 Message Date
OBattler
19345158a6 Added a sanity fatal() to the hard disk image code. 2020-01-14 20:55:13 +01:00
OBattler
f04983f1dd Added some sanity check to the CD-ROM bus speed code. 2020-01-14 20:08:23 +01:00
OBattler
c3a440e19b Fixed a hard-coding of the hard disk bus speed that should not have been there. 2020-01-14 19:44:10 +01:00
OBattler
c7cfc06285 Added a NULL pointer check to zip_bus_speed(). 2020-01-14 19:18:18 +01:00
OBattler
d9461a3fce Moved PCI IDE Bus Master slot, etc. initialization from reset() to init(), should fix them being reset to invalid values on the VIA chipset. 2020-01-14 03:00:35 +01:00
OBattler
da82e6a5eb Finished the VIA machine. 2020-01-14 02:14:39 +01:00
OBattler
e4408bc84d Fixed CD-ROM timings on the NCR 53x8xx SCSI controllers, the IDE_TIME, CDROM_TIME, and ZIP_TIME values, and the delay added to the CD-ROM READ SUBCHANNEL command, fixes slowdowns on several games that use CD Audio, such as Tomb Raider II. 2019-11-19 04:35:54 +01:00
OBattler
9c8c9361a6 IDE now updates IRQ when needed. 2019-11-06 05:15:17 +01:00
OBattler
3b209c3015 Reimplemented IDE reset and DRIVE DIAGNOSTICS command in accordance with the ATA-3 specification and changed their callback timings, fixes IDE on the SPC-4200P. 2019-11-06 05:04:44 +01:00
OBattler
b6ae1098d7 Fixed IDE status readout on an absent device 1 with a present device 0, fixes hangs with AMI BIOS'es on hard disk detection in such cases. 2019-11-01 20:47:52 +01:00
OBattler
8b7ab32416 Deleted leftovers of the old implementation of the WIN_DRIVE_DIAGNOSTICS IDE command. 2019-11-01 03:45:54 +01:00
OBattler
0cd02a1ad9 AT MFM hard disk controller fixes. 2019-11-01 03:43:56 +01:00
OBattler
90053f15ff Reworked IDE reset and diagnostics, fixes the various IDE controller errors after soft reset on 286, 386, and 486 machines. 2019-11-01 02:58:01 +01:00
OBattler
db88c9cf1d Fixed the AT ESDI hard disk controller. 2019-11-01 01:31:18 +01:00
OBattler
ddbecb039a PCI PIRQ's are now always level when PCI IRQ steering is present, and MIRQ's are now edge/level according to the device that issues them, per the Intel datasheets, fixes annoyingly long wait at POST on PCI Pentium AMI BIOS'es because of secondary IDE. 2019-10-30 04:26:36 +01:00
OBattler
c6ee6f48de Removed an unused table from the XT MFM controller code;
808x prefetch queue is now always cleared on soft reset (as it should be due the changing CS:IP).
2019-10-21 03:24:36 +02:00
OBattler
9b56b9d056 ATAPI now updates the request length if the remaining block to be transferred is smaller, fixes BeOS 5.0 on ATAPI. 2019-10-20 21:16:04 +02:00
OBattler
4c5e2f1c8f Fixed a lot of XT MFM/RLL controller bugs, fixes #423, fixes #424. 2019-10-08 22:39:17 +02:00
OBattler
363b5ab254 The IBM AT MFM controller no longer incorrectly issues a wrong cylinder error when it is not supposed to, fixes #414. 2019-09-29 09:23:02 +02:00
OBattler
e9d785283b Removed the SCSI_CHINON stuff that was not supposed to be committed in the first place. 2019-09-26 10:02:43 +02:00
OBattler
7108043872 Implemented hard disk activity indication again. 2019-09-21 19:15:38 +02:00
OBattler
552a87ea3d Added the IBM 5161 ISA expansion for PC and XT;
Cleaned up the parallel port emulation, added IRQ support, and made enabling/disabling per port;
Added the Award 430NX and the Intel Classic/PCI (Alfredo, 420TX);
Finished the 586MC1;
Added 8087 emulation;
Moved Cyrix 6x86'es to the Dev branch;
Sanitized/cleaned up memregs.c/h and intel.c/h;
Split the chipsets from machines and sanitized Port 92 emulation;
Added support for the 15bpp mode to the Compaq ATI 28800;
Moved the MR 386DX and 486 machines to the Dev branch;
Ported the new dynamic recompiler from PCem, but it remains in Dev branch until after v2.00;
Ported the new timer code from PCem;
Cleaned up the CPU table of unused stuff and better optimized its structure;
Ported the Open-XT and Open-AT from VARCem, the Open-AT is in the Dev branch;
Ported the XT MFM controller rewrite and adding of more controllers (incl. two RLL ones), from VARCem;
Added the AHA-1540A and the BusTek BT-542B;
Moved the Sumo SCSI-AT to the Dev branch;
Minor IDE, FDC, and floppy drive code clean-ups;
Made NCR 5380/53C400-based cards' BIOS address configurable;
Got rid of the legacy romset variable;
Unified (video) buffer and buffer32 into one and make the unified buffer 32-bit;
Added the Amstead PPC512 per PCem patch by John Elliott;
Switched memory mapping granularity from 16k to 4k (less than 1k not possible due to internal pages);
Rewrote the CL-GD 54xx blitter, fixes Win-OS/2 on the 54x6 among other thing;
Added the Image Manager 1024 and Professional Graphics Controller per PCem patch by John Elliott and work done on VARCem;
Added Headland HT-216, GC-205 and Video 7 VGA 1024i emulation based on PCem commit;
Implemented the fuction keys for the Toshiba T1000/T1200/T3100 enhancement;
Amstrad MegaPC does now works correctly with non-internal graphics card;
The SLiRP code no longer casts a packed struct type to a non-packed struct type;
The Xi8088 and PB410a no longer hang on 86Box when PS/2 mouse is not present;
The S3 Virge on BeOS is no longer broken (was broken by build #1591);
OS/2 2.0 build 6.167 now sees key presses again;
Xi8088 now work on CGA again;
86F images converted from either the old or new variants of the HxC MFM format now work correctly;
Hardware interrupts with a vector of 0xFF are now handled correctly;
OPTi 495SX boards no longer incorrectly have 64 MB maximum RAM when 32 MB is correct;
Fixed VNC keyboard input bugs;
Fixed AT RTC periodic interrupt - Chicago 58s / 73f / 73g  / 81 MIDI play no longer hangs with the build's own VTD driver;
Fixed mouse polling with internal mice - Amstrad and Olivetti mice now work correctly;
Triones ATAPI DMA driver now correctly reads a file at the end of a CD image with a sectors number not divisible by 4;
Compaq Portable now works with all graphics cards;
Fixed various MDSI Genius bugs;
Added segment limit checks and improved page fault checks for several CPU instructions - Memphis 15xx WINSETUP and Chicago 58s WINDISK.CPL no longer issue a GPF, and some S3 drivers that used to have glitches, now work correctly;
Further improved the 808x emulation, also fixes the noticably choppy sound when using 808x CPU's, also fixes #355;
OS/2 installer no logner locks up on splash screen on PS/2 Model 70 and 80, fixes #400.
Fixed several Amstead bugs, GEM no longer crashes on the Amstrad 1640, fixes #391.
Ported John Elliott's Amstrad fixes and improvement from PCem, and fixed the default language so it's correctly Engliish, fixes #278, fixes #389.
Fixed a minor IDE timing bug, fixes #388.
Fixed Toshiba T1000 RAM issues, fixes #379.
Fixed EGA/(S)VGA overscan border handling, fixes #378;
Got rid of the now long useless IDE channel 2 auto-removal, fixes #370;
Fixed the BIOS files used by the AMSTRAD PC1512, fixes #366;
Ported the Unicode CD image file name fix from VARCem, fixes #365;
Fixed high density floppy disks on the Xi8088, fixes #359;
Fixed some bugs in the Hercules emulation, fixes #346, fixes #358;
Fixed the SCSI hard disk mode sense pages, fixes #356;
Removed the AMI Unknown 386SX because of impossibility to identify the chipset, closes #349;
Fixed bugs in the serial mouse emulation, fixes #344;
Compiled 86Box binaries now include all the required .DLL's, fixes #341;
Made some combo boxes in the Settings dialog slightly wider, fixes #276.
2019-09-20 14:02:30 +02:00
OBattler
c1f18d9abc More 808x fixed - fixed (kind of) the 8086 lock ups and the DRAM refresh wait states, also further fixed (and cleaned up) prefetch queue operation, applied a few warning fixes, and fixed the behavior of PUSH SP - anything that uses it to tell 808x apart from 286 is now fixed;
Re-added the higher-clocked 8088's;
Fixed PIT timings for 808x CPU's that don't run off an 14.3 MHz crystal;
Fixed CGA cursor half blink rate setting - fixes insane cursor blinking speed in several cases;
DMA now issues DMA refresh DRAM states on every channel;
Gave the 1982 years to the previously emulated PC and XT's names, and added the 1981 IBM PC and 1986 IBM XT;
Redid the PPI DIP switch redout for the PC/XT keyboard controller;
Fixed a segmentation fault in hdc_ide.c that tended to occur on hard reset after switching machines;
Implemented the port 3B8 color disable on the Hercules, Hercules Plus, and Hercules InColor cards;
Fixed the joystick configuration dialog strings;
Fixed a problem that would have prevented win_sdl.c from compiling with logging enabled.
2019-02-11 01:33:15 +01:00
OBattler
46d0ed2baa Rewritten 808x CPU emulation core based on reenigne's XTCE, VisiOn, SnatchIt, and 8088 MPH now work correctly;
Fixed PC speaker sound volume in PIT mode 0;
A few CPU emulation clean-ups;
Hard disk controller changing redone in a less messy way;
Re-added the long-missing key send delay handling to the XT keyboard handler;
Fixed a bug that was causing SLiRP not to work when compiled with MingW/GCC 7.3.0-2 or newer;
Some serial mouse and port fixes;
A lot of changes to printer emulation, mostly based on DOSBox-X;
Printer PNG writer now uses statically linked libpng;
Added support for the HxC MFM floppy image format and upped 86F format version to 2.12;
Ported various things from PCem and some from VARCem;
Added the S3 86c801/805 emulation (patch from TheCollector1995);
Fixed and renamed the EGA monitor options;
Better synchronized the 808x to the PIT and the CGA;
Fixed the CGA wait state calculation;
Cleaned up some things in mem.c;
Fixed some things in the floppy emulation to make VisiOn get the correct errors from the copy protection disk;
Fixed several renderer-related bugs, including the SDL2 renderer's failure to take screenshots;
The Jenkins builds are now compiled with MingW/GCC 7.4.0-1 and include all the required DLL's.
2019-02-06 03:34:39 +01:00
OBattler
e73ccc2e4a Changes to handling of seconary IDE controller when it is optional. 2018-11-09 09:50:35 +01:00
OBattler
d386240fcb Removed the file pointer from the hdd_t struct;
Partially split off the Logitech Serial Mouse emulation from Microsoft Serial Mouse;
Slightly reworked serial port emulation (the two UART's are now device_t's, non-FIFO mode implemented and is now default, FIFO mode reimplemented from scratch so it's now actually correct);
Added the emulation of the SiS 85c497 chip to the SiS 85c496/497 chipset;
Bugfixes to the emulated Super I/O chips and made them all device_t's now.
2018-11-08 19:21:55 +01:00
OBattler
381456ece5 Fixed MODE SELECT commands with either only block descriptor header or unexpected end of buffer, fixes Adaptec SCSI CD-ROM drivers for DOS. 2018-11-02 20:03:55 +01:00
OBattler
d5f8fe3e6b More IDE/ATAPI DMA changes. 2018-10-31 15:26:23 +01:00
OBattler
f30e048ad7 Moved the phase callback handler to hdc_ide.c, where it belongs, rather than in each SCSI(-like) device's code, and made it no longer used when a device's bus type is set to SCSI. 2018-10-31 12:23:49 +01:00
OBattler
5e5e1ed70e Slight fixes to Intel Flash, CD-ROM, and ZIP. 2018-10-30 15:17:48 +01:00
OBattler
3a8bd15b9d 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.
2018-10-30 13:32:25 +01:00
OBattler
e83167df1a Fixed mode sense loading mess (that was messing up the heap and destabilizing the emulator) in the ZIP, CD-ROM, and SCSI disk code. 2018-10-27 22:19:39 +02:00
OBattler
19e9a355fc Some ZIP fixes. 2018-10-27 03:43:25 +02:00
OBattler
af994f4198 A bug fix and the removal of the cdbufferb and zipbufferb macros. 2018-10-26 06:02:16 +02:00
OBattler
ef0b67d48c Clearly marked two deliberate fallthroughs in disk/zip.c and scsi/scsi_cdrom.c. 2018-10-26 05:07:03 +02:00
OBattler
473b71436d The scsi_cdrom[], zip[], and scsi_disk[] arrays are now gone. 2018-10-26 04:47:21 +02:00
OBattler
7ee1cf54bc Slight refactoring of some IDE part (removed some excess else's). 2018-10-25 23:39:35 +02:00
OBattler
9e610a403a Removed some excessive breaks. 2018-10-25 23:23:13 +02:00
OBattler
60cafad2f5 Slight IDE bug fixes. 2018-10-25 21:54:57 +02:00
OBattler
3870edf150 Fixed device chain loading (again) and ZIP and CD-ROM resetting. 2018-10-25 07:43:32 +02:00
OBattler
8802c5d3df Some CD-ROM image and IDE fixes. 2018-10-20 04:59:10 +02:00
OBattler
15db405697 Fixed Iomega ZIP drive initialization mess;
Fixed (hopefully) network status bar activity indication.
2018-10-19 19:10:12 +02:00
OBattler
cfc626f111 Change to logging - when logging is disabled, the logging functions are now #define'd to nothing, so the compiler ignores the lines that call them completely, seems to slightly speed up the emulator; note that the logging in vid_table.c has not been changed yet, because this file on my local tree currently contains other WIP changes. 2018-10-19 00:39:32 +02:00
OBattler
c663147d11 Imported CD-ROM-related changes from VARCem;
Removed cdrom_null.c/h;
Some changes to logging (will be spread to everything else soon).
2018-10-17 05:29:48 +02:00
OBattler
6155802b59 Split generic CD-ROM from SCSI-style CD-ROM;
Redid the way SCSI and ATAPI devices are handled;
Slight timings change in the NCR 5380;
Devices are now closed by device_close_all() in the reverse order of the one in which they were started;
Slight changes to some code in win/;
Added the WM_HARDRESET and WM_SHUTDOWN window messages for configuration manager purposes.
2018-10-10 22:33:24 +02:00
OBattler
6c7ff6b30a The REQUEST SENSE command now correctly returns as non-data if cdb[4] = 0. 2018-10-09 16:30:19 +02:00
OBattler
17a96ac660 More cleanups and fixes in the NCR 5380 code;
Several bugfixes in disk/hdd_image.c - image creation on emulator start (if image not present) no longer creates too small images and creaters VHD footers with the correct CHS values.
2018-10-08 21:49:47 +02:00
OBattler
fd6cacc312 Fixed CD-ROM, ZIP, and SCSI disk changeable page arrays to correctly contain only 0's and 0xFF's in addition to page number and page length, and added descriptive #define's for the pages that did not yet have them. 2018-10-07 00:35:37 +02:00
OBattler
4949e1718c And two more yet again. 2018-10-04 03:41:54 +02:00
OBattler
ed92602dad Fixes for the (S)VGA common DAC and some card-specific DAT's (ATi 68860, BT48x family, and the Cirrus Logic DAC), fixes Star Control II among other things. 2018-10-04 01:19:43 +02:00