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

Function NTSC_GetScannerAddressAndData

source/NTSC.cpp:2788–2857  ·  view source on GitHub ↗

For debugger

Source from the content-addressed store, hash-verified

2786
2787// For debugger
2788uint16_t NTSC_GetScannerAddressAndData(uint32_t& data, int& dataSize)
2789{
2790 if (g_uNewVideoModeFlags & VF_SHR)
2791 {
2792 uint16_t addr = getVideoScannerAddressSHR();
2793 uint32_t* pAux = (uint32_t*)MemGetAuxPtr(addr); // 8 pixels (320 mode) / 16 pixels (640 mode)
2794 data = pAux[0];
2795 dataSize = 4;
2796 return addr;
2797 }
2798
2799 //
2800
2801 // Copy logic from NTSC_SetVideoMode()
2802 if (g_uNewVideoModeFlags & VF_TEXT)
2803 {
2804 if (g_uNewVideoModeFlags & VF_80COL)
2805 dataSize = 2;
2806 else
2807 dataSize = 1;
2808 }
2809 else if (g_uNewVideoModeFlags & VF_HIRES)
2810 {
2811 if (g_uNewVideoModeFlags & VF_DHIRES)
2812 {
2813 if (g_uNewVideoModeFlags & VF_80COL)
2814 dataSize = 2;
2815 else
2816 dataSize = 1;
2817 }
2818 else
2819 {
2820 dataSize = 1;
2821 }
2822 }
2823 else
2824 {
2825 if (g_uNewVideoModeFlags & VF_DHIRES)
2826 {
2827 if (g_uNewVideoModeFlags & VF_80COL)
2828 dataSize = 2;
2829 else
2830 dataSize = 1;
2831 }
2832 else
2833 {
2834 dataSize = 1;
2835 }
2836 }
2837
2838 // Extra logic for MIXED mode
2839 if (g_nVideoMixed && g_nVideoClockVert >= VIDEO_SCANNER_Y_MIXED && (g_uNewVideoModeFlags & VF_80COL))
2840 dataSize = 2;
2841
2842 uint16_t addr = getVideoScannerAddressTXTorHGR();
2843 data = 0;
2844
2845 if (dataSize == 2)

Callers 2

DrawWatchesFunction · 0.85
OutputTraceLineFunction · 0.85

Calls 5

MemGetAuxPtrFunction · 0.85
MemGetMainPtrFunction · 0.85

Tested by

no test coverage detected