Skip to content

Commit 950d6ea

Browse files
committed
Fix up various things:
* kim1_cass.xml: Hopefully fix checked-in DOS line endings. * cpu/m68000/m68010.cpp: Use constructor delegation. * debugger/debugwin.cpp: Don't repeatedly get the focussed window in a loop.
1 parent 31cf546 commit 950d6ea

File tree

7 files changed

+143
-146
lines changed

7 files changed

+143
-146
lines changed

hash/kim1_cass.xml

Lines changed: 119 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,119 @@
1-
<?xml version="1.0"?>
2-
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3-
<!--
4-
license:CC0-1.0
5-
-->
6-
7-
<!--
8-
9-
Most KIM-1 software is complex to use. Refer to the manuals for information.
10-
11-
MAME's KIM-1 driver is not good at loading cassette recordings. So instead,
12-
the ones provided here are re-encodings made with a BIN to WAV conversion tool,
13-
such as KIMTAPE 0.5 (at default speed), eg:
14-
15-
kimtape -m -a0 -da1 a1.bin a1.wav
16-
17-
-->
18-
19-
<softwarelist name="kim1_cass" description="KIM-1 cassettes">
20-
21-
<software name="baseball">
22-
<description>Baseball</description>
23-
<year>1979</year>
24-
<publisher>Robert Leedom</publisher>
25-
<info name="usage" value="Loads in 3 parts. ID 01, ID 02, ID 03, GO 0200" />
26-
<part name="cass" interface="kim1_cass">
27-
<dataarea name="cass" size="26518684">
28-
<rom name="baseball.wav" size="26518684" crc="01e1f702" sha1="7ed49cc17781ca2abfb6496071a88fb8c1f17137"/>
29-
</dataarea>
30-
</part>
31-
</software>
32-
33-
<software name="focal">
34-
<description>FOCAL-65 (V3D)</description>
35-
<year>1977</year>
36-
<publisher>Aresco</publisher>
37-
<info name="usage" value="terminal, Loads in 2 parts. ID 01, ID 02, GO 2000" />
38-
<part name="cass" interface="kim1_cass">
39-
<dataarea name="cass" size="16230584">
40-
<rom name="focal.wav" size="16230584" crc="e8eb2679" sha1="7ef83fa37077987551e4e48f16ba1494b5d827e7"/>
41-
</dataarea>
42-
</part>
43-
</software>
44-
45-
<software name="hexpawn">
46-
<description>Hexpawn</description>
47-
<year>1978</year>
48-
<publisher>Robert Leedom</publisher>
49-
<info name="usage" value="ID 01, GO 0100" />
50-
<part name="cass" interface="kim1_cass">
51-
<dataarea name="cass" size="2361357">
52-
<rom name="hexpawn.wav" size="2361357" crc="2a0810be" sha1="c0656f9e99b071396263d98bbc87d2de9cd68e72"/>
53-
</dataarea>
54-
</part>
55-
</software>
56-
57-
<software name="kimbasic">
58-
<description>MOS TECH 6502 BASIC 9-digit v1.1</description>
59-
<year>1977</year>
60-
<publisher>Microsoft Co.</publisher>
61-
<info name="usage" value="terminal, ID 01, GO 4065" />
62-
<part name="cass" interface="kim1_cass">
63-
<dataarea name="cass" size="23219181">
64-
<rom name="kim basic 911.wav" size="23219181" crc="72470b66" sha1="0d4c00bde405ea491f27b1fffee7f07d45ee09a0"/>
65-
</dataarea>
66-
</part>
67-
</software>
68-
69-
<software name="kb6" cloneof="kimbasic">
70-
<description>MOS TECH 6502 BASIC 6-digit</description>
71-
<year>1977</year>
72-
<publisher>Microsoft Co.</publisher>
73-
<info name="usage" value="terminal, ID 01, GO 3D73" />
74-
<part name="cass" interface="kim1_cass">
75-
<dataarea name="cass" size="21267405">
76-
<rom name="kim basic 6.wav" size="21267405" crc="0ba87eaa" sha1="46f2f23a9a41a9fe95080c87acd7bc8929161717"/>
77-
</dataarea>
78-
</part>
79-
</software>
80-
81-
<software name="microade">
82-
<description>Micro-ADE</description>
83-
<year>1977</year>
84-
<publisher>MicroWare Ltd</publisher>
85-
<info name="usage" value="terminal, ID 01, GO 2000" />
86-
<part name="cass" interface="kim1_cass">
87-
<dataarea name="cass" size="10984941">
88-
<rom name="microade.wav" size="10984941" crc="defbe148" sha1="40ce84727d65f195aa1ef451714781c78b1d2785"/>
89-
</dataarea>
90-
</part>
91-
</software>
92-
93-
<software name="mchess">
94-
<description>Microchess</description>
95-
<year>1976</year>
96-
<publisher>Micro-Ware Ltd.</publisher>
97-
<info name="usage" value="Enter 'R -00F1=00 -17F9=C0 -1873X'. Play tape, pause when display shows 0000 (P). 'R -17F9=C1 -1873X', (P), 'R X'." />
98-
<part name="cass" interface="kim1_cass">
99-
<dataarea name="cass" size="9953338">
100-
<!-- IDs C0,C1 are the main program, IDs 01-05 are optional chess openings -->
101-
<rom name="microchess.wav" size="9953338" crc="c7584ae0" sha1="9f1ac8f439e083dd592664a0f1e6ba1530836120"/>
102-
</dataarea>
103-
</part>
104-
</software>
105-
106-
<software name="kimvent">
107-
<description>KIM-Venture</description>
108-
<year>1979</year>
109-
<publisher>Robert C. Leedom.</publisher>
110-
<info name="usage" value="Enter 'R -00F1=00 -17F9=A1 -1873X'. Play tape, pause when display shows 0000 (P). '-17F9=A2 -1873X', (P), '-17F9=A3 -1873X', (P), '-0100X'." />
111-
<part name="cass" interface="kim1_cass">
112-
<dataarea name="cass" size="9515290">
113-
<!-- IDs A1,A2,A3 are the main program, ID 06 is the K-V SCORE program -->
114-
<rom name="kimventure.wav" size="9515290" crc="bb3fde67" sha1="da525cb544e785d6751d759d905f0f4c7af483d7"/>
115-
</dataarea>
116-
</part>
117-
</software>
118-
119-
</softwarelist>
1+
<?xml version="1.0"?>
2+
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3+
<!--
4+
license:CC0-1.0
5+
-->
6+
7+
<!--
8+
9+
Most KIM-1 software is complex to use. Refer to the manuals for information.
10+
11+
MAME's KIM-1 driver is not good at loading cassette recordings. So instead,
12+
the ones provided here are re-encodings made with a BIN to WAV conversion tool,
13+
such as KIMTAPE 0.5 (at default speed), eg:
14+
15+
kimtape -m -a0 -da1 a1.bin a1.wav
16+
17+
-->
18+
19+
<softwarelist name="kim1_cass" description="KIM-1 cassettes">
20+
21+
<software name="baseball">
22+
<description>Baseball</description>
23+
<year>1979</year>
24+
<publisher>Robert Leedom</publisher>
25+
<info name="usage" value="Loads in 3 parts. ID 01, ID 02, ID 03, GO 0200" />
26+
<part name="cass" interface="kim1_cass">
27+
<dataarea name="cass" size="26518684">
28+
<rom name="baseball.wav" size="26518684" crc="01e1f702" sha1="7ed49cc17781ca2abfb6496071a88fb8c1f17137"/>
29+
</dataarea>
30+
</part>
31+
</software>
32+
33+
<software name="focal">
34+
<description>FOCAL-65 (V3D)</description>
35+
<year>1977</year>
36+
<publisher>Aresco</publisher>
37+
<info name="usage" value="terminal, Loads in 2 parts. ID 01, ID 02, GO 2000" />
38+
<part name="cass" interface="kim1_cass">
39+
<dataarea name="cass" size="16230584">
40+
<rom name="focal.wav" size="16230584" crc="e8eb2679" sha1="7ef83fa37077987551e4e48f16ba1494b5d827e7"/>
41+
</dataarea>
42+
</part>
43+
</software>
44+
45+
<software name="hexpawn">
46+
<description>Hexpawn</description>
47+
<year>1978</year>
48+
<publisher>Robert Leedom</publisher>
49+
<info name="usage" value="ID 01, GO 0100" />
50+
<part name="cass" interface="kim1_cass">
51+
<dataarea name="cass" size="2361357">
52+
<rom name="hexpawn.wav" size="2361357" crc="2a0810be" sha1="c0656f9e99b071396263d98bbc87d2de9cd68e72"/>
53+
</dataarea>
54+
</part>
55+
</software>
56+
57+
<software name="kimbasic">
58+
<description>MOS TECH 6502 BASIC 9-digit v1.1</description>
59+
<year>1977</year>
60+
<publisher>Microsoft Co.</publisher>
61+
<info name="usage" value="terminal, ID 01, GO 4065" />
62+
<part name="cass" interface="kim1_cass">
63+
<dataarea name="cass" size="23219181">
64+
<rom name="kim basic 911.wav" size="23219181" crc="72470b66" sha1="0d4c00bde405ea491f27b1fffee7f07d45ee09a0"/>
65+
</dataarea>
66+
</part>
67+
</software>
68+
69+
<software name="kb6" cloneof="kimbasic">
70+
<description>MOS TECH 6502 BASIC 6-digit</description>
71+
<year>1977</year>
72+
<publisher>Microsoft Co.</publisher>
73+
<info name="usage" value="terminal, ID 01, GO 3D73" />
74+
<part name="cass" interface="kim1_cass">
75+
<dataarea name="cass" size="21267405">
76+
<rom name="kim basic 6.wav" size="21267405" crc="0ba87eaa" sha1="46f2f23a9a41a9fe95080c87acd7bc8929161717"/>
77+
</dataarea>
78+
</part>
79+
</software>
80+
81+
<software name="microade">
82+
<description>Micro-ADE</description>
83+
<year>1977</year>
84+
<publisher>MicroWare Ltd</publisher>
85+
<info name="usage" value="terminal, ID 01, GO 2000" />
86+
<part name="cass" interface="kim1_cass">
87+
<dataarea name="cass" size="10984941">
88+
<rom name="microade.wav" size="10984941" crc="defbe148" sha1="40ce84727d65f195aa1ef451714781c78b1d2785"/>
89+
</dataarea>
90+
</part>
91+
</software>
92+
93+
<software name="mchess">
94+
<description>Microchess</description>
95+
<year>1976</year>
96+
<publisher>Micro-Ware Ltd.</publisher>
97+
<info name="usage" value="Enter 'R -00F1=00 -17F9=C0 -1873X'. Play tape, pause when display shows 0000 (P). 'R -17F9=C1 -1873X', (P), 'R X'." />
98+
<part name="cass" interface="kim1_cass">
99+
<dataarea name="cass" size="9953338">
100+
<!-- IDs C0,C1 are the main program, IDs 01-05 are optional chess openings -->
101+
<rom name="microchess.wav" size="9953338" crc="c7584ae0" sha1="9f1ac8f439e083dd592664a0f1e6ba1530836120"/>
102+
</dataarea>
103+
</part>
104+
</software>
105+
106+
<software name="kimvent">
107+
<description>KIM-Venture</description>
108+
<year>1979</year>
109+
<publisher>Robert C. Leedom.</publisher>
110+
<info name="usage" value="Enter 'R -00F1=00 -17F9=A1 -1873X'. Play tape, pause when display shows 0000 (P). '-17F9=A2 -1873X', (P), '-17F9=A3 -1873X', (P), '-0100X'." />
111+
<part name="cass" interface="kim1_cass">
112+
<dataarea name="cass" size="9515290">
113+
<!-- IDs A1,A2,A3 are the main program, ID 06 is the K-V SCORE program -->
114+
<rom name="kimventure.wav" size="9515290" crc="bb3fde67" sha1="da525cb544e785d6751d759d905f0f4c7af483d7"/>
115+
</dataarea>
116+
</part>
117+
</software>
118+
119+
</softwarelist>

