mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
(MESS) apple3: Further improvements to drive select (nw)
This commit is contained in:
parent
5c8f513e14
commit
f2d2237a65
@ -68,6 +68,31 @@ void wozfdc_device::device_start()
|
|||||||
|
|
||||||
timer = timer_alloc(0);
|
timer = timer_alloc(0);
|
||||||
delay_timer = timer_alloc(1);
|
delay_timer = timer_alloc(1);
|
||||||
|
|
||||||
|
save_item(NAME(last_6502_write));
|
||||||
|
save_item(NAME(mode_write));
|
||||||
|
save_item(NAME(mode_load));
|
||||||
|
save_item(NAME(active));
|
||||||
|
save_item(NAME(phases));
|
||||||
|
save_item(NAME(external_io_select));
|
||||||
|
save_item(NAME(cur_lss.tm));
|
||||||
|
save_item(NAME(cur_lss.cycles));
|
||||||
|
save_item(NAME(cur_lss.data_reg));
|
||||||
|
save_item(NAME(cur_lss.address));
|
||||||
|
save_item(NAME(cur_lss.write_start_time));
|
||||||
|
// save_item(NAME(cur_lss.write_buffer));
|
||||||
|
save_item(NAME(cur_lss.write_position));
|
||||||
|
save_item(NAME(cur_lss.write_line_active));
|
||||||
|
save_item(NAME(predicted_lss.tm));
|
||||||
|
save_item(NAME(predicted_lss.cycles));
|
||||||
|
save_item(NAME(predicted_lss.data_reg));
|
||||||
|
save_item(NAME(predicted_lss.address));
|
||||||
|
save_item(NAME(predicted_lss.write_start_time));
|
||||||
|
// save_item(NAME(predicted_lss.write_buffer));
|
||||||
|
save_item(NAME(predicted_lss.write_position));
|
||||||
|
save_item(NAME(predicted_lss.write_line_active));
|
||||||
|
save_item(NAME(drvsel));
|
||||||
|
save_item(NAME(enable1));
|
||||||
}
|
}
|
||||||
|
|
||||||
void wozfdc_device::device_reset()
|
void wozfdc_device::device_reset()
|
||||||
@ -92,7 +117,7 @@ void wozfdc_device::a3_update_drive_sel()
|
|||||||
{
|
{
|
||||||
floppy_image_device *newflop = NULL;
|
floppy_image_device *newflop = NULL;
|
||||||
|
|
||||||
if (!enable1)
|
if ((!enable1) || (!external_io_select))
|
||||||
{
|
{
|
||||||
newflop = floppy0->get_device();
|
newflop = floppy0->get_device();
|
||||||
}
|
}
|
||||||
@ -235,12 +260,13 @@ void wozfdc_device::control(int offset)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0xa:
|
case 0xa:
|
||||||
if(floppy != floppy0->get_device()) {
|
external_io_select = false;
|
||||||
if(active) {
|
if(floppy != floppy0->get_device()) {
|
||||||
lss_sync();
|
if(active) {
|
||||||
floppy->mon_w(true);
|
lss_sync();
|
||||||
}
|
floppy->mon_w(true);
|
||||||
|
}
|
||||||
floppy = floppy0->get_device();
|
floppy = floppy0->get_device();
|
||||||
if(active) {
|
if(active) {
|
||||||
floppy->mon_w(false);
|
floppy->mon_w(false);
|
||||||
@ -249,6 +275,7 @@ void wozfdc_device::control(int offset)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0xb:
|
case 0xb:
|
||||||
|
external_io_select = true;
|
||||||
if (!external_drive_select)
|
if (!external_drive_select)
|
||||||
{
|
{
|
||||||
if (floppy != floppy1->get_device())
|
if (floppy != floppy1->get_device())
|
||||||
|
@ -66,6 +66,7 @@ private:
|
|||||||
UINT8 phases;
|
UINT8 phases;
|
||||||
emu_timer *timer, *delay_timer;
|
emu_timer *timer, *delay_timer;
|
||||||
bool external_drive_select;
|
bool external_drive_select;
|
||||||
|
bool external_io_select;
|
||||||
|
|
||||||
lss cur_lss, predicted_lss;
|
lss cur_lss, predicted_lss;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user