branches/kale/src/emu/cpu/z180/z180.c
| r244709 | r244710 | |
| 121 | 121 | : cpu_device(mconfig, Z180, "Z180", tag, owner, clock, "z180", __FILE__) |
| 122 | 122 | , m_program_config("program", ENDIANNESS_LITTLE, 8, 20, 0) |
| 123 | 123 | , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) |
| 124 | , m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0) |
| 124 | 125 | { |
| 125 | 126 | } |
| 126 | 127 | |
| r244709 | r244710 | |
| 847 | 848 | break; |
| 848 | 849 | |
| 849 | 850 | case Z180_TDR0: |
| 850 | | data = IO_TDR0 & Z180_TDR0_RMASK; |
| 851 | data = m_data->read_byte(0); //IO_TDR0 & Z180_TDR0_RMASK; |
| 852 | |
| 851 | 853 | LOG(("Z180 '%s' TDR0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); |
| 852 | 854 | break; |
| 853 | 855 | |
| 854 | 856 | case Z180_TDR1: |
| 855 | | data = IO_TDR1 & Z180_TDR1_RMASK; |
| 857 | data = m_data->read_byte(1); //IO_TDR1 & Z180_TDR1_RMASK; |
| 856 | 858 | LOG(("Z180 '%s' TDR1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); |
| 857 | 859 | break; |
| 858 | 860 | |
| 859 | 861 | case Z180_RDR0: |
| 860 | | data = IO_RDR0 & Z180_RDR0_RMASK; |
| 862 | data = m_data->read_byte(2); |
| 863 | //data = IO_RDR0 & Z180_RDR0_RMASK; |
| 861 | 864 | LOG(("Z180 '%s' RDR0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); |
| 862 | 865 | break; |
| 863 | 866 | |
| 864 | 867 | case Z180_RDR1: |
| 865 | | data = IO_RDR1 & Z180_RDR1_RMASK; |
| 868 | data = m_data->read_byte(3); |
| 869 | //data = IO_RDR1 & Z180_RDR1_RMASK; |
| 866 | 870 | LOG(("Z180 '%s' RDR1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); |
| 867 | 871 | break; |
| 868 | 872 | |
| r244709 | r244710 | |
| 1276 | 1280 | |
| 1277 | 1281 | case Z180_TDR0: |
| 1278 | 1282 | LOG(("Z180 '%s' TDR0 wr $%02x ($%02x)\n", tag(), data, data & Z180_TDR0_WMASK)); |
| 1283 | m_data->write_byte(0,data); |
| 1279 | 1284 | IO_TDR0 = (IO_TDR0 & ~Z180_TDR0_WMASK) | (data & Z180_TDR0_WMASK); |
| 1280 | 1285 | break; |
| 1281 | 1286 | |
| 1282 | 1287 | case Z180_TDR1: |
| 1283 | 1288 | LOG(("Z180 '%s' TDR1 wr $%02x ($%02x)\n", tag(), data, data & Z180_TDR1_WMASK)); |
| 1289 | m_data->write_byte(1,data); |
| 1284 | 1290 | IO_TDR1 = (IO_TDR1 & ~Z180_TDR1_WMASK) | (data & Z180_TDR1_WMASK); |
| 1285 | 1291 | break; |
| 1286 | 1292 | |
| 1287 | 1293 | case Z180_RDR0: |
| 1288 | 1294 | LOG(("Z180 '%s' RDR0 wr $%02x ($%02x)\n", tag(), data, data & Z180_RDR0_WMASK)); |
| 1295 | m_data->write_byte(2,data); |
| 1296 | |
| 1289 | 1297 | IO_RDR0 = (IO_RDR0 & ~Z180_RDR0_WMASK) | (data & Z180_RDR0_WMASK); |
| 1290 | 1298 | break; |
| 1291 | 1299 | |
| 1292 | 1300 | case Z180_RDR1: |
| 1293 | 1301 | LOG(("Z180 '%s' RDR1 wr $%02x ($%02x)\n", tag(), data, data & Z180_RDR1_WMASK)); |
| 1302 | m_data->write_byte(3,data); |
| 1303 | |
| 1294 | 1304 | IO_RDR1 = (IO_RDR1 & ~Z180_RDR1_WMASK) | (data & Z180_RDR1_WMASK); |
| 1305 | |
| 1295 | 1306 | break; |
| 1296 | 1307 | |
| 1297 | 1308 | case Z180_CNTR: |
| r244709 | r244710 | |
| 1992 | 2003 | |
| 1993 | 2004 | m_program = &space(AS_PROGRAM); |
| 1994 | 2005 | m_direct = &m_program->direct(); |
| 2006 | m_data = &space(AS_DATA); |
| 1995 | 2007 | m_iospace = &space(AS_IO); |
| 1996 | 2008 | |
| 1997 | 2009 | /* set up the state table */ |
branches/kale/src/emu/cpu/z180/z180.h
| r244709 | r244710 | |
| 151 | 151 | virtual void execute_set_input(int inputnum, int state); |
| 152 | 152 | |
| 153 | 153 | // device_memory_interface overrides |
| 154 | | virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : NULL ); } |
| 154 | virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ((spacenum == AS_DATA) ? &m_data_config : NULL) ); } |
| 155 | 155 | virtual bool memory_translate(address_spacenum spacenum, int intention, offs_t &address); |
| 156 | 156 | |
| 157 | 157 | // device_state_interface overrides |
| r244709 | r244710 | |
| 167 | 167 | private: |
| 168 | 168 | address_space_config m_program_config; |
| 169 | 169 | address_space_config m_io_config; |
| 170 | address_space_config m_data_config; |
| 170 | 171 | |
| 171 | 172 | PAIR m_PREPC,m_PC,m_SP,m_AF,m_BC,m_DE,m_HL,m_IX,m_IY; |
| 172 | 173 | PAIR m_AF2,m_BC2,m_DE2,m_HL2; |
| r244709 | r244710 | |
| 191 | 192 | z80_daisy_chain m_daisy; |
| 192 | 193 | address_space *m_program; |
| 193 | 194 | direct_read_data *m_direct; |
| 195 | address_space *m_data; |
| 194 | 196 | address_space *m_iospace; |
| 195 | 197 | UINT8 m_rtemp; |
| 196 | 198 | UINT32 m_ioltemp; |
branches/kale/src/mame/drivers/asuka.c
| r244709 | r244710 | |
| 1928 | 1928 | static ADDRESS_MAP_START( cadash_sub_io_2, AS_IO, 8, cadash_state ) |
| 1929 | 1929 | AM_RANGE(0x00, 0x3f) AM_RAM // z180 internal I/O regs |
| 1930 | 1930 | ADDRESS_MAP_END |
| 1931 | |
| 1932 | static ADDRESS_MAP_START( cadash_sub_data, AS_DATA, 8, cadash_state ) |
| 1933 | |
| 1934 | ADDRESS_MAP_END |
| 1935 | |
| 1936 | static ADDRESS_MAP_START( cadash_sub_data_2, AS_DATA, 8, cadash_state ) |
| 1937 | |
| 1938 | ADDRESS_MAP_END |
| 1931 | 1939 | |
| 1932 | 1940 | |
| 1933 | 1941 | static MACHINE_CONFIG_START( cadashjl, cadash_state ) |
| r244709 | r244710 | |
| 1943 | 1951 | MCFG_CPU_ADD("subcpu", Z180, 4000000) /* 4 MHz ??? */ |
| 1944 | 1952 | MCFG_CPU_PROGRAM_MAP(cadash_sub_map) |
| 1945 | 1953 | MCFG_CPU_IO_MAP(cadash_sub_io) |
| 1954 | MCFG_CPU_DATA_MAP(cadash_sub_data) |
| 1946 | 1955 | |
| 1947 | 1956 | MCFG_CPU_ADD("maincpu_2", M68000, XTAL_32MHz/2) /* 68000p12 running at 16Mhz, verified on pcb */ |
| 1948 | 1957 | MCFG_CPU_PROGRAM_MAP(cadash_map_2) |
| r244709 | r244710 | |
| 1954 | 1963 | MCFG_CPU_ADD("subcpu_2", Z180, 4000000) /* 4 MHz ??? */ |
| 1955 | 1964 | MCFG_CPU_PROGRAM_MAP(cadash_sub_map_2) |
| 1956 | 1965 | MCFG_CPU_IO_MAP(cadash_sub_io_2) |
| 1966 | MCFG_CPU_DATA_MAP(cadash_sub_data_2) |
| 1957 | 1967 | |
| 1958 | 1968 | |
| 1959 | 1969 | MCFG_QUANTUM_TIME(attotime::from_hz(600)) |
branches/kale/src/mame/includes/asuka.h
| r244709 | r244710 | |
| 23 | 23 | m_cadash_shared_ram(*this, "sharedram"), |
| 24 | 24 | m_maincpu(*this, "maincpu"), |
| 25 | 25 | m_audiocpu(*this, "audiocpu"), |
| 26 | m_subcpu(*this, "subcpu"), |
| 26 | 27 | m_msm(*this, "msm"), |
| 27 | 28 | m_pc090oj(*this, "pc090oj"), |
| 28 | 29 | m_tc0100scn(*this, "tc0100scn"), |
| r244709 | r244710 | |
| 53 | 54 | /* devices */ |
| 54 | 55 | required_device<cpu_device> m_maincpu; |
| 55 | 56 | required_device<cpu_device> m_audiocpu; |
| 57 | optional_device<cpu_device> m_subcpu; |
| 56 | 58 | optional_device<msm5205_device> m_msm; |
| 57 | 59 | required_device<pc090oj_device> m_pc090oj; |
| 58 | 60 | required_device<tc0100scn_device> m_tc0100scn; |
| r244709 | r244710 | |
| 94 | 96 | public: |
| 95 | 97 | cadash_state(const machine_config &mconfig, device_type type, const char *tag) |
| 96 | 98 | : asuka_state(mconfig, type, tag), |
| 99 | m_subcpu_2(*this, "subcpu_2"), |
| 97 | 100 | m_cadash_shared_ram_2(*this, "sharedram_2"), |
| 98 | 101 | m_pc090oj_2(*this, "pc090oj_2"), |
| 99 | 102 | m_tc0100scn_2(*this, "tc0100scn_2"), |
| r244709 | r244710 | |
| 103 | 106 | //required_device<cpu_device> m_maincpu; |
| 104 | 107 | //required_device<cpu_device> m_audiocpu; |
| 105 | 108 | //optional_device<msm5205_device> m_msm; |
| 109 | optional_device<cpu_device> m_subcpu_2; |
| 106 | 110 | optional_shared_ptr<UINT8> m_cadash_shared_ram_2; |
| 107 | 111 | required_device<pc090oj_device> m_pc090oj_2; |
| 108 | 112 | required_device<tc0100scn_device> m_tc0100scn_2; |