Apparently the Trantor T130B SCSI controllers has a different way of calculating the timings and removed the scsi_bus_read() calls from the Current SCSI bus status port (Read Port+4).
Fixes NT using said controller as well as CD swapping while maintaining the correct accurate CD speed.
1. Separate the SCSI bus functions from NCR 5380 into true general purpose SCSI bus functions, allowing use of future legacy scsi controllers.
2. Corrected NCR 5380 chip period for the SCSI controllers based on that chip so that CD-ROM speed is correct enough per speed tests and no more breakage (I hope, report if they are still there, please!) on desyncs.
3. A NCR 5380 software reset involves asserting an IRQ.
1. Sanity check for the SCSI temp_buffer if it's allocated or not.
2. Data reads and writes in non-DMA mode should be accessible only when DMA mode is Idle (as in, no DMA at all, whereas DMA mode will go to the SCSI controllers' callbacks).
1. Too many soft resets should not reset the SCSI layer, fixes CD Audio on the 53c90a MCA controller used by guests.
2. Implemented preliminary MDL S/G mode for the PCSCSI side.
3. The underflow DMA function is no longer needed as it now SCSI transfers on the 53c90a MCA controller works properly.
4. Minor corrections to the PCI side (mainly the revision).
5. The DMA 86c01 side of the MCA 53c90a controller is more polished now, should fix some more bugs.
1. The SCSI ID is now more correct about about the difference between physical unit number and actual SCSI ID. This should fix boot freezes on NT 1991 builds for x86 using said card, as well as keeping compatibility the same as before.
SCSI CD-ROM: request sense command should preserve its sense data unless a different command is issued, fixes DOS hanging with a blinking cursor using CDSCSI-2.sys for the 53c9x MCA card when there's no CD inside, making its no length Data In hack no longer needed.
This commit should fix the NT 3.1 AMD PCscsi drivers when they look for devices on LUN > 0 and causing havoc with them (BSOD).
Basically clear the FIFO and set the SEQ_0 bit in the RSEQ read reg.
AM53c974 side: a biosless card is biosless.
General: fixed all the log excesses.
Ported the latest changes/fixes to the above controller from QEMU and added a bios-less AMD Am53c974 device (non-DC390).
The latest changes fix the AMD-branded DOS ASPI drivers on both cards (even without bios).
All: the icon refresh for the respective storage now works properly across all adapters that use it (especially the aha154x compatibles and spock/tribble).
SCSI CD-ROM: The Sony/Texel/DEC SCSI command 0xC0 (Set Address Format) isn't a command that checks for ready status, however, it is for other vendors like NEC, Matsushita, etc. and I am not wishing to create a duplicate command_flags array duplicate just for vendor unique commands. This fixes the MSF bit of Sony/Texel/DEC CD-ROM drives which don't use the Mode Page equivalent.
Toshiba only: attempt to mark the 3201B as a SCSI-1 only CD-ROM drive properly.