Commit Graph

66 Commits

Author SHA1 Message Date
OBattler
7e54cc4436 Two instances of the IDE code setting the error register did not set it in the cdrom struct if drive is CD-ROM, now they do, fixes CD-ROM booting on the Intel Advanced/ATX and possibly other things;
Fixed IDE and ATAPI 8-bit data reads and writes by rewriting the IDE and CD-ROM PIO data read and write code so that the base code is now 8-bit;
Added some compiler directives that if set, will enable togglable logging and log breakpoints;
Empty IDE channels now always report a status of 0x10 rather than 0x20, and do it on port 3F6h/376h/36Eh/3EEh too, fixes OAKCDROM.SYS infinite loop when hitting an empty IDE channel.
2017-01-17 00:01:59 +01:00
OBattler
4f7fd84229 Overhauled and unified CD-ROM emulation;
Four CD-ROM drives are now emulated;
ATAPI DMA is now emulated;
Unified CD-ROM pass through to host drive handling;
Applied all (applicable) mainline PCem commits.
2017-01-16 01:49:19 +01:00
OBattler
ad7c92b2c5 Fixed the FDC's behavior of the DOR register and the RECALIBRATE and SEEK command to more accurately replicate that of a real FDC, fixes Windows 98 and (hopefully) NetBSD. 2016-12-24 05:37:14 +01:00
OBattler
dc46480aa4 Applied all mainline PCem commits;
Added experimental NVidia Riva TNT2 emulation (patch from MoochMcGee);
ASUS P/I-P54TP4XE, ASUS P/I-P55T2P4, and ASUS P/I-P55TVP4 are back;
National Semiconductor PC87306 Super I/O chip now correctly reenables devices after a chip power cycle;
Several FDC improvements and the behavior is now a bit closer to real hardware (based on actual tests);
Added MR Intel Advanced/ATX with Microid Research BIOS with support for 4 floppy drives and up to 4 IDE controllers;
Added floppy drives 3 and 4, bringing the maximum to 4;
You can now connect hard disks to the tertiary IDE controller;
Correct undocumented behavior of the LEA instruction with register is back on 286 and later CPU's;
Pentium-rea models with Intel chipsets now have port 92 (with alternate reset and alternate A20 toggle);
Overhauled DMA channel read and write routines and fixed cascading;
Improved IMG detection of a bad BPB (or complete lack of a BPB);
Added preliminary emulation of PS/2 1.44 MB and PC-98 1.25 MB 3-mode drives (both have an inverted DENSEL pin);
Removed the incorrect Amstrad mouse patch from TheCollector1995;
Fixed ATAPI CD-ROM disk change detection;
Windows IOCTL CD-ROM handler now tries to use direct SCSI passthrough for more things, including obtaining CD-ROM capacity;
The Diamond Stealth32 (ET4000/W32p) now also works correctly on the two Award SiS 496/497 boxes;
The (S)VGA handler now converts 6-bit RAMDAC RGB channels to standard 8-bit RGB using a lookup table generated at emulator start, calculated using the correct intensity conversion method and treating intensity 64 as equivalent to 63;
Moved a few options from the Configuration dialog box to the menu;
SIO, PIIX, and PIIX3 now have the reset control register on port CF9 as they should;
Several bugfixes.
2016-12-23 03:16:24 +01:00
OBattler
acb06e5a17 Fixed a mistake in the operation of the FDC READ TRACK command. 2016-11-11 17:24:45 +01:00
OBattler
beb4e7869d The FDC READ TRACK command should now operate properly. 2016-11-11 03:16:41 +01:00
OBattler
971eeedde7 Reverted floppy disk operation to what it was in build 274, with a slight cleanup;
Sound Blaster 16 and AWE32 IRQ, base address, and DMA configuration is back;
The Intel Advanced/ATX now requires version 1.00.06 of the BIOS rather than 1.00.05.
2016-11-10 21:16:24 +01:00
OBattler
02014df53a Reworked floppy handling a bit, fixes booting from floppies;
Applied mainline PCem commit that fixes Windows 3.1.
2016-11-09 00:15:43 +01:00
OBattler
e2a2815b01 Floppy poller is now per side;
Implemented head load and unload times;
Floppy drive motors now correctly start spinning when a head is loaded and stop when a head is unloaded.
2016-11-08 03:58:36 +01:00
OBattler
6e2b91c3d1 Pretty much all timer counters are now 32-bit again;
Fixed FDI stream parameters passed to the 86F handler, FDI stream images now read correctly again;
The National Semiconductors PC87306 SuperI/O chip now supports enhanced FDC mode.
2016-11-07 06:39:20 +01:00
OBattler
67e5166cd4 The 86F loader now reads the track offsets table from the correct offset. 2016-11-06 22:32:18 +01:00
OBattler
1b1b18f1dd Removed the CRC64 stuff from the Windows makefiles. 2016-11-05 01:02:32 +01:00
OBattler
d6baa6a948 86F format version is now 2.11, which is 2.10 without the CRC64. 2016-11-05 01:00:48 +01:00
OBattler
78a44d845b Fixed a bug regarding 86F images and extra bit cells;
Brought the Intel Flash emulation in line with mainline PCem;
Removed the Intel Advanced/ML;
Reverted the ET4000/W32p code back to the code from mainline PCem, with fixes to PCI and linear frame buffer addresses according to the datasheet;
Timer counters are now 32-bit again - fixes quite a few bugs.
2016-11-04 22:32:23 +01:00
OBattler
a619af0acf 86F version increased to 2.10 - each side of each track now has its own offset in the table and each track now has its own number of extra bitcells;
Number of formatted sectors is now set to 0 every time the FORMAT TRACK command is issued;
The 86F writeback function now performs a fseek between the fread of the header and the fwrite of the track offsets table, so said table actually gets written to the file now;
PS/2 mouse now works on the Epox P55-VA;
Serial mouse now works again.
2016-11-03 22:07:34 +01:00
OBattler
6a43b2f3a1 Extra bit cells field in the 86F struct is now int32 rather than int16, and the range is increased to -32768 to 32768. 2016-11-03 01:09:53 +01:00
OBattler
59308f6658 Fixed two recompiler bugs pointed out by mooch;
Fixed corruption on 86F recompression;
Fixed CRC64 calculation on 86F writeback.
2016-11-03 00:57:01 +01:00
OBattler
e280faa2d6 86F format handler updated to 86F version 2.0 and bit by bit handling;
FDI stream images are now also handled by the 86F handler;
Both floppy drives' motors now spin separately;
Added Plantronics ColorPlus emulation per patch from PCem forum;
Applied all mainline PCem commits;
Fixed several bugs.
2016-11-02 22:39:07 +01:00
OBattler
5ffb50d13d Table of GAP3 lenghts updated to add more formats;
Applied the last mainline PCem commit;
Increased track arrays in the 86F struct, fixes ED 86F's at reduced RPM;
Fixed size display related bugs in the hard disk settings dialog;
(S)VGA status now separates Chain 4 and Chain Odd/Even statuses.
2016-10-09 22:18:03 +02:00
OBattler
e9c9adf988 Made sure Sector not found will be issued in case of data rate or RPM mismatch. 2016-10-09 00:24:25 +02:00
OBattler
1280a4b1a9 Attempt to get rid of the 86F wait state since it's probably no longer needed. 2016-10-09 00:21:53 +02:00
OBattler
f27a2732fb Commend out an excess logging line from disc_86f.c. 2016-10-05 17:05:11 +02:00
OBattler
d8c9b7ab76 Fixed 86F read state detection, should make 86F as well as any floppy image formats proxied to the 86F handler read again. 2016-10-05 15:06:26 +02:00
OBattler
e1da051f44 Added the FDC SCAN EQUAL, SCAN LOW OR EQUAL, and SCAN HIGH OR EQUAL commands. 2016-10-05 05:37:07 +02:00
OBattler
64d9cdc665 TD0 and IMD images of DMF media are now loaded with the correct sector interleave;
Fixed several bugs in TD0 and IMD loading;
Added FDC READ DELETED DATA, WRITE DELETED DATA, and VERIFY commands;
Mismatching data address marks are now handled correctly.
2016-10-05 00:47:50 +02:00
OBattler
6ac2526dbb The 86F handler now reads and writes .86F images correctly again;
Improved TeleDisk support;
Added support for ImageDisk (IMD) images;
Added MSR registers 186 and 570 for the Intel i686 CPU's;
Applied both mainline PCem commits.
2016-10-04 17:25:16 +02:00
OBattler
d3d26999f6 Added support for TD0 (Teledisk) floppy images;
Fixed support for Japanese HDI hard disk images;
Attempt to mix DOS 4.x DOSSHELL mouse issues.
2016-09-29 21:54:34 +02:00
OBattler
42ed2920e2 Fixed handling of 86F version 1.50 track offset table reads and writes;
Added handlers for formatting and reading/writting 86F mode 2 and 3 images that rely on sync bytes and address marks like a real FDC would.
2016-09-28 22:56:19 +02:00
OBattler
a3e6c4eeb3 FDC DOR handler now does a sanity check when setting drive select, fixes OS/2 Setup fataling the emulator when reading Disk 2;
FDC SEEK command now no longer incorrectly times out when seeking to the track the FDC thinks it's already at, fixes floppies in NT 3.1;
Emulator now correctly saves configuration changes to the configuration files it was loaded with rather than always the default;
Default path for NVR's can now be overridden by adding the nvr_path option to the cfg file.
2016-09-27 21:38:29 +02:00
OBattler
af57860340 Fixed a compile-breaking error. 2016-09-27 03:32:56 +02:00
OBattler
d695922a77 Removed support for all 86F versions other than 1.50 and the emulator-internal 0.99. 2016-09-27 03:16:57 +02:00
OBattler
c627cf42ec 86F version 1.50 encoded format is now handled correctly. 2016-09-27 00:45:14 +02:00
OBattler
fce6d9aa48 Fixed a very stupid compile-breaking error. 2016-09-26 21:20:39 +02:00
OBattler
11fae15897 Fixed more compile-breaking errors. 2016-09-26 21:15:32 +02:00
OBattler
73dabc25f6 Fixed several compile-breaking errors. 2016-09-26 21:03:23 +02:00
OBattler
50f65e1ec0 Added support for 86F version 1.32 images;
Forced reseek on disk change is now its own function and is always performed, fixes disk changes on some machines.
2016-09-26 20:43:09 +02:00
OBattler
bde171e81b Hard disk parameters dialog boxes now allow you to specify size in MB or select a predefined type from a combo box;
Japanese HDI hard disk images are now supproted;
FDC FORMAT command now CRC's the correct data, fixes formatting inserted IMG's;
FDC SEEK command now no longer incorrectly reports invalid status when HDSEL (head select) is 1, fixes booting from inserted floppies of any format on boards other than ASUS P/I-P55TVP4.
2016-09-25 21:39:21 +02:00
OBattler
807d132312 Fixed a few errors that broke compiling;
Fixed limit functionality in d86f_memset() and d86f_memcopy().
2016-09-23 01:15:29 +02:00
OBattler
b25b614e6e Removed debug fatal on data CRC error from the 86F handler;
Prepare sector function can ignore rather than wrap around if so told;
Format now tells prepare sector to not wrap around.
2016-09-23 01:06:05 +02:00
OBattler
4368256f41 Fixed the RPM slow down accounting for 86F version 1.21 images in d86f_get_raw_size();
Properly fixed serial port IRQ assignment with the National Semiconductors PC87306 Super I/O chip - DOS mouse drivers now work if mouse is set to serial.
2016-09-22 22:48:31 +02:00
OBattler
6318e2bb17 Rewritten parts of the 86F handler to minimize false CRC errors and misidentification of sectors;
Replaced IMG handler with one that now proxies to the 86F handler;
Applies the remaining Mainline PCem speedup commit;
Fixed the National Semiconductors PC87306 Super I/O Chip's serial port IRQ assignment;
DMF images are now loaded with the correct sector interleave, improving read/write speed;
XDF images are now loaded in a way that emulates the real order of the sectors on the track, improving read/write speed;
Added 16-bit physical memory read/write routines (mem_phys_readw, mem_phys_writew) and modified the 16-bit DMA code to use them instead of two 8-bit reads/writes.
2016-09-22 21:22:56 +02:00
OBattler
0ae428b5f5 Fixed handling of DMF IMG images;
Fixed 3.5" 2ED XDF structure;
Applied mainline PCem big recompiler speedup (up to 20% seen) commit;
Added support for floppy drive swapping with the Winbond W3877F Super I/O chip.
2016-09-17 20:22:02 +02:00
OBattler
4896dfcfb4 86F write handler now correctly only writes 1 GAP3 byte and just pulses through the rest. 2016-09-15 03:59:49 +02:00
OBattler
cdfba37ea9 Applied all mainline PCem commits;
Fixed behavior of the FDC RECALIBRATE command for FDC's on certain Super I/O chips;
Several 86F-related fixes;
Added the Intel Advanced/ML (430HX, Socket 7, currently with non-working Flash) and Intel Advanced/ATX (430FX, Socket 7, works perfectly) motherboards;
Fixed handling of DENSEL when the FDC is in National Semiconductors PC87306 mode;
Brought 440FX initialization PCI parameters in line with Bochs;
Brought PIIX3 initialization PCI parameters in line with QEMU.
2016-09-14 23:18:14 +02:00
OBattler
264859a574 86F format handler now sets per-side flags also for 86F version 1.20. 2016-09-08 00:04:04 +02:00
OBattler
2982681247 Fixed calls to d86f_poll_data() with too few parameters. 2016-09-07 21:05:19 +02:00
OBattler
abd77b0001 Added index_hole_pos to the 86F struct. 2016-09-07 21:03:46 +02:00
OBattler
c6c6fe8e2d Added support for version 1.20 of the 86F format;
Hopefully made the 86F handler for the FDC READ TRACK command work correctly.
2016-09-07 20:59:08 +02:00
OBattler
a43004aebe 86F and IMG handler now account for possible floppy drive swap when getting the drive's current RPM;
The RWC setting is now ignored when the FDC is not in enhanced mode.
2016-09-07 03:00:52 +02:00
OBattler
5a2ba3b53b Sector ID check is now only processed if the bitcell period matches. 2016-09-07 01:02:21 +02:00