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

@@ -292,11 +292,35 @@ BEGIN
MENUITEM "Take s&creenshot\tCtrl+F11", IDM_VID_SCREENSHOT
END
MENUITEM "&Status", IDM_STATUS
#ifdef ENABLE_LOG_TOGGLES
MENUITEM SEPARATOR
MENUITEM "Enable BusLogic logs\tCtrl+F4", IDM_LOG_BUSLOGIC
MENUITEM "Enable CD-ROM logs\tCtrl+F5", IDM_LOG_CDROM
MENUITEM "Enable floppy (86F) logs\tCtrl+F6", IDM_LOG_D86F
MENUITEM "Enable floppy controller logs\tCtrl+F7", IDM_LOG_FDC
MENUITEM "Enable IDE logs\tCtrl+F8", IDM_LOG_IDE
MENUITEM "Enable NE2000 logs\tCtrl+F9", IDM_LOG_NE2000
#endif
#ifdef ENABLE_LOG_BREAKPOINT
MENUITEM SEPARATOR
MENUITEM "&Log breakpoint\tCtrl+F10", IDM_LOG_BREAKPOINT
#endif
END
END
MainAccel ACCELERATORS
BEGIN
#ifdef ENABLE_LOG_TOGGLES
VK_F4, IDM_LOG_BUSLOGIC, CONTROL, VIRTKEY
VK_F5, IDM_LOG_CDROM, CONTROL, VIRTKEY
VK_F6, IDM_LOG_D86F, CONTROL, VIRTKEY
VK_F7, IDM_LOG_FDC, CONTROL, VIRTKEY
VK_F8, IDM_LOG_IDE, CONTROL, VIRTKEY
VK_F9, IDM_LOG_NE2000, CONTROL, VIRTKEY
#endif
#ifdef ENABLE_LOG_BREAKPOINT
VK_F10, IDM_LOG_BREAKPOINT, CONTROL, VIRTKEY
#endif
VK_F11, IDM_VID_SCREENSHOT, CONTROL, VIRTKEY
VK_F12, IDM_FILE_RESET_CAD, CONTROL, VIRTKEY
END