comparison disasm.c @ 2717:04007ac9ee3b

Add upd78k2 disassembler
author Michael Pavone <pavone@retrodev.com>
date Wed, 16 Jul 2025 07:36:01 -0700
parents e9bc45dd2eed
children
comparison
equal deleted inserted replaced
2716:033d8d4308e3 2717:04007ac9ee3b
302 weak_label(context, "CDD_FADER", 0xFFFF8034); 302 weak_label(context, "CDD_FADER", 0xFFFF8034);
303 weak_label(context, "CDD_CTRL_WORD", 0xFFFF8036); 303 weak_label(context, "CDD_CTRL_WORD", 0xFFFF8036);
304 weak_label(context, "CDD_CTRL_BYTE", 0xFFFF8037); 304 weak_label(context, "CDD_CTRL_BYTE", 0xFFFF8037);
305 } 305 }
306 306
307 void add_upd7823x_labels(disasm_context *context)
308 {
309 weak_label(context, "P0", 0xFF00);
310 weak_label(context, "P1", 0xFF01);
311 weak_label(context, "P2", 0xFF02);
312 weak_label(context, "P3", 0xFF03);
313 weak_label(context, "P4", 0xFF04);
314 weak_label(context, "P5", 0xFF05);
315 weak_label(context, "P6", 0xFF06);
316 weak_label(context, "P7", 0xFF07);
317 weak_label(context, "P0L", 0xFF0A);
318 weak_label(context, "P0B", 0xFF0B);
319 weak_label(context, "RTPC", 0xFF0C);
320 weak_label(context, "CR00", 0xFF10);
321 weak_label(context, "CR01", 0xFF12);
322 weak_label(context, "CR10", 0xFF14);
323 weak_label(context, "CR20", 0xFF15);
324 weak_label(context, "CR21", 0xFF16);
325 weak_label(context, "CR30", 0xFF17);
326 weak_label(context, "CR02", 0xFF18);
327 weak_label(context, "CR22", 0xFF1A);
328 weak_label(context, "CR11", 0xFF1C);
329 weak_label(context, "PM0", 0xFF20);
330 weak_label(context, "PM1", 0xFF21);
331 weak_label(context, "PM3", 0xFF23);
332 weak_label(context, "PM5", 0xFF25);
333 weak_label(context, "PM6", 0xFF26);
334 weak_label(context, "CRC0", 0xFF30);
335 weak_label(context, "TOC", 0xFF31);
336 weak_label(context, "CRC1", 0xFF32);
337 weak_label(context, "CRC2", 0xFF34);
338 weak_label(context, "PUO", 0xFF40);
339 weak_label(context, "PMC3", 0xFF43);
340 weak_label(context, "TM0", 0xFF50);
341 weak_label(context, "TM1", 0xFF52);
342 weak_label(context, "TM2", 0xFF54);
343 weak_label(context, "TM3", 0xFF56);
344 weak_label(context, "PRM0", 0xFF5C);
345 weak_label(context, "TMC0", 0xFF5D);
346 weak_label(context, "PRM1", 0xFF5E);
347 weak_label(context, "TMC1", 0xFF5F);
348 weak_label(context, "DACS0", 0xFF60);
349 weak_label(context, "DACS1", 0xFF61);
350 weak_label(context, "ADM", 0xFF68);
351 weak_label(context, "ADCR", 0xFF6A);
352 weak_label(context, "PWMC", 0xFF70);
353 weak_label(context, "PWM0", 0xFF72);
354 weak_label(context, "PWM1", 0xFF74);
355 weak_label(context, "OSPC", 0xFF7D);
356 weak_label(context, "CSIM", 0xFF80);
357 weak_label(context, "SBIC", 0xFF82);
358 weak_label(context, "SIO", 0xFF86);
359 weak_label(context, "ASIM", 0xFF88);
360 weak_label(context, "ASIS", 0xFF8A);
361 weak_label(context, "RxB", 0xFF8C);
362 weak_label(context, "TxS", 0xFF8E);
363 weak_label(context, "BRGC", 0xFF90);
364 weak_label(context, "STBC", 0xFFC0);
365 weak_label(context, "MM", 0xFFC4);
366 weak_label(context, "PW", 0xFFC5);
367 weak_label(context, "RFM", 0xFFC6);
368 weak_label(context, "IMS", 0xFFCF);
369 weak_label(context, "IF0L", 0xFFE0);
370 weak_label(context, "IF0H", 0xFFE1);
371 weak_label(context, "MK0L", 0xFFE4);
372 weak_label(context, "MK0H", 0xFFE5);
373 weak_label(context, "PR0L", 0xFFE8);
374 weak_label(context, "PR0H", 0xFFE9);
375 weak_label(context, "ISM0L", 0xFFEC);
376 weak_label(context, "ISM0H", 0xFFED);
377 weak_label(context, "INTM0", 0xFFF4);
378 weak_label(context, "INTM1", 0xFFF5);
379 weak_label(context, "IST", 0xFFF8);
380 }
381
307 disasm_context *create_68000_disasm(void) 382 disasm_context *create_68000_disasm(void)
308 { 383 {
309 disasm_context *context = calloc(1, sizeof(disasm_context)); 384 disasm_context *context = calloc(1, sizeof(disasm_context));
310 context->address_mask = 0xFFFFFF; 385 context->address_mask = 0xFFFFFF;
311 context->invalid_inst_addr_mask = 1; 386 context->invalid_inst_addr_mask = 1;
319 context->address_mask = 0xFFFF; 394 context->address_mask = 0xFFFF;
320 context->invalid_inst_addr_mask = 0; 395 context->invalid_inst_addr_mask = 0;
321 context->visit_preshift = 0; 396 context->visit_preshift = 0;
322 return context; 397 return context;
323 } 398 }
399
400 disasm_context *create_upd78k2_disasm(void)
401 {
402 disasm_context *context = calloc(1, sizeof(disasm_context));
403 context->address_mask = 0xFFFF;
404 context->invalid_inst_addr_mask = 0;
405 context->visit_preshift = 0;
406 return context;
407 }