1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-25 11:17:26 +00:00

Made a first attempt at Acorn ADFS support plus the start of a suitable analyser.

This commit is contained in:
Thomas Harte
2016-09-25 17:46:11 -04:00
parent 6084020ab3
commit de863719d0
10 changed files with 193 additions and 21 deletions
+7 -5
View File
@@ -69,6 +69,7 @@ void StaticAnalyser::Acorn::AddTargets(
target.probability = 1.0; // TODO: a proper estimation
target.acorn.has_dfs = false;
target.acorn.has_adfs = false;
target.acorn.should_hold_shift = false;
// strip out inappropriate cartridges
target.cartridges = AcornCartridgesFrom(cartridges);
@@ -116,14 +117,15 @@ void StaticAnalyser::Acorn::AddTargets(
if(disks.size() > 0)
{
std::shared_ptr<Storage::Disk::Disk> disk = disks.front();
std::unique_ptr<Catalogue> catalogue = GetDFSCatalogue(disk);
if(catalogue == nullptr) catalogue = GetADFSCatalogue(disk);
if(catalogue)
std::unique_ptr<Catalogue> dfs_catalogue, adfs_catalogue;
dfs_catalogue = GetDFSCatalogue(disk);
if(dfs_catalogue == nullptr) adfs_catalogue = GetADFSCatalogue(disk);
if(dfs_catalogue || adfs_catalogue)
{
target.disks = disks;
target.acorn.has_dfs = true;
target.acorn.has_dfs = !!dfs_catalogue;
switch(catalogue->bootOption)
switch((dfs_catalogue ?: adfs_catalogue)->bootOption)
{
case Catalogue::BootOption::None: target.loadingCommand = "*CAT\n"; break;
default: target.acorn.should_hold_shift = true; break;