src/devices/cpu/m68000/m68010.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ std::unique_ptr<util::disasm_interface> m68010_device::create_disassembler()
1414

1515

1616
m68010_device::m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
17-
: m68000_musashi_device(mconfig, tag, owner, clock, M68010, 16,24)
17+
: m68010_device(mconfig, M68010, tag, owner, clock)
1818
{
1919
}
2020

src/devices/cpu/m68000/m68010.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,24 @@
99

1010
class m68010_device : public m68000_musashi_device
1111
{
12-
protected:
13-
m68010_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, u32 clock);
14-
m68010_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor internal_map);
15-
1612
public:
1713
// construction/destruction
1814
m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
1915

2016
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
2117

22-
virtual u32 execute_min_cycles() const noexcept override { return 4; }
23-
virtual u32 execute_max_cycles() const noexcept override { return 158; }
18+
protected:
19+
m68010_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, u32 clock);
20+
m68010_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor internal_map);
2421

25-
// device-level overrides
22+
// device_t implementation
2623
virtual void device_start() override ATTR_COLD;
24+
25+
// device_execute_interface implementation
26+
virtual u32 execute_min_cycles() const noexcept override { return 4; }
27+
virtual u32 execute_max_cycles() const noexcept override { return 158; }
2728
};
2829

2930
DECLARE_DEVICE_TYPE(M68010, m68010_device)
3031

