1096 |
|
|
1097 |
bool bm_ide_dotransfer(bool &prd_exhausted, uint32 prd_addr, byte bmide_command, byte bmide_status, uint32 lba, uint32 count) |
bool bm_ide_dotransfer(bool &prd_exhausted, uint32 prd_addr, byte bmide_command, byte bmide_status, uint32 lba, uint32 count) |
1098 |
{ |
{ |
1099 |
IO_IDE_TRACE("BM IDE transfer: prd_addr = %08x, lba = %08x, size = %08x\n", bmide_prd_addr, lba, count ? count : gIDEState.state[gIDEState.drive].sector_count); |
IO_IDE_TRACE("BM IDE transfer: prd_addr = %08x, lba = %08x, size = %08x\n", prd_addr, lba, count ? count : gIDEState.state[gIDEState.drive].sector_count); |
1100 |
|
|
1101 |
struct prd_entry { |
struct prd_entry { |
1102 |
uint32 addr PACKED; |
uint32 addr PACKED; |
1187 |
|
|
1188 |
bool read_bmdma_reg(uint32 port, uint32 &data, uint size) |
bool read_bmdma_reg(uint32 port, uint32 &data, uint size) |
1189 |
{ |
{ |
1190 |
IO_IDE_TRACE("bm-dma: read port: %08x, size: %d from (%08x, lr: %08x)\n", port, size, gCPU.pc, gCPU.lr); |
IO_IDE_TRACE("bm-dma: read port: %08x, size: %d from (%08x, lr: %08x)\n", port, size, ppc_cpu_get_pc(0), ppc_cpu_get_lr(0)); |
1191 |
switch (port) { |
switch (port) { |
1192 |
case 0: |
case 0: |
1193 |
if (size==1) { |
if (size==1) { |
1270 |
|
|
1271 |
bool write_bmdma_reg(uint32 port, uint32 data, uint size) |
bool write_bmdma_reg(uint32 port, uint32 data, uint size) |
1272 |
{ |
{ |
1273 |
IO_IDE_TRACE("bm-dma: write port: %08x, data: %08x, size: %d from (%08x, lr: %08x)\n", port, data, size, gCPU.pc, gCPU.lr); |
IO_IDE_TRACE("bm-dma: write port: %08x, data: %08x, size: %d from (%08x, lr: %08x)\n", port, data, size, ppc_cpu_get_pc(0), ppc_cpu_get_lr(0)); |
1274 |
switch (port) { |
switch (port) { |
1275 |
case 0: |
case 0: |
1276 |
if (size==1) { |
if (size==1) { |
1875 |
} |
} |
1876 |
case IDE_ADDRESS_SEC_CNT: { |
case IDE_ADDRESS_SEC_CNT: { |
1877 |
data = gIDEState.state[gIDEState.drive].sector_count; |
data = gIDEState.state[gIDEState.drive].sector_count; |
1878 |
IO_IDE_TRACE("sec_cnt: %x (from: @%08x)\n", data, gCPU.pc); |
IO_IDE_TRACE("sec_cnt: %x (from: @%08x)\n", data, ppc_cpu_get_pc(0)); |
1879 |
return; |
return; |
1880 |
} |
} |
1881 |
case IDE_ADDRESS_SEC_NO: { |
case IDE_ADDRESS_SEC_NO: { |