diff --git a/Machines/Tandy/CoCo/DiskController.cpp b/Machines/Tandy/CoCo/DiskController.cpp index d9ee8b98b..5ed44e950 100644 --- a/Machines/Tandy/CoCo/DiskController.cpp +++ b/Machines/Tandy/CoCo/DiskController.cpp @@ -16,8 +16,6 @@ DiskController::DiskController() : WD::WD1770(P1773) { } void DiskController::set_control(const uint8_t value) { - // TODO: - // // b7: halt flag, 1 = enabled // b6: drive select 3 // b5: density, 1 = double diff --git a/Machines/Utility/ROMCatalogue.cpp b/Machines/Utility/ROMCatalogue.cpp index 954773fa1..52734d064 100644 --- a/Machines/Utility/ROMCatalogue.cpp +++ b/Machines/Utility/ROMCatalogue.cpp @@ -1186,7 +1186,7 @@ const std::vector &Description::all_roms() { { OlivettiProdest128, "Thomson", - "the Olivetti Prodest 127 ROM", + "the Olivetti Prodest 128 ROM", "pc128.rom", 64_kb, 0xfc173504u diff --git a/OSBindings/Qt/mainwindow.cpp b/OSBindings/Qt/mainwindow.cpp index 0243c4d8b..cdf99be47 100644 --- a/OSBindings/Qt/mainwindow.cpp +++ b/OSBindings/Qt/mainwindow.cpp @@ -14,9 +14,9 @@ #include #include +#include "../../Configurable/StandardOptions.hpp" #include "../../Machines/Utility/ROMLibrary.hpp" #include "../../Numeric/CRC.hpp" -#include "../../Configurable/StandardOptions.hpp" namespace { @@ -282,7 +282,7 @@ void MainWindow::launchMachine() { } } - // Fallback: check the ROM catalogue. + // Fallback: check the ROM library. if(results.find(description.name) == results.end()) { auto data = ROM::included_rom_image(description.name); if(data.has_value()) { @@ -1024,6 +1024,7 @@ void MainWindow::setButtonPressed(const int index, const bool isPressed) { #include "../../Analyser/Static/MSX/Target.hpp" #include "../../Analyser/Static/Oric/Target.hpp" #include "../../Analyser/Static/PCCompatible/Target.hpp" +#include "../../Analyser/Static/TandyCoCo/Target.hpp" #include "../../Analyser/Static/Thomson/Target.hpp" #include "../../Analyser/Static/ZX8081/Target.hpp" #include "../../Analyser/Static/ZXSpectrum/Target.hpp" @@ -1283,9 +1284,25 @@ void MainWindow::start_spectrum() { launchTarget(std::move(target)); } +void MainWindow::start_tandyCoCo() { + using Target = Analyser::Static::TandyCoCo::Target; + auto target = std::make_unique(); + switch(ui->tandyCoCoMemorySizeComboBox->currentIndex()) { + default: target->memory_size = Target::MemorySize::ThirtyTwoKB; break; + case 1: target->memory_size = Target::MemorySize::SixtyFourKB; break; + } + target->has_disk_drive = ui->tandyCoCoDiskDriveCheckBox->isChecked(); + launchTarget(std::move(target)); +} + void MainWindow::start_thomson() { using Target = Analyser::Static::Thomson::MOTarget; auto target = std::make_unique(); + switch(ui->thomsonModelComboBox->currentIndex()) { + default: target->model = Target::Model::MO5v11; break; + case 1: target->model = Target::Model::MO6v3; break; + case 2: target->model = Target::Model::Prodest128; break; + } target->floppy = ui->thomsonDiskDriveCheckBox->isChecked() ? Target::Floppy::CD90_640 : Target::Floppy::None; launchTarget(std::move(target)); } @@ -1428,7 +1445,12 @@ void MainWindow::processAllSettings() { applier(ui->pcSpeedComboBox, "pc.speed"); applier(ui->pcVideoAdaptorComboBox, "pc.videoAdaptor"); + /* Tandy CoCo. */ + applier(ui->tandyCoCoMemorySizeComboBox, "tandy.memorySize"); + applier(ui->tandyCoCoDiskDriveCheckBox, "tandy.hasDiskDrive"); + /* Thomson. */ + applier(ui->thomsonModelComboBox, "thomson.model"); applier(ui->thomsonDiskDriveCheckBox, "thomson.hasDiskDrive"); /* Vic-20 */ diff --git a/OSBindings/Qt/mainwindow.h b/OSBindings/Qt/mainwindow.h index 4d9fba969..e724114f9 100644 --- a/OSBindings/Qt/mainwindow.h +++ b/OSBindings/Qt/mainwindow.h @@ -99,6 +99,7 @@ class MainWindow : public QMainWindow, public Outputs::Speaker::Speaker::Delegat void start_plus4(); void start_pc(); void start_spectrum(); + void start_tandyCoCo(); void start_thomson(); void start_vic20(); void start_zx80(); diff --git a/OSBindings/Qt/mainwindow.ui b/OSBindings/Qt/mainwindow.ui index 92d37a87c..b50aaf4a0 100644 --- a/OSBindings/Qt/mainwindow.ui +++ b/OSBindings/Qt/mainwindow.ui @@ -222,17 +222,17 @@ - 256kb + 256 kb - 1mb + 1 mb - 8mb + 8 mb @@ -821,11 +821,87 @@ - + - Thomson MO5 + Tandy CoCo + + + + + + Memory Size: + + + + + + + + 32 kb + + + + + 64 kb + + + + + + + + + + With Disk Drive + + + + + + + Qt::Orientation::Vertical + + + + + + + + Thomson MO + + + + + + + + Model: + + + + + + + + MO5 + + + + + MO6 + + + + + Prodest 128 + + + + + + @@ -1019,17 +1095,17 @@ - 16kb + 16 kb - 48kb + 48 kb - 128kb + 128 kb