Commit Graph

32 Commits

Author SHA1 Message Date
TC1995
9c8c1a6f40 Trantor SCSI changes of the day (April 2nd, 2025)
1. The PAS SCSI controller driver mamv1.sys dislikes having bits 0-6 set when a transfer has completed, take account from this, fixes mamv1.sys incomplete CD transfers (bits 0-6 get re-enabled when the transfer is ongoing).
2. I now understand why the T128 doesn't have a block count register, it does the block count manually from the SCSI layer directly, this fixes Pseudo-DMA transfers when using, e.g.: CD transfers using a sector size of 2340 bytes.
2025-04-02 21:47:32 +02:00
OBattler
74e0408201 Current WIP CD-ROM changes. 2025-02-09 20:06:15 +01:00
OBattler
35a12e0826 CD-ROM: IOCTL now detects medium changes without having to read the host drive's TOC on every operation, improves performance. 2025-02-03 10:57:19 +01:00
OBattler
90e1190c92 The great CD-ROM clean-up and rewrite, fixes #5134. 2025-01-28 16:26:28 +01:00
TC1995
4008010131 Big SCSI bus update of the day, NCR 5380 too (January 20th, 2025)
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.
2025-01-20 19:55:18 +01:00
TC1995
e0daf34629 SCSI CD-ROM change of the day (December 31st, 2024)
Added undocumented 0xC5 NEC SCSI-2 CD-ROM command (most likely a no op command like 0x0D).
2024-12-31 21:29:59 +01:00
OBattler
7b6a9181c6 Current state of the CD-ROM node - no CUE/BIN overhaul or MDS/MDF support yet, but the rest is already there. 2024-12-31 04:37:21 +01:00
RichardG867
7b786a98fa scsi_disk: Report image read/write errors 2024-10-29 12:13:04 -03:00
RichardG867
aeaaa09b16 CD-ROM: Report image backend I/O errors as media CRC errors to the drive 2024-10-27 13:17:55 -03:00
OBattler
71c16a4481 Remove the previous kludge and #define BUS_ACK to 0x100 so it's different from BUS_ATN. 2024-05-06 13:24:04 +02:00
OBattler
4c84cccae7 The Pro Audio Spectrum SCSI controller is now based on the Trantor T128 (which it is considerable closer to), rather than on the 53c400. 2024-05-06 13:09:08 +02:00
TC1995
da1ededb93 SCSI CD-ROM and 5380 fixes.
CD-ROM side: fixed a mode sense page (0x08 Sony, used by both Sony and Texel drives) as well as corrected the Toshiba specific drive speeds (bytes_per_second).
NCR 5380 side: split the work into the generic 5380 core and the ASICs into separate sources (53c400 and T128) and added the T228 MCA adapter based on the 128.
2024-04-10 17:27:30 +02:00
OBattler
40d724cf20 Fixed SCSI/ATAPI hard disk timings and IDE hard disk recalibrate command timing. 2023-10-30 04:48:29 +01:00
OBattler
d2713cb7ca Merge branch 'master' of https://github.com/86Box/86Box 2023-10-28 22:00:35 +02:00
OBattler
b474e3d056 Massive IDE clean-ups, and finally implemented ATAPI hard disks. 2023-10-28 22:00:23 +02:00
TC1995
961a2483ad SCSI CD-ROM fixes (NEC):
1. Added Mode Page Codes 0x00 and 0x03 (Unit Attention and Format Device) to the SCSI CD-ROM code.
2. Corrected the Read Disc Information TOC (actually Read TOC vendor unique) for NEC SCSI CD-ROMs, this, together with the fix above, fixes reading data cd-rom's using NEC vendor commands.
3. Actually identify NEC drives per manual (SCSI unknown version per the -75 and -77 manuals).
4. Re-added the 75 and 77 drives now that the NEC vendor commands are fine + an extra 25a drive with revision 1.0a (from a screenshot from vogons).
2023-10-24 20:15:08 +02:00
OBattler
209c8fbbda Assorted CD-ROM fixes (now cue sheets starting at a non-zero sector work correctly) and increased the maximum number of CD-ROM drives to 8. 2023-10-04 02:49:22 +02:00
Jasmine Iwanek
3a0ddc2087 More linting in src/include/86box 2023-08-23 04:15:58 -04:00
Jasmine Iwanek
1116aadb6f Another round of sonarlint work 2023-07-04 10:53:44 -04:00
Jasmine Iwanek
21adfd4d50 Next round of sonarlint cleanups 2023-06-26 18:28:13 -04:00
TC1995
1064c697e2 Darn git. 2023-01-08 14:25:18 +01:00
TC1995
e5496e2638 Overhauled CD-ROM selection for SCSI and ATAPI, including model and vendor specific commands.
Fixed the Spock SCSI ID selection.
Fixed CD Audio on NCR 5380-based SCSI controllers.
Added a proprietary CD-ROM controller selection (not hooked up yet).
All on qt only.
2023-01-07 23:48:45 +01:00
OBattler
4d19b8a1e4 Added the ability to select earlier CD-ROM drive (emulates Chinon CDS-431 for SCSI and NEC CDR-260 for ATAPI) - needs to be ported to QT. 2022-10-29 06:44:30 +02:00
Jasmine Iwanek
ae4f9aedaa clang-format in src/include/86box/ 2022-09-18 17:22:54 -04:00
Jasmine Iwanek
5d999920f5 Move SCSI defines to scsi.h 2022-08-02 22:35:43 -04:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
Jasmine Iwanek
7fc893bdb0 Include guards on our headers 2022-02-18 19:42:21 -05:00
OBattler
729b6d5069 Added support for up to four SCSI controllers, closes #343. 2021-07-22 20:13:44 +02:00
OBattler
bd792b8e7a Added the NCR 53c815 and 53c820, and made sure the 53c810 and the 53c820 do not have the BIOS option as real ones do not have a BIOS BAR, while the 53c815 and 53c825 do (they are basically 53c810 and 53c820, respectively, with own BIOS support);
Roughly implemented the SCSI IDENTIFY message LUN operation, fixes some SCSI controller drivers in some situations;
Added an undocumented CMD640 IDE controller register required by Linux and by a DOS driver.
2021-03-23 06:32:18 +01:00
OBattler
8837d5d882 Implemented the National Semiconductors PC87307, PC87309, PC87332, and PC97307 Super I/O chips, fixed a number of bugs, and removed two machines from the Dev branch due to them now having the correct Super I/O chips. 2020-06-14 21:59:45 +02:00
TC1995
254e43fb64 Added Magneto-Optical disk emulation, though the UI settings for it are to be done later. 2020-04-01 19:04:53 +02:00
David Hrdlička
a505894a10 Move all include files to src/include
- 86Box's own headers go to /86box
- munt's public interface goes to /mt32emu
- all slirp headers go to /slirp (might want to consider using only its public inteface)
- single file headers from other projects go in include root
2020-03-29 19:53:29 +02:00