trunk/src/mame/drivers/vlc.c
| r29216 | r29217 | |
| 132 | 132 | #include "emu.h" |
| 133 | 133 | #include "cpu/m68000/m68000.h" |
| 134 | 134 | #include "machine/mc68681.h" |
| 135 | #include "machine/nvram.h" |
| 135 | 136 | #include "video/mc6845.h" |
| 136 | 137 | #include "sound/ay8910.h" |
| 137 | 138 | #include "machine/msm6242.h" |
| 138 | 139 | #include "machine/microtch.h" |
| 139 | | #include "mcfglgcy.h" |
| 140 | 140 | |
| 141 | 141 | |
| 142 | 142 | /*************************************************************************** |
| r29216 | r29217 | |
| 156 | 156 | m_duart40_68681(*this, "duart40_68681"), |
| 157 | 157 | m_maincpu(*this,"maincpu"), |
| 158 | 158 | m_microtouch(*this,"microtouch"), |
| 159 | | m_nvram(*this, "nvram"), |
| 160 | | m_backup(*this, "backup") |
| 159 | m_nvram(*this,"nvram"), |
| 160 | m_ram62256(*this, "ram62256"), |
| 161 | m_backup(*this, "backup") |
| 161 | 162 | { } |
| 162 | 163 | |
| 163 | 164 | required_device<mc68681_device> m_duart18_68681; |
| r29216 | r29217 | |
| 166 | 167 | |
| 167 | 168 | required_device<cpu_device> m_maincpu; |
| 168 | 169 | optional_device<microtouch_serial_device> m_microtouch; |
| 170 | required_device<nvram_device> m_nvram; |
| 169 | 171 | |
| 170 | | required_shared_ptr<UINT16> m_nvram; |
| 172 | required_shared_ptr<UINT16> m_ram62256; |
| 171 | 173 | required_shared_ptr<UINT16> m_backup; |
| 172 | 174 | |
| 175 | void nvram_init(nvram_device &nvram, void *data, size_t size); |
| 176 | |
| 173 | 177 | UINT16 m_datA40000; |
| 174 | 178 | |
| 175 | 179 | //UINT8* m_videoram; |
| r29216 | r29217 | |
| 190 | 194 | DECLARE_WRITE16_MEMBER (io_board_x); |
| 191 | 195 | DECLARE_READ16_MEMBER( nevada_sec_r ); |
| 192 | 196 | DECLARE_WRITE16_MEMBER( nevada_sec_w ); |
| 193 | | virtual void machine_reset(); |
| 194 | 197 | |
| 198 | DECLARE_MACHINE_START(nevada); |
| 195 | 199 | DECLARE_DRIVER_INIT(nevada); |
| 196 | 200 | }; |
| 197 | 201 | |
| r29216 | r29217 | |
| 320 | 324 | /******************** NVRAM SECTION ************************************/ |
| 321 | 325 | /***************************************************************************/ |
| 322 | 326 | |
| 323 | | static NVRAM_HANDLER( nevada ) |
| 327 | void nevada_state::nvram_init(nvram_device &nvram, void *data, size_t size) |
| 324 | 328 | { |
| 325 | | nevada_state *state = machine.driver_data<nevada_state>(); |
| 326 | | if (read_or_write) |
| 327 | | file->write(state->m_nvram,state->m_nvram.bytes()); |
| 328 | | else |
| 329 | | { |
| 330 | | if (file) |
| 331 | | file->read(state->m_nvram,state->m_nvram.bytes()); |
| 332 | | else |
| 333 | | { |
| 334 | | UINT16* defaultram = (UINT16 *) state->memregion("defaults")->base(); |
| 335 | | memset(state->m_nvram,0x00,state->m_nvram.bytes()); |
| 336 | | if (defaultram) memcpy(state->m_nvram, state->memregion("defaults")->base(), state->memregion("defaults")->bytes()); |
| 337 | | } |
| 338 | | } |
| 329 | memset(data, 0x00, size); |
| 330 | if (memregion("defaults")->base()) |
| 331 | memcpy(data, memregion("defaults")->base(), memregion("defaults")->bytes()); |
| 339 | 332 | } |
| 340 | 333 | |
| 334 | |
| 341 | 335 | /*************************************************************************** |
| 342 | 336 | |
| 343 | 337 | U18 MC68681 RS232 UART SIDEA = MODEM 1200 Baud |
| r29216 | r29217 | |
| 526 | 520 | */ |
| 527 | 521 | /***************************************************************************/ |
| 528 | 522 | static ADDRESS_MAP_START( nevada_map, AS_PROGRAM, 16,nevada_state ) |
| 529 | | AM_RANGE(0x00000000, 0x0000ffff) AM_RAM AM_SHARE("nvram") |
| 523 | AM_RANGE(0x00000000, 0x0000ffff) AM_RAM AM_SHARE("ram62256") |
| 530 | 524 | AM_RANGE(0x00010000, 0x00021fff) AM_RAM AM_SHARE("backup") |
| 531 | 525 | AM_RANGE(0x00900000, 0x00900001) AM_DEVWRITE8("crtc",mc6845_device, address_w,0x00ff ) |
| 532 | 526 | AM_RANGE(0x00908000, 0x00908001) AM_DEVWRITE8("crtc",mc6845_device,register_w,0x00ff ) |
| r29216 | r29217 | |
| 594 | 588 | |
| 595 | 589 | /***************************************************************************/ |
| 596 | 590 | /************************* |
| 597 | | * Machine Reset * |
| 591 | * Machine start * |
| 598 | 592 | *************************/ |
| 599 | 593 | |
| 600 | | void nevada_state::machine_reset() |
| 594 | MACHINE_START_MEMBER(nevada_state, nevada) |
| 601 | 595 | { |
| 596 | m_nvram->set_base(m_ram62256, 0x1000); |
| 602 | 597 | } |
| 598 | |
| 603 | 599 | /***************************************************************************/ |
| 604 | 600 | |
| 605 | 601 | /************************* |
| r29216 | r29217 | |
| 614 | 610 | |
| 615 | 611 | MCFG_WATCHDOG_TIME_INIT(attotime::from_msec(150)) /* 150ms Ds1232 TD to Ground */ |
| 616 | 612 | |
| 613 | MCFG_MACHINE_START_OVERRIDE(nevada_state, nevada) |
| 617 | 614 | |
| 618 | | MCFG_NVRAM_HANDLER(nevada) |
| 615 | MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", nevada_state, nvram_init) |
| 619 | 616 | |
| 620 | 617 | // video hardware |
| 621 | 618 | MCFG_SCREEN_ADD("screen", RASTER) |