Commit Graph

147 Commits

Author SHA1 Message Date
smf-
e3bbb0a27d Renamed some #defines to match up closer to the ATA specification. Added validation to register access, switching Primal Rage 2 away from using the DMA interface in it's DMA handler as the game only executes normal read commands (nw) 2013-06-14 19:17:43 +00:00
smf-
ed212f0406 simplified ide_device_interface part 2 (nw) 2013-06-13 21:58:11 +00:00
smf-
8dc0e74136 ata flash device derives from ide hdd device and adds pccard interface, instead of using an ide controller. [smf] 2013-06-13 20:07:18 +00:00
smf-
75e814cfb4 Split hard drive emulation from the ide controller. [smf] 2013-06-13 18:03:32 +00:00
smf-
f37f07dc2e moved the reset timer across (nw) 2013-06-13 12:47:19 +00:00
smf-
12a7bb6ea2 moved the status timer across (nw) 2013-06-13 12:35:02 +00:00
smf-
397c5048cf moved the status and command across (nw) 2013-06-13 12:20:48 +00:00
smf-
c7eb27985f error register moved across (nw) 2013-06-13 11:35:50 +00:00
smf-
cd23c39c2b area 51 site 4 doesn't like the same value as fishing frenzy, maybe there is a difference between the value you get for no drives at all and no current drive (nw) 2013-06-13 08:58:10 +00:00
smf-
c624c808a1 Allow more than one ide controller on the same device [smf] 2013-06-12 21:14:17 +00:00
smf-
e2fc23868d fishing frenzy has no hard drive at all and prefers this value. (nw) 2013-06-12 20:58:27 +00:00
smf-
2a6048249d fixed crash if no disk (nw) 2013-06-12 20:39:44 +00:00
smf-
5a86df85fd a couple more over the fence (nw) 2013-06-12 19:50:17 +00:00
smf-
1f80aa9959 moved a couple more variables (nw) 2013-06-12 19:28:18 +00:00
smf-
86523aabea either I misunderstand the spec or the code but judge dredd doesn't like this change (nw) 2013-06-12 19:07:06 +00:00
smf-
6f67159d96 moved block_count to the device, renamed some ide commands to make them closer to the spec & also use the block count for triggering the first irq on read/write multiple (nw) 2013-06-12 18:16:53 +00:00
smf-
4701b261cb moved password fields off the ide controller (nw) 2013-06-12 17:47:10 +00:00
smf-
900595dd05 moved more state from idectrl.h (nw) 2013-06-12 17:28:00 +00:00
smf-
4b1d6da30d moved the buffer from the ide controller to the device (nw) 2013-06-11 21:58:07 +00:00
smf-
598d207e53 If there is no drive selected then there is nothing to read from, although I'm not sure what value you'd expect to receive. (nw) 2013-06-11 18:59:57 +00:00
Miodrag Milanovic
16f5234d43 Cleanups and version bump 2013-06-11 07:16:42 +00:00
smf-
18a537031e converted to device_timer() (nw) 2013-06-10 17:34:27 +00:00
smf-
407e3b8882 Decoupled the IDE bus master emulation from the hard drive emulation [smf] 2013-06-10 08:42:39 +00:00
smf-
02f48983ca Started to separate the bus master dma from the drive emulation (nw) 2013-06-09 18:58:02 +00:00
smf-
b0a5f6fa03 created a new device for the bus master ide controller, but the implementation is still in the ide controller. (nw) 2013-06-09 15:44:43 +00:00
smf-
9eafc98ed9 First pass at tidying up ide interface. It no longer tries to force everything to act as a PC. A copy of the VIA VT83C461 datasheet would be useful to remove some of the hacks added to make the games using it work again. [smf] 2013-06-08 15:42:11 +00:00
smf-
eb943bed5a moved handlers into the ide_controller_device (nw) 2013-06-06 16:26:48 +00:00
smf-
a06026456b moved where cur_drive is updated & changed pcmcia trampoline definition to 16 bit. (nw) 2013-06-05 20:29:15 +00:00
smf-
636876c2d7 Merge the mame and mess ide hd device (nw) 2013-06-05 14:25:17 +00:00
smf-
2b9a645218 Started to split ide hd from ide controller [smf] 2013-06-05 09:09:34 +00:00
smf-
631605ff43 changed i/o to 8/16 bit & removed the flash trampolines in the driver.(nw) 2013-05-16 09:23:46 +00:00
Miodrag Milanovic
051011971f Expanded device_t constructor with parameters for short name and source file location [Miodrag Milanovic] 2013-03-26 15:18:37 +00:00
Scott Stone
8a069502f1 Chihiro.c [Samuele Zannoli]
* Implentation of nvidia register combiners.
 * Fix for ide_controller_device class for most uninitialized variables.