31-
#endif
32+
#endif // MAME_CPU_M68000_M68010_H

src/mame/irem/m62_bkungfu.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ class m62_bkungfu_state : public m62_state
182182
memory_share_creator<uint8_t> m_bkungfu_tileram;
183183

184184
required_region_ptr<uint8_t> m_blitterdatarom;
185-
186185
};
187186

188187

@@ -226,7 +225,8 @@ uint8_t m62_bkungfu_state::bkungfu_blitter_r(offs_t offset)
226225
// it also checks 0102, 0106, 0118, 011c before sending command 0x0c to draw high score data?
227226
// we initialize these to 0xfe when the MCU is 'reset'
228227

229-
logerror("%s: bkungfu_blitter_r %04x\n", machine().describe_context(), offset);
228+
if (!machine().side_effects_disabled())
229+
logerror("%s: bkungfu_blitter_r %04x\n", machine().describe_context(), offset);
230230

231231
return m_blittercmdram[offset];
232232
}
@@ -241,7 +241,7 @@ void m62_bkungfu_state::bkungfu_blitter_draw_text_inner(uint16_t blitterromptr,
241241
return;
242242

243243
uint16_t data_address;
244-
uint8_t* dataptr;
244+
const uint8_t *dataptr;
245245

246246
uint8_t poslow_attr;
247247
uint8_t poshigh_attr;
@@ -265,7 +265,6 @@ void m62_bkungfu_state::bkungfu_blitter_draw_text_inner(uint16_t blitterromptr,
265265
col_attr = 4;
266266
}
267267

268-
269268
uint8_t blitdat = dataptr[data_address++];
270269
while (blitdat != 0x00)
271270
{
@@ -284,7 +283,6 @@ void m62_bkungfu_state::bkungfu_blitter_draw_text_inner(uint16_t blitterromptr,
284283
{
285284
uint16_t position = (m_blittercmdram[poshigh_attr] << 8) | m_blittercmdram[poslow_attr];
286285

287-
288286
bkungfu_blitter_tilemap_w((position) & 0xfff, blitdat);
289287
bkungfu_blitter_tilemap_w((position + 1) & 0xfff, m_blittercmdram[col_attr]);
290288

@@ -331,10 +329,10 @@ void m62_bkungfu_state::bkungfu_blitter_draw_4_tile_column_row(int column, int r
331329

332330
for (int i = 0; i < 8; i += 2)
333331
{
334-
m_bkungfu_tileram[offset+i] = tile;
335-
m_bkungfu_tileram[offset+i+1] = attr;
332+
m_bkungfu_tileram[offset + i] = tile;
333+
m_bkungfu_tileram[offset + i + 1] = attr;
336334

337-
m_bg_tilemap->mark_tile_dirty((offset+i) >> 1);
335+
m_bg_tilemap->mark_tile_dirty((offset + i) >> 1);
338336

339337
}
340338
}
@@ -498,8 +496,8 @@ void m62_bkungfu_state::bkungfu_blitter_set_player_energy(int x, int y, uint8_t
498496
if (num > 8)
499497
return;
500498

501-
uint8_t energy_table_player[9] = { 0xc2, 0xcb, 0xca, 0xc9, 0xc8, 0xc7, 0xc6, 0xc5, 0xc4 };
502-
uint8_t energy_table_boss[9] = { 0xc2, 0xd3, 0xd2, 0xd1, 0xd0, 0xcf, 0xce, 0xcd, 0xcc };
499+
constexpr uint8_t energy_table_player[9] = { 0xc2, 0xcb, 0xca, 0xc9, 0xc8, 0xc7, 0xc6, 0xc5, 0xc4 };
500+
constexpr uint8_t energy_table_boss[9] = { 0xc2, 0xd3, 0xd2, 0xd1, 0xd0, 0xcf, 0xce, 0xcd, 0xcc };
503501

504502
int position = (y * 0x40) + x; // 0x40 tiles per line
505503
position <<= 1; // 2 bytes per entry in tilemap

src/osd/modules/debugger/debugwin.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,17 +236,16 @@ void debugger_windows::debugger_update()
236236
if (!winwindow_has_focus() && m_machine && !m_machine->debugger().cpu().is_stopped() && (m_machine->phase() == machine_phase::RUNNING))
237237
{
238238
// check to see if a debugger window has focus
239-
if (std::any_of(m_window_list.begin(), m_window_list.end(), [](auto const& window) { return window->has_focus(); }))
239+
HWND const focuswnd = GetFocus();
240+
if (std::any_of(m_window_list.begin(), m_window_list.end(), [focuswnd] (auto const &window) { return window->owns_window(focuswnd); }))
240241
{
241242
// see if the interrupt key is pressed and break if it is
242243
if (seq_pressed())
243244
{
244-
HWND const focuswnd = GetFocus();
245-
246245
m_machine->debugger().debug_break();
247246

248247
// if we were focused on some window's edit box, reset it to default
249-
for (auto& info : m_window_list)
248+
for (auto &info : m_window_list)
250249
info->restore_field(focuswnd);
251250
}
252251
}

src/osd/modules/debugger/win/debugwininfo.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,9 @@ void debugwin_info::destroy()
8282
}
8383

8484

85-
bool debugwin_info::has_focus() const
85+
bool debugwin_info::owns_window(HWND win) const
8686
{
87-
HWND focus_hwnd = GetFocus();
88-
return m_wnd == focus_hwnd || IsChild(m_wnd, focus_hwnd);
87+
return (win == m_wnd) || IsChild(m_wnd, win);
8988
}
9089

9190

src/osd/modules/debugger/win/debugwininfo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class debugwin_info : protected debugbase_info
4343
void set_foreground() const { SetForegroundWindow(m_wnd); }
4444
void redraw();
4545
void destroy();
46-
bool has_focus() const;
46+
bool owns_window(HWND win) const;
4747

4848
virtual bool set_default_focus();
4949
void prev_view(debugview_info *curview);

0 commit comments

Comments
 (0)