diff --git a/Components/1770/1770.cpp b/Components/1770/1770.cpp index 0b9409c8d..4c3f2ab4f 100644 --- a/Components/1770/1770.cpp +++ b/Components/1770/1770.cpp @@ -12,7 +12,7 @@ using namespace WD; WD1770::WD1770() : - Storage::Disk::Controller(8000000, 1, 300), + Storage::Disk::Controller(8000000, 16, 300), status_(0), interesting_event_mask_(Event::Command), resume_point_(0), diff --git a/Machines/Electron/Electron.cpp b/Machines/Electron/Electron.cpp index bd3efa1d2..efd60ceb3 100644 --- a/Machines/Electron/Electron.cpp +++ b/Machines/Electron/Electron.cpp @@ -503,8 +503,8 @@ void Machine::configure_as_target(const StaticAnalyser::Target &target) } if(target.acorn.has_adfs) { - set_rom(ROMSlot1, _adfs, true); - set_rom(ROMSlot2, std::vector(_adfs.begin() + 16384, _adfs.end()), true); + set_rom(ROMSlot4, _adfs, true); + set_rom(ROMSlot5, std::vector(_adfs.begin() + 16384, _adfs.end()), true); } _plus3->set_disk(target.disks.front(), 0); diff --git a/StaticAnalyser/Acorn/StaticAnalyser.cpp b/StaticAnalyser/Acorn/StaticAnalyser.cpp index bd2680a7c..f15bf1a65 100644 --- a/StaticAnalyser/Acorn/StaticAnalyser.cpp +++ b/StaticAnalyser/Acorn/StaticAnalyser.cpp @@ -126,11 +126,20 @@ void StaticAnalyser::Acorn::AddTargets( target.acorn.has_dfs = !!dfs_catalogue; target.acorn.has_adfs = !!adfs_catalogue; - switch((dfs_catalogue ?: adfs_catalogue)->bootOption) + std::string adfs_command; + Catalogue::BootOption bootOption = (dfs_catalogue ?: adfs_catalogue)->bootOption; + switch(bootOption) { - case Catalogue::BootOption::None: target.loadingCommand = "*CAT\n"; break; - default: target.acorn.should_hold_shift = true; break; + case Catalogue::BootOption::None: adfs_command = "*CAT\n"; break; + case Catalogue::BootOption::LoadBOOT: adfs_command = "*MOUNT\n*LOAD !BOOT\n"; break; + case Catalogue::BootOption::RunBOOT: adfs_command = "*MOUNT\n*RUN !BOOT\n"; break; + case Catalogue::BootOption::ExecBOOT: adfs_command = "*MOUNT\n*EXEC !BOOT\n"; break; } + + if(target.acorn.has_dfs && bootOption != Catalogue::BootOption::None) + target.acorn.should_hold_shift = true; + else + target.loadingCommand = adfs_command; } }