Skip to content

Commit 5f4e381

Browse files
authored
heathzenith/mms77316_fdc.cpp,z37_fdc.cpp: Minor cleanup, improve logs. (#12523)
1 parent 79e5eac commit 5f4e381

File tree

2 files changed

+53
-35
lines changed

2 files changed

+53
-35
lines changed

src/mame/heathzenith/mms77316_fdc.cpp

+51-33
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
// copyright-holders:Mark Garlanger
33
/***************************************************************************
44
5-
Magnolia Microsystems 77316 soft-sectored floppy controller
5+
Magnolia Microsystems 77316 DD soft-sectored floppy controller
66
7+
Supported upto 8 floppy drives
8+
- 4 8" drives
9+
- 4 5.25" drives
710
811
****************************************************************************/
912

@@ -17,6 +20,7 @@
1720
#define LOG_FUNC (1U << 4) // Function calls
1821
#define LOG_ERR (1U << 5) // log errors
1922
#define LOG_BURST (1U << 6) // burst mode
23+
#define LOG_DATA (1U << 7) // data read/writes
2024

2125
#define VERBOSE (0)
2226

@@ -28,6 +32,7 @@
2832
#define LOGFUNC(...) LOGMASKED(LOG_FUNC, __VA_ARGS__)
2933
#define LOGERR(...) LOGMASKED(LOG_ERR, __VA_ARGS__)
3034
#define LOGBURST(...) LOGMASKED(LOG_BURST, __VA_ARGS__)
35+
#define LOGDATA(...) LOGMASKED(LOG_DATA, __VA_ARGS__)
3136

3237
#ifdef _MSC_VER
3338
#define FUNCNAME __func__
@@ -49,6 +54,8 @@ mms77316_fdc_device::mms77316_fdc_device(const machine_config &mconfig, const ch
4954

5055
void mms77316_fdc_device::ctrl_w(u8 val)
5156
{
57+
LOGREG("%s: val: %d\n", FUNCNAME, val);
58+
5259
u8 floppy_drive = BIT(val, 0, 3);
5360
u8 five_in_drv = bool(BIT(val, ctrl_525DriveSel_c));
5461

@@ -58,6 +65,8 @@ void mms77316_fdc_device::ctrl_w(u8 val)
5865

5966
m_fdc->dden_w(BIT(val, ctrl_SetMFMRecording_c));
6067

68+
LOGLINES("%s: intrq allowed: %d, drq allowed: %d\n", FUNCNAME, m_irq_allowed, m_drq_allowed);
69+
6170
if (m_irq_allowed)
6271
{
6372
m_irq_cb(m_irq);
@@ -69,12 +78,10 @@ void mms77316_fdc_device::ctrl_w(u8 val)
6978
m_drq_cb(CLEAR_LINE);
7079
}
7180

72-
LOGREG("%s: floppydrive: %d\n", FUNCNAME, floppy_drive);
81+
LOGDRIVE("%s: floppydrive: %d, 5.25 in: %d\n", FUNCNAME, floppy_drive, five_in_drv);
7382

7483
m_fdc->set_floppy(m_floppies[floppy_drive]->get_device());
7584

76-
LOGREG("%s: intrq allowed: %d, drq allowed: %d\n", FUNCNAME, m_irq_allowed, m_drq_allowed);
77-
7885
m_fdc->set_clock(five_in_drv ? FIVE_IN_CLOCK : EIGHT_IN_CLOCK);
7986

8087
for (int i = 4; i < 8; i++)
@@ -94,11 +101,13 @@ void mms77316_fdc_device::ctrl_w(u8 val)
94101

95102
void mms77316_fdc_device::data_w(u8 val)
96103
{
104+
LOGDATA("%s: val: %d\n", FUNCNAME, val);
105+
97106
if (burst_mode_r() && !m_drq && !m_irq)
98107
{
99108
LOGBURST("%s: burst_mode_r\n", FUNCNAME);
100-
m_wait_cb(ASSERT_LINE);
101109

110+
m_wait_cb(ASSERT_LINE);
102111
return;
103112
}
104113

@@ -107,7 +116,7 @@ void mms77316_fdc_device::data_w(u8 val)
107116

108117
void mms77316_fdc_device::write(offs_t reg, u8 val)
109118
{
110-
LOGFUNC("%s: reg: %d val: 0x%02x\n", FUNCNAME, reg, val);
119+
LOGREG("%s: reg: %d val: 0x%02x\n", FUNCNAME, reg, val);
111120

112121
switch (reg)
113122
{
@@ -117,7 +126,7 @@ void mms77316_fdc_device::write(offs_t reg, u8 val)
117126
case 1:
118127
case 2:
119128
case 3:
120-
LOGFUNC("%s: Unexpected port write reg: %d val: 0x%02x\n", FUNCNAME, reg, val);
129+
LOGERR("%s: Unexpected port write reg: %d val: 0x%02x\n", FUNCNAME, reg, val);
121130
break;
122131
case 4:
123132
m_fdc->cmd_w(val);
@@ -136,15 +145,22 @@ void mms77316_fdc_device::write(offs_t reg, u8 val)
136145

137146
u8 mms77316_fdc_device::data_r()
138147
{
148+
u8 data = 0;
149+
139150
if (burst_mode_r() && !m_drq && !m_irq)
140151
{
141152
LOGBURST("%s: burst_mode setting wait state\n", FUNCNAME);
142-
m_wait_cb(ASSERT_LINE);
143153

144-
return(0x00);
154+
m_wait_cb(ASSERT_LINE);
145155
}
156+
else
157+
{
158+
data = m_fdc->data_r();
159+
}
160+
161+
LOGDATA("%s: data: %d\n", FUNCNAME, data);
146162

147-
return m_fdc->data_r();
163+
return data;
148164
}
149165

150166
u8 mms77316_fdc_device::read(offs_t reg)
@@ -175,7 +191,7 @@ u8 mms77316_fdc_device::read(offs_t reg)
175191
break;
176192
}
177193

178-
LOGFUNC("%s: reg: %d val: 0x%02x\n", FUNCNAME, reg, value);
194+
LOGREG("%s: reg: %d val: 0x%02x\n", FUNCNAME, reg, value);
179195

180196
return value;
181197
}
@@ -196,9 +212,10 @@ void mms77316_fdc_device::device_reset()
196212
m_irq = false;
197213
m_drq_count = 0;
198214

199-
m_irq_cb(0);
200-
m_drq_cb(0);
201-
m_wait_cb(0);
215+
m_irq_cb(CLEAR_LINE);
216+
m_drq_cb(CLEAR_LINE);
217+
m_wait_cb(CLEAR_LINE);
218+
202219
for (int i = 0; i < 4; i++)
203220
{
204221
auto elem = m_floppies[i];
@@ -217,25 +234,25 @@ void mms77316_fdc_device::device_reset()
217234
static void mms_5_in_floppies(device_slot_interface &device)
218235
{
219236
// H-17-1 -- SS 48tpi
220-
device.option_add("5_ssdd", FLOPPY_525_SSDD);
237+
device.option_add("5_ss_dd", FLOPPY_525_SSDD);
221238
// SS 96tpi
222-
device.option_add("5_ssqd", FLOPPY_525_SSQD);
239+
device.option_add("5_ss_qd", FLOPPY_525_SSQD);
223240
// DS 48tpi
224-
device.option_add("5_dd", FLOPPY_525_DD);
241+
device.option_add("5_ds_dd", FLOPPY_525_DD);
225242
// H-17-4 / H-17-5 -- DS 96tpi
226-
device.option_add("5_qd", FLOPPY_525_QD);
243+
device.option_add("5_ds_qd", FLOPPY_525_QD);
227244
}
228245

229246
static void mms_8_in_floppies(device_slot_interface &device)
230247
{
231248
// 8" DSDD
232-
device.option_add("8_sssd", FLOPPY_8_SSSD);
249+
device.option_add("8_ss_sd", FLOPPY_8_SSSD);
233250
// 8" SSDD
234-
device.option_add("8_dssd", FLOPPY_8_DSSD);
251+
device.option_add("8_ds_sd", FLOPPY_8_DSSD);
235252
// 8" DSDD
236-
device.option_add("8_ssdd", FLOPPY_8_SSDD);
253+
device.option_add("8_ss_dd", FLOPPY_8_SSDD);
237254
// 8" SSDD
238-
device.option_add("8_dsdd", FLOPPY_8_DSDD);
255+
device.option_add("8_ds_dd", FLOPPY_8_DSDD);
239256
}
240257

241258
void mms77316_fdc_device::device_add_mconfig(machine_config &config)
@@ -245,38 +262,38 @@ void mms77316_fdc_device::device_add_mconfig(machine_config &config)
245262
m_fdc->drq_wr_callback().set(FUNC(mms77316_fdc_device::set_drq));
246263

247264
// 8" Floppy drives
248-
FLOPPY_CONNECTOR(config, m_floppies[0], mms_8_in_floppies, "8_dsdd", floppy_image_device::default_mfm_floppy_formats);
265+
FLOPPY_CONNECTOR(config, m_floppies[0], mms_8_in_floppies, "8_ds_dd", floppy_image_device::default_mfm_floppy_formats);
249266
m_floppies[0]->enable_sound(true);
250-
FLOPPY_CONNECTOR(config, m_floppies[1], mms_8_in_floppies, "8_dsdd", floppy_image_device::default_mfm_floppy_formats);
267+
FLOPPY_CONNECTOR(config, m_floppies[1], mms_8_in_floppies, "8_ds_dd", floppy_image_device::default_mfm_floppy_formats);
251268
m_floppies[1]->enable_sound(true);
252-
FLOPPY_CONNECTOR(config, m_floppies[2], mms_8_in_floppies, "8_dsdd", floppy_image_device::default_mfm_floppy_formats);
269+
FLOPPY_CONNECTOR(config, m_floppies[2], mms_8_in_floppies, "8_ds_dd", floppy_image_device::default_mfm_floppy_formats);
253270
m_floppies[2]->enable_sound(true);
254-
FLOPPY_CONNECTOR(config, m_floppies[3], mms_8_in_floppies, "8_dsdd", floppy_image_device::default_mfm_floppy_formats);
271+
FLOPPY_CONNECTOR(config, m_floppies[3], mms_8_in_floppies, "8_ds_dd", floppy_image_device::default_mfm_floppy_formats);
255272
m_floppies[3]->enable_sound(true);
256273

257274
// 5" Floppy drives
258-
FLOPPY_CONNECTOR(config, m_floppies[4], mms_5_in_floppies, "5_qd", floppy_image_device::default_mfm_floppy_formats);
275+
FLOPPY_CONNECTOR(config, m_floppies[4], mms_5_in_floppies, "5_ds_qd", floppy_image_device::default_mfm_floppy_formats);
259276
m_floppies[4]->enable_sound(true);
260-
FLOPPY_CONNECTOR(config, m_floppies[5], mms_5_in_floppies, "5_qd", floppy_image_device::default_mfm_floppy_formats);
277+
FLOPPY_CONNECTOR(config, m_floppies[5], mms_5_in_floppies, "5_ds_qd", floppy_image_device::default_mfm_floppy_formats);
261278
m_floppies[5]->enable_sound(true);
262-
FLOPPY_CONNECTOR(config, m_floppies[6], mms_5_in_floppies, "5_qd", floppy_image_device::default_mfm_floppy_formats);
279+
FLOPPY_CONNECTOR(config, m_floppies[6], mms_5_in_floppies, "5_ds_qd", floppy_image_device::default_mfm_floppy_formats);
263280
m_floppies[6]->enable_sound(true);
264-
FLOPPY_CONNECTOR(config, m_floppies[7], mms_5_in_floppies, "5_qd", floppy_image_device::default_mfm_floppy_formats);
281+
FLOPPY_CONNECTOR(config, m_floppies[7], mms_5_in_floppies, "5_ds_qd", floppy_image_device::default_mfm_floppy_formats);
265282
m_floppies[7]->enable_sound(true);
266283
}
267284

268285
void mms77316_fdc_device::set_irq(int state)
269286
{
270287
LOGLINES("set irq, allowed: %d state: %d\n", m_irq_allowed, state);
271288

272-
if (state)
289+
m_irq = state;
290+
291+
if (m_irq)
273292
{
274293
m_wait_cb(CLEAR_LINE);
275294
m_drq_count = 0;
276295
}
277296

278-
m_irq = state;
279-
280297
m_irq_cb(m_irq_allowed ? m_irq : CLEAR_LINE);
281298
}
282299

@@ -289,6 +306,7 @@ void mms77316_fdc_device::set_drq(int state)
289306
if (burst_mode_r())
290307
{
291308
LOGBURST("%s: in burst mode drq: %d, m_drq_count: %d\n", FUNCNAME, m_drq, m_drq_count);
309+
292310
if (m_drq)
293311
{
294312
m_wait_cb(CLEAR_LINE);

src/mame/heathzenith/z37_fdc.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ u8 heath_z37_fdc_device::data_r()
131131

132132
void heath_z37_fdc_device::write(offs_t reg, u8 val)
133133
{
134-
LOGFUNC("%s: reg: %d val: %d\n", FUNCNAME, reg, val);
134+
LOGFUNC("%s: reg: %d val: 0x%02x\n", FUNCNAME, reg, val);
135135

136136
switch (reg)
137137
{
@@ -169,7 +169,7 @@ u8 heath_z37_fdc_device::read(offs_t reg)
169169
break;
170170
}
171171

172-
LOGFUNC("%s: reg: %d val: %d\n", FUNCNAME, reg, value);
172+
LOGFUNC("%s: reg: %d val: 0x%02x\n", FUNCNAME, reg, value);
173173

174174
return value;
175175
}

0 commit comments

Comments
 (0)