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

Function NTSC_VideoGetScannerAddress

source/NTSC.cpp:1932–1959  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

1930
1931//===========================================================================
1932uint16_t NTSC_VideoGetScannerAddress(const ULONG uExecutedCycles, const bool fullSpeed)
1933{
1934 if (fullSpeed)
1935 {
1936 // Ensure that NTSC video-scanner gets updated during full-speed, so video-dependent Apple II code doesn't hang
1937 NTSC_VideoClockResync( CpuGetCyclesThisVideoFrame(uExecutedCycles) );
1938 }
1939
1940 const uint16_t currVideoClockVert = g_nVideoClockVert;
1941 const uint16_t currVideoClockHorz = g_nVideoClockHorz;
1942
1943 // Required for ANSI STORY (end credits) vert scrolling mid-scanline mixed mode: DGR80, TEXT80, DGR80
1944 g_nVideoClockHorz -= 1;
1945 if ((SHORT)g_nVideoClockHorz < 0)
1946 {
1947 g_nVideoClockHorz += VIDEO_SCANNER_MAX_HORZ;
1948 g_nVideoClockVert -= 1;
1949 if ((SHORT)g_nVideoClockVert < 0)
1950 g_nVideoClockVert = g_videoScannerMaxVert-1;
1951 }
1952
1953 uint16_t addr = getVideoScannerAddressTXTorHGR();
1954
1955 g_nVideoClockVert = currVideoClockVert;
1956 g_nVideoClockHorz = currVideoClockHorz;
1957
1958 return addr;
1959}
1960
1961void NTSC_GetVideoVertHorzForDebugger(uint16_t& vert, uint16_t& horz)
1962{

Callers 2

ReadFloatingBusFunction · 0.85

Calls 3

NTSC_VideoClockResyncFunction · 0.85

Tested by

no test coverage detected