From 0abca268d82e444e87d49444d815ffb4c96665b2 Mon Sep 17 00:00:00 2001 From: yz70s Date: Sat, 7 Aug 2021 14:20:28 +0200 Subject: fdc37c93x.cpp: actually read logical device registers --- src/devices/machine/fdc37c93x.cpp | 19 ++++--------------- src/devices/machine/fdc37c93x.h | 12 ++++++------ 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/devices/machine/fdc37c93x.cpp b/src/devices/machine/fdc37c93x.cpp index 8f4b4a88e2e..5d7fed53196 100644 --- a/src/devices/machine/fdc37c93x.cpp +++ b/src/devices/machine/fdc37c93x.cpp @@ -507,7 +507,6 @@ void fdc37c93x_device::write(offs_t offset, uint8_t data) /* Map/unmap internal devices */ -#if 1 uint8_t fdc37c93x_device::disabled_read() { return 0xff; @@ -519,26 +518,14 @@ void fdc37c93x_device::disabled_write(uint8_t data) void fdc37c93x_device::unmap_fdc(address_map &map) { - map(0x0, 0x0).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); - map(0x1, 0x1).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); + //map(0x0, 0x0).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); + //map(0x1, 0x1).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); map(0x2, 0x2).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); map(0x3, 0x3).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); map(0x4, 0x4).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); map(0x5, 0x5).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); map(0x7, 0x7).rw(FUNC(fdc37c93x_device::disabled_read), FUNC(fdc37c93x_device::disabled_write)); } -#else -void fdc37c93x_device::unmap_fdc(address_map &map) -{ - map(0x0, 0x0).noprw(); - map(0x1, 0x1).noprw(); - map(0x2, 0x2).noprw(); - map(0x3, 0x3).noprw(); - map(0x4, 0x4).noprw(); - map(0x5, 0x5).noprw(); - map(0x7, 0x7).noprw(); -} -#endif void fdc37c93x_device::map_fdc_addresses() { @@ -780,6 +767,8 @@ void fdc37c93x_device::write_fdd_configuration_register(int index, int data) } if (index == 0x74) update_dreq_mapping(configuration_registers[LogicalDevice::FDC][0x74], LogicalDevice::FDC); + if (index == 0xF0) + logerror("FDD Mode Register changed: Floppy Mode %d FDC DMA Mode %d Interface Mode %d Swap Drives %d\n", (data >> 0) & 1, (data >> 1) & 1, (data >> 2) & 3, (data >> 4) & 1); } void fdc37c93x_device::write_parallel_configuration_register(int index, int data) diff --git a/src/devices/machine/fdc37c93x.h b/src/devices/machine/fdc37c93x.h index 3d771fa596e..c4305e93b80 100644 --- a/src/devices/machine/fdc37c93x.h +++ b/src/devices/machine/fdc37c93x.h @@ -186,12 +186,12 @@ private: void write_auxio_configuration_register(int index, int data); uint16_t read_global_configuration_register(int index); uint16_t read_logical_configuration_register(int index); - uint16_t read_fdd_configuration_register(int index) { return 0; } - uint16_t read_ide1_configuration_register(int index) { return 0; } - uint16_t read_ide2_configuration_register(int index) { return 0; } - uint16_t read_parallel_configuration_register(int index) { return 0; } - uint16_t read_serial1_configuration_register(int index) { return 0; } - uint16_t read_serial2_configuration_register(int index) { return 0; } + uint16_t read_fdd_configuration_register(int index) { return configuration_registers[logical_device][index]; } + uint16_t read_ide1_configuration_register(int index) { return configuration_registers[logical_device][index]; } + uint16_t read_ide2_configuration_register(int index) { return configuration_registers[logical_device][index]; } + uint16_t read_parallel_configuration_register(int index) { return configuration_registers[logical_device][index]; } + uint16_t read_serial1_configuration_register(int index) { return configuration_registers[logical_device][index]; } + uint16_t read_serial2_configuration_register(int index) { return configuration_registers[logical_device][index]; } uint16_t read_rtc_configuration_register(int index); uint16_t read_keyboard_configuration_register(int index); uint16_t read_auxio_configuration_register(int index); -- cgit v1.2.3