Mercurial > repos > blastem
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 } |