MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / parsetrainerdata

Function parsetrainerdata

src/debug.cpp:9172–9218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9170}
9171
9172static int parsetrainerdata(const TCHAR *data, uae_u16 *outdata, uae_u16 *outmask)
9173{
9174 int len = uaetcslen(data);
9175 uae_u16 v = 0, vm = 0;
9176 int j = 0;
9177 for (int i = 0; i < len; ) {
9178 TCHAR c1 = _totupper(data[i + 0]);
9179 TCHAR c2 = _totupper(data[i + 1]);
9180 if (c1 > 0 && c1 <= ' ') {
9181 i++;
9182 continue;
9183 }
9184 if (i + 1 >= len)
9185 return 0;
9186
9187 vm <<= 8;
9188 vm |= 0xff;
9189 if (c1 == 'X' || c1 == '?')
9190 vm &= 0x0f;
9191 if (c2 == 'X' || c2 == '?')
9192 vm &= 0xf0;
9193
9194 if (c1 >= 'A')
9195 c1 -= 'A' - 10;
9196 else if (c1 >= '0')
9197 c1 -= '0';
9198 if (c2 >= 'A')
9199 c2 -= 'A' - 10;
9200 else if (c2 >= '0')
9201 c2 -= '0';
9202
9203 v <<= 8;
9204 if (c1 >= 0 && c1 < 16)
9205 v |= c1 << 4;
9206 if (c2 >= 0 && c2 < 16)
9207 v |= c2;
9208
9209 if (i & 2) {
9210 outdata[j] = v;
9211 outmask[j] = vm;
9212 j++;
9213 }
9214
9215 i += 2;
9216 }
9217 return j;
9218}
9219
9220void debug_init_trainer(const TCHAR *file)
9221{

Callers 1

debug_init_trainerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected