Commit Graph

49 Commits

Author SHA1 Message Date
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
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
bc5ac4a699 Reverted Direct3D to 2048x2048 buffer and suppressed the EGA/(S)VGA overscan, if enabled, in 2048x modes, fixes Direct3D freezes;
Improved the BusLogic incoming mailbox code;
The BusLogic callback is now three-phases and outgoing mailbox interrupts are emulated correctly;
Fixed the CD-ROM command READ DISC INFORMATION (0x51), fixes NetBSD crashing 86Box with segmentation fault when using the AHA-154x;
Added the CD-ROM command PAUSE/RESUME ALT (0xC2).
2017-01-24 01:03:23 +01:00
OBattler
71503f69a4 Fixed a compile-breaking error. 2017-01-18 00:45:30 +01:00
OBattler
66757dfaad Added IBM PS/1 Model 2121 with ISA expansion, allows selecting any graphics card. 2017-01-18 00:43:43 +01:00
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
8818686ef4 Added a declaration of scsi_model to ibm.h. 2017-01-03 02:39:57 +01:00
OBattler
17e2cd6776 Added a quaternary IDE controller on ports 1E8-1EF/3EE;
The tertiary and quaternary IDE controllers are now fully configurable;
The IRQ of the RTL8029AS network card is now configurable;
CopyQM floppy images are now supported.
2016-12-28 23:34:00 +01:00
TC1995
abf009e541 Renamed Adaptec 154x adapter source to Buslogic as now it emulates the Buslogic BT-540B SCSI adapter.
Moved CD-ROM read data buffer declaration and definitions to SCSI source files and headers, but still applying to IDE when needed.
SCSI Read commands now return the correct sectors on callback.
DMA bug fixes.
2016-12-23 17:11:59 +01:00
OBattler
fe669d31ac Added TriGem Unknown Adapter. 2016-12-23 04:14: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
Melissa Goad
dfa7e61234 Fix RIVA 128 a bit more. Add Hercules Plus 2016-11-16 15:37:07 -06:00
OBattler
7cb901e5e6 Sound Blaster 16 and AWE32 MPU-401 base address and 16-bit DMA channel are now configurable;
AHA-154x SCSI controller base address, IRQ, and 16-bit DMA channel are now configurable.
2016-11-13 18:21:15 +01:00
OBattler
65b93b4347 Added the declaration for fatal to ibm.h. 2016-11-13 16:47:24 +01:00
OBattler
e46631e47b Reworked the menus so they're more logically grouped;
Removed the lone Misc menu and mvoed Status to Settings;
Added a SCSI CD-ROM option to the menu;
Removed the atapi_cdrom_enabled option and replaced any usage of it with !scsi_cdrom_enabled;
Disabling/enabling the CD-ROM drive is now separate from the drive's contents;
The tertiary IDE controller now never gets enabled is the CD-ROM drive is either disabled or SCSI.
2016-11-13 05:39:21 +01:00
TC1995
0f035b42ea Added preliminary Adaptec 154x emulation, needs fixing in the Read 10 command.
Made ATAPI derived from SCSI.
Added proper S/G emulation for SCSI DMA.
Added SCSI CD-ROM emulation, preserving all the former ATAPI commands as well.
2016-11-12 15:06:38 +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
c376302ad3 Reverted the PIT structure to Mainline, fixes NT 4.0;
THe RTL8029/AS PCI IRQ field is now hardwired, makes it work on chipsets using the PIIX3 chip (mostly boards based on 430VX and 440FX);
Fixed S3 Trio64 rendering in NT 4.0.
2016-11-05 07:17:08 +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
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
Melissa Goad
a07a30645c Add preliminary RIVA 128 emulation 2016-10-06 16:05:02 -05:00
Melissa Goad
f7b9249b54 RIVA TNT support 2016-10-06 13:42:13 -05: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
7461fbfdfd Fixed the definition of nvr_path in ibm.h. 2016-09-28 23:05:01 +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
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
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
OBattler
1ddad56c8c Added support for the D86F floppy image format I invented that allows things not possible with IMG images;
Applied all mainline PCem commits;
Settings dialog now says 86Box instead of PCem;
Manifest renamed from PCem to 86Box.
2016-08-31 22:49:56 +02:00
OBattler
d860ea79ed Timer enable switches are 64-bit;
Floppy reads/writes now correctly finish at gaps;
Sector-based reads/writes no longer cause a delay when signaling finish.
2016-08-21 03:42:24 +02:00
OBattler
a924f37f43 Rewrote the disc sector poller again for simplified code and more accuracy;
Floppy formats are now accurately timed and also more accurately implemented;
Applied all mainline PCem commits.
2016-08-20 03:40:12 +02:00
OBattler
3b00a90f28 PIT latches are now 64-bit;
Pro Audio Spectrum 16 PIT latches are now 64-bit;
Pro Audio Spectrum now works better, patch from TheCollector1995;
AD1848 timer counter and latch are now 64-bit.
2016-08-15 20:17:30 +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
9a4cd321d6 Moved emulator_version #define to 86box.h and #included it in all files that use that #define. 2016-08-15 04:01:36 +02:00
OBattler
929d34d4b4 Removed all references to PCem;
Added Japanese FDI support;
Added more extensions to floppy image selection.
2016-08-15 03:26:37 +02:00
OBattler
1433d9a073 Applied both mainline PCem commits;
Fixed the RTL8029AS again (one of my "fixes" broke it);
RTL8029AS PCI register 4 is now written to;
Added incomplete (and currently commented out) emulation of the AWE64 PCI;
Replaced sector-based floppy emulation with more accurate code.
2016-08-15 01:34:46 +02:00
OBattler
723b685327 All GPF's are now enabled again; LEA reg,reg now correctly sets the register to the last computed effective address (undocumented behavior). 2016-08-10 04:43:13 +02:00
OBattler
773183d168 Added Phoenix S3 Vision864 emulation. 2016-08-03 21:36:29 +02:00
OBattler
e3f8e57269 The Stealth64 now correctly uses the Vision864 chip. 2016-08-03 20:41:50 +02:00
OBattler
3820ff068c Added Diamond Stealth 64 DRAM (S3 Trio64) emulation. 2016-08-03 18:50:25 +02:00
OBattler
93194f23ad ATI Mach64 improvements and ATI 28800-6 (VGA Wonder XL24) emulation. 2016-08-03 00:37:21 +02:00
OBattler
f41bbb6ba8 Added emulation of Cardex ET4000/W32p with ICS/SDAC RAMDAC;
Fixed ET4000/W32p clock (for non-Diamond variants) and banking extension;
Brought the code on par with the mainline;
Fixed names of the two Cardex ET4000/W32p variants per the BIOS'es;
Brought ET4000AX unknown RAMDAC back in line with the mainline (reverted bogus "fix" by Win9xFan);
Made 15bpp and 16bpp colors more accurate.
2016-07-23 01:48:47 +02:00
OBattler
b78b2fecaa Timer counters now 64-bit;
Cleaned up floppy code a lot and reverted to single poller;
Fixed segment present bit and limit checking at read/write within segment;
The ASUS boards now have memregs too;
RTC code improved based on suggestion by Sarah Walker;
Fixed SVGA odd/even emulation and added chain odd/even support;
Removed non-existent CPU's.
2016-07-19 02:44:32 +02:00
OBattler
d407b264e5 Changed a comment in ibm.h (no other way to make a dummy commit). 2016-07-11 01:35:36 +02:00
OBattler
7b8c9a1522 Removed the last obsolete new CGA reference from ibm.h. 2016-07-09 17:18:52 +02:00
OBattler
5f7c0bdd52 Removed obsolete New CGA stuff from ibm.h and video.c. Fixes errors when compiling. 2016-07-09 17:15:19 +02:00
OBattler
addef33fd2 Proper RapidCAD CPU emulation.
Removed two files that should have not been there.
2016-06-29 06:39:35 +02:00
OBattler
fd2a5bc9f5 Initial submission of the PCem-Experimental source code. 2016-06-26 00:34:39 +02:00