A few CD-ROM IOCTL commands are cached now;
CD Audio over IOCTL works again;
The status bar icons are now only loaded once at emulator start, and subsequently just used on demand.
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.
Added Intel Advanced/ZP;
Added Commodore PC 60 III;
Fixed Force 4:3 option when overscan is not enabled;
Added option to scale (0.5x, 1x, 1.5x, 2x) the video output;
Added ability to disable ATAPI DMA for CD-ROM drives;
Applied all mainline PCem commits;
Store network card in config file as name rather than number;
Fixed NVR storing for IBM PS/2 Models 2121 and 2121+ISA.
SCSI controller is now reset on x86 soft reset, fixes DOS driver hangs after soft reset;
SCSI controller reset control is now implemented more accurately, on a 50 ms timer;
For the PS/1 Model 2011, the Keyboard Input Port bit 6 now correctly reports if the currently selected (in FDC DOR) floppy drive is 3.5" or 5.25";
Commented out excess DMA logging;
Added support for FDF floppy images;
Fixed handling of CDB allocated length field for the CD-ROM INQUIRY command;
(S)VGA port 03C1 write is back again (it was incorrectly gone in some builds);
Commented out Compaq/Paradise VGA;
PS/1 Model 2121+ISA now correctly allows selecting graphics card.
Fixed DMA emulation, fixes Olivetti M24;
(S)VGA emulation for PS/1 and PS/2 machines now uses the old, less accurate sense switches, fixes display error on POST;
Bit 2 of the AT keyboard input port is now always held active, fixes PS/2 mouse on PS/1 and PS/2 machines;
Fixed mouse type selection on non-AT boards;
Fixed RAM type selection;
The entire palette is now overwritten when a monochrome monitor type is selected, fixes graphics mode on Hercules;
Applied updated SCAT emulation patch from PCem forum;
Nvidia Riva and S3 Virge IRQ is now configurable;
Properly applied the mainline PCem commit that fixed the Bahamas64 on the Intel AMI BIOS boards;
Commented out the Diamond Stealth 64 and the Miro Crystal S3 Vision 964 due to their non-working state;
Changed version to 1.06.
The CD-ROM IOCTL direct pass through code now does sanity check on the requested data size before passing the command - fixes crashes with some DMA-only host DVD drives;
The network poller is now in its own thread;
The hack is back in the emulation of the National Semiconductors PC87306 Super I/O Chip - it's the only way right now to have serial working on that board;
Fixed a part of the code that was still using NukedOPL even when OPL 3 was set to DOSBox OPL;
Applied all mainline PCem commits.
SCSI DMA writes (for MODE SELECT) now correctly use InitLength instead of request_length when bus type is SCSI;
Fixed MODE SELECT page saving;
CD Audio volume is now correctly initialized on card initialization for all Sound Blaster variants, fixes CD Audio being muted when booting without the Sound Blaster initialization program;
Brought the Sound Blaster variants back to a sane sound volume but still louder than the old quietness;
Moved SCSI adapter initialization to before sound card initialization, fixes DOS SCSI CD-ROM driver hangs under some conditions.
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.
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).
Previous CD-ROM sense is now correctly cleared when a REQUEST SENSE command is performed, fixes detection of disc change after setting the drive to empty first regardless of what bus is used for the CD-ROM.
ATAPI CD-ROM word reads no longer incorrectly discard the upper 16 bits, fixes the CD-ROM problems;
Significantly rewrote parts of the AHA-154x and BusLogic emulation, NT 3.1 RTM and MS-DOS drivers now works correctly;
The function in cdrom.c to read data blocks from the disc now correctly advances the position of the sector to read in non-passthrough mode, fixes multiblock reads from directly mounted ISO's;
Both ATAPI and SCSI now always check for Unit Attention and Not Ready on command execution.
SCSI LUN is now selectable for the CD-ROM drives;
Made sure every BusLogic RequestSetup ends in a StartMailbox sooner or later, fixes freezes with the DOS BusLogic drivers;
Commented out execess logging from mem.c;
Applied the mainline PCem commit that fixes the Bahamas64 on some boards.
Fixed several ATAPI CD-ROM bugs;
Added some missing CPL override checks to the MMU translate functions;
Tertiary and quaternary IDE controllers are now automatically disabled if not a single device is attached to them;
Changed sleep time on compile from 10 seconds to 2 seconds.
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.
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.