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

@@ -596,3 +596,12 @@ int mem_a20_state;
void fatal(const char *format, ...);
extern int scsi_model, scsi_base, scsi_irq, scsi_dma;
#ifdef ENABLE_LOG_TOGGLES
extern int buslogic_do_log;
extern int cdrom_do_log;
extern int d86f_do_log;
extern int fdc_do_log;
extern int ide_do_log;
extern int ne2000_do_log;
#endif