Added FM encoding support to upd765_dsk. [Curt Coder]

(MESS) bw2: Fixed floppy loading. [Curt Coder]
This commit is contained in:
Curt Coder 2013-01-08 17:57:56 +00:00
parent 732a6d11f5
commit e29bf515c4
21 changed files with 146 additions and 72 deletions

View File

@ -385,7 +385,7 @@ WRITE8_MEMBER(upd765_family_device::fifo_w)
if(cmd == C_INVALID) {
logerror("%s: Invalid on %02x\n", tag(), command[0]);
main_phase = PHASE_RESULT;
result[0] = 0x80;
result[0] = ST0_UNK;
result_pos = 1;
return;
}

View File

@ -1383,7 +1383,7 @@ void wd_fdc_t::live_run(attotime limit)
cur_live.state = READ_HEADER_BLOCK_HEADER;
}
if(dden && (cur_live.shift_reg == 0xf57e || cur_live.shift_reg == 0xf57e)) {
if(dden && (cur_live.shift_reg == 0xf57e || cur_live.shift_reg == 0xf57f)) {
cur_live.crc = cur_live.shift_reg == 0xf57e ? 0xef21 : 0xff00;
cur_live.data_separator_phase = false;
cur_live.bit_counter = 0;
@ -1860,8 +1860,7 @@ void wd_fdc_t::live_run(attotime limit)
cur_live.byte_counter = 0;
cur_live.data_bit_context = cur_live.data_reg & 1;
pll_start_writing(cur_live.tm);
if(dden)
live_write_fm(0x00);
live_write_fm(0x00);
}
break;
@ -1971,7 +1970,7 @@ const int wd_fdc_digital_t::wd_digital_step_times[4] = { 12000, 24000, 40000, 60
void wd_fdc_digital_t::pll_reset(bool fm, attotime when)
{
cur_pll.reset(when);
cur_pll.set_clock(clocks_to_attotime(1));
cur_pll.set_clock(clocks_to_attotime(fm ? 2 : 1)); // HACK
}
void wd_fdc_digital_t::pll_start_writing(attotime tm)

View File

@ -64,7 +64,7 @@ const char *a5105_format::extensions() const
// Unverified gap sizes
const a5105_format::format a5105_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSQD,
floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
2000, // 2us, 300rpm
5, 80, 2,
1024, {},

View File

@ -64,7 +64,7 @@ const char *apollo_format::extensions() const
// Unverified gap sizes
const apollo_format::format apollo_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
8, 77, 2,
1024, {},

View File

@ -64,7 +64,7 @@ const char *bw12_format::extensions() const
// Unverified gap sizes
const bw12_format::format bw12_format::formats[] = {
{ // 180KB BW 12
floppy_image::FF_525, floppy_image::SSDD,
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, // 2us, 300rpm
18, 40, 1,
256, {},
@ -72,7 +72,7 @@ const bw12_format::format bw12_format::formats[] = {
80, 50, 22, 80
},
{ // 360KB BW 12
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, // 2us, 300rpm
18, 40, 2,
256, {},
@ -80,7 +80,7 @@ const bw12_format::format bw12_format::formats[] = {
80, 50, 22, 80
},
{ // SVI-328
floppy_image::FF_525, floppy_image::SSDD,
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, // 2us, 300rpm
17, 40, 1,
256, {},
@ -88,7 +88,7 @@ const bw12_format::format bw12_format::formats[] = {
80, 50, 22, 80
},
{ // SVI-328
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, // 2us, 300rpm
17, 40, 2,
256, {},
@ -96,7 +96,7 @@ const bw12_format::format bw12_format::formats[] = {
80, 50, 22, 80
},
{ // Kaypro II
floppy_image::FF_525, floppy_image::SSDD,
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, // 2us, 300rpm
10, 40, 1,
512, {},

View File

@ -63,11 +63,11 @@ const char *bw2_format::extensions() const
const bw2_format::format bw2_format::formats[] = {
{ // 340K 3 1/2 inch double density
floppy_image::FF_35, floppy_image::SSDD,
floppy_image::FF_35, floppy_image::SSDD, floppy_image::MFM,
2000, 17, 80, 1, 256, {}, 0, {}, 80, 20, 22, 14
},
{ // 360K 3 1/2 inch double density
floppy_image::FF_35, floppy_image::SSDD,
floppy_image::FF_35, floppy_image::SSDD, floppy_image::MFM,
2000, 18, 80, 1, 256, {}, 0, {}, 80, 20, 22, 14
},
{}

View File

@ -64,7 +64,7 @@ const char *iq151_format::extensions() const
// Unverified gap sizes. May be FM.
const iq151_format::format iq151_format::formats[] = {
{
floppy_image::FF_8, floppy_image::SSSD,
floppy_image::FF_8, floppy_image::SSSD, floppy_image::MFM,
2000, // maybe
26, 77, 1,
128, {},

View File

@ -65,7 +65,7 @@ const char *kc85_format::extensions() const
// 640-800K on HD which handles 1.2M, really?
const kc85_format::format kc85_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
5, 80, 2,
1024, {},
@ -73,7 +73,7 @@ const kc85_format::format kc85_format::formats[] = {
80, 50, 22, 80
},
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
9, 80, 2,
512, {},
@ -81,7 +81,7 @@ const kc85_format::format kc85_format::formats[] = {
80, 50, 22, 80
},
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
16, 80, 2,
256, {},

View File

@ -64,7 +64,7 @@ const char *m5_format::extensions() const
// Unverified gap sizes
const m5_format::format m5_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, // 2us, 300rpm
18, 40, 2,
256, {},

View File

@ -83,7 +83,7 @@ const char *mm2_format::extensions() const
// Unverified gap sizes
const mm1_format::format mm1_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSQD,
floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
2000, // 2us, 300rpm
8, 80, 2,
512, {},
@ -96,7 +96,7 @@ const mm1_format::format mm1_format::formats[] = {
// Unverified gap sizes
const mm2_format::format mm2_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, // 2us, 300rpm
9, 40, 2,
512, {},
@ -106,7 +106,7 @@ const mm2_format::format mm2_format::formats[] = {
// 40 tracks but 18 sectors implying HD density at 300rpm, i.e. on
// 3.5" media? That makes no sense
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1000, // 1us, 300rpm, otherwise it just won't fit
18, 40, 2, // That line is just nonsense
512, {},

View File

@ -65,7 +65,7 @@ const char *nanos_format::extensions() const
// 800K on HD which handles 1.2M, really?
const nanos_format::format nanos_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
5, 80, 2,
1024, {},

View File

@ -158,47 +158,47 @@ const char *pc_format::extensions() const
const pc_format::format pc_format::formats[] = {
{ /* 160K 5 1/4 inch double density single sided */
floppy_image::FF_525, floppy_image::SSDD,
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, 8, 40, 1, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 320K 5 1/4 inch double density */
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 8, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 180K 5 1/4 inch double density single sided */
floppy_image::FF_525, floppy_image::SSDD,
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, 9, 40, 1, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 360K 5 1/4 inch double density */
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 9, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 400K 5 1/4 inch double density - gaps unverified */
floppy_image::FF_525, floppy_image::DSDD,
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 10, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 720K 5 1/4 inch quad density - gaps unverified */
floppy_image::FF_525, floppy_image::DSQD,
floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
2000, 9, 80, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 1200K 5 1/4 inch high density */
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, 15, 40, 2, 512, {}, 1, {}, 80, 50, 22, 84
},
{ /* 720K 3 1/2 inch double density */
floppy_image::FF_35, floppy_image::DSDD,
floppy_image::FF_35, floppy_image::DSDD, floppy_image::MFM,
2000, 9, 80, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 1200K 3 1/2 inch high density (japanese variant) - gaps unverified */
floppy_image::FF_35, floppy_image::DSHD,
floppy_image::FF_35, floppy_image::DSHD, floppy_image::MFM,
1200, 15, 40, 2, 512, {}, 1, {}, 80, 50, 22, 84
},
{ /* 1440K 3 1/2 inch high density */
floppy_image::FF_35, floppy_image::DSHD,
floppy_image::FF_35, floppy_image::DSHD, floppy_image::MFM,
1000, 18, 80, 2, 512, {}, 1, {}, 80, 50, 22, 108
},
{ /* 2880K 3 1/2 inch extended density - gaps unverified */
floppy_image::FF_35, floppy_image::DSED,
floppy_image::FF_35, floppy_image::DSED, floppy_image::MFM,
500, 36, 80, 2, 512, {}, 1, {}, 80, 50, 41, 80
},
{}

View File

@ -65,7 +65,7 @@ const char *pyldin_format::extensions() const
// 720K on HD which handles 1.2M, really?
const pyldin_format::format pyldin_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
9, 80, 2,
512, {},

View File

@ -64,7 +64,7 @@ const char *sf7000_format::extensions() const
const sf7000_format::format sf7000_format::formats[] = {
{
// mfm h=00 n=01 sc=10 gpl=2a d=ff
floppy_image::FF_3, floppy_image::SSDD,
floppy_image::FF_3, floppy_image::SSDD, floppy_image::MFM,
2000, // 2us, 300rpm
16, 40, 1,
256, {},

View File

@ -106,15 +106,54 @@ void upd765_format::build_sector_description(const format &f, UINT8 *sectdata, d
}
}
bool upd765_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
floppy_image_format_t::desc_e* upd765_format::get_desc_fm(const format &f, int &current_size, int &end_gap_index)
{
int type = find_size(io, form_factor);
if(type == -1)
return false;
static floppy_image_format_t::desc_e desc[29] = {
/* 00 */ { FM, 0xff, f.gap_4a },
/* 01 */ { FM, 0x00, 6 },
/* 02 */ { RAW, 0xf77a, 1 },
/* 03 */ { FM, 0xff, f.gap_1 },
/* 04 */ { SECTOR_LOOP_START, 0, f.sector_count-1 },
/* 05 */ { FM, 0x00, 12 },
/* 06 */ { CRC_CCITT_FM_START, 1 },
/* 07 */ { RAW, 0xf57e, 1 },
/* 08 */ { TRACK_ID_FM },
/* 09 */ { HEAD_ID_FM },
/* 10 */ { SECTOR_ID_FM },
/* 11 */ { SIZE_ID_FM },
/* 12 */ { CRC_END, 1 },
/* 13 */ { CRC, 1 },
/* 14 */ { FM, 0xff, f.gap_2 },
/* 15 */ { FM, 0x00, 6 },
/* 16 */ { CRC_CCITT_FM_START, 2 },
/* 17 */ { RAW, 0xf56f, 1 },
/* 18 */ { SECTOR_DATA_FM, -1 },
/* 19 */ { CRC_END, 2 },
/* 20 */ { CRC, 2 },
/* 21 */ { FM, 0xff, f.gap_3 },
/* 22 */ { SECTOR_LOOP_END },
/* 23 */ { FM, 0xff, 0 },
/* 24 */ { RAWBITS, 0xffff, 0 },
/* 25 */ { END }
};
const format &f = formats[type];
current_size = (f.gap_4a+6+1+f.gap_1)*16;
if(f.sector_base_size)
current_size += f.sector_base_size * f.sector_count * 16;
else {
for(int j=0; j != f.sector_count; j++)
current_size += f.per_sector_size[j] * 16;
}
current_size += (12+1+4+2+f.gap_2+6+1+2+f.gap_3) * f.sector_count * 16;
floppy_image_format_t::desc_e desc[] = {
end_gap_index = 23;
return desc;
}
floppy_image_format_t::desc_e* upd765_format::get_desc_mfm(const format &f, int &current_size, int &end_gap_index)
{
static floppy_image_format_t::desc_e desc[29] = {
/* 00 */ { MFM, 0x4e, f.gap_4a },
/* 01 */ { MFM, 0x00, 12 },
/* 02 */ { RAW, 0x5224, 3 },
@ -146,7 +185,7 @@ bool upd765_format::load(io_generic *io, UINT32 form_factor, floppy_image *image
/* 28 */ { END }
};
int current_size = (f.gap_4a+12+3+1+f.gap_1)*16;
current_size = (f.gap_4a+12+3+1+f.gap_1)*16;
if(f.sector_base_size)
current_size += f.sector_base_size * f.sector_count * 16;
else {
@ -155,15 +194,42 @@ bool upd765_format::load(io_generic *io, UINT32 form_factor, floppy_image *image
}
current_size += (12+3+1+4+2+f.gap_2+12+3+1+2+f.gap_3) * f.sector_count * 16;
end_gap_index = 26;
return desc;
}
bool upd765_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int type = find_size(io, form_factor);
if(type == -1)
return false;
const format &f = formats[type];
floppy_image_format_t::desc_e *desc;
int current_size;
int end_gap_index;
switch (f.encoding)
{
case floppy_image::FM:
desc = get_desc_fm(f, current_size, end_gap_index);
break;
case floppy_image::MFM:
default:
desc = get_desc_mfm(f, current_size, end_gap_index);
break;
}
int total_size = 200000000/f.cell_size;
int remaining_size = total_size - current_size;
if(remaining_size < 0)
throw emu_fatalerror("upd765_format: Incorrect track layout, max_size=%d, current_size=%d", total_size, current_size);
// Fixup the end gap
desc[26].p2 = remaining_size / 16;
desc[27].p2 = remaining_size & 15;
desc[27].p1 >>= 16-(remaining_size & 15);
desc[end_gap_index].p2 = remaining_size / 16;
desc[end_gap_index + 1].p2 = remaining_size & 15;
desc[end_gap_index + 1].p1 >>= 16-(remaining_size & 15);
int track_size = compute_track_size(f);
@ -312,7 +378,16 @@ void upd765_format::check_compatibility(floppy_image *image, int *candidates, in
// Extract the sectors
generate_bitstream_from_track(0, 0, formats[candidates[0]].cell_size, bitstream, track_size, image);
extract_sectors_from_bitstream_mfm_pc(bitstream, track_size, sectors, sectdata, sizeof(sectdata));
switch (formats[candidates[0]].encoding)
{
case floppy_image::FM:
extract_sectors_from_bitstream_fm_pc(bitstream, track_size, sectors, sectdata, sizeof(sectdata));
break;
case floppy_image::MFM:
extract_sectors_from_bitstream_mfm_pc(bitstream, track_size, sectors, sectdata, sizeof(sectdata));
break;
}
// Check compatibility with every candidate, copy in-place
int *ok_cands = candidates;
@ -357,7 +432,16 @@ void upd765_format::extract_sectors(floppy_image *image, const format &f, desc_s
// Extract the sectors
generate_bitstream_from_track(track, head, f.cell_size, bitstream, track_size, image);
extract_sectors_from_bitstream_mfm_pc(bitstream, track_size, sectors, sectdata, sizeof(sectdata));
switch (f.encoding)
{
case floppy_image::FM:
extract_sectors_from_bitstream_fm_pc(bitstream, track_size, sectors, sectdata, sizeof(sectdata));
break;
case floppy_image::MFM:
extract_sectors_from_bitstream_mfm_pc(bitstream, track_size, sectors, sectdata, sizeof(sectdata));
break;
}
for(int i=0; i<f.sector_count; i++) {
desc_s &ds = sdesc[i];

View File

@ -17,6 +17,7 @@ public:
struct format {
UINT32 form_factor; // See floppy_image for possible values
UINT32 variant; // See floppy_image for possible values
UINT32 encoding; // See floppy_image for possible values
int cell_size; // See floppy_image_format_t for details
int sector_count;
@ -42,6 +43,8 @@ public:
private:
const format *formats;
floppy_image_format_t::desc_e* get_desc_fm(const format &f, int &current_size, int &end_gap_index);
floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int &current_size, int &end_gap_index);
int find_size(io_generic *io, UINT32 form_factor);
int compute_track_size(const format &f) const;
void build_sector_description(const format &d, UINT8 *sectdata, desc_s *sectors) const;

View File

@ -64,7 +64,7 @@ const char *xdf_format::extensions() const
// Unverified gap sizes
const xdf_format::format xdf_format::formats[] = {
{
floppy_image::FF_525, floppy_image::DSHD,
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, // 1us, 360rpm
8, 77, 2,
1024, {},

View File

@ -29,7 +29,7 @@
TODO:
- Osborne 1 DD disk format
- floppy is broken
- floppy motor off timer
*/
@ -95,7 +95,8 @@ void bw12_state::set_floppy_motor_off_timer()
*/
m_floppy_timer->adjust(attotime::zero);
//m_floppy_timer->adjust(attotime::zero);
floppy_motor_off();
}
}
@ -384,13 +385,6 @@ void bw12_state::video_start()
m_char_rom = memregion("chargen")->base();
}
/* UPD765 Interface */
void bw12_state::fdc_intrq_w(bool state)
{
m_fdc_int = state;
}
/* PIA6821 Interface */
READ8_MEMBER( bw12_state::pia_pa_r )
@ -419,7 +413,7 @@ READ8_MEMBER( bw12_state::pia_pa_r )
data |= (m_pit_out2 << 4);
data |= (m_key_stb << 5);
data |= (m_key_sin << 6);
data |= (m_fdc_int << 7);
data |= (m_fdc->get_irq() ? 1 : 0) << 7;
return data;
}
@ -595,7 +589,6 @@ void bw12_state::machine_start()
save_item(NAME(m_key_sin));
save_item(NAME(m_key_stb));
save_item(NAME(m_key_shift));
save_item(NAME(m_fdc_int));
save_item(NAME(m_motor_on));
save_item(NAME(m_motor0));
save_item(NAME(m_motor1));
@ -719,5 +712,5 @@ ROM_END
/* System Drivers */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1984, bw12, 0, 0, bw12, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 12", GAME_SUPPORTS_SAVE )
COMP( 1984, bw14, bw12, 0, bw14, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 14", GAME_SUPPORTS_SAVE )
COMP( 1984, bw12, 0, 0, bw12, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 12", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
COMP( 1984, bw14, bw12, 0, bw14, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 14", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )

View File

@ -649,7 +649,7 @@ static MACHINE_CONFIG_START( bw2, bw2_state )
MCFG_MSM6255_ADD(MSM6255_TAG, XTAL_16MHz, 0, SCREEN_TAG, lcdc_map)
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
MCFG_I8251_ADD(I8251_TAG, default_i8251_interface)
MCFG_WD2797x_ADD(WD2797_TAG, XTAL_16MHz/8)
MCFG_WD2797x_ADD(WD2797_TAG, XTAL_16MHz/16)
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG":0", bw2_floppies, "35dd", NULL, bw2_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG":1", bw2_floppies, NULL, NULL, bw2_state::floppy_formats)
MCFG_BW2_EXPANSION_SLOT_ADD(BW2_EXPANSION_SLOT_TAG, XTAL_16MHz, bw2_expansion_cards, NULL, NULL)

View File

@ -74,7 +74,6 @@ public:
DECLARE_READ8_MEMBER( ls259_r );
DECLARE_WRITE8_MEMBER( ls259_w );
void fdc_intrq_w(bool state);
DECLARE_READ8_MEMBER( pia_pa_r );
DECLARE_READ_LINE_MEMBER( pia_cb1_r );
DECLARE_WRITE_LINE_MEMBER( pia_cb2_w );
@ -100,7 +99,6 @@ public:
int m_key_shift;
/* floppy state */
int m_fdc_int;
int m_motor_on;
int m_motor0;
int m_motor1;

View File

@ -149,9 +149,6 @@ void comx_fd_device::device_start()
// find memory regions
m_rom = memregion("c000")->base();
// initialize floppy controller
m_fdc->dden_w(1);
// state saving
save_item(NAME(m_ds));
save_item(NAME(m_q));
@ -166,8 +163,9 @@ void comx_fd_device::device_start()
void comx_fd_device::device_reset()
{
m_fdc->set_floppy(NULL);
m_fdc->reset();
m_fdc->dden_w(1);
m_fdc->set_floppy(NULL);
m_addr = 0;
m_disb = 1;
@ -214,7 +212,7 @@ UINT8 comx_fd_device::comx_mrd_r(address_space &space, offs_t offset, int *extro
data = m_rom[offset & 0x1fff];
*extrom = 0;
}
if (offset >= 0xc000 && offset < 0xe000)
else if (offset >= 0xc000 && offset < 0xe000)
{
data = m_rom[offset & 0x1fff];
}
@ -236,12 +234,11 @@ UINT8 comx_fd_device::comx_io_r(address_space &space, offs_t offset)
if (m_q)
{
data = 0xfe | (m_fdc->intrq_r() ? 1 : 0);
//logerror("%s FDC intrq read %02x\n", machine().describe_context(), data);
}
else
{
data = m_fdc->gen_r(m_addr);
logerror("%s FDC read %u:%02x\n", machine().describe_context(), m_addr,data);
if (m_addr==3) logerror("%s FDC read %u:%02x\n", machine().describe_context(), m_addr,data);
}
}