more work on Z80 support
This commit is contained in:
1 parent
3054a44e7c
commit
76f25a36e2
16 files changed
+763
-201
No files matched your search
@@ -257,11 +257,30 @@ std::string generateCpTable(void)
|
||||
std::stringstream outStr;
|
||||
outStr << "!macro PUT_Z80_FTABLE_CP {\n";
|
||||
|
||||
for (uint16_t idx = 0; idx < 0x100; idx++)
|
||||
{
|
||||
uint8_t flags = GLOBAL_Parity[idx];
|
||||
if (idx >= 0x80) flags |= Z80_SF; // for negative result
|
||||
if (idx == 0) flags |= Z80_ZF; // for result equal 0
|
||||
|
||||
outStr << "\t!byte $" << std::hex << std::setw(2) << std::setfill('0') << int(flags) << "\n";
|
||||
}
|
||||
|
||||
return outStr.str() + "}\n\n\n";
|
||||
}
|
||||
|
||||
std::string generateRrdRldTable(void)
|
||||
{
|
||||
std::stringstream outStr;
|
||||
outStr << "!macro PUT_Z80_FTABLE_RRD_RLD {\n";
|
||||
|
||||
for (uint16_t idx = 0; idx < 0x100; idx++)
|
||||
{
|
||||
uint8_t flags = Z80_NF;
|
||||
if (idx >= 0x80) flags |= Z80_SF; // for negative result
|
||||
if (idx == 0) flags |= Z80_ZF; // for result equal 0
|
||||
if (idx & 0x08) flags |= Z80_XF; // 3rd bit of the result
|
||||
if (idx & 0x20) flags |= Z80_YF; // 5th bit of the result
|
||||
|
||||
outStr << "\t!byte $" << std::hex << std::setw(2) << std::setfill('0') << int(flags) << "\n";
|
||||
}
|
||||
@@ -415,6 +434,7 @@ void writeTables()
|
||||
outFile << generateAddAdcTable();
|
||||
outFile << generateSubSbcTable();
|
||||
outFile << generateCpTable();
|
||||
outFile << generateRrdRldTable();
|
||||
outFile << generateNegTable();
|
||||
outFile << generateDaaTables();
|
||||
|
||||
|
||||
Reference in new issue
Block a user