1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-21 17:16:44 +00:00

Allows the MSX to load ROMs that aren't quite multiples of 8kb.

This commit is contained in:
Thomas Harte
2018-01-16 22:27:41 -05:00
parent e13312dcc5
commit 583c3cfe7d
3 changed files with 33 additions and 10 deletions
+19 -3
View File
@@ -28,12 +28,28 @@ namespace Cartridge {
class Cartridge {
public:
struct Segment {
Segment(size_t start_address, size_t end_address, std::vector<uint8_t> data) :
start_address(start_address), end_address(end_address), data(std::move(data)) {}
Segment(size_t start_address, size_t end_address, std::vector<uint8_t> &&data) :
start_address(start_address), end_address(end_address), data(data) {}
Segment(size_t start_address, std::vector<uint8_t> data) :
Segment(size_t start_address, size_t end_address, const std::vector<uint8_t> &data) :
start_address(start_address), end_address(end_address), data(data) {}
Segment(size_t start_address, std::vector<uint8_t> &&data) :
Segment(start_address, start_address + data.size(), data) {}
Segment(size_t start_address, const std::vector<uint8_t> &data) :
Segment(start_address, start_address + data.size(), data) {}
Segment(Segment &&segment) :
start_address(segment.start_address),
end_address(segment.end_address),
data(std::move(segment.data)) {}
Segment(const Segment &segment) :
start_address(segment.start_address),
end_address(segment.end_address),
data(segment.data) {}
/// Indicates that an address is unknown.
static const size_t UnknownAddress;