trunk/src/mess/machine/sns_upd.c
| r21886 | r21887 | |
| 12 | 12 | #include "emu.h" |
| 13 | 13 | #include "machine/sns_upd.h" |
| 14 | 14 | |
| 15 | |
| 16 | // helpers |
| 17 | inline UINT32 get_prg(UINT8 *CPU, UINT32 addr) |
| 18 | { |
| 19 | return ((CPU[addr * 4] << 24) | (CPU[addr * 4 + 1] << 16) | (CPU[addr * 4 + 2] << 8) | 0x00); |
| 20 | } |
| 21 | inline UINT16 get_data(UINT8 *CPU, UINT32 addr) |
| 22 | { |
| 23 | return ((CPU[addr * 2] << 8) | CPU[addr * 2 + 1]); |
| 24 | } |
| 25 | |
| 15 | 26 | //------------------------------------------------- |
| 16 | 27 | // constructor |
| 17 | 28 | //------------------------------------------------- |
| r21886 | r21887 | |
| 89 | 100 | // DSP dump contains prg at offset 0 and data at offset 0x2000 |
| 90 | 101 | READ32_MEMBER( sns_rom20_necdsp_device::necdsp_prg_r ) |
| 91 | 102 | { |
| 92 | | return (m_bios[offset * 4] << 24) | (m_bios[offset * 4 + 1] << 16) | |
| 93 | | (m_bios[offset * 4 + 2] << 8) | 0x00; |
| 103 | return get_prg(m_bios, offset); |
| 94 | 104 | } |
| 95 | 105 | |
| 96 | 106 | READ16_MEMBER( sns_rom20_necdsp_device::necdsp_data_r ) |
| 97 | 107 | { |
| 98 | | return (m_bios[0x2000 + offset * 2] << 8) | m_bios[0x2000 + offset * 2 + 1]; |
| 108 | return get_data(m_bios, offset + 0x2000/2); |
| 99 | 109 | } |
| 100 | 110 | |
| 101 | 111 | |
| r21886 | r21887 | |
| 156 | 166 | // DSP dump contains prg at offset 0 and data at offset 0x2000 |
| 157 | 167 | READ32_MEMBER( sns_rom21_necdsp_device::necdsp_prg_r ) |
| 158 | 168 | { |
| 159 | | return (m_bios[offset * 4] << 24) | (m_bios[offset * 4 + 1] << 16) | |
| 160 | | (m_bios[offset * 4 + 2] << 8) | 0x00; |
| 169 | return get_prg(m_bios, offset); |
| 161 | 170 | } |
| 162 | 171 | |
| 163 | 172 | READ16_MEMBER( sns_rom21_necdsp_device::necdsp_data_r ) |
| 164 | 173 | { |
| 165 | | return (m_bios[0x2000 + offset * 2] << 8) | m_bios[0x2000 + offset * 2 + 1]; |
| 174 | return get_data(m_bios, offset + 0x2000/2); |
| 166 | 175 | } |
| 167 | 176 | |
| 168 | 177 | |
| r21886 | r21887 | |
| 276 | 285 | // DSP dump contains prg at offset 0 and data at offset 0x10000 |
| 277 | 286 | READ32_MEMBER( sns_rom_setadsp_device::setadsp_prg_r ) |
| 278 | 287 | { |
| 279 | | return (m_bios[offset * 4] << 24) | (m_bios[offset * 4 + 1] << 16) | |
| 280 | | (m_bios[offset * 4 + 2] << 8) | 0x00; |
| 288 | return get_prg(m_bios, offset); |
| 281 | 289 | } |
| 282 | 290 | |
| 283 | 291 | READ16_MEMBER( sns_rom_setadsp_device::setadsp_data_r ) |
| 284 | 292 | { |
| 285 | | return (m_bios[0x10000 + offset * 2] << 8) | m_bios[0x10000 + offset * 2 + 1]; |
| 293 | return get_data(m_bios, offset + 0x10000/2); |
| 286 | 294 | } |
| 287 | 295 | |
| 288 | 296 | |