From 78073aaa11fa21b3579def2e1663a66d1e4c9ee9 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Tue, 4 Nov 2025 17:45:27 -0500 Subject: [PATCH] Add Z80 tube ROM. --- Machines/Acorn/Tube/Tube6502.hpp | 2 +- Machines/Acorn/Tube/TubeZ80.hpp | 10 +++++++--- Machines/Utility/ROMCatalogue.cpp | 12 ++++++++++-- Machines/Utility/ROMCatalogue.hpp | 3 ++- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Machines/Acorn/Tube/Tube6502.hpp b/Machines/Acorn/Tube/Tube6502.hpp index 099b0939f..2e8a7a0f4 100644 --- a/Machines/Acorn/Tube/Tube6502.hpp +++ b/Machines/Acorn/Tube/Tube6502.hpp @@ -25,7 +25,7 @@ namespace Acorn::Tube { template struct Tube6502 { public: - static constexpr auto ROM = ROM::Name::BBCMicroTube110; + static constexpr auto ROM = ROM::Name::BBCMicro6502Tube110; Tube6502(ULAT &ula) : m6502_(*this), ula_(ula) {} diff --git a/Machines/Acorn/Tube/TubeZ80.hpp b/Machines/Acorn/Tube/TubeZ80.hpp index 501462238..6a0ee85c2 100644 --- a/Machines/Acorn/Tube/TubeZ80.hpp +++ b/Machines/Acorn/Tube/TubeZ80.hpp @@ -11,14 +11,18 @@ #include "Processors/Z80/Z80.hpp" #include "Machines/Utility/ROMCatalogue.hpp" +#include + namespace Acorn::Tube { template struct TubeZ80: public CPU::Z80::BusHandler { public: - // TODO. - static constexpr auto ROM = ROM::Name::BBCMicroTube110; - void set_rom(const std::vector &) {} + static constexpr auto ROM = ROM::Name::BBCMicroZ80Tube122; + void set_rom(std::vector rom) { + rom.resize(sizeof(rom_)); + std::copy(rom.begin(), rom.end(), std::begin(rom_)); + } TubeZ80(ULAT &ula) : z80_(*this), ula_(ula) {} diff --git a/Machines/Utility/ROMCatalogue.cpp b/Machines/Utility/ROMCatalogue.cpp index efd869415..2657d1618 100644 --- a/Machines/Utility/ROMCatalogue.cpp +++ b/Machines/Utility/ROMCatalogue.cpp @@ -454,13 +454,21 @@ const std::vector &Description::all_roms() { 0x8314fed0u }, { - BBCMicroTube110, + BBCMicro6502Tube110, "BBCMicro", - "the Tube 1.10 Boot ROM", + "the 6502 Tube 1.10 Boot ROM", "TUBE110.rom", 2_kb, 0x9ec2dbd0u }, + { + BBCMicroZ80Tube122, + "BBCMicro", + "the Z80 Tube 1.22 Boot ROM", + "Z80_122.rom", + 4_kb, + 0xb5851efcu + }, // // ColecoVision. diff --git a/Machines/Utility/ROMCatalogue.hpp b/Machines/Utility/ROMCatalogue.hpp index f3be53074..b0ce7b40e 100644 --- a/Machines/Utility/ROMCatalogue.hpp +++ b/Machines/Utility/ROMCatalogue.hpp @@ -85,7 +85,8 @@ enum Name { BBCMicroDFS226, BBCMicroADFS130, BBCMicroAdvancedDiscToolkit140, - BBCMicroTube110, + BBCMicro6502Tube110, + BBCMicroZ80Tube122, // ColecoVision. ColecoVisionBIOS,