Вы используете это:
write_XDATA( Address, Value );
и расширено:
((char*)0x010000)[Address]=Value;
, что эквивалентно следующему:
char* baseAddress = (char*)0x010000;
*(baseAddress + Address) = Value;
так что в основном он записывает байт, сохраненный в Value
по адресу 0x010000 + Address
.