From 3cf15a979a6baf48e61d267cdf54dd3e2e30c616 Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 15:23:35 -0500 Subject: [PATCH 1/7] Hook up the led 31 the led still blinking when error happens. --- src/mame/misc/marywu.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index e155735fca72f..779f25c9e3816 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -59,7 +59,7 @@ class marywu_state : public driver_device uint8_t m_selected_7seg_module = 0; output_finder<32> m_digits; - output_finder<30> m_leds; + output_finder<48> m_leds; required_ioport_array<4> m_inputs; }; @@ -127,10 +127,16 @@ void marywu_state::ay2_port_a_w(uint8_t data) void marywu_state::ay2_port_b_w(uint8_t data) { // we only have 30 LEDs. The last 2 bits in this port are unused. - for (uint8_t i = 0; i < 6; i++) + for (uint8_t i = 0; i < 8; i++) m_leds[i + 24] = BIT(data, i); } +void marywu_state::p3_port_w(uint8_t data) // 1 led are used. +{ + for (uint8_t i = 0; i < 8; i++) + m_leds[i + 32] = BIT(data, i); +} + void marywu_state::multiplex_7seg_w(uint8_t data) { m_selected_7seg_module = data; @@ -190,6 +196,7 @@ void marywu_state::marywu(machine_config &config) maincpu.set_addrmap(AS_DATA, &marywu_state::data_map); //TODO: figure out what each bit is mapped to in the 80c31 ports P1 and P3 maincpu.port_in_cb<1>().set_ioport("P1"); + maincpu.port_out_cb<3>().set(FUNC(p3_port_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); From 5766d5b2deb51061b9d3618b524d3d0b8db28ec0 Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 17:13:35 -0500 Subject: [PATCH 2/7] Add void p3_port_w(uint8_t data); I forgot to add. to prevent error during compiler. --- src/mame/misc/marywu.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index 779f25c9e3816..9fe5c7387dd38 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -52,7 +52,8 @@ class marywu_state : public driver_device void ay1_port_b_w(uint8_t data); void ay2_port_a_w(uint8_t data); void ay2_port_b_w(uint8_t data); - uint8_t keyboard_r(); + void p3_port_w(uint8_t data); + uint8_t keyboard_r(); void data_map(address_map &map) ATTR_COLD; void program_map(address_map &map) ATTR_COLD; From 579a87d19777dc65a44f1c5ff0dc3106ac6c1dc2 Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 18:18:10 -0500 Subject: [PATCH 3/7] add notes in p3_port_w function marywu.cpp Updated output finder 48 to 40 and uint8_t i = 0; i < 8; i++) to (uint8_t i = 0; i < 0; i++) --- src/mame/misc/marywu.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index 9fe5c7387dd38..972979947faf1 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -60,7 +60,7 @@ class marywu_state : public driver_device uint8_t m_selected_7seg_module = 0; output_finder<32> m_digits; - output_finder<48> m_leds; + output_finder<40> m_leds; required_ioport_array<4> m_inputs; }; @@ -134,7 +134,7 @@ void marywu_state::ay2_port_b_w(uint8_t data) void marywu_state::p3_port_w(uint8_t data) // 1 led are used. { - for (uint8_t i = 0; i < 8; i++) + for (uint8_t i = 0; i < 0; i++) m_leds[i + 32] = BIT(data, i); } @@ -197,7 +197,7 @@ void marywu_state::marywu(machine_config &config) maincpu.set_addrmap(AS_DATA, &marywu_state::data_map); //TODO: figure out what each bit is mapped to in the 80c31 ports P1 and P3 maincpu.port_in_cb<1>().set_ioport("P1"); - maincpu.port_out_cb<3>().set(FUNC(p3_port_w)); + maincpu.port_out_cb<3>().set(FUNC(p3_port_w)); // Seem to be LED output. start blinking if error occured. NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); From 3d72c2d450463e8f12af73e512cc6a79d1cf20f7 Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 18:21:56 -0500 Subject: [PATCH 4/7] replace (FUNC(p3_port_w)); to marywu_state::p3_port_w --- src/mame/misc/marywu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index 972979947faf1..959867b1d4334 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -197,7 +197,7 @@ void marywu_state::marywu(machine_config &config) maincpu.set_addrmap(AS_DATA, &marywu_state::data_map); //TODO: figure out what each bit is mapped to in the 80c31 ports P1 and P3 maincpu.port_in_cb<1>().set_ioport("P1"); - maincpu.port_out_cb<3>().set(FUNC(p3_port_w)); // Seem to be LED output. start blinking if error occured. + maincpu.port_out_cb<3>().set(FUNC(marywu_state::p3_port_w)); // Seem to be LED output. start blinking if error occured. NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); From a3b83714ee0c17a14d36a3b275bc20348b9b7ddb Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 19:10:33 -0500 Subject: [PATCH 5/7] Change uint8_t i = 0; i < 0; i++) to (uint8_t i = 0; i < 6; i++) in p3_port_w function --- src/mame/misc/marywu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index 959867b1d4334..7e201e073f4e5 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -134,7 +134,7 @@ void marywu_state::ay2_port_b_w(uint8_t data) void marywu_state::p3_port_w(uint8_t data) // 1 led are used. { - for (uint8_t i = 0; i < 0; i++) + for (uint8_t i = 0; i < 6; i++) m_leds[i + 32] = BIT(data, i); } From 09845f39028267fcbd8b95f840bc5bb58a88980c Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 19:37:11 -0500 Subject: [PATCH 6/7] Remove p3_port_w function Sorry for causing the confusion. --- src/mame/misc/marywu.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index 7e201e073f4e5..dc17c2be15707 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -52,7 +52,6 @@ class marywu_state : public driver_device void ay1_port_b_w(uint8_t data); void ay2_port_a_w(uint8_t data); void ay2_port_b_w(uint8_t data); - void p3_port_w(uint8_t data); uint8_t keyboard_r(); void data_map(address_map &map) ATTR_COLD; void program_map(address_map &map) ATTR_COLD; @@ -132,12 +131,6 @@ void marywu_state::ay2_port_b_w(uint8_t data) m_leds[i + 24] = BIT(data, i); } -void marywu_state::p3_port_w(uint8_t data) // 1 led are used. -{ - for (uint8_t i = 0; i < 6; i++) - m_leds[i + 32] = BIT(data, i); -} - void marywu_state::multiplex_7seg_w(uint8_t data) { m_selected_7seg_module = data; @@ -197,7 +190,6 @@ void marywu_state::marywu(machine_config &config) maincpu.set_addrmap(AS_DATA, &marywu_state::data_map); //TODO: figure out what each bit is mapped to in the 80c31 ports P1 and P3 maincpu.port_in_cb<1>().set_ioport("P1"); - maincpu.port_out_cb<3>().set(FUNC(marywu_state::p3_port_w)); // Seem to be LED output. start blinking if error occured. NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); From ed5644537217952d717dc6840814223a1d04aa0a Mon Sep 17 00:00:00 2001 From: flama12333 <143599905+flama12333@users.noreply.github.com> Date: Sat, 8 Nov 2025 20:31:46 -0500 Subject: [PATCH 7/7] Change LED output and uint8_t in ay2_port_b_w Change output_finder<40> m_leds; to output_finder<31> m_digits; change for (uint8_t i = 0; i < 8; i++) to for (uint8_t i = 0; i < 7; i++) --- src/mame/misc/marywu.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mame/misc/marywu.cpp b/src/mame/misc/marywu.cpp index dc17c2be15707..1be4240b9acf1 100644 --- a/src/mame/misc/marywu.cpp +++ b/src/mame/misc/marywu.cpp @@ -59,7 +59,7 @@ class marywu_state : public driver_device uint8_t m_selected_7seg_module = 0; output_finder<32> m_digits; - output_finder<40> m_leds; + output_finder<31> m_leds; required_ioport_array<4> m_inputs; }; @@ -127,7 +127,7 @@ void marywu_state::ay2_port_a_w(uint8_t data) void marywu_state::ay2_port_b_w(uint8_t data) { // we only have 30 LEDs. The last 2 bits in this port are unused. - for (uint8_t i = 0; i < 8; i++) + for (uint8_t i = 0; i < 7; i++) m_leds[i + 24] = BIT(data, i); }