Commit Graph

29 Commits

Author SHA1 Message Date
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
754e8ff88f SCSI incoming mailbox now correctly also rewrites the CCB up to the CDB even if the status is CHECK CONDITION, fixes CD-ROM disc changes when using SCSI;
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.
2017-01-21 06:21:46 +01:00
OBattler
1aa37bfc27 REQUEST SENSE now correctly delays the reporting of UNIT ATTENTION if another error is pending, unless the error is not ready and the REQUEST SENSE is a standalone command;
The SCSI-specific auto-REQUEST SENSE now no longer advances UNIT ATTENTION phase, making sure the next command will report UNIT ATTENTION.
2017-01-21 03:03:46 +01:00
OBattler
4486926b6d Fixed a compile-breaking error. 2017-01-21 01:58:48 +01:00
OBattler
45183ea026 SCSI auto-sense is now done as an actual pseudo-execution of the REQUEST SENSE command. 2017-01-21 01:48:55 +01:00
OBattler
3f612ab71a IDE dword reads and writes reverted to original operation, fixes the last hard disk problems;
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.
2017-01-20 23:53:19 +01:00
OBattler
0548d8f9c8 Essentially reverted 8-bit IDE data reads and writes to old operation, fixes the hard disk bug;
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.
2017-01-18 21:51:03 +01:00
OBattler
fc42c2e2e7 BusLogic now starts mailboxes for all LUN's when nothing is attached to a given ID;
BusLogic now sets callback on MBO_FREE.
2017-01-18 02:24:05 +01:00
OBattler
2820b69439 Fix for BusLogic scatter/gather by TheCollector1995. 2017-01-17 23:58:16 +01:00
OBattler
6ab8e5be80 Rewrote the MMU translation code completely, thank you TheCollector1995 for testing;
Fixed NT page faults with AHA-154x and BusLogic, patch by TheCollector1995.
2017-01-17 22:15:15 +01:00
OBattler
6b86549b7e Modified empty IDE channel handling, should hopefully reduce problems;
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.
2017-01-17 19:41:42 +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
a15a8ac57d BusLogic scatter/gather now processes 1 more block if the data length is not divisible by the length of a scatter/gather block. 2017-01-16 21:06:38 +01:00
OBattler
7608f1604f Attempt to fix BusLogic scatter gather by increasing source buffer position after every read. 2017-01-16 06:21:34 +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
TC1995
81a6a905da SCSI not ready/unit attention handler also made available when a command is already executed, though only for the Adaptec 154x. 2017-01-03 20:33:23 +01:00
TC1995
abbd603d9a Buslogic specific features and commands marked as invalid when the Adaptec 154x scsi controller is selected.
Some SCSI layer bugfixes.
2017-01-03 19:07:18 +01:00
OBattler
391855860c SCSI controller model is now switchable between Adaptec AHA-154x and the BusLogic BT-542B. 2017-01-03 02:35:24 +01:00
OBattler
8fcc49cd31 Modified ATAPI and SCSI disc change handling. 2017-01-02 04:38:53 +01:00
TC1995
3f086f7523 Buslogic now fully working on DOS and NT (probably Win9x too)
Removed unused c sources.
SCSI layer bugfixes.
2017-01-01 00:36:22 +01:00
OBattler
cf6f8ae155 Fixed all the BusLogic structs, they should compile now. 2016-12-30 23:43:05 +01:00
OBattler
6165c13466 BusLogic types are now packed. 2016-12-30 23:38:20 +01:00
TC1995
61b8ff9a71 More bugfixes to the Buslogic and SCSI layer, still need to understand why the f**k it doesn't issue the Request Sense command when necessary 2016-12-30 00:42:54 +01:00
TC1995
3f04c30ac0 Added support up to 16 ID/LUN's
Corrected residual length, fixes Win95's buslogic driver that was not showing the CD drive.
2016-12-27 22:38:09 +01:00
TC1995
df78ce0529 Fixed once and for all the DOS CD-ROM bugs in the BT-54x SCSI adapter.
Added notes regarding NT 3.1 297.1 and 340.1's setup bugs with the Adaptec driver in the BT-54x SCSI adapter.
Bugfixes to the SCSI layer (SCSIReset())
2016-12-27 18:48:38 +01:00
TC1995
547185fd7f Removed excessive logging (R/W functions only for now)
Some cleanup.
End the SCSI request if the transfer length is already 0.
Additional fixes to support OS/2 1.3 and DOS buslogic drivers, still not 100% working for those, however, but CD-ROM is recognized.
2016-12-26 21:02:26 +01:00
TC1995
b3bc0a77c4 Damnit... 2016-12-26 03:43:17 +01:00
TC1995
3b0eb07519 Added the Abort Mailbox Command.
Fixed stupid Interrupt bug in the Write routine.
Bugfixes.
2016-12-26 03:39:48 +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