trunk/src/emu/cpu/dsp56k/dsp56mem.c
| r29212 | r29213 | |
| 482 | 482 | external_p_wait_states_set(cpustate, 0x1f); |
| 483 | 483 | } |
| 484 | 484 | |
| 485 | | READ16_HANDLER( program_r ) |
| 485 | |
| 486 | } // namespace DSP56K |
| 487 | |
| 488 | |
| 489 | READ16_MEMBER( dsp56k_device::program_r ) |
| 486 | 490 | { |
| 487 | | dsp56k_core* cpustate = get_safe_token(&space.device()); |
| 491 | dsp56k_core* cpustate = get_safe_token(this); |
| 488 | 492 | return cpustate->program_ram[offset]; |
| 489 | 493 | } |
| 490 | 494 | |
| 491 | | WRITE16_HANDLER( program_w ) |
| 495 | WRITE16_MEMBER( dsp56k_device::program_w ) |
| 492 | 496 | { |
| 493 | | dsp56k_core* cpustate = get_safe_token(&space.device()); |
| 497 | dsp56k_core* cpustate = get_safe_token(this); |
| 494 | 498 | cpustate->program_ram[offset] = data; |
| 495 | 499 | } |
| 496 | 500 | |
| 497 | 501 | /* Work */ |
| 498 | | READ16_HANDLER( peripheral_register_r ) |
| 502 | READ16_MEMBER( dsp56k_device::peripheral_register_r ) |
| 499 | 503 | { |
| 500 | | dsp56k_core* cpustate = get_safe_token(&space.device()); |
| 504 | dsp56k_core* cpustate = get_safe_token(this); |
| 501 | 505 | // (printf) logerror("Peripheral read 0x%04x\n", O2A(offset)); |
| 502 | 506 | |
| 503 | 507 | switch (O2A(offset)) |
| r29212 | r29213 | |
| 630 | 634 | return cpustate->peripheral_ram[offset]; |
| 631 | 635 | } |
| 632 | 636 | |
| 633 | | WRITE16_HANDLER( peripheral_register_w ) |
| 637 | WRITE16_MEMBER( dsp56k_device::peripheral_register_w ) |
| 634 | 638 | { |
| 635 | | dsp56k_core* cpustate = get_safe_token(&space.device()); |
| 639 | dsp56k_core* cpustate = get_safe_token(this); |
| 636 | 640 | |
| 637 | 641 | // Its primary behavior is RAM |
| 638 | 642 | // COMBINE_DATA(&cpustate->peripheral_ram[offset]); |
| r29212 | r29213 | |
| 785 | 789 | } |
| 786 | 790 | } |
| 787 | 791 | |
| 788 | | } // namespace DSP56K |
| 789 | | |
| 790 | 792 | /* These two functions are exposed to the outside world */ |
| 791 | 793 | /* They represent the host side of the dsp56k's host interface */ |
| 792 | 794 | void dsp56k_host_interface_write(device_t* device, UINT8 offset, UINT8 data) |
trunk/src/emu/cpu/dsp56k/dsp56k.c
| r29212 | r29213 | |
| 368 | 368 | /**************************************************************************** |
| 369 | 369 | * Internal Memory Maps |
| 370 | 370 | ****************************************************************************/ |
| 371 | | static ADDRESS_MAP_START( dsp56156_program_map, AS_PROGRAM, 16, legacy_cpu_device ) |
| 372 | | AM_RANGE(0x0000,0x07ff) AM_READWRITE_LEGACY(DSP56K::program_r, DSP56K::program_w) /* 1-5 */ |
| 371 | static ADDRESS_MAP_START( dsp56156_program_map, AS_PROGRAM, 16, dsp56k_device ) |
| 372 | AM_RANGE(0x0000,0x07ff) AM_READWRITE(program_r, program_w) /* 1-5 */ |
| 373 | 373 | // AM_RANGE(0x2f00,0x2fff) AM_ROM /* 1-5 PROM reserved memory. Is this the right spot for it? */ |
| 374 | 374 | ADDRESS_MAP_END |
| 375 | 375 | |
| 376 | | static ADDRESS_MAP_START( dsp56156_x_data_map, AS_DATA, 16, legacy_cpu_device ) |
| 376 | static ADDRESS_MAP_START( dsp56156_x_data_map, AS_DATA, 16, dsp56k_device ) |
| 377 | 377 | AM_RANGE(0x0000,0x07ff) AM_RAM /* 1-5 */ |
| 378 | | AM_RANGE(0xffc0,0xffff) AM_READWRITE_LEGACY(DSP56K::peripheral_register_r, DSP56K::peripheral_register_w) /* 1-5 On-chip peripheral registers memory mapped in data space */ |
| 378 | AM_RANGE(0xffc0,0xffff) AM_READWRITE(peripheral_register_r, peripheral_register_w) /* 1-5 On-chip peripheral registers memory mapped in data space */ |
| 379 | 379 | ADDRESS_MAP_END |
| 380 | 380 | |
| 381 | 381 | |
trunk/src/emu/cpu/dsp56k/dsp56k.h
| r29212 | r29213 | |
| 23 | 23 | #define DSP56K_IRQ_RESET 3 /* Is this needed? */ |
| 24 | 24 | |
| 25 | 25 | // Needed for MAME |
| 26 | | DECLARE_LEGACY_CPU_DEVICE(DSP56156, dsp56k); |
| 26 | CPU_GET_INFO( dsp56k ); |
| 27 | 27 | |
| 28 | class dsp56k_device : public legacy_cpu_device |
| 29 | { |
| 30 | public: |
| 31 | dsp56k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, UINT32 clock); |
| 28 | 32 | |
| 33 | DECLARE_READ16_MEMBER( program_r ); |
| 34 | DECLARE_WRITE16_MEMBER( program_w ); |
| 35 | DECLARE_READ16_MEMBER( peripheral_register_r ); |
| 36 | DECLARE_WRITE16_MEMBER( peripheral_register_w ); |
| 37 | }; |
| 38 | |
| 39 | extern const device_type DSP56156; |
| 40 | |
| 41 | |
| 29 | 42 | /*************************************************************************** |
| 30 | 43 | STRUCTURES & TYPEDEFS |
| 31 | 44 | ***************************************************************************/ |