Commit Graph

36 Commits

Author SHA1 Message Date
OBattler
2f2785c1c9 Fixed ATAPI PIO multi-phased transfers - fixes the catalog read error in Windows 2000;
Fixed the last remaining ATAPI DMA bugs;
Fixed IDE hard disk DMA;
Fixed PIIX bus master DMA read and write;
The Settings dialog now accepts more than 16 heads for IDE hard disks;
Added the IDE READ DMA ALT and WRITE DMA ALT commands;
Reenabled current CHS translation reporting, with bugfixes, hopefully the bugfixes will prevent certain larger hard disks from being detected as 250 MB.
2017-10-24 04:15:05 +02:00
waltje
7f24ba9fe9 Another cleanup run. 2017-10-17 02:01:03 -04:00
OBattler
ed865610e9 A dynamic recompiler block's validity is now separate from its starting code address, should fix most of the known recompiler fatals;
The CD-ROM buffer is now dynamically malloc'd;
Did a lot of bugfixing in cdrom.c and scsi_disk.c, Debian 8's modprobe aha1542 and the NT 3.10.404.1 Trantor 310b driver now work;
Fixed the IDE IRQ/MIRQ mess and ATAPI DMA transfer length;
Fixed the operation of mmutranslate() a bit;
Commented out several instances of excess logging;
Applied the mainline PCem commit prefetch commit;
Readded missing Sound Blaster DSP MIDI behavior and gave it the correct MPU struct;
All non-IBM 486 machines now correctly have the VLB flag set.
2017-10-16 06:19:18 +02:00
waltje
63c532d940 Even more cleanups. Also renamed hdd/ to disk/ as that makes more sense. Machines with an Internal HDC (usually IDE) can now also select an alternative one instead. 2017-10-02 02:21:38 -04:00
waltje
2dbf5409c0 Changes to allow for auto- or selectable Internal HD controller, and some other minor changes. 2017-10-01 16:29:27 -04:00
waltje
9d9f5fdd58 Separation of HDD (disks) and HDC (disk controllers) with major cleanup. IDE remains same until Kotori finishes that part. 2017-09-30 16:58:41 -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
OBattler
17d9c5c463 Fixed PS/2 mouse to PCI (PIIX) wiring, fixes recently introduced PS/2 mouse hangs;
The AT keyboard "write to mouse" command now returns 0xFF (error) when no PS/2 mouse is attached - fixes hangs on AOpen AP53, ASUS P/I-P55T2S, and Tyan Titan Pro/ATX when not using PS/2 mouse;
Fixed the emulation of the SMC FDC37C669 Super I/O chip - serial ports now work correctly on the AOpen AP53 and the ASUS P/I-P55T2S.
2017-09-07 01:52:36 +02:00
OBattler
0ef876ef36 Various improvements to PCI and PCI boards. 2017-09-04 05:15:12 +02:00
OBattler
3e10570bbd Machine code restructure, models are now machines instead and the init functions are in the machine files rather than in machine.c (former model.c), also moved the machine stuff into the machine/ subdirectory. 2017-09-02 20:39:57 +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
a5b7512882 Corrected PCI slots for Intel Advanced/ATX and Intel Advanced/ZP. 2017-08-28 23:47:09 +02:00
c1091d83d3 Lowercase all CAPS to prevent case sensitive errors in non-Windows platforms 2017-08-27 04:33:47 +01:00
OBattler
ee4af98e1f Moved the SCSI BIOS command handler to its own file (scsi_bios_command.c/h);
Removed all the SCSI BIOS ID/LUN swapping nonsense as it's no longer needed;
The makefile now knows the .h dependencies for everything in SOUND/;
Moved hdd*.* and scsi*.* to the HDD and SCSI subdirectories, respectively;
Fixed some leftover path name miscapitalizations in the makefile;
BT-542B is now BT-545C and BT-946C is now BT-958D again;
Implemented the last missing commands for the BT-958D;
MUNT and network are now optional at compile time but enabled by default;
When compiling the development branch, you now have to choose what of (Pro Audio Spectrum 16, Cirrus Logic, NVidia Riva) you want your binary to include.
2017-08-27 00:58:44 +02:00
waltje
17b64b064e MassCommit(tm) to fix the MCA ESDI driver, clean up all RLL-ESDI stuff, rename HDD-related files, and another version of the AHA-1640, which now works. Not done yet, but getting close! 2017-08-25 02:34:25 -04:00
waltje
2ffedb680b MonsterCommit(tm) with typo-fixes, void-ness fixes, correct CaPs for directories, etc. No real code changes. 2017-08-24 01:17:18 -04:00
OBattler
ec732312c3 Implemented PCI interrupt controller ports 4D0 and 4D1;
Applied more mainline PCem commits;
Repplied the CPU optimization commit alongside the fix commit.
2017-06-03 00:45:12 +02:00
OBattler
ab847fdecd Applied all the mainline PCem PCI commits;
Applied patch from James-F that makes the Sound Blaster filters more accurate.
2017-06-02 01:38:25 +02:00
OBattler
84595f1c78 Added my name to all the emulator's files that I touched;
Unfinished JEGA emulation based on akm's DOSVAX (AX-emulating fork of DOSBox), not yet hooked into the reset of the emulator.
2017-05-30 03:38:38 +02:00
OBattler
d3b39f61bd PIIX3 now sets the correct reset handler. 2017-05-09 21:37:47 +02:00
OBattler
f6ef1f833c Vastly overhauled the UI, there's now a completely new Settings dialog as well as a status bar with disk activity icons and removable drive menus;
Thoroughly clean up the code to vastly reduce the number of compiler warnings and found and fixed several bugs in the process;
Applied all mainline PCem commits;
Added SCSI hard disk emulation;
Commented out all unfinished machines and graphics cards;
Added the AOpen AP53 and ASUS P/I-P55T2 machines as well as another Tyan 440FX machine, all three with AMI WinBIOS (patch from TheCollector1995);
Added the Diamond Stealth 3D 3000 (S3 ViRGE/VX) graphics card (patch from TheCollector1995);
Added the PS/2 XT IDE (AccuLogic) HDD Controller (patch from TheCollector1995);
Added Microsoft/Logitech Bus Mouse emulation (patch from waltje);
Overhauled the makefiles (patch from waltje);
Added the Adaptec AHA-1542CF SCSI controller (patch from waltje);
Added preliminary (but still unfinished) Adaptec AHA-154x SCSI controller BIOS support (patch from waltje);
Added an ISABugger debugging device (patch from waltje);
Added sanity checks to the Direct3D code.
2017-05-05 01:49:42 +02:00
OBattler
77013e34c9 Manually applied mooch's RIVA 128 commit;
Fixed the RIVA 128 in a way that does not affect other cards' operation.
2017-02-15 22:41:39 +01:00
OBattler
9696840525 Commented out an excess log message in piix.c. 2017-02-13 22:36:43 +01:00
OBattler
f5ebf5b7a8 ATAPI DMA is now scatter gather-aware. 2017-02-09 01:41:32 +01:00
OBattler
adf9c28e61 ATAPI DMA now tells the bus master the correct length to transfer;
ATAPI DMA now transfers all blocks at once.
2017-02-08 18:42:20 +01:00
OBattler
55b6f1b802 Intel SIO/PIIX/PIIX3 Turbo Reset Control is now properly implemented;
Floppy disk controller is now COMPLETELY reset on hard reset;
NukedOPL is now optional (but enabled by default) so people on older hardware can gain a few % of performance by going back to DOSBox OPL;
*.CPP files now get all the correct optimization flags applied;
Added NEC PowerMate V emulation - you can get into CMOS SETUP but it hangs before booting, and PCI graphics card don't work (yet).
2017-01-31 20:39:36 +01:00
OBattler
10503674eb All MODE SENSE and MODE SELECT commands now support the block descriptor when a CD-ROM drive is set to SCSI;
Fixed MODE SELECT behavior with ATAPI;
Removed excess PIIX logging;
Fixed and improved the CD Audio buffer code in sound.c.
2017-01-27 23:03:20 +01:00
OBattler
d4afd7c2c3 Added some things that were missing from the DMA controller;
Fixed a link-breaking bug in cdrom.c;
The AHA-154x now supports commands 0x28 (GET EXTENDED BIOS INFO) and 0x29 (UNLOCK MAILBOX) and no longer reports a firmware revision with scatter/gather bug;
The BusLogic now supports command 0x20 (RESET);
Fixed the GPIO register mapping on the National Semiconductors PC87306 Super I/O chip.
2017-01-26 17:20:55 +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
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
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
b956c5f6f5 Added missing variable declarations in pc87306.c;
Both PIIX IDE bus masters now initialize with IRQ set to 14 rather than not set.
2016-09-22 21:33:14 +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
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
Jackson Bryn
291ac890e2 Add copyrights for all files to comply with the GPL v2. 2016-08-14 22:27:13 -04:00
OBattler
fd2a5bc9f5 Initial submission of the PCem-Experimental source code. 2016-06-26 00:34:39 +02:00