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

Function CmdMemoryMove

source/Debugger/Debug.cpp:4851–4892  ·  view source on GitHub ↗

dst src : len ===========================================================================

Source from the content-addressed store, hash-verified

4849// dst src : len
4850//===========================================================================
4851Update_t CmdMemoryMove (int nArgs)
4852{
4853 // M destaddr address end
4854 // M destaddr address,len
4855 // M destaddr address:end
4856 // 2000<4000.5FFFM
4857 if (nArgs < 3)
4858 return Help_Arg_1( CMD_MEMORY_MOVE );
4859
4860 WORD nDst = g_aArgs[1].nValue;
4861// WORD nSrc = g_aArgs[2].nValue;
4862// WORD nLen = g_aArgs[3].nValue - nSrc;
4863 WORD nAddress2 = 0;
4864 WORD nAddressStart = 0;
4865 WORD nAddressEnd = 0;
4866 int nAddressLen = 0;
4867
4868 RangeType_t eRange = Range_Get( nAddressStart, nAddress2, 2 );
4869
4870// if (eRange == RANGE_MISSING_ARG_2)
4871 if (! Range_CalcEndLen( eRange, nAddressStart, nAddress2, nAddressEnd, nAddressLen ))
4872 return Help_Arg_1( CMD_MEMORY_MOVE );
4873
4874 if ((nAddressLen > 0) && (nAddressEnd <= _6502_MEM_END))
4875 {
4876 while ( nAddressLen-- ) // v2.7.0.23
4877 {
4878 // TODO: Optimize - split into pre_io, and post_io
4879 if ((nDst < APPLE_IO_BEGIN) || (nDst > APPLE_IO_END))
4880 {
4881 BYTE value = ReadByteFromMemory(nAddressStart);
4882 WriteByteToMemory(nDst, value);
4883 }
4884 nDst++;
4885 nAddressStart++;
4886 }
4887
4888 return UPDATE_ALL;
4889 }
4890
4891 return UPDATE_CONSOLE_DISPLAY;
4892}
4893
4894//===========================================================================
4895#if 0 // Original - TODO: delete this old "original" code

Callers

nothing calls this directly

Calls 5

Help_Arg_1Function · 0.85
Range_GetFunction · 0.85
Range_CalcEndLenFunction · 0.85
ReadByteFromMemoryFunction · 0.85
WriteByteToMemoryFunction · 0.85

Tested by

no test coverage detected