Commit graph pcem/src/ide.c
Author SHA1 Message Date
SarahW
c93a4eb295 AT/IDE drive status has ready set in between sector transfers in multi-sector
reads. Fixes some early AMI BIOSes.
2020-03-01 17:19:43 +00:00
SarahW
1dd8cf1e81 Move port 0xcf9 handling from i430FX/VX to PIIX, adding reset callback for FX/HX/VX northbridges.
Add IDE reset to port 0xcf9.
Reset IDE error register on reset of non-existent devices.
Fixes IDE related issues on soft reset for ASUS boards.
2019-05-18 17:35:32 +01:00
SarahW
9a49a75eaf IDE soft reset should also reset ATAPI devices. Should fix at least some 'Device failed to request command' errors. 2019-04-14 13:47:20 +01:00
SarahW
5043cff3f9 Move SFF-8038i IDE bus mastering code out of PIIX files.
Add bus mastering to VT82C586B emulation.
2018-12-02 15:46:28 +00:00
SarahW
a7d006b637 Rewrote timer code.
The new code is based on timestamps, rather than delays. This eliminates the
need to update every timer in timer_process(), which cost a non-trivial amount
of CPU time on low-end machines.

This involved changes to every user of the timer code, so this change almost
certainly introduces bugs.
2018-08-02 22:06:10 +01:00
SarahW
1ff836bfc1 Shortened time between ATAPI packet command starting and requesting command data. Fixes CD-ROM on BeOS. 2018-04-08 07:56:12 +01:00
SarahW
6602368cc4 Implemented ATAPI DMA transfer modes. 2018-03-15 19:36:30 +00:00
SarahW
c07b76dc8e ATAPI sector accesses can not be split over multiple transfers. Fixes Windows XP installer. 2018-03-03 21:32:24 +00:00
SarahW
0d36eeaabe SCSI now supports 7 devices.
Reworked hard drive / CD-ROM / Zip configuration functions a bit.
2018-03-02 21:54:20 +00:00
SarahW
59aad3eaaf Support IDE hard drives up to 127 GB. 2018-02-27 22:00:24 +00:00
SarahW
cdf42681af Removed redundant CD-ROM Disabled option. 2018-02-10 12:48:07 +00:00
SarahW
25087bf4ec Strip RPCemu support code out of ide.c. 2018-01-21 16:39:00 +00:00
SarahW
5fd2fd40aa Add Iomega Zip drive emulation. 2018-01-21 16:05:39 +00:00
SarahW
6ecdd2efd0 Unify ATAPI and SCSI CD-ROM code. 2018-01-21 15:59:29 +00:00
SarahW
12d3ac4377 Fix PIIX IDE bus mastering initialisation. Ubuntu 10.04 boots again. 2017-12-06 22:14:51 +00:00
SarahW
13496ba7b9 Implement IDE Check Power Mode command. Fixes Windows NT4 with SP4 or later. 2017-11-13 21:56:44 +00:00
SarahW
06f7cd3c6c Hard disc controllers can now be selected on all machines.
Added device configuration for hard disc controller to Wx GUI.
2017-10-01 15:42:32 +01:00
SarahW
9521237b0b Added Samsung SPC-4200P emulation.
IDE Drive Diagnostics command now doesn't complete immediately (required by SPC-4200P BIOS).
Patch from Greatpsycho.
2017-07-16 16:17:59 +01:00
SarahW
6484baaf9f Abstracted hard disc image handling to separate file. 2017-07-02 18:10:36 +01:00
SarahW
59b5cf50dd Buffer IDE multiple-sector read commands. 2017-06-17 08:03:35 +01:00
pcem_emulator
7fe91626d6 Added new GUI based on wxWidgets. Patch from bit. 2017-05-29 15:38:48 +01:00
SarahW
a2f44b8ea7 Add support for BIN/CUE images. Patch from bit, BIN/CUE handling from DOSBox. 2017-05-29 13:56:19 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
4a36365044 Return IDE status as busy when drive is held in reset. Fixes hard drive issues on MegaPC. 2017-02-01 19:59:57 +00:00
SarahW
179b85d81a Clear ATAPI DRQ status bit following transfer of the final sector of a data read, but before command has completed. Ubuntu 10.04 installer now works correctly. 2017-01-08 15:18:57 +00:00
SarahW
ee9fd4d7b2 Fixed structure packing and reported data length in the ATAPI Get Event Status Notification command 2017-01-08 15:17:57 +00:00
SarahW
c183af29c1 If a CD-ROM sector read fails when using the Windows IOCTL code, retry using SPTI. BeOS 5 now boots from CD. 2017-01-05 19:22:55 +00:00
SarahW
693d6fe757 Removed incomplete ATAPI Get Configuration command, Windows XP setup now works again. 2016-05-15 19:54:56 +01:00
SarahW
11eb87b436 Implemented ATAPI audio channel select. Based on patch from Battler. 2016-04-04 11:44:40 +01:00
TomW
c00b16a44c Added IDE Verify Once command. Fixes hard disc formatting on early OS/2 versions. Patch from Battler. 2016-03-30 21:00:03 +01:00
TomW
0faa803061 CD-ROM changes from Battler, including :
- New disc change handling
- Additional ATAPI commands
- CD drive-level volume control
2016-03-08 20:47:05 +00:00
TomW
5b3d307181 CD-ROM IDE channel now configuarable. Based on patch from Battler. 2016-03-06 17:23:51 +00:00
TomW
4531f5c7a7 IDE fixes for 'unusual' configurations. 2016-03-06 17:23:01 +00:00
TomW
30f92469d1 CD-ROM drive is now secondary master if no hard drive is present in that position. 2015-10-19 18:39:00 +01:00
TomW
75536e184f Fix ATAPI interrupt status following Mode Select command - fixes OS/2 Warp 3 CD installer. 2015-10-13 17:56:54 +01:00
TomW
b9a0084792 Don't reset IDE block size on IDE soft reset. 2015-10-06 21:54:54 +01:00
TomW
60d75012df Implement ATAPI Stop Play/Scan command.
Stop CD audio playback on IDE reset, ATAPI reset, and hard reset.
2015-09-30 20:45:47 +01:00
TomW
8206a2ea0b IDE reset now resets both devices on the affected channel.
IDE reset now works when only slave device is present.
ATAPI signature now set on IDE reset.
2015-09-10 20:40:45 +01:00
TomW
e10ee63a10 Added support for up to 4 IDE hard drives. 2015-07-12 11:43:12 +01:00
TomW
0854c5da89 Fixed crash introducted in rev 234. 2015-05-03 20:31:55 +01:00
TomW
d2206f91c9 PIIX command register now honours bit 2.
All IDE interrupts now set PIIX IDE Interrupt Status.
Helps BeOS.
2015-05-03 16:10:11 +01:00
TomW
6fb56149f9 Fixed IDE transfers of 256 sectors, Windows 2000 now works. 2014-08-20 19:37:23 +01:00
TomW
8283d3ee73 Implemented ATAPI Read CD-ROM Capacity command, fixes CD usage in OS/2. 2014-07-12 14:22:54 +01:00
TomW
a90ca3c83b IDE drives now read 0 when not present - fixes some hangs when detecting drives. 2014-07-11 20:55:26 +01:00
TomW
876db9f38c Cancel IDE callback on early IDE reset. 2014-04-18 11:54:52 +01:00
TomW
1493306d5e Restore correct ESP value on fault during IRET - fixes issues in at least Windows NT 3.51, NT 4.0, OS/2 2.0, OS/2 Warp. Thanks to SA1988.
Hack to mirror IDE register writes to both drives, fixes IDE issues on NT.
Fixed occasional PCem crash when accessing a faulting page, fixes crash in OS/2 2.0.
2014-04-09 19:55:14 +01:00
TomW
39619c3cc0 Unconfigured IDE discs now no longer respond to commands. 2013-10-19 20:43:51 +01:00
TomW
f195495f3a Initial SiS496/497 emulation.
Fixed ESP value on ENTER when page fault after first push.
Fixed execution time of IDE Set Idle command.
Fixed head number on FDC Read Sector ID command.
2013-07-15 18:23:26 +01:00
TomW
9312de19ac Now up to date with current dev version.
Changes since v0.7 :
- Major CPU reorganisation. This has possibly broken some stuff, though I fixed all the regressions I could find
- Lazy flags. This brought 10% speed improvement at one point, but that's probably been lost now
- 430 VX chipset emulation
- IDT Winchip emulation (currently sans MMX). Timing is probably wrong
- Fixed a few FPU bugs
- Timer reorganisation
- Sound reorganisation
- Other general reorganisation
- AdLib Gold emulation
- Windows Sound System emulation
- Pro Audio Spectrum 16 emulation. This currently works with most DOS stuff, but not in Windows
- Major improvements to GUS emulation. Has the downside that it now conflicts with SB emulation, so probably best to not enable both simultaneously
- New graphics cards :
  - ATI-18800 (VGA Edge-16)
  - ATI-28800 (VGA Charger)
  - ATI Mach64GX (Graphics Pro Turbo). Quite a few features missing, but Windows doesn't seem to use half the features of this card
  - Cirrus Logic CL-GD5429. Blitter is a bit broken
  - Oak OTI-067
  - S3 Trio64 (Number Nine 9FX)
  - S3 Virge. Only framebuffer stuff at the minute, Windows won't recognise the card
  - Trident TGUI-9440
  - VGA. Doesn't work yet
- Beginnings of 3DFX emulation, however this is in extremely early stages and doesn't do anything useful
- Fixed DMA bug stopping floppy drives working in Windows 3.x
- Fixed some other stuff probably
- Broke some other stuff probably as well
2013-05-27 17:46:42 +01:00
TomW
3c253c2cf8 Add v0.7 source 2013-04-21 14:54:35 +01:00