1
0
mirror of https://github.com/pevans/erc-c.git synced 2024-11-27 20:51:17 +00:00

Lock disk drives during disassembly

This commit is contained in:
Peter Evans 2018-01-28 18:06:14 -06:00
parent 33b44d1a70
commit 418688cd15
2 changed files with 13 additions and 1 deletions

View File

@ -332,7 +332,12 @@ apple2_run_loop(apple2 *mach)
}
while (vm_screen_active(mach->screen)) {
//mos6502_dis_opcode(mach->cpu, stdout, mach->cpu->PC);
mach->drive1->locked = true;
mach->drive2->locked = true;
mos6502_dis_opcode(mach->cpu, stdout, mach->cpu->PC);
mach->drive1->locked = false;
mach->drive2->locked = false;
mos6502_execute(mach->cpu);
if (vm_screen_dirty(mach->screen)) {

View File

@ -26,6 +26,7 @@ apple2_dd_create()
// ProDOS disk will have 140k, but a NIB file would have more.
drive->data = NULL;
drive->locked = false;
drive->track_pos = 0;
drive->sector_pos = 0;
drive->online = false;
@ -216,6 +217,12 @@ apple2_dd_set_mode(apple2dd *drive, int mode)
void
apple2_dd_shift(apple2dd *drive, int pos)
{
// When locked is true, we shouldn't shift our position by any
// number.
if (drive->locked) {
return;
}
drive->sector_pos += pos;
while (drive->sector_pos > MAX_SECTOR_POS) {