===========================================================================
| 1605 | |
| 1606 | //=========================================================================== |
| 1607 | void updateScreenSingleHires40 (long cycles6502) |
| 1608 | { |
| 1609 | if (g_nVideoMixed && g_nVideoClockVert >= VIDEO_SCANNER_Y_MIXED) |
| 1610 | { |
| 1611 | g_pFuncUpdateTextScreen( cycles6502 ); |
| 1612 | return; |
| 1613 | } |
| 1614 | |
| 1615 | for (; cycles6502 > 0; --cycles6502) |
| 1616 | { |
| 1617 | uint16_t addr = getVideoScannerAddressHGR(); |
| 1618 | |
| 1619 | if (g_nVideoClockVert < VIDEO_SCANNER_Y_DISPLAY) |
| 1620 | { |
| 1621 | if ((g_nVideoClockHorz < VIDEO_SCANNER_HORZ_COLORBURST_END) && (g_nVideoClockHorz >= VIDEO_SCANNER_HORZ_COLORBURST_BEG)) |
| 1622 | { |
| 1623 | g_nColorBurstPixels = 1024; |
| 1624 | } |
| 1625 | else if (g_nVideoClockHorz >= VIDEO_SCANNER_HORZ_START) |
| 1626 | { |
| 1627 | uint8_t *pMain = MemGetMainPtrWithLC(addr); |
| 1628 | uint8_t m = pMain[0]; |
| 1629 | uint16_t bits = g_aPixelDoubleMaskHGR[m & 0x7F]; // Optimization: hgrbits second 128 entries are mirror of first 128 |
| 1630 | if (m & 0x80) |
| 1631 | bits = (bits << 1) | g_nLastColumnPixelNTSC; |
| 1632 | updatePixels( bits ); |
| 1633 | |
| 1634 | // For last hpos && bit6=1: (GH#555) |
| 1635 | // * if bit7=0 (no shift) then clear g_nLastColumnPixelNTSC to prevent a 3rd 14M (aka DHGR) pixel being drawn |
| 1636 | // . even though this is off-screen, it still has an on-screen affect (making the green dot more white on the screen edge). |
| 1637 | // * if bit7=1 (half-dot shift) then also clear g_nLastColumnPixelNTSC |
| 1638 | // . not sure if this is correct though |
| 1639 | if (g_nVideoClockHorz == (VIDEO_SCANNER_MAX_HORZ-1)) |
| 1640 | g_nLastColumnPixelNTSC = 0; |
| 1641 | } |
| 1642 | } |
| 1643 | updateVideoScannerHorzEOL(); |
| 1644 | } |
| 1645 | } |
| 1646 | |
| 1647 | //=========================================================================== |
| 1648 | static void updateScreenSingleLores40Simplified (long cycles6502) |
nothing calls this directly
no test coverage detected