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.
This commit is contained in:
OBattler
2017-01-17 00:01:59 +01:00
parent a15a8ac57d
commit 7e54cc4436
13 changed files with 247 additions and 116 deletions

View File

@@ -187,6 +187,17 @@
#define IDM_SCSI_DMA5 45405
#define IDM_SCSI_DMA6 45406
#define IDM_SCSI_DMA7 45407
#ifdef ENABLE_LOG_TOGGLES
#define IDM_LOG_BUSLOGIC 51200
#define IDM_LOG_CDROM 51201
#define IDM_LOG_D86F 51202
#define IDM_LOG_FDC 51203
#define IDM_LOG_IDE 51204
#define IDM_LOG_NE2000 51205
#endif
#ifdef ENABLE_LOG_BREAKPOINT
#define IDM_LOG_BREAKPOINT 51206
#endif
#define IDC_COMBO1 1000
#define IDC_COMBOVID 1001