diff --git a/Loader_Apple2/disk.dsk b/Loader_Apple2/disk.dsk index 45737d6..39b57de 100644 Binary files a/Loader_Apple2/disk.dsk and b/Loader_Apple2/disk.dsk differ diff --git a/Rgb2Hires_PC/src/HiRes.cpp b/Rgb2Hires_PC/src/HiRes.cpp index c761368..c119493 100644 --- a/Rgb2Hires_PC/src/HiRes.cpp +++ b/Rgb2Hires_PC/src/HiRes.cpp @@ -58,10 +58,11 @@ namespace RgbToHires { pair BlockHr::getGroup(const BlockPixel& block) const { - pair groups{ GROUP_1, GROUP_1 }; + pair groups{ UNDEF, UNDEF }; //1st block group, including the last semi-pixel for (auto i = 0u; i < 4u; ++i) { if (block[i] == GREEN || block[i] == VIOLET) { + groups.first = GROUP_1; break; } else if (block[i] == ORANGE || block[i] == BLUE) { @@ -72,6 +73,7 @@ namespace RgbToHires { //2nd block group, excluding the first semi-pixel for (auto i = 4u; i < 7u; ++i) { if (block[i] == GREEN || block[i] == VIOLET) { + groups.second = GROUP_1; break; } else if (block[i] == ORANGE || block[i] == BLUE) { @@ -79,6 +81,17 @@ namespace RgbToHires { break; } } + // if only black or white pixel: groups are still undefined + if (groups.first == UNDEF) { // 1st 3.5-pixels were black or white + groups.first = groups.second; + } + if (groups.second == UNDEF) { // 2nd 35-pixels were black or white + groups.second = groups.first; + } + if (groups.first == UNDEF) { // all the 7-pixels were black or white + groups.first = GROUP_1; + groups.second = GROUP_1; + } return groups; } diff --git a/Rgb2Hires_PC/src/HiRes.h b/Rgb2Hires_PC/src/HiRes.h index 69740a5..fa27845 100644 --- a/Rgb2Hires_PC/src/HiRes.h +++ b/Rgb2Hires_PC/src/HiRes.h @@ -63,7 +63,8 @@ namespace RgbToHires /// @brief color group as defined in Apple's documentation enum eColorGroup { GROUP_1, - GROUP_2 + GROUP_2, + UNDEF // black and white can be group1 or group2 }; /// @brief Returns the color group of these two 3.5 pixel blocks std::pair getGroup(const BlockPixel&) const;