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

Function updateScreenText80

source/NTSC.cpp:1774–1818  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

1772
1773//===========================================================================
1774void updateScreenText80 (long cycles6502)
1775{
1776 for (; cycles6502 > 0; --cycles6502)
1777 {
1778 uint16_t addr = getVideoScannerAddressTXT();
1779
1780 if ((g_nVideoClockHorz < VIDEO_SCANNER_HORZ_COLORBURST_END) && (g_nVideoClockHorz >= VIDEO_SCANNER_HORZ_COLORBURST_BEG))
1781 {
1782 if (g_nColorBurstPixels > 0)
1783 g_nColorBurstPixels -= 1;
1784 }
1785 else if (g_nVideoClockVert < VIDEO_SCANNER_Y_DISPLAY)
1786 {
1787 if (g_nVideoClockHorz >= VIDEO_SCANNER_HORZ_START)
1788 {
1789 uint8_t *pMain = MemGetMainPtr(addr);
1790 uint8_t *pAux = MemGetAuxPtr(addr);
1791
1792 uint8_t m = pMain[0];
1793 uint8_t a = pAux [0];
1794
1795 if (g_uNewVideoModeFlags & VF_80COL_AUX_EMPTY)
1796 a = MemReadFloatingBusFromNTSC();
1797
1798 uint16_t main = getCharSetBits( m );
1799 uint16_t aux = getCharSetBits( a );
1800
1801 if ((0 == g_nVideoCharSet) && 0x40 == (m & 0xC0)) // Flash only if mousetext not active
1802 main ^= g_nTextFlashMask;
1803
1804 if ((0 == g_nVideoCharSet) && 0x40 == (a & 0xC0)) // Flash only if mousetext not active
1805 aux ^= g_nTextFlashMask;
1806
1807 uint16_t bits = (main << 7) | (aux & 0x7f);
1808 if ((GetVideo().GetVideoType() != VT_COLOR_IDEALIZED) // No extra 14M bit needed for VT_COLOR_IDEALIZED
1809 && (GetVideo().GetVideoType() != VT_COLOR_VIDEOCARD_RGB))
1810 bits = (bits << 1) | g_nLastColumnPixelNTSC; // GH#555: Align TEXT80 chars with DHGR
1811
1812 updatePixels( bits );
1813 g_nLastColumnPixelNTSC = (bits >> 14) & 1;
1814 }
1815 }
1816 updateVideoScannerHorzEOL();
1817 }
1818}
1819
1820//===========================================================================
1821void updateScreenText80RGB(long cycles6502)

Callers

nothing calls this directly

Calls 8

MemGetMainPtrFunction · 0.85
MemGetAuxPtrFunction · 0.85
getCharSetBitsFunction · 0.85
updatePixelsFunction · 0.85
GetVideoTypeMethod · 0.80

Tested by

no test coverage detected