trunk/src/emu/cpu/z80/tmpz84c011.c
| r31073 | r31074 | |
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | |
| 3 | | Toshiba TMPZ84C011, TLCS-Z80 ASSP Family |
| 4 | | Z80 CPU, CTC, CGC(6/8MHz), I/O8x5 |
| 3 | Toshiba TMPZ84C011, MPUZ80/TLCS-Z80 ASSP Family |
| 4 | Z80 CPU, CTC, CGC, I/O8x5 |
| 5 | 5 | |
| 6 | 6 | TODO: |
| 7 | 7 | - CGC (clock generator/controller) |
| r31073 | r31074 | |
| 13 | 13 | const device_type TMPZ84C011 = &device_creator<tmpz84c011_device>; |
| 14 | 14 | |
| 15 | 15 | static ADDRESS_MAP_START( tmpz84c011_internal_io_map, AS_IO, 8, tmpz84c011_device ) |
| 16 | | AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ctc", z80ctc_device, read, write) AM_MIRROR(0xff00) |
| 16 | AM_RANGE(0x10, 0x13) AM_MIRROR(0xff00) AM_DEVREADWRITE("ctc", z80ctc_device, read, write) |
| 17 | 17 | |
| 18 | | AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_pa_r, tmpz84c011_pa_w) AM_MIRROR(0xff00) |
| 19 | | AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_pb_r, tmpz84c011_pb_w) AM_MIRROR(0xff00) |
| 20 | | AM_RANGE(0x52, 0x52) AM_READWRITE(tmpz84c011_pc_r, tmpz84c011_pc_w) AM_MIRROR(0xff00) |
| 21 | | AM_RANGE(0x30, 0x30) AM_READWRITE(tmpz84c011_pd_r, tmpz84c011_pd_w) AM_MIRROR(0xff00) |
| 22 | | AM_RANGE(0x40, 0x40) AM_READWRITE(tmpz84c011_pe_r, tmpz84c011_pe_w) AM_MIRROR(0xff00) |
| 23 | | AM_RANGE(0x54, 0x54) AM_READWRITE(tmpz84c011_dir_pa_r, tmpz84c011_dir_pa_w) AM_MIRROR(0xff00) |
| 24 | | AM_RANGE(0x55, 0x55) AM_READWRITE(tmpz84c011_dir_pb_r, tmpz84c011_dir_pb_w) AM_MIRROR(0xff00) |
| 25 | | AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_dir_pc_r, tmpz84c011_dir_pc_w) AM_MIRROR(0xff00) |
| 26 | | AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_dir_pd_r, tmpz84c011_dir_pd_w) AM_MIRROR(0xff00) |
| 27 | | AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_dir_pe_r, tmpz84c011_dir_pe_w) AM_MIRROR(0xff00) |
| 18 | AM_RANGE(0x50, 0x50) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pa_r, tmpz84c011_pa_w) |
| 19 | AM_RANGE(0x51, 0x51) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pb_r, tmpz84c011_pb_w) |
| 20 | AM_RANGE(0x52, 0x52) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pc_r, tmpz84c011_pc_w) |
| 21 | AM_RANGE(0x30, 0x30) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pd_r, tmpz84c011_pd_w) |
| 22 | AM_RANGE(0x40, 0x40) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pe_r, tmpz84c011_pe_w) |
| 23 | AM_RANGE(0x54, 0x54) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_dir_pa_r, tmpz84c011_dir_pa_w) |
| 24 | AM_RANGE(0x55, 0x55) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_dir_pb_r, tmpz84c011_dir_pb_w) |
| 25 | AM_RANGE(0x56, 0x56) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_dir_pc_r, tmpz84c011_dir_pc_w) |
| 26 | AM_RANGE(0x34, 0x34) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_dir_pd_r, tmpz84c011_dir_pd_w) |
| 27 | AM_RANGE(0x44, 0x44) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_dir_pe_r, tmpz84c011_dir_pe_w) |
| 28 | 28 | ADDRESS_MAP_END |
| 29 | 29 | |
| 30 | 30 | |
trunk/src/emu/cpu/z80/tmpz84c015.c
| r31073 | r31074 | |
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | |
| 3 | | Toshiba TMPZ84C015, TLCS-Z80 ASSP Family |
| 4 | | Z80 CPU, SIO, CTC, CGC(6/8MHz), PIO, WDT |
| 3 | Toshiba TMPZ84C015, MPUZ80/TLCS-Z80 ASSP Family |
| 4 | Z80 CPU, SIO, CTC, CGC, PIO, WDT |
| 5 | 5 | |
| 6 | 6 | TODO: |
| 7 | 7 | - SIO configuration, or should that be up to the driver? |
| r31073 | r31074 | |
| 40 | 40 | void tmpz84c015_device::device_start() |
| 41 | 41 | { |
| 42 | 42 | z80_device::device_start(); |
| 43 | |
| 44 | // register for save states |
| 45 | save_item(NAME(m_irq_priority)); |
| 43 | 46 | } |
| 44 | 47 | |
| 45 | 48 | |
| r31073 | r31074 | |
| 92 | 95 | }; |
| 93 | 96 | |
| 94 | 97 | // reconfigure first 3 entries in daisy chain |
| 95 | | const char *daisy[4] = { dev[prio[data][0]], dev[prio[data][1]], dev[prio[data][2]], NULL }; |
| 96 | | m_daisy.init(this, (const z80_daisy_config *)daisy); |
| 98 | const z80_daisy_config daisy_chain[] = |
| 99 | { |
| 100 | { dev[prio[data][0]] }, |
| 101 | { dev[prio[data][1]] }, |
| 102 | { dev[prio[data][2]] }, |
| 103 | { NULL } |
| 104 | }; |
| 105 | m_daisy.init(this, daisy_chain); |
| 97 | 106 | |
| 98 | 107 | m_irq_priority = data; |
| 99 | 108 | } |