trunk/hash/msx1_cart.xml
| r30637 | r30638 | |
| 14537 | 14537 | </software> |
| 14538 | 14538 | |
| 14539 | 14539 | <software name="nms1205"> |
| 14540 | | <description>Philips NMS-1205 Music Module</description> |
| 14540 | <description>Philips NMS-1205 Music Module v1.2</description> |
| 14541 | 14541 | <year>198?</year> |
| 14542 | 14542 | <publisher>Philips</publisher> |
| 14543 | 14543 | <part name="cart" interface="msx_cart"> |
| 14544 | 14544 | <feature name="slot" value="msxaud_nms1205" /> |
| 14545 | 14545 | <dataarea name="rom" size="32768"> |
| 14546 | <!-- SUM16 should be DE54, not verified --> |
| 14546 | 14547 | <rom name="nms1205.bin" size="32768" crc="5ecaeef0" sha1="c7463e1fd0433c5d41b70670d6c10fd781b66426" offset="0" /> |
| 14547 | 14548 | </dataarea> |
| 14549 | <!-- |
| 14550 | This memory is currently declared as a memory region inside the nms1205 implementation otherwise the |
| 14551 | legacy FM implementations cannot find it. |
| 14548 | 14552 | <dataarea name="ram" size="32768"> |
| 14549 | 14553 | </dataarea> |
| 14554 | --> |
| 14550 | 14555 | </part> |
| 14551 | 14556 | </software> |
| 14552 | 14557 | |
| 14558 | <!-- Unsure about the correctness of this dump. It boots straight into basic and you have to stasrt the internal software by doing 'call musicbox' --> |
| 14559 | <software name="nms1205v11" cloneof="nms1205"> |
| 14560 | <description>Philips NMS-1205 Music Module v1.1</description> |
| 14561 | <year>198?</year> |
| 14562 | <publisher>Philips</publisher> |
| 14563 | <part name="cart" interface="msx_cart"> |
| 14564 | <feature name="slot" value="msxaud_nms1205" /> |
| 14565 | <dataarea name="rom" size="32768"> |
| 14566 | <!-- SUM16: DE5C --> |
| 14567 | <rom name="nms1205_de5c.bin" size="32768" crc="d8a17006" sha1="f081a884505af9a1080b2b57e86b6da93b784301" offset="0" /> |
| 14568 | </dataarea> |
| 14569 | <!-- |
| 14570 | This memory is currently declared as a memory region inside the nms1205 implementation otherwise the |
| 14571 | legacy FM implementations cannot find it. |
| 14572 | <dataarea name="ram" size="32768"> |
| 14573 | </dataarea> |
| 14574 | --> |
| 14575 | </part> |
| 14576 | </software> |
| 14577 | |
| 14578 | <!-- |
| 14579 | <software name="nms1205v10" cloneof="nms1205" supported="no"> |
| 14580 | <description>Philips NMS-1205 Music Module v1.0</description> |
| 14581 | <year>198?</year> |
| 14582 | <publisher>Philips</publisher> |
| 14583 | <part name="cart" interface="msx_cart"> |
| 14584 | <feature name="slot" value="msxaud_nms1205" /> |
| 14585 | <dataarea name="rom" size="32768"> |
| 14586 | <!-- SUM16: 53BF --> |
| 14587 | <rom name="nms1205_53bf.bin" size="32768" crc="6e68bd44" sha1="146d9738b6d534277dab9b41a07556ffec9065b9" status="baddump" offset="0" /> |
| 14588 | </dataarea> |
| 14589 | <!- - |
| 14590 | This memory is currently declared as a memory region inside the nms1205 implementation otherwise the |
| 14591 | legacy FM implementations cannot find it. |
| 14592 | <dataarea name="ram" size="32768"> |
| 14593 | </dataarea> |
| 14594 | - -> |
| 14595 | </part> |
| 14596 | </software> |
| 14597 | --> |
| 14598 | |
| 14553 | 14599 | <!-- Dictionary ROMs? --> |
| 14554 | 14600 | <software name="natjis" supported="no"> |
| 14555 | 14601 | <description>National FS-SR022 MSX-Jisho (Jpn)</description> |
trunk/src/emu/bus/msx_cart/msx_audio_kb.c
| r30637 | r30638 | |
| 179 | 179 | : device_t(mconfig, MSX_AUDIO_KB_NMS1160, "Philips NMS-1160", tag, owner, clock, "nms1160", __FILE__) |
| 180 | 180 | , msx_audio_kb_port_interface(mconfig, *this) |
| 181 | 181 | , m_row(0) |
| 182 | , m_keyboard(*this, "KEY") |
| 182 | 183 | { }; |
| 183 | 184 | |
| 184 | | // virtual ioport_constructor device_input_ports() const; |
| 185 | virtual ioport_constructor device_input_ports() const; |
| 185 | 186 | |
| 186 | 187 | virtual DECLARE_READ8_MEMBER(read) |
| 187 | 188 | { |
| 188 | | return 0xff; |
| 189 | UINT8 result = 0xff; |
| 190 | |
| 191 | for (int i = 0; i < 8; i++) |
| 192 | { |
| 193 | if (BIT(m_row,i)) |
| 194 | { |
| 195 | result &= m_keyboard[i]->read(); |
| 196 | } |
| 197 | } |
| 198 | return result; |
| 189 | 199 | } |
| 190 | 200 | |
| 191 | 201 | virtual DECLARE_WRITE8_MEMBER(write) |
| 192 | 202 | { |
| 193 | | printf("msx_nms1160::write %02x\n", data); |
| 203 | logerror("msx_nms1160::write %02x\n", data); |
| 194 | 204 | m_row = data; |
| 195 | 205 | } |
| 196 | 206 | |
| r30637 | r30638 | |
| 199 | 209 | |
| 200 | 210 | private: |
| 201 | 211 | UINT8 m_row; |
| 212 | required_ioport_array<8> m_keyboard; |
| 202 | 213 | }; |
| 203 | 214 | |
| 204 | 215 | |
| 216 | static INPUT_PORTS_START( nms1160 ) |
| 217 | PORT_START("KEY.0") |
| 218 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C1") |
| 219 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C#1") |
| 220 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D1") |
| 221 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D#1") |
| 222 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E1") |
| 223 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") |
| 224 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F#1") |
| 225 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G1") |
| 226 | |
| 227 | PORT_START("KEY.1") |
| 228 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G#1") |
| 229 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A1") |
| 230 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A#1") |
| 231 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B1") |
| 232 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C2") |
| 233 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C#2") |
| 234 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D2") |
| 235 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D#2") |
| 236 | |
| 237 | PORT_START("KEY.2") |
| 238 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E2") |
| 239 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") |
| 240 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F#2") |
| 241 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G2") |
| 242 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G#2") |
| 243 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A2") |
| 244 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A#2") |
| 245 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B2") |
| 246 | |
| 247 | PORT_START("KEY.3") |
| 248 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C3") |
| 249 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C#3") |
| 250 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D3") |
| 251 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D#3") |
| 252 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E3") |
| 253 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") |
| 254 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F#3") |
| 255 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G3") |
| 256 | |
| 257 | PORT_START("KEY.4") |
| 258 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G#3") |
| 259 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A3") |
| 260 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A#3") |
| 261 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B3") |
| 262 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C4") |
| 263 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C#4") |
| 264 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D4") |
| 265 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D#4") |
| 266 | |
| 267 | PORT_START("KEY.5") |
| 268 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E4") |
| 269 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") |
| 270 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F#4") |
| 271 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G4") |
| 272 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G#4") |
| 273 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A4") |
| 274 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A#4") |
| 275 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B4") |
| 276 | |
| 277 | PORT_START("KEY.6") |
| 278 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C5") |
| 279 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C#5") |
| 280 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D5") |
| 281 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D#5") |
| 282 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E5") |
| 283 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") |
| 284 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F#5") |
| 285 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G5") |
| 286 | |
| 287 | PORT_START("KEY.7") |
| 288 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G#5") |
| 289 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A5") |
| 290 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A#5") |
| 291 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B5") |
| 292 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C6") |
| 293 | PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) |
| 294 | INPUT_PORTS_END |
| 295 | |
| 296 | |
| 297 | ioport_constructor msx_nms1160::device_input_ports() const |
| 298 | { |
| 299 | return INPUT_PORTS_NAME( nms1160 ); |
| 300 | } |
| 301 | |
| 302 | |
| 303 | |
| 205 | 304 | const device_type MSX_AUDIO_KB_HXMU901 = &device_creator<msx_hxmu901>; |
| 206 | 305 | const device_type MSX_AUDIO_KB_NMS1160 = &device_creator<msx_nms1160>; |
| 207 | 306 | |