2013-03-04 23:02:36 +00:00
R. Belmont
c95286710d idectrl: words 57/58 of IDENTIFY DEVICE are total sectors, not sectors per track [R. Belmont]
As commented, this is the case for ATA-1, -2, -3, -4, and -5.  The CFFA2 Apple 
II IDE card firmware relies on this value being as documented in the standards 
to properly detect the drive size, and none of the usual sensitive Atari/Midway
games are broken by the change.

(This field is unused in ATA-6 and later).
2013-02-20 05:30:51 +00:00
Scott Stone
ec43bbcb96 idectrl.c: [Peter Ferrie]
- Fix regression in Fishin' Frenzy without breaking Area 51 Site 4.
2013-02-06 21:22:34 +00:00
smf-
1940866c70 output of new srcclean changes that are relatively small [smf] 2013-01-11 19:43:14 +00:00
Miodrag Milanovic
0e19f641d3 Cleanups and version bump 2013-01-11 07:32:46 +00:00
Scott Stone
87731393f5 idectrl.c - fix phantom slave drive detection problem. [Peter Ferrie] 2013-01-09 11:50:44 +00:00
Scott Stone
dac3c173c6 Revert of a portion of r20073:
idectrl.c  [Peter Ferrie]
- correct status flags for multi-sector reads
- implement more correct controller reset values
- fix phantom slave drive detection problem

Causes problems noted with many MAME games such as Area 51: Site 4, Primal Rage 2, All Viper.c games among others that are either not starting or constantly RE-starting looking for proper IDE communications.
2013-01-05 22:43:37 +00:00
Scott Stone
99345a6c27 8042kbdc.c [Peter Ferrie]
- add support for keyboard enable command
- add support for keyboard reset command

idectrl.c  [Peter Ferrie]
- correct status flags for multi-sector reads
- implement more correct controller reset values
- fix phantom slave drive detection problem

calchase.c  [Peter Ferrie]
- corrected memory map to 64kb blocks
- corrected access to PAM register
- removed execution hack

queen.c  [Peter Ferrie]
- split BIOS region into 64kb blocks
- implement missing PAM registers
- remove unused PAM regions

savquest.c  [Peter Ferrie]
- split BIOS region into 16kb blocks
- implement missing PAM registers
- correct slave_ack configuration member declaration
2013-01-05 08:53:11 +00:00
smf-
029ef2cd18 cleaned up the ide controller enough to change the irq to a DEVCB2 [smf] 2012-10-26 01:12:21 +00:00
Aaron Giles
621ac620ae Since nobody checks for NULLs anyway, make
device_memory_interface::space() assert against NULL and
return a reference, and pushed references throughout all 
address space usage in the system. Added a has_space() 
method to check for those rare case when it is ambiguous.
[Aaron Giles]

Also reinstated the generic space and added fatal error
handlers if anyone tries to actually read/write from it.
2012-09-19 19:48:09 +00:00
Aaron Giles
e33b41ee01 Stop allocating arrays of UINT8s for the tokens, when
we can allocate objects of the real type.
2012-09-18 05:28:33 +00:00
Aaron Giles
ab97dc30ef First pass at modernizing struct definitions. 2012-09-15 21:47:30 +00:00
Phil Bennett
fe13f1a310 idetrl.c - Support IDE command 0x31 (IDE_COMMAND_WRITE_MULTIPLE_NORETRY) [Phil Bennett] 2012-09-15 12:25:18 +00:00
Miodrag Milanovic
071eb8de4b Cleanup and some inheritance fixes (no whatsnew) 2012-09-03 15:00:20 +00:00
Miodrag Milanovic
b711b1a007 conversion of legacy devices into modern wip (no whatsnew) 2012-09-03 13:56:17 +00:00
Miodrag Milanovic
aa9bbe5371 Removed legacy inline_config support and updated devices using it (no whatsnew) 2012-08-30 14:27:14 +00:00
Miodrag Milanovic
f59f48e859 More proper solution for not connected IDE devices (no whatsnew) 2012-08-20 14:41:34 +00:00
Miodrag Milanovic
032b0f355e Fix for MT bug #04844, no need to clear status if drive not connected (no whatsnew) 2012-07-15 14:42:44 +00:00