box in a box
April 24, 2024, 05:57:12 pm
My tiny client came in today.I have not unboxed it yet.
question. Would you replace thermal past right away? i am torn on this. 1 it has never been powered on. 2 it is over 10 years old.
Thanks for the info Randy, I ended buying the Creality V3 KE. My discount to myself was generous
Reprinted a few parts for my project with some improvements. I'm happy with the results:
diff --git a/src/mame/atari/harddriv.cpp b/src/mame/atari/harddriv.cpp
index e0b25440ad7..2ff020056b9 100644
--- a/src/mame/atari/harddriv.cpp
+++ b/src/mame/atari/harddriv.cpp
@@ -1041,8 +1041,8 @@ static INPUT_PORTS_START( racedrivc )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("3rd Gear")
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("4th Gear")
PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* center edge on steering wheel */
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_NAME("Encoder Reset") /* center edge on steering wheel */
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_NAME("Center Reset") /* center edge on steering wheel */
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
@@ -1069,7 +1069,7 @@ static INPUT_PORTS_START( racedrivc )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
- PORT_BIT(0xfff, 0x800, IPT_PADDLE) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
+ PORT_BIT( 0xfff, 0x800, IPT_DIAL ) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
PORT_START("mainpcb:12BADC.1")
diff --git a/src/mame/atari/harddriv_m.cpp b/src/mame/atari/harddriv_m.cpp
index 856783e2fb6..e17d54bc4d6 100644
--- a/src/mame/atari/harddriv_m.cpp
+++ b/src/mame/atari/harddriv_m.cpp
@@ -9,7 +9,6 @@
#include "emu.h"
#include "harddriv.h"
-
/*************************************
*
* Constants and macros
@@ -246,42 +245,68 @@ uint16_t harddriv_state::hdc68k_port1_r()
result = (result | 0x0f00) ^ (m_hdc68k_shifter_state << 8);
/* merge in the wheel edge latch bit */
- if (m_hdc68k_wheel_edge)
- result ^= 0x4000;
+ if (m_hdc68k_wheel_edge)
+ {
+ result ^= 0x4000;
+ printf("hdc68k_port1_r: merge latch result=%04X m_hdc68k_last_wheel=%04X\n", result, m_hdc68k_last_wheel);
+ m_hdc68k_wheel_edge = 0;
+ }
- m_hdc68k_last_port1 = result;
- return result;
+ m_hdc68k_last_port1 = result;
+ return result;
}
uint16_t harddriv_state::hda68k_port1_r()
{
- uint16_t result = m_a80000->read();
+ uint16_t result = m_a80000->read();
- /* merge in the wheel edge latch bit */
- if (m_hdc68k_wheel_edge)
- result ^= 0x4000;
+ /* merge in the wheel edge latch bit */
+ if (m_hdc68k_wheel_edge)
+ {
+ result ^= 0x4000;
+ printf("hda68k_port1_r: merge latch result=%04X m_hdc68k_last_wheel=%04X\n", result, m_hdc68k_last_wheel);
+ m_hdc68k_wheel_edge = 0;
+ }
- return result;
+ return result;
}
uint16_t harddriv_state::hdc68k_wheel_r()
{
- /* grab the new wheel value */
- uint16_t new_wheel = m_12badc[0].read_safe(0xffff);
-
- /* hack to display the wheel position */
- if (machine().input().code_pressed(KEYCODE_LSHIFT))
- popmessage("%04X", new_wheel);
-
- /* if we crossed the center line, latch the edge bit */
- if ((m_hdc68k_last_wheel / 0xf00) != (new_wheel / 0xf00))
- m_hdc68k_wheel_edge = 1;
-
- /* remember the last value and return the low 8 bits */
- m_hdc68k_last_wheel = new_wheel;
- return (new_wheel << 8) | 0xff;
+ // grab the new wheel value
+ uint16_t new_wheel = m_12badc[0].read_safe(0xffff);
+
+ // hack to display the wheel position
+ if (machine().input().code_pressed(KEYCODE_LSHIFT))
+ {
+ popmessage("wheel new=%04X", new_wheel);
+ }
+
+ if ((m_hdc68k_last_wheel & 0x0C00) != (new_wheel & 0x0C00))
+ {
+ /*
+ Why the 0x0C00 mask? It checks if the new wheel position has moved into a new range.
+ NNNN 00NN NNNN NNNN Thus range 0x0000 to 0x03FF
+ NNNN 01NN NNNN NNNN Thus range 0x0400 to 0x07FF
+ NNNN 10NN NNNN NNNN Thus range 0x0800 to 0x0BFF
+ NNNN 11NN NNNN NNNN Thus range 0x0C00 to 0x0FFF
+ */
+ if(m_hdc68k_wheel_edge == 1)
+ {
+ //Already pending a latch. There is no point in doing 2 really quick latches,
+ //do nothing for the same effect.
+ m_hdc68k_wheel_edge = 0;
+ }
+ else
+ {
+ m_hdc68k_wheel_edge = 1;
+ }
+ }
+
+ m_hdc68k_last_wheel = new_wheel;
+ return (new_wheel << 8) | 0xff;
}
@@ -445,11 +470,10 @@ void harddriv_state::hd68k_nwr_w(offs_t offset, uint16_t data)
void harddriv_state::hdc68k_wheel_edge_reset_w(uint16_t data)
{
/* reset the edge latch */
- m_hdc68k_wheel_edge = 0;
+ //m_hdc68k_wheel_edge = 1;
}
-
/*************************************
*
* 68000 ZRAM access