trunk/src/emu/memory.c
r17984 | r17985 | |
349 | 349 | read16_space_func space16; |
350 | 350 | read32_space_func space32; |
351 | 351 | read64_space_func space64; |
352 | | read8_device_func device8; |
353 | | read16_device_func device16; |
354 | | read32_device_func device32; |
355 | | read64_device_func device64; |
356 | 352 | } handler; |
357 | 353 | }; |
358 | 354 | |
r17984 | r17985 | |
390 | 386 | void set_legacy_func(address_space &space, read32_space_func func, const char *name, UINT64 mask = 0); |
391 | 387 | void set_legacy_func(address_space &space, read64_space_func func, const char *name, UINT64 mask = 0); |
392 | 388 | |
393 | | // configure legacy device functions |
394 | | void set_legacy_func(device_t &device, read8_device_func func, const char *name, UINT64 mask = 0); |
395 | | void set_legacy_func(device_t &device, read16_device_func func, const char *name, UINT64 mask = 0); |
396 | | void set_legacy_func(device_t &device, read32_device_func func, const char *name, UINT64 mask = 0); |
397 | | void set_legacy_func(device_t &device, read64_device_func func, const char *name, UINT64 mask = 0); |
398 | | |
399 | 389 | // configure I/O port access |
400 | 390 | void set_ioport(ioport_port &ioport); |
401 | 391 | |
r17984 | r17985 | |
456 | 446 | write16_space_func space16; |
457 | 447 | write32_space_func space32; |
458 | 448 | write64_space_func space64; |
459 | | write8_device_func device8; |
460 | | write16_device_func device16; |
461 | | write32_device_func device32; |
462 | | write64_device_func device64; |
463 | 449 | } handler; |
464 | 450 | }; |
465 | 451 | |
r17984 | r17985 | |
497 | 483 | void set_legacy_func(address_space &space, write32_space_func func, const char *name, UINT64 mask = 0); |
498 | 484 | void set_legacy_func(address_space &space, write64_space_func func, const char *name, UINT64 mask = 0); |
499 | 485 | |
500 | | // configure legacy device functions |
501 | | void set_legacy_func(device_t &device, write8_device_func func, const char *name, UINT64 mask = 0); |
502 | | void set_legacy_func(device_t &device, write16_device_func func, const char *name, UINT64 mask = 0); |
503 | | void set_legacy_func(device_t &device, write32_device_func func, const char *name, UINT64 mask = 0); |
504 | | void set_legacy_func(device_t &device, write64_device_func func, const char *name, UINT64 mask = 0); |
505 | | |
506 | 486 | // configure I/O port access |
507 | 487 | void set_ioport(ioport_port &ioport); |
508 | 488 | |
r17984 | r17985 | |
564 | 544 | (*i)->set_legacy_func(space, func, name, mask); |
565 | 545 | } |
566 | 546 | |
567 | | // forward legacy device functions configuration |
568 | | template<typename _func> void set_legacy_func(device_t &device, _func func, const char *name) const { |
569 | | for (typename std::list<_HandlerEntry *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) |
570 | | (*i)->set_legacy_func(device, func, name, mask); |
571 | | } |
572 | | |
573 | 547 | // forward I/O port access configuration |
574 | 548 | void set_ioport(ioport_port &ioport) const { |
575 | 549 | for (typename std::list<_HandlerEntry *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) |
r17984 | r17985 | |
2527 | 2501 | |
2528 | 2502 | |
2529 | 2503 | //------------------------------------------------- |
2530 | | // install_legacy_handler - install 8-bit read/ |
2531 | | // write legacy device handlers for the space |
2532 | | //------------------------------------------------- |
2533 | | |
2534 | | UINT8 *address_space::install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, const char *rname, UINT64 unitmask) |
2535 | | { |
2536 | | VPRINTF(("address_space::install_legacy_read_handler(%s-%s mask=%s mirror=%s, %s, %s, \"%s\") [read8]\n", |
2537 | | core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), |
2538 | | core_i64_hex_format(addrmask, m_addrchars), core_i64_hex_format(addrmirror, m_addrchars), |
2539 | | rname, core_i64_hex_format(unitmask, data_width() / 4), device.tag())); |
2540 | | |
2541 | | read().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, rhandler, rname); |
2542 | | generate_memdump(machine()); |
2543 | | return reinterpret_cast<UINT8 *>(find_backing_memory(addrstart, addrend)); |
2544 | | } |
2545 | | |
2546 | | UINT8 *address_space::install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write8_device_func whandler, const char *wname, UINT64 unitmask) |
2547 | | { |
2548 | | VPRINTF(("address_space::install_legacy_write_handler(%s-%s mask=%s mirror=%s, %s, %s, \"%s\") [write8]\n", |
2549 | | core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), |
2550 | | core_i64_hex_format(addrmask, m_addrchars), core_i64_hex_format(addrmirror, m_addrchars), |
2551 | | wname, core_i64_hex_format(unitmask, data_width() / 4), device.tag())); |
2552 | | |
2553 | | write().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, whandler, wname); |
2554 | | generate_memdump(machine()); |
2555 | | return reinterpret_cast<UINT8 *>(find_backing_memory(addrstart, addrend)); |
2556 | | } |
2557 | | |
2558 | | UINT8 *address_space::install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, const char *rname, write8_device_func whandler, const char *wname, UINT64 unitmask) |
2559 | | { |
2560 | | install_legacy_read_handler(device, addrstart, addrend, addrmask, addrmirror, rhandler, rname, unitmask); |
2561 | | return install_legacy_write_handler(device, addrstart, addrend, addrmask, addrmirror, whandler, wname, unitmask); |
2562 | | } |
2563 | | |
2564 | | |
2565 | | //------------------------------------------------- |
2566 | 2504 | // install_handler - install 16-bit read/write |
2567 | 2505 | // delegate handlers for the space |
2568 | 2506 | //------------------------------------------------- |
r17984 | r17985 | |
2616 | 2554 | |
2617 | 2555 | |
2618 | 2556 | //------------------------------------------------- |
2619 | | // install_legacy_handler - install 16-bit read/ |
2620 | | // write legacy device handlers for the space |
2621 | | //------------------------------------------------- |
2622 | | |
2623 | | UINT16 *address_space::install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read16_device_func rhandler, const char *rname, UINT64 unitmask) |
2624 | | { |
2625 | | read().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, rhandler, rname); |
2626 | | generate_memdump(machine()); |
2627 | | return reinterpret_cast<UINT16 *>(find_backing_memory(addrstart, addrend)); |
2628 | | } |
2629 | | |
2630 | | UINT16 *address_space::install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write16_device_func whandler, const char *wname, UINT64 unitmask) |
2631 | | { |
2632 | | write().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, whandler, wname); |
2633 | | generate_memdump(machine()); |
2634 | | return reinterpret_cast<UINT16 *>(find_backing_memory(addrstart, addrend)); |
2635 | | } |
2636 | | |
2637 | | UINT16 *address_space::install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read16_device_func rhandler, const char *rname, write16_device_func whandler, const char *wname, UINT64 unitmask) |
2638 | | { |
2639 | | install_legacy_read_handler(device, addrstart, addrend, addrmask, addrmirror, rhandler, rname, unitmask); |
2640 | | return install_legacy_write_handler(device, addrstart, addrend, addrmask, addrmirror, whandler, wname, unitmask); |
2641 | | } |
2642 | | |
2643 | | |
2644 | | //------------------------------------------------- |
2645 | 2557 | // install_handler - install 32-bit read/write |
2646 | 2558 | // delegate handlers for the space |
2647 | 2559 | //------------------------------------------------- |
r17984 | r17985 | |
2695 | 2607 | |
2696 | 2608 | |
2697 | 2609 | //------------------------------------------------- |
2698 | | // install_legacy_handler - install 32-bit read/ |
2699 | | // write legacy device handlers for the space |
2700 | | //------------------------------------------------- |
2701 | | |
2702 | | UINT32 *address_space::install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read32_device_func rhandler, const char *rname, UINT64 unitmask) |
2703 | | { |
2704 | | read().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, rhandler, rname); |
2705 | | generate_memdump(machine()); |
2706 | | return reinterpret_cast<UINT32 *>(find_backing_memory(addrstart, addrend)); |
2707 | | } |
2708 | | |
2709 | | UINT32 *address_space::install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write32_device_func whandler, const char *wname, UINT64 unitmask) |
2710 | | { |
2711 | | write().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, whandler, wname); |
2712 | | generate_memdump(machine()); |
2713 | | return reinterpret_cast<UINT32 *>(find_backing_memory(addrstart, addrend)); |
2714 | | } |
2715 | | |
2716 | | UINT32 *address_space::install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read32_device_func rhandler, const char *rname, write32_device_func whandler, const char *wname, UINT64 unitmask) |
2717 | | { |
2718 | | install_legacy_read_handler(device, addrstart, addrend, addrmask, addrmirror, rhandler, rname, unitmask); |
2719 | | return install_legacy_write_handler(device, addrstart, addrend, addrmask, addrmirror, whandler, wname, unitmask); |
2720 | | } |
2721 | | |
2722 | | |
2723 | | //------------------------------------------------- |
2724 | 2610 | // install_handler64 - install 64-bit read/write |
2725 | 2611 | // delegate handlers for the space |
2726 | 2612 | //------------------------------------------------- |
r17984 | r17985 | |
2773 | 2659 | } |
2774 | 2660 | |
2775 | 2661 | |
2776 | | //------------------------------------------------- |
2777 | | // install_legacy_handler - install 64-bit read/ |
2778 | | // write legacy device handlers for the space |
2779 | | //------------------------------------------------- |
2780 | 2662 | |
2781 | | UINT64 *address_space::install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read64_device_func rhandler, const char *rname, UINT64 unitmask) |
2782 | | { |
2783 | | read().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, rhandler, rname); |
2784 | | generate_memdump(machine()); |
2785 | | return reinterpret_cast<UINT64 *>(find_backing_memory(addrstart, addrend)); |
2786 | | } |
2787 | | |
2788 | | UINT64 *address_space::install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write64_device_func whandler, const char *wname, UINT64 unitmask) |
2789 | | { |
2790 | | write().handler_map_range(addrstart, addrend, addrmask, addrmirror, unitmask).set_legacy_func(device, whandler, wname); |
2791 | | generate_memdump(machine()); |
2792 | | return reinterpret_cast<UINT64 *>(find_backing_memory(addrstart, addrend)); |
2793 | | } |
2794 | | |
2795 | | UINT64 *address_space::install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read64_device_func rhandler, const char *rname, write64_device_func whandler, const char *wname, UINT64 unitmask) |
2796 | | { |
2797 | | install_legacy_read_handler(device, addrstart, addrend, addrmask, addrmirror, rhandler, rname, unitmask); |
2798 | | return install_legacy_write_handler(device, addrstart, addrend, addrmask, addrmirror, whandler, wname, unitmask); |
2799 | | } |
2800 | | |
2801 | | |
2802 | | |
2803 | 2663 | //************************************************************************** |
2804 | 2664 | // MEMORY MAPPING HELPERS |
2805 | 2665 | //************************************************************************** |
r17984 | r17985 | |
4911 | 4771 | |
4912 | 4772 | |
4913 | 4773 | //------------------------------------------------- |
4914 | | // set_legacy_func - configure a legacy device |
4915 | | // stub of the appropriate size |
4916 | | //------------------------------------------------- |
4917 | | |
4918 | | void handler_entry_read::set_legacy_func(device_t &device, read8_device_func func, const char *name, UINT64 mask) |
4919 | | { |
4920 | | legacy_info info; |
4921 | | info.handler.device8 = func; |
4922 | | info.object.device = &device; |
4923 | | set_delegate(read8_delegate(&handler_entry_read::read_stub_legacy, name, this), mask, &info); |
4924 | | } |
4925 | | |
4926 | | void handler_entry_read::set_legacy_func(device_t &device, read16_device_func func, const char *name, UINT64 mask) |
4927 | | { |
4928 | | legacy_info info; |
4929 | | info.handler.device16 = func; |
4930 | | info.object.device = &device; |
4931 | | set_delegate(read16_delegate(&handler_entry_read::read_stub_legacy, name, this), mask, &info); |
4932 | | } |
4933 | | |
4934 | | void handler_entry_read::set_legacy_func(device_t &device, read32_device_func func, const char *name, UINT64 mask) |
4935 | | { |
4936 | | legacy_info info; |
4937 | | info.handler.device32 = func; |
4938 | | info.object.device = &device; |
4939 | | set_delegate(read32_delegate(&handler_entry_read::read_stub_legacy, name, this), mask, &info); |
4940 | | } |
4941 | | |
4942 | | void handler_entry_read::set_legacy_func(device_t &device, read64_device_func func, const char *name, UINT64 mask) |
4943 | | { |
4944 | | legacy_info info; |
4945 | | info.handler.device64 = func; |
4946 | | info.object.device = &device; |
4947 | | set_delegate(read64_delegate(&handler_entry_read::read_stub_legacy, name, this), mask, &info); |
4948 | | } |
4949 | | |
4950 | | |
4951 | | //------------------------------------------------- |
4952 | 4774 | // set_ioport - configure an I/O port read stub |
4953 | 4775 | // of the appropriate size |
4954 | 4776 | //------------------------------------------------- |
r17984 | r17985 | |
5366 | 5188 | |
5367 | 5189 | |
5368 | 5190 | //------------------------------------------------- |
5369 | | // set_legacy_func - configure a legacy device |
5370 | | // stub of the appropriate size |
5371 | | //------------------------------------------------- |
5372 | | |
5373 | | void handler_entry_write::set_legacy_func(device_t &device, write8_device_func func, const char *name, UINT64 mask) |
5374 | | { |
5375 | | legacy_info info; |
5376 | | info.handler.device8 = func; |
5377 | | info.object.device = &device; |
5378 | | set_delegate(write8_delegate(&handler_entry_write::write_stub_legacy, name, this), mask, &info); |
5379 | | } |
5380 | | |
5381 | | void handler_entry_write::set_legacy_func(device_t &device, write16_device_func func, const char *name, UINT64 mask) |
5382 | | { |
5383 | | legacy_info info; |
5384 | | info.handler.device16 = func; |
5385 | | info.object.device = &device; |
5386 | | set_delegate(write16_delegate(&handler_entry_write::write_stub_legacy, name, this), mask, &info); |
5387 | | } |
5388 | | |
5389 | | void handler_entry_write::set_legacy_func(device_t &device, write32_device_func func, const char *name, UINT64 mask) |
5390 | | { |
5391 | | legacy_info info; |
5392 | | info.handler.device32 = func; |
5393 | | info.object.device = &device; |
5394 | | set_delegate(write32_delegate(&handler_entry_write::write_stub_legacy, name, this), mask, &info); |
5395 | | } |
5396 | | |
5397 | | void handler_entry_write::set_legacy_func(device_t &device, write64_device_func func, const char *name, UINT64 mask) |
5398 | | { |
5399 | | legacy_info info; |
5400 | | info.handler.device64 = func; |
5401 | | info.object.device = &device; |
5402 | | set_delegate(write64_delegate(&handler_entry_write::write_stub_legacy, name, this), mask, &info); |
5403 | | } |
5404 | | |
5405 | | |
5406 | | //------------------------------------------------- |
5407 | 5191 | // set_ioport - configure an I/O port read stub |
5408 | 5192 | // of the appropriate size |
5409 | 5193 | //------------------------------------------------- |
trunk/src/emu/memory.h
r17984 | r17985 | |
515 | 515 | UINT64 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, read64_device_func rhandler, const char *rname, write64_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_legacy_readwrite_handler(device, addrstart, addrend, 0, 0, rhandler, rname, whandler, wname, unitmask); } |
516 | 516 | |
517 | 517 | // install legacy device handlers (with mirror/mask) |
518 | | UINT8 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, const char *rname, UINT64 unitmask = 0); |
519 | | UINT8 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write8_device_func whandler, const char *wname, UINT64 unitmask = 0); |
520 | | UINT8 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, const char *rname, write8_device_func whandler, const char *wname, UINT64 unitmask = 0); |
521 | | UINT16 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read16_device_func rhandler, const char *rname, UINT64 unitmask = 0); |
522 | | UINT16 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write16_device_func whandler, const char *wname, UINT64 unitmask = 0); |
523 | | UINT16 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read16_device_func rhandler, const char *rname, write16_device_func whandler, const char *wname, UINT64 unitmask = 0); |
524 | | UINT32 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read32_device_func rhandler, const char *rname, UINT64 unitmask = 0); |
525 | | UINT32 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write32_device_func whandler, const char *wname, UINT64 unitmask = 0); |
526 | | UINT32 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read32_device_func rhandler, const char *rname, write32_device_func whandler, const char *wname, UINT64 unitmask = 0); |
527 | | UINT64 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read64_device_func rhandler, const char *rname, UINT64 unitmask = 0); |
528 | | UINT64 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write64_device_func whandler, const char *wname, UINT64 unitmask = 0); |
529 | | UINT64 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read64_device_func rhandler, const char *rname, write64_device_func whandler, const char *wname, UINT64 unitmask = 0); |
| 518 | UINT8 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, const char *rname, UINT64 unitmask = 0) { return install_read_handler(addrstart, addrend, addrmask, addrmirror, read8_delegate(rhandler, rname, &device), unitmask); } |
| 519 | UINT8 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write8_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_write_handler(addrstart, addrend, addrmask, addrmirror, write8_delegate(whandler, wname, &device), unitmask); } |
| 520 | UINT8 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, const char *rname, write8_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_readwrite_handler(addrstart, addrend, addrmask, addrmirror, read8_delegate(rhandler, rname, &device), write8_delegate(whandler, wname, &device), unitmask); } |
| 521 | UINT16 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read16_device_func rhandler, const char *rname, UINT64 unitmask = 0) { return install_read_handler(addrstart, addrend, addrmask, addrmirror, read16_delegate(rhandler, rname, &device), unitmask); } |
| 522 | UINT16 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write16_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_write_handler(addrstart, addrend, addrmask, addrmirror, write16_delegate(whandler, wname, &device), unitmask); } |
| 523 | UINT16 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read16_device_func rhandler, const char *rname, write16_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_readwrite_handler(addrstart, addrend, addrmask, addrmirror, read16_delegate(rhandler, rname, &device), write16_delegate(whandler, wname, &device), unitmask); } |
| 524 | UINT32 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read32_device_func rhandler, const char *rname, UINT64 unitmask = 0) { return install_read_handler(addrstart, addrend, addrmask, addrmirror, read32_delegate(rhandler, rname, &device), unitmask); } |
| 525 | UINT32 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write32_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_write_handler(addrstart, addrend, addrmask, addrmirror, write32_delegate(whandler, wname, &device), unitmask); } |
| 526 | UINT32 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read32_device_func rhandler, const char *rname, write32_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_readwrite_handler(addrstart, addrend, addrmask, addrmirror, read32_delegate(rhandler, rname, &device), write32_delegate(whandler, wname, &device), unitmask); } |
| 527 | UINT64 *install_legacy_read_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read64_device_func rhandler, const char *rname, UINT64 unitmask = 0) { return install_read_handler(addrstart, addrend, addrmask, addrmirror, read64_delegate(rhandler, rname, &device), unitmask); } |
| 528 | UINT64 *install_legacy_write_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, write64_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_write_handler(addrstart, addrend, addrmask, addrmirror, write64_delegate(whandler, wname, &device), unitmask); } |
| 529 | UINT64 *install_legacy_readwrite_handler(device_t &device, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read64_device_func rhandler, const char *rname, write64_device_func whandler, const char *wname, UINT64 unitmask = 0) { return install_readwrite_handler(addrstart, addrend, addrmask, addrmirror, read64_delegate(rhandler, rname, &device), write64_delegate(whandler, wname, &device), unitmask); } |
530 | 530 | |
531 | 531 | // setup |
532 | 532 | void prepare_map(); |