mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
upd765: Check write protect during write & format commands (#9145)
This commit is contained in:
parent
93b3d4bcde
commit
25dce8aa6d
@ -2005,6 +2005,14 @@ void upd765_family_device::write_data_start(floppy_info &fi)
|
||||
write_data_continue(fi);
|
||||
return;
|
||||
}
|
||||
else if(fi.dev && fi.dev->wpt_r()) {
|
||||
fi.st0 |= ST0_FAIL;
|
||||
fi.sub_state = COMMAND_DONE;
|
||||
st1 = ST1_NW;
|
||||
st2 = 0;
|
||||
write_data_continue(fi);
|
||||
return;
|
||||
}
|
||||
|
||||
write_data_continue(fi);
|
||||
}
|
||||
@ -2315,12 +2323,21 @@ void upd765_family_device::format_track_start(floppy_info &fi)
|
||||
set_ds(command[1] & 3);
|
||||
fi.ready = get_ready(command[1] & 3);
|
||||
|
||||
st1 = 0;
|
||||
st2 = 0;
|
||||
if(!fi.ready) {
|
||||
fi.st0 = (command[1] & 7) | ST0_NR | ST0_FAIL;
|
||||
fi.sub_state = TRACK_DONE;
|
||||
format_track_continue(fi);
|
||||
return;
|
||||
}
|
||||
else if(fi.dev && fi.dev->wpt_r()) {
|
||||
fi.st0 = (command[1] & 7) | ST0_FAIL;
|
||||
fi.sub_state = TRACK_DONE;
|
||||
st1 = ST1_NW;
|
||||
format_track_continue(fi);
|
||||
return;
|
||||
}
|
||||
fi.st0 = command[1] & 7;
|
||||
|
||||
if(fi.dev)
|
||||
@ -2360,8 +2377,8 @@ void upd765_family_device::format_track_continue(floppy_info &fi)
|
||||
LOGSTATE("TRACK_DONE\n");
|
||||
main_phase = PHASE_RESULT;
|
||||
result[0] = fi.st0;
|
||||
result[1] = 0;
|
||||
result[2] = 0;
|
||||
result[1] = st1;
|
||||
result[2] = st2;
|
||||
result[3] = 0;
|
||||
result[4] = 0;
|
||||
result[5] = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user