MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / updateScreenSingleHires40

Function updateScreenSingleHires40

source/NTSC.cpp:1607–1645  ·  view source on GitHub ↗

===========================================================================

Source from the content-addressed store, hash-verified

1605
1606//===========================================================================
1607void 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//===========================================================================
1648static void updateScreenSingleLores40Simplified (long cycles6502)

Callers

nothing calls this directly

Calls 4

MemGetMainPtrWithLCFunction · 0.85
updatePixelsFunction · 0.85

Tested by

no test coverage detected