===========================================================================
| 1930 | |
| 1931 | //=========================================================================== |
| 1932 | uint16_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 | |
| 1961 | void NTSC_GetVideoVertHorzForDebugger(uint16_t& vert, uint16_t& horz) |
| 1962 | { |
no test coverage detected