EightBit/LR35902/fusetest_LR35902/FuseTestEvent.cpp
Adrian.Conlon 42b1b7dc53 Add a one off converter for Z80 -> LR35902 fuse tests (TBC!)
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-08-10 23:46:41 +01:00

52 lines
1.1 KiB
C++

#include "stdafx.h"
#include "FuseTestEvent.h"
void Fuse::TestEvent::read(std::ifstream& file) {
auto prior = file.tellg();
std::string line;
std::getline(file, line);
std::stringstream in(line);
in >> cycles;
in >> specifier;
in >> std::hex;
valid = true;
if (specifier == "MR" || specifier == "MW") {
in >> address;
in >> value;
} else if (specifier == "MC" || specifier == "PC") {
in >> address;
value = -1;
} else if (specifier == "PR" || specifier == "PW") {
in >> address;
in >> value;
} else {
valid = false;
}
if (!valid) {
file.seekg(prior);
}
}
void Fuse::TestEvent::write(std::ofstream& file) {
file << std::dec << cycles;
file << " " << specifier << " ";
file << std::hex << std::setfill('0');
if (specifier == "MR" || specifier == "MW") {
file << std::setw(4) << address << " " << std::setw(2) << value;
}
else if (specifier == "MC" || specifier == "PC") {
file << std::setw(4) << address;
}
else if (specifier == "PR" || specifier == "PW") {
file << std::setw(4) << address << " " << std::setw(2) << value;
}
}