trunk/src/emu/cpu/nec/nec.c
| r244824 | r244825 | |
| 117 | 117 | const device_type V30 = &device_creator<v30_device>; |
| 118 | 118 | const device_type V33 = &device_creator<v33_device>; |
| 119 | 119 | const device_type V33A =&device_creator<v33a_device>; |
| 120 | | const device_type V53 = &device_creator<v53_device>; |
| 121 | | const device_type V53A =&device_creator<v53a_device>; |
| 122 | 120 | |
| 123 | 121 | |
| 122 | |
| 124 | 123 | nec_common_device::nec_common_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, bool is_16bit, offs_t fetch_xor, UINT8 prefetch_size, UINT8 prefetch_cycles, UINT32 chip_type) |
| 125 | 124 | : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) |
| 126 | 125 | , m_program_config("program", ENDIANNESS_LITTLE, is_16bit ? 16 : 8, 20, 0) |
| r244824 | r244825 | |
| 159 | 158 | { |
| 160 | 159 | } |
| 161 | 160 | |
| 162 | | v53_device::v53_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 163 | | : nec_common_device(mconfig, V53, "V53", tag, owner, clock, "v53", true, BYTE_XOR_LE(0), 6, 1, V33_TYPE) |
| 164 | | { |
| 165 | | } |
| 166 | 161 | |
| 167 | | v53a_device::v53a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 168 | | : nec_common_device(mconfig, V53A, "V53A", tag, owner, clock, "v53a", true, BYTE_XOR_LE(0), 6, 1, V33_TYPE) |
| 169 | | { |
| 170 | | } |
| 171 | | |
| 172 | 162 | offs_t nec_common_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 173 | 163 | { |
| 174 | 164 | extern CPU_DISASSEMBLE( nec ); |
trunk/src/emu/cpu/nec/v53.c
| r0 | r244825 | |
| 1 | /* V53 */ |
| 2 | |
| 3 | #include "emu.h" |
| 4 | #include "v53.h" |
| 5 | |
| 6 | const device_type V53 = &device_creator<v53_device>; |
| 7 | const device_type V53A =&device_creator<v53a_device>; |
| 8 | |
| 9 | WRITE8_MEMBER(v53_base_device::BSEL_w) |
| 10 | { |
| 11 | printf("v53: BSEL_w %02x\n", data); |
| 12 | } |
| 13 | |
| 14 | WRITE8_MEMBER(v53_base_device::BADR_w) |
| 15 | { |
| 16 | printf("v53: BADR_w %02x\n", data); |
| 17 | } |
| 18 | |
| 19 | WRITE8_MEMBER(v53_base_device::BRC_w) |
| 20 | { |
| 21 | printf("v53: BRC_w %02x\n", data); |
| 22 | } |
| 23 | |
| 24 | WRITE8_MEMBER(v53_base_device::WMB0_w) |
| 25 | { |
| 26 | printf("v53: WMB0_w %02x\n", data); |
| 27 | } |
| 28 | |
| 29 | WRITE8_MEMBER(v53_base_device::WCY1_w) |
| 30 | { |
| 31 | printf("v53: WCY1_w %02x\n", data); |
| 32 | } |
| 33 | |
| 34 | WRITE8_MEMBER(v53_base_device::WCY0_w) |
| 35 | { |
| 36 | printf("v53: WCY0_w %02x\n", data); |
| 37 | } |
| 38 | |
| 39 | WRITE8_MEMBER(v53_base_device::WAC_w) |
| 40 | { |
| 41 | printf("v53: WAC_w %02x\n", data); |
| 42 | } |
| 43 | |
| 44 | WRITE8_MEMBER(v53_base_device::TCKS_w) |
| 45 | { |
| 46 | printf("v53: TCKS_w %02x\n", data); |
| 47 | } |
| 48 | |
| 49 | WRITE8_MEMBER(v53_base_device::SBCR_w) |
| 50 | { |
| 51 | printf("v53: SBCR_w %02x\n", data); |
| 52 | } |
| 53 | |
| 54 | WRITE8_MEMBER(v53_base_device::REFC_w) |
| 55 | { |
| 56 | printf("v53: REFC_w %02x\n", data); |
| 57 | } |
| 58 | |
| 59 | WRITE8_MEMBER(v53_base_device::WMB1_w) |
| 60 | { |
| 61 | printf("v53: WMB1_w %02x\n", data); |
| 62 | } |
| 63 | |
| 64 | WRITE8_MEMBER(v53_base_device::WCY2_w) |
| 65 | { |
| 66 | printf("v53: WCY2_w %02x\n", data); |
| 67 | } |
| 68 | |
| 69 | WRITE8_MEMBER(v53_base_device::WCY3_w) |
| 70 | { |
| 71 | printf("v53: WCY3_w %02x\n", data); |
| 72 | } |
| 73 | |
| 74 | WRITE8_MEMBER(v53_base_device::WCY4_w) |
| 75 | { |
| 76 | printf("v53: WCY4_w %02x\n", data); |
| 77 | } |
| 78 | |
| 79 | WRITE8_MEMBER(v53_base_device::SULA_w) |
| 80 | { |
| 81 | printf("v53: SULA_w %02x\n", data); |
| 82 | } |
| 83 | |
| 84 | WRITE8_MEMBER(v53_base_device::TULA_w) |
| 85 | { |
| 86 | printf("v53: TULA_w %02x\n", data); |
| 87 | } |
| 88 | |
| 89 | WRITE8_MEMBER(v53_base_device::IULA_w) |
| 90 | { |
| 91 | printf("v53: IULA_w %02x\n", data); |
| 92 | } |
| 93 | |
| 94 | WRITE8_MEMBER(v53_base_device::DULA_w) |
| 95 | { |
| 96 | printf("v53: DULA_w %02x\n", data); |
| 97 | } |
| 98 | |
| 99 | WRITE8_MEMBER(v53_base_device::OPHA_w) |
| 100 | { |
| 101 | printf("v53: OPHA_w %02x\n", data); |
| 102 | } |
| 103 | |
| 104 | WRITE8_MEMBER(v53_base_device::OPSEL_w) |
| 105 | { |
| 106 | printf("v53: OPSEL_w %02x\n", data); |
| 107 | } |
| 108 | |
| 109 | WRITE8_MEMBER(v53_base_device::SCTL_w) |
| 110 | { |
| 111 | printf("v53: SCTL_w %02x\n", data); |
| 112 | } |
| 113 | |
| 114 | static ADDRESS_MAP_START( v53_internal_port_map, AS_IO, 16, v53_base_device ) |
| 115 | AM_RANGE(0xffe0, 0xffe1) AM_WRITE8( BSEL_w, 0x00ff) // 0xffe0 |
| 116 | AM_RANGE(0xffe0, 0xffe1) AM_WRITE8( BADR_w, 0xff00) // 0xffe1 |
| 117 | // AM_RANGE(0xffe2, 0xffe3) // (reserved , 0x00ff) // 0xffe2 |
| 118 | // AM_RANGE(0xffe2, 0xffe3) // (reserved , 0xff00) // 0xffe3 |
| 119 | // AM_RANGE(0xffe4, 0xffe5) // (reserved , 0x00ff) // 0xffe4 |
| 120 | // AM_RANGE(0xffe4, 0xffe5) // (reserved , 0xff00) // 0xffe5 |
| 121 | // AM_RANGE(0xffe6, 0xffe7) // (reserved , 0x00ff) // 0xffe6 |
| 122 | // AM_RANGE(0xffe6, 0xffe7) // (reserved , 0xff00) // 0xffe7 |
| 123 | // AM_RANGE(0xffe8, 0xffe9) // (reserved , 0x00ff) // 0xffe8 |
| 124 | AM_RANGE(0xffe8, 0xffe9) AM_WRITE8( BRC_w , 0xff00) // 0xffe9 |
| 125 | AM_RANGE(0xffea, 0xffeb) AM_WRITE8( WMB0_w, 0x00ff) // 0xffea |
| 126 | AM_RANGE(0xffea, 0xffeb) AM_WRITE8( WCY1_w, 0xff00) // 0xffeb |
| 127 | AM_RANGE(0xffec, 0xffed) AM_WRITE8( WCY0_w, 0x00ff) // 0xffec |
| 128 | AM_RANGE(0xffec, 0xffed) AM_WRITE8( WAC_w, 0xff00) // 0xffed |
| 129 | // AM_RANGE(0xffee, 0xffef) // (reserved , 0x00ff) // 0xffee |
| 130 | // AM_RANGE(0xffee, 0xffef) // (reserved , 0xff00) // 0xffef |
| 131 | AM_RANGE(0xfff0, 0xfff1) AM_WRITE8( TCKS_w, 0x00ff) // 0xfff0 |
| 132 | AM_RANGE(0xfff0, 0xfff1) AM_WRITE8( SBCR_w, 0xff00) // 0xfff1 |
| 133 | AM_RANGE(0xfff2, 0xfff3) AM_WRITE8( REFC_w, 0x00ff) // 0xfff2 |
| 134 | AM_RANGE(0xfff2, 0xfff3) AM_WRITE8( WMB1_w, 0xff00) // 0xfff3 |
| 135 | AM_RANGE(0xfff4, 0xfff5) AM_WRITE8( WCY2_w, 0x00ff) // 0xfff4 |
| 136 | AM_RANGE(0xfff4, 0xfff5) AM_WRITE8( WCY3_w, 0xff00) // 0xfff5 |
| 137 | AM_RANGE(0xfff6, 0xfff7) AM_WRITE8( WCY4_w, 0x00ff) // 0xfff6 |
| 138 | // AM_RANGE(0xfff6, 0xfff7) // (reserved , 0xff00) // 0xfff7 |
| 139 | AM_RANGE(0xfff8, 0xfff9) AM_WRITE8( SULA_w, 0x00ff) // 0xfff8 |
| 140 | AM_RANGE(0xfff8, 0xfff9) AM_WRITE8( TULA_w, 0xff00) // 0xfff9 |
| 141 | AM_RANGE(0xfffa, 0xfffb) AM_WRITE8( IULA_w, 0x00ff) // 0xfffa |
| 142 | AM_RANGE(0xfffa, 0xfffb) AM_WRITE8( DULA_w, 0xff00) // 0xfffb |
| 143 | AM_RANGE(0xfffc, 0xfffd) AM_WRITE8( OPHA_w, 0x00ff) // 0xfffc |
| 144 | AM_RANGE(0xfffc, 0xfffd) AM_WRITE8( OPSEL_w, 0xff00) // 0xfffd |
| 145 | AM_RANGE(0xfffe, 0xffff) AM_WRITE8( SCTL_w, 0x00ff) // 0xfffe |
| 146 | // AM_RANGE(0xfffe, 0xffff) // (reserved , 0xff00) // 0xffff |
| 147 | ADDRESS_MAP_END |
| 148 | |
| 149 | v53_base_device::v53_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, offs_t fetch_xor, UINT8 prefetch_size, UINT8 prefetch_cycles, UINT32 chip_type) |
| 150 | : nec_common_device(mconfig, type, name, tag, owner, clock, shortname, true, fetch_xor, prefetch_size, prefetch_cycles, chip_type), |
| 151 | m_io_space_config( "io", ENDIANNESS_LITTLE, 16, 16, 0, ADDRESS_MAP_NAME( v53_internal_port_map ) ) |
| 152 | { |
| 153 | } |
| 154 | |
| 155 | |
| 156 | v53_device::v53_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 157 | : v53_base_device(mconfig, V53, "V53", tag, owner, clock, "v53", BYTE_XOR_LE(0), 6, 1, V33_TYPE) |
| 158 | { |
| 159 | } |
| 160 | |
| 161 | |
| 162 | v53a_device::v53a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 163 | : v53_base_device(mconfig, V53A, "V53A", tag, owner, clock, "v53a", BYTE_XOR_LE(0), 6, 1, V33_TYPE) |
| 164 | { |
| 165 | } |
| 166 | |
trunk/src/emu/cpu/nec/v53.h
| r0 | r244825 | |
| 1 | /* V53 */ |
| 2 | |
| 3 | #include "nec.h" |
| 4 | #include "necpriv.h" |
| 5 | |
| 6 | class v53_base_device : public nec_common_device |
| 7 | { |
| 8 | public: |
| 9 | v53_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, offs_t fetch_xor, UINT8 prefetch_size, UINT8 prefetch_cycles, UINT32 chip_type); |
| 10 | |
| 11 | DECLARE_WRITE8_MEMBER(BSEL_w); |
| 12 | DECLARE_WRITE8_MEMBER(BADR_w); |
| 13 | DECLARE_WRITE8_MEMBER(BRC_w); |
| 14 | DECLARE_WRITE8_MEMBER(WMB0_w); |
| 15 | DECLARE_WRITE8_MEMBER(WCY1_w); |
| 16 | DECLARE_WRITE8_MEMBER(WCY0_w); |
| 17 | DECLARE_WRITE8_MEMBER(WAC_w); |
| 18 | DECLARE_WRITE8_MEMBER(TCKS_w); |
| 19 | DECLARE_WRITE8_MEMBER(SBCR_w); |
| 20 | DECLARE_WRITE8_MEMBER(REFC_w); |
| 21 | DECLARE_WRITE8_MEMBER(WMB1_w); |
| 22 | DECLARE_WRITE8_MEMBER(WCY2_w); |
| 23 | DECLARE_WRITE8_MEMBER(WCY3_w); |
| 24 | DECLARE_WRITE8_MEMBER(WCY4_w); |
| 25 | DECLARE_WRITE8_MEMBER(SULA_w); |
| 26 | DECLARE_WRITE8_MEMBER(TULA_w); |
| 27 | DECLARE_WRITE8_MEMBER(IULA_w); |
| 28 | DECLARE_WRITE8_MEMBER(DULA_w); |
| 29 | DECLARE_WRITE8_MEMBER(OPHA_w); |
| 30 | DECLARE_WRITE8_MEMBER(OPSEL_w); |
| 31 | DECLARE_WRITE8_MEMBER(SCTL_w); |
| 32 | |
| 33 | const address_space_config m_io_space_config; |
| 34 | |
| 35 | const address_space_config *memory_space_config(address_spacenum spacenum) const |
| 36 | { |
| 37 | switch (spacenum) |
| 38 | { |
| 39 | case AS_IO: return &m_io_space_config; |
| 40 | default: return nec_common_device::memory_space_config(spacenum); |
| 41 | } |
| 42 | } |
| 43 | }; |
| 44 | |
| 45 | |
| 46 | class v53_device : public v53_base_device |
| 47 | { |
| 48 | public: |
| 49 | v53_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 50 | }; |
| 51 | |
| 52 | class v53a_device : public v53_base_device |
| 53 | { |
| 54 | public: |
| 55 | v53a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 56 | }; |
| 57 | |
| 58 | extern const device_type V53; |
| 59 | extern const device_type V53A; |