mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
(MESS) Minor changes to tifdc; added 360K MFM format to ti99_dsk. (nw)
This commit is contained in:
parent
b43bb31fb0
commit
77f48db87e
@ -215,6 +215,10 @@ const ti99_sdf_format::format ti99_sdf_format::formats[] =
|
||||
floppy_image::FF_525, floppy_image::SSSD, floppy_image::FM,
|
||||
4000, 9, 40, 2, 256, {}, 0, {}, 16, 11, 45
|
||||
},
|
||||
{ // 360K 5.25" double density double sided
|
||||
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
|
||||
2000, 18, 40, 2, 256, {}, 0, {}, 40, 22, 24
|
||||
},
|
||||
|
||||
{ 0 }
|
||||
};
|
||||
@ -264,7 +268,7 @@ floppy_image_format_t::desc_e* ti99_sdf_format::get_desc_mfm(const format &f, in
|
||||
static floppy_image_format_t::desc_e desc_mfm[] =
|
||||
{
|
||||
{ SECTOR_INTERLEAVE_SKEW, 10, 0 },
|
||||
{ MFM, 0x4e, 40 }, // track lead-in
|
||||
{ MFM, 0x4e, f.gap_1 }, // track lead-in
|
||||
{ SECTOR_LOOP_START, 0, 17 }, // 18 sectors
|
||||
{ CRC_CCITT_START, 1 },
|
||||
{ RAW, 0x4489, 3 }, // A1 sync mark
|
||||
@ -275,7 +279,7 @@ floppy_image_format_t::desc_e* ti99_sdf_format::get_desc_mfm(const format &f, in
|
||||
{ SIZE_ID },
|
||||
{ CRC_END, 1 },
|
||||
{ CRC, 1 },
|
||||
{ MFM, 0x4e, 22 }, // Gap 2
|
||||
{ MFM, 0x4e, f.gap_2 }, // Gap 2
|
||||
{ MFM, 0x00, 12 },
|
||||
{ CRC_CCITT_START, 2 },
|
||||
{ RAW, 0x4489, 3 }, // A1
|
||||
@ -283,12 +287,12 @@ floppy_image_format_t::desc_e* ti99_sdf_format::get_desc_mfm(const format &f, in
|
||||
{ SECTOR_DATA, -1 }, // Sector data
|
||||
{ CRC_END, 2 },
|
||||
{ CRC, 2 },
|
||||
{ MFM, 0x4e, 24 }, // Gap 3
|
||||
{ MFM, 0x4e, f.gap_3 }, // Gap 3
|
||||
{ SECTOR_LOOP_END },
|
||||
{ MFM, 0x4e, 0 }, // track lead-out (712)
|
||||
{ END }
|
||||
};
|
||||
current_size = (40 + 18 * (3 + 1 + 4 + 2 + 22 + 12 + 3 + 1 + 256 + 2 + 24) + 0) * 16;
|
||||
current_size = (f.gap_1 + 18 * (3 + 1 + 4 + 2 + f.gap_2 + 12 + 3 + 1 + 256 + 2 + f.gap_3) + 0) * 16;
|
||||
end_gap_index = 22;
|
||||
|
||||
return desc_mfm;
|
||||
|
@ -223,7 +223,6 @@ WRITE8_MEMBER(ti_fdc_device::cruwrite)
|
||||
{ // On rising edge, set motor_running for 4.23s
|
||||
if (TRACE_CRU) logerror("tifdc: trigger motor (bit 1)\n");
|
||||
set_floppy_motors_running(true);
|
||||
m_motor_on_timer->adjust(attotime::from_msec(4230));
|
||||
}
|
||||
m_lastval = data;
|
||||
break;
|
||||
@ -317,16 +316,28 @@ void ti_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param
|
||||
*/
|
||||
void ti_fdc_device::set_floppy_motors_running(bool run)
|
||||
{
|
||||
if (TRACE_MOTOR)
|
||||
if (run)
|
||||
{
|
||||
if (m_DVENA==ASSERT_LINE && !run) logerror("tifdc: Motor STOP\n");
|
||||
if (m_DVENA==CLEAR_LINE && run) logerror("tifdc: Motor START\n");
|
||||
if (TRACE_MOTOR)
|
||||
if (m_DVENA==CLEAR_LINE) logerror("tifdc: Motor START\n");
|
||||
m_DVENA = ASSERT_LINE;
|
||||
m_motor_on_timer->adjust(attotime::from_msec(4230));
|
||||
}
|
||||
m_DVENA = (run)? ASSERT_LINE : CLEAR_LINE;
|
||||
else
|
||||
{
|
||||
if (TRACE_MOTOR)
|
||||
if (m_DVENA==ASSERT_LINE) logerror("tifdc: Motor STOP\n");
|
||||
m_DVENA = CLEAR_LINE;
|
||||
}
|
||||
|
||||
// The monoflop is connected to the READY line
|
||||
m_fd1771->set_force_ready(run);
|
||||
|
||||
// Set all motors
|
||||
for (int i=0; i < 3; i++)
|
||||
if (m_floppy[i] != NULL) m_floppy[i]->mon_w((run)? 0 : 1);
|
||||
|
||||
// The motor-on line also connects to the wait state logic
|
||||
operate_ready_line();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user