trunk/src/mame/machine/awboard.c
| r32552 | r32553 | |
| 108 | 108 | AM_RANGE(0x08, 0x09) AM_WRITE(mpr_first_file_index_w) |
| 109 | 109 | AM_RANGE(0x0a, 0x0b) AM_WRITE(mpr_file_offsetl_w) |
| 110 | 110 | AM_RANGE(0x0c, 0x0d) AM_WRITE(mpr_file_offseth_w) |
| 111 | AM_RANGE(0x40, 0x41) AM_READWRITE(adj_offset_r, adj_offset_w) |
| 111 | 112 | ADDRESS_MAP_END |
| 112 | 113 | |
| 113 | 114 | aw_rom_board::aw_rom_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| r32552 | r32553 | |
| 238 | 239 | save_item(NAME(mpr_file_offset)); |
| 239 | 240 | save_item(NAME(dma_offset)); |
| 240 | 241 | save_item(NAME(dma_limit)); |
| 242 | save_item(NAME(adjust_off)); |
| 241 | 243 | } |
| 242 | 244 | |
| 243 | 245 | void aw_rom_board::device_reset() |
| r32552 | r32553 | |
| 247 | 249 | mpr_record_index = 0; |
| 248 | 250 | mpr_first_file_index = 0; |
| 249 | 251 | mpr_file_offset = 0; |
| 252 | adjust_off = 0; |
| 250 | 253 | |
| 251 | 254 | dma_offset = 0; |
| 252 | 255 | dma_limit = 0; |
| 253 | 256 | } |
| 254 | 257 | |
| 258 | READ16_MEMBER(aw_rom_board::adj_offset_r) |
| 259 | { |
| 260 | return adjust_off; |
| 261 | } |
| 262 | |
| 263 | WRITE16_MEMBER(aw_rom_board::adj_offset_w) |
| 264 | { |
| 265 | adjust_off = data; |
| 266 | } |
| 267 | |
| 255 | 268 | WRITE16_MEMBER(aw_rom_board::epr_offsetl_w) |
| 256 | 269 | { |
| 257 | 270 | epr_offset = (epr_offset & 0xffff0000) | data; |
| r32552 | r32553 | |
| 284 | 297 | |
| 285 | 298 | WRITE16_MEMBER(aw_rom_board::mpr_file_offseth_w) |
| 286 | 299 | { |
| 287 | | mpr_file_offset = (mpr_file_offset & 0x0000ffff) | (data << 16); |
| 300 | mpr_file_offset = ((mpr_file_offset & 0x0000ffff) | ((data -(adjust_off*0x0100))<< 16)); |
| 301 | |
| 288 | 302 | recalc_dma_offset(MPR_FILE); |
| 289 | 303 | } |
| 290 | 304 | |
trunk/src/mame/machine/awboard.h
| r32552 | r32553 | |
| 22 | 22 | DECLARE_WRITE16_MEMBER(mpr_first_file_index_w); // 5f7010 |
| 23 | 23 | DECLARE_WRITE16_MEMBER(mpr_file_offsetl_w); // 5f7014 |
| 24 | 24 | DECLARE_WRITE16_MEMBER(mpr_file_offseth_w); // 5f7018 |
| 25 | DECLARE_READ16_MEMBER(adj_offset_r); // 5f7080 |
| 26 | DECLARE_WRITE16_MEMBER(adj_offset_w); // 5f7080 |
| 25 | 27 | |
| 26 | 28 | protected: |
| 27 | 29 | virtual void device_start(); |
| r32552 | r32553 | |
| 37 | 39 | bool region_is_decrypted; |
| 38 | 40 | |
| 39 | 41 | UINT32 epr_offset, mpr_file_offset; |
| 40 | | UINT16 mpr_record_index, mpr_first_file_index; |
| 42 | UINT16 mpr_record_index, mpr_first_file_index, adjust_off; |
| 41 | 43 | |
| 42 | 44 | UINT32 dma_offset, dma_limit; |
| 43 | 45 | |