(MESS) Minor changes to tifdc; added 360K MFM format to ti99_dsk. (nw)

This commit is contained in:
Michael Zapf 2014-02-13 16:20:00 +00:00
parent b43bb31fb0
commit 77f48db87e
2 changed files with 24 additions and 9 deletions

View File

@ -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;

View File

@ -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();
}