Merge pull request #1837 from TomHarte/QtSelection

Update Qt UI for Thomson and Tandy machine selections.
This commit is contained in:
Thomas Harte authored and GitHub committed 2026-05-25 09:41:58 -04:00
commit 7079fedfba
5 files changed
+110 -13

No files matched your search

-2
View File
@@ -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
+1 -1
View File
@@ -1186,7 +1186,7 @@ const std::vector<Description> &Description::all_roms() {
{
OlivettiProdest128,
"Thomson",
"the Olivetti Prodest 127 ROM",
"the Olivetti Prodest 128 ROM",
"pc128.rom",
64_kb,
0xfc173504u
+24 -2
View File
@@ -14,9 +14,9 @@
#include <cstdio>
#include <memory>
#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<Target>();
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<Target>();
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 */
+1
View File
@@ -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();
+84 -8
View File
@@ -222,17 +222,17 @@
<widget class="QComboBox" name="appleIIgsMemorySizeComboBox">
<item>
<property name="text">
<string>256kb</string>
<string>256 kb</string>
</property>
</item>
<item>
<property name="text">
<string>1mb</string>
<string>1 mb</string>
</property>
</item>
<item>
<property name="text">
<string>8mb</string>
<string>8 mb</string>
</property>
</item>
</widget>
@@ -821,11 +821,87 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="thomsonTab">
<widget class="QWidget" name="tandyCoCoTab">
<attribute name="title">
<string>Thomson MO5</string>
<string>Tandy CoCo</string>
</attribute>
<layout class="QVBoxLayout">
<item>
<layout class="QFormLayout">
<item row="1" column="0">
<widget class="QLabel">
<property name="text">
<string>Memory Size:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="tandyCoCoMemorySizeComboBox">
<item>
<property name="text">
<string>32 kb</string>
</property>
</item>
<item>
<property name="text">
<string>64 kb</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="tandyCoCoDiskDriveCheckBox">
<property name="text">
<string>With Disk Drive</string>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="thomsonTab">
<attribute name="title">
<string>Thomson MO</string>
</attribute>
<layout class="QVBoxLayout">
<item>
<layout class="QFormLayout">
<item row="1" column="0">
<widget class="QLabel">
<property name="text">
<string>Model:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="thomsonModelComboBox">
<item>
<property name="text">
<string>MO5</string>
</property>
</item>
<item>
<property name="text">
<string>MO6</string>
</property>
</item>
<item>
<property name="text">
<string>Prodest 128</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="thomsonDiskDriveCheckBox">
<property name="text">
@@ -1019,17 +1095,17 @@
<widget class="QComboBox" name="spectrumModelComboBox">
<item>
<property name="text">
<string>16kb</string>
<string>16 kb</string>
</property>
</item>
<item>
<property name="text">
<string>48kb</string>
<string>48 kb</string>
</property>
</item>
<item>
<property name="text">
<string>128kb</string>
<string>128 kb</string>
</property>
</item>
<item>