trunk/hash/dmv.xml
r241655 | r241656 | |
939 | 939 | </part> |
940 | 940 | </software> |
941 | 941 | |
942 | | <software name="drdrawc"> <!-- CP/M-86 --> |
943 | | <description>DR Draw (Color)</description> |
944 | | <year>1983</year> |
945 | | <publisher>Digital Research</publisher> |
946 | | <info name="usage" value="Requires K208, K235 and K806" /> |
947 | | <part name="flop" interface="floppy_5_25"> |
948 | | <dataarea name="flop" size="281212"> |
949 | | <rom name="86drdraw.td0" size="281212" crc="451350ce" sha1="3d710e12241850988c88ca8c16528da3cdbdc2fd" offset="0" /> |
950 | | </dataarea> |
951 | | </part> |
952 | | </software> |
953 | | |
954 | | <software name="drdrawm"> <!-- CP/M-86 --> |
955 | | <description>DR Draw (Monochrome)</description> |
956 | | <year>1983</year> |
957 | | <publisher>Digital Research</publisher> |
958 | | <info name="usage" value="Requires CP/M-86" /> |
959 | | <part name="flop" interface="floppy_5_25"> |
960 | | <dataarea name="flop" size="189140"> |
961 | | <rom name="86drmo-m.td0" size="189140" crc="61543ccf" sha1="b8e33a0076bd1568a40d403bb6b391e6c45f9569" offset="0" /> |
962 | | </dataarea> |
963 | | </part> |
964 | | </software> |
965 | | |
966 | | <software name="tgdemo"> <!-- CP/M-80 --> |
967 | | <description>TUTBOGRAPH Demonstration Programs</description> |
968 | | <year>198?</year> |
969 | | <publisher><unknown></publisher> |
970 | | <part name="flop" interface="floppy_5_25"> |
971 | | <dataarea name="flop" size="259406"> |
972 | | <rom name="80tgraf.td0" size="259406" crc="d22d403f" sha1="8b1182f42faa68c1e5d879e79375683e48dd8bae" offset="0" /> |
973 | | </dataarea> |
974 | | </part> |
975 | | </software> |
976 | | |
977 | | <software name="cpm86qd"> <!-- CP/M-86 --> |
978 | | <description>CP/M-86 1.1 with quad-density FDD support</description> |
979 | | <year>1983</year> |
980 | | <publisher>NCR Corporation</publisher> |
981 | | <part name="flop" interface="floppy_5_25"> |
982 | | <dataarea name="flop" size="221628"> |
983 | | <rom name="586-4896.td0" size="221628" crc="383d54d3" sha1="be36d161f72c12bf6263f9577d609fd21b352c47" offset="0" /> |
984 | | </dataarea> |
985 | | </part> |
986 | | </software> |
987 | | |
988 | | <software name="gsx86tst"> <!-- CP/M-86 --> |
989 | | <description>GSX-86 Test Suite</description> |
990 | | <year>198?</year> |
991 | | <publisher><unknown></publisher> |
992 | | <part name="flop" interface="floppy_5_25"> |
993 | | <dataarea name="flop" size="1128529"> |
994 | | <rom name="5-gsx86-test.mfi" size="1128529" crc="353821bc" sha1="ce977ea324ef6faf8245b4e1bcac84f2504f0c37" offset="0" /> |
995 | | </dataarea> |
996 | | </part> |
997 | | </software> |
998 | | |
999 | | <software name="msdosqd"> <!-- MS-DOS --> |
1000 | | <description>MS-DOS v2.11 with quad-density FDD support</description> |
1001 | | <year>1983</year> |
1002 | | <publisher>Microsoft</publisher> |
1003 | | <part name="flop" interface="floppy_5_25"> |
1004 | | <dataarea name="flop" size="611287"> |
1005 | | <rom name="5_dos_96.mfi" size="611287" crc="c0f9d426" sha1="bccb7e04b320150435ee20e3d563dd163f6ab241" offset="0" /> |
1006 | | </dataarea> |
1007 | | </part> |
1008 | | </software> |
1009 | | |
1010 | 942 | <software name="dbase238"> <!-- CP/M-80 --> |
1011 | 943 | <description>dBASE II v2.38</description> |
1012 | 944 | <year>198?</year> |
r241655 | r241656 | |
1111 | 1043 | </part> |
1112 | 1044 | </software> |
1113 | 1045 | |
1114 | | <software name="acad"> <!-- MS-DOS --> |
| 1046 | <software name="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works --> |
1115 | 1047 | <description>AutoCAD</description> |
1116 | 1048 | <year>1987</year> |
1117 | 1049 | <publisher><unknown></publisher> |
r241655 | r241656 | |
1128 | 1060 | </part> |
1129 | 1061 | </software> |
1130 | 1062 | |
1131 | | <software name="acada" cloneof="acad"> <!-- MS-DOS --> |
| 1063 | <software name="acada" cloneof="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works --> |
1132 | 1064 | <description>AutoCAD (Alt 1)</description> |
1133 | 1065 | <year>1987</year> |
1134 | 1066 | <publisher><unknown></publisher> |
r241655 | r241656 | |
1155 | 1087 | </part> |
1156 | 1088 | </software> |
1157 | 1089 | |
1158 | | <software name="acadb" cloneof="acad"> <!-- MS-DOS --> |
| 1090 | <software name="acadb" cloneof="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works --> |
1159 | 1091 | <description>AutoCAD (Alt 2)</description> |
1160 | 1092 | <year>1987</year> |
1161 | 1093 | <publisher><unknown></publisher> |
trunk/src/emu/bus/dmv/dmvbus.h
r241655 | r241656 | |
58 | 58 | |
59 | 59 | template<class _Object> static devcb_base &set_prog_read_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_prog_read_cb.set_callback(object); } |
60 | 60 | template<class _Object> static devcb_base &set_prog_write_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_prog_write_cb.set_callback(object); } |
61 | | template<class _Object> static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_out_int_cb.set_callback(object); } |
62 | 61 | template<class _Object> static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_out_irq_cb.set_callback(object); } |
63 | 62 | template<class _Object> static devcb_base &set_out_thold_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_out_thold_cb.set_callback(object); } |
64 | 63 | |
r241655 | r241656 | |
87 | 86 | // internal state |
88 | 87 | devcb_read8 m_prog_read_cb; |
89 | 88 | devcb_write8 m_prog_write_cb; |
90 | | devcb_write_line m_out_int_cb; |
91 | 89 | devcb_write_line m_out_irq_cb; |
92 | 90 | devcb_write_line m_out_thold_cb; |
93 | 91 | device_dmvslot_interface* m_cart; |
r241655 | r241656 | |
106 | 104 | devcb = &dmvcart_slot_device::set_prog_read_callback(*device, DEVCB_##_read_devcb); \ |
107 | 105 | devcb = &dmvcart_slot_device::set_prog_write_callback(*device, DEVCB_##_write_devcb); |
108 | 106 | |
109 | | #define MCFG_DMVCART_SLOT_OUT_INT_CB(_devcb) \ |
110 | | devcb = &dmvcart_slot_device::set_out_int_callback(*device, DEVCB_##_devcb); |
111 | | |
112 | 107 | #define MCFG_DMVCART_SLOT_OUT_IRQ_CB(_devcb) \ |
113 | 108 | devcb = &dmvcart_slot_device::set_out_irq_callback(*device, DEVCB_##_devcb); |
114 | 109 | |
trunk/src/emu/bus/dmv/k803.c
r241655 | r241656 | |
1 | | // license:BSD-3-Clause |
2 | | // copyright-holders:Sandro Ronco |
3 | | /*************************************************************************** |
4 | | |
5 | | K803 RTC module |
6 | | |
7 | | ***************************************************************************/ |
8 | | |
9 | | #include "emu.h" |
10 | | #include "k803.h" |
11 | | |
12 | | |
13 | | /*************************************************************************** |
14 | | IMPLEMENTATION |
15 | | ***************************************************************************/ |
16 | | |
17 | | static MACHINE_CONFIG_FRAGMENT( dmv_k803 ) |
18 | | MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz) |
19 | | MCFG_MM58167_IRQ_CALLBACK(WRITELINE(dmv_k803_device, rtc_irq_w)) |
20 | | MACHINE_CONFIG_END |
21 | | |
22 | | static INPUT_PORTS_START( dmv_k803 ) |
23 | | PORT_START("DSW") |
24 | | PORT_DIPNAME( 0x0f, 0x09, "K803 IFSEL" ) PORT_DIPLOCATION("S:!4,S:!3,S:!2,S:!1") |
25 | | PORT_DIPSETTING( 0x00, "0A" ) |
26 | | PORT_DIPSETTING( 0x01, "0B" ) |
27 | | PORT_DIPSETTING( 0x02, "1A" ) |
28 | | PORT_DIPSETTING( 0x03, "1B" ) |
29 | | PORT_DIPSETTING( 0x04, "2A" ) |
30 | | PORT_DIPSETTING( 0x05, "2B" ) |
31 | | PORT_DIPSETTING( 0x06, "3A" ) |
32 | | PORT_DIPSETTING( 0x07, "3B" ) |
33 | | PORT_DIPSETTING( 0x08, "4A" ) |
34 | | PORT_DIPSETTING( 0x09, "4B" ) // default |
35 | | INPUT_PORTS_END |
36 | | |
37 | | //************************************************************************** |
38 | | // GLOBAL VARIABLES |
39 | | //************************************************************************** |
40 | | |
41 | | const device_type DMV_K803 = &device_creator<dmv_k803_device>; |
42 | | |
43 | | |
44 | | //************************************************************************** |
45 | | // LIVE DEVICE |
46 | | //************************************************************************** |
47 | | |
48 | | //------------------------------------------------- |
49 | | // dmv_k803_device - constructor |
50 | | //------------------------------------------------- |
51 | | |
52 | | dmv_k803_device::dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
53 | | : device_t(mconfig, DMV_K803, "K803 RTC", tag, owner, clock, "dmv_k803", __FILE__), |
54 | | device_dmvslot_interface( mconfig, *this ), |
55 | | m_rtc(*this, "rtc"), |
56 | | m_dsw(*this, "DWS") |
57 | | { |
58 | | } |
59 | | |
60 | | //------------------------------------------------- |
61 | | // device_start - device-specific startup |
62 | | //------------------------------------------------- |
63 | | |
64 | | void dmv_k803_device::device_start() |
65 | | { |
66 | | m_bus = static_cast<dmvcart_slot_device*>(owner()); |
67 | | } |
68 | | |
69 | | //------------------------------------------------- |
70 | | // device_reset - device-specific reset |
71 | | //------------------------------------------------- |
72 | | |
73 | | void dmv_k803_device::device_reset() |
74 | | { |
75 | | m_latch = 0; |
76 | | m_rtc_int = CLEAR_LINE; |
77 | | } |
78 | | |
79 | | //------------------------------------------------- |
80 | | // machine_config_additions - device-specific |
81 | | // machine configurations |
82 | | //------------------------------------------------- |
83 | | |
84 | | machine_config_constructor dmv_k803_device::device_mconfig_additions() const |
85 | | { |
86 | | return MACHINE_CONFIG_NAME( dmv_k803 ); |
87 | | } |
88 | | |
89 | | //------------------------------------------------- |
90 | | // input_ports - device-specific input ports |
91 | | //------------------------------------------------- |
92 | | |
93 | | ioport_constructor dmv_k803_device::device_input_ports() const |
94 | | { |
95 | | return INPUT_PORTS_NAME( dmv_k803 ); |
96 | | } |
97 | | |
98 | | void dmv_k803_device::io_read(address_space &space, int ifsel, offs_t offset, UINT8 &data) |
99 | | { |
100 | | UINT8 dsw = m_dsw->read() & 0x0f; |
101 | | if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0)) |
102 | | { |
103 | | if (offset & 0x04) |
104 | | data = m_rtc->read(space, ((m_latch & 0x07) << 2) | (offset & 0x03)); |
105 | | } |
106 | | } |
107 | | |
108 | | void dmv_k803_device::io_write(address_space &space, int ifsel, offs_t offset, UINT8 data) |
109 | | { |
110 | | UINT8 dsw = m_dsw->read() & 0x0f; |
111 | | if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0)) |
112 | | { |
113 | | if (offset & 0x04) |
114 | | m_rtc->write(space, ((m_latch & 0x07) << 2) | (offset & 0x03), data); |
115 | | else |
116 | | { |
117 | | m_latch = data; |
118 | | update_int(); |
119 | | } |
120 | | } |
121 | | } |
122 | | |
123 | | WRITE_LINE_MEMBER(dmv_k803_device::rtc_irq_w) |
124 | | { |
125 | | m_rtc_int = state; |
126 | | update_int(); |
127 | | } |
128 | | |
129 | | void dmv_k803_device::update_int() |
130 | | { |
131 | | bool state = ((m_latch & 0x80) && m_rtc_int); |
132 | | m_bus->m_out_irq_cb(state ? ASSERT_LINE : CLEAR_LINE); |
133 | | } |
trunk/src/emu/bus/dmv/k803.h
r241655 | r241656 | |
1 | | // license:BSD-3-Clause |
2 | | // copyright-holders:Sandro Ronco |
3 | | #pragma once |
4 | | |
5 | | #ifndef __DMV_K803_H__ |
6 | | #define __DMV_K803_H__ |
7 | | |
8 | | #include "emu.h" |
9 | | #include "dmvbus.h" |
10 | | #include "machine/mm58167.h" |
11 | | |
12 | | //************************************************************************** |
13 | | // TYPE DEFINITIONS |
14 | | //************************************************************************** |
15 | | |
16 | | // ======================> dmv_k803_device |
17 | | |
18 | | class dmv_k803_device : |
19 | | public device_t, |
20 | | public device_dmvslot_interface |
21 | | { |
22 | | public: |
23 | | // construction/destruction |
24 | | dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
25 | | |
26 | | // optional information overrides |
27 | | virtual ioport_constructor device_input_ports() const; |
28 | | virtual machine_config_constructor device_mconfig_additions() const; |
29 | | |
30 | | DECLARE_WRITE_LINE_MEMBER(rtc_irq_w); |
31 | | |
32 | | protected: |
33 | | // device-level overrides |
34 | | virtual void device_start(); |
35 | | virtual void device_reset(); |
36 | | |
37 | | virtual void io_read(address_space &space, int ifsel, offs_t offset, UINT8 &data); |
38 | | virtual void io_write(address_space &space, int ifsel, offs_t offset, UINT8 data); |
39 | | |
40 | | void update_int(); |
41 | | |
42 | | private: |
43 | | required_device<mm58167_device> m_rtc; |
44 | | required_ioport m_dsw; |
45 | | dmvcart_slot_device * m_bus; |
46 | | UINT8 m_latch; |
47 | | int m_rtc_int; |
48 | | }; |
49 | | |
50 | | |
51 | | // device type definition |
52 | | extern const device_type DMV_K803; |
53 | | |
54 | | #endif /* __DMV_K803_H__ */ |
trunk/src/mame/drivers/naomi.c
r241655 | r241656 | |
6364 | 6364 | |
6365 | 6365 | ROM_REGION( 0x7000000, "rom_board", ROMREGION_ERASEFF) |
6366 | 6366 | ROM_LOAD( "epr-23198.ic22", 0x0000000, 0x400000, CRC(9852eda2) SHA1(71ded8cbdf567afeff30bd593071ce3b7d84a260) ) |
6367 | | ROM_LOAD( "mpr-23185.ic1", 0x0800000, 0x800000, CRC(c4fc1d45) SHA1(cfeff71ac1cccf274f00731fe1ffc182fb85f7a6) ) |
6368 | | ROM_LOAD( "mpr-23186.ic2", 0x1000000, 0x800000, CRC(b17f9924) SHA1(a9aa9f10b76964042b337b25430acff072aaa7c7) ) |
6369 | | ROM_LOAD( "mpr-23187.ic3", 0x1800000, 0x800000, CRC(575f73e8) SHA1(fe6ffeab120ad788bd692b33eca1cf22db881ac3) ) |
6370 | | ROM_LOAD( "mpr-23188.ic4", 0x2000000, 0x800000, CRC(0004ef34) SHA1(926de996549421a5835f3c8c0895a07978519215) ) |
6371 | | ROM_LOAD( "mpr-23189.ic5", 0x2800000, 0x800000, CRC(554eea29) SHA1(c82c24270dee0dd7309b117e1632827ca314615d) ) |
6372 | | ROM_LOAD( "mpr-23190.ic6", 0x3000000, 0x800000, CRC(b74ae1c5) SHA1(003fadbaa03cf43757b686f316d1104d26ae9ce8) ) |
6373 | | ROM_LOAD( "mpr-23191.ic7", 0x3800000, 0x800000, CRC(9f2a88af) SHA1(b1caf9cbf026ee6d0f12ab66cddf120e7ba9884c) ) |
6374 | | ROM_LOAD( "mpr-23192.ic8", 0x4000000, 0x800000, CRC(83014196) SHA1(cc4801534e0f0e649fc3f368af4bd3ac01288732) ) |
6375 | | ROM_LOAD( "mpr-23193.ic9", 0x4800000, 0x800000, CRC(2fde8ecf) SHA1(6da95fb04f141f2c45564460c49834bb945fb1af) ) |
6376 | | ROM_LOAD( "mpr-23194.ic10", 0x5000000, 0x800000, CRC(92f045e5) SHA1(70f741e55a47682725c7d6dcdd0e60982187fc87) ) |
6377 | | ROM_LOAD( "mpr-23195.ic11", 0x5800000, 0x800000, CRC(9e708834) SHA1(2f454688ea5b8b041bbfffaa12047afad01d020f) ) |
6378 | | ROM_LOAD( "mpr-23196.ic12s", 0x6000000, 0x800000, CRC(c86a5b9b) SHA1(4b8dda85003289e1464e12c3abf449bb8df20e3a) ) |
6379 | | ROM_LOAD( "mpr-23197.ic13s", 0x6800000, 0x800000, CRC(5adea0bd) SHA1(f8614ba83d5f61556c3db1a1796a02ed2c51ce2a) ) |
6380 | | // maskrom labels needs verification |
| 6367 | ROM_LOAD( "mpr-23182.ic1", 0x0800000, 0x800000, CRC(c4fc1d45) SHA1(cfeff71ac1cccf274f00731fe1ffc182fb85f7a6) ) |
| 6368 | ROM_LOAD( "mpr-23183.ic2", 0x1000000, 0x800000, CRC(b17f9924) SHA1(a9aa9f10b76964042b337b25430acff072aaa7c7) ) |
| 6369 | ROM_LOAD( "mpr-23184.ic3", 0x1800000, 0x800000, CRC(575f73e8) SHA1(fe6ffeab120ad788bd692b33eca1cf22db881ac3) ) |
| 6370 | ROM_LOAD( "mpr-23185.ic4", 0x2000000, 0x800000, CRC(0004ef34) SHA1(926de996549421a5835f3c8c0895a07978519215) ) |
| 6371 | ROM_LOAD( "mpr-23186.ic5", 0x2800000, 0x800000, CRC(554eea29) SHA1(c82c24270dee0dd7309b117e1632827ca314615d) ) |
| 6372 | ROM_LOAD( "mpr-23187.ic6", 0x3000000, 0x800000, CRC(b74ae1c5) SHA1(003fadbaa03cf43757b686f316d1104d26ae9ce8) ) |
| 6373 | ROM_LOAD( "mpr-23188.ic7", 0x3800000, 0x800000, CRC(9f2a88af) SHA1(b1caf9cbf026ee6d0f12ab66cddf120e7ba9884c) ) |
| 6374 | ROM_LOAD( "mpr-23189.ic8", 0x4000000, 0x800000, CRC(83014196) SHA1(cc4801534e0f0e649fc3f368af4bd3ac01288732) ) |
| 6375 | ROM_LOAD( "mpr-23190.ic9", 0x4800000, 0x800000, CRC(2fde8ecf) SHA1(6da95fb04f141f2c45564460c49834bb945fb1af) ) |
| 6376 | ROM_LOAD( "mpr-23191.ic10", 0x5000000, 0x800000, CRC(92f045e5) SHA1(70f741e55a47682725c7d6dcdd0e60982187fc87) ) |
| 6377 | ROM_LOAD( "mpr-23192.ic11", 0x5800000, 0x800000, CRC(9e708834) SHA1(2f454688ea5b8b041bbfffaa12047afad01d020f) ) |
| 6378 | ROM_LOAD( "mpr-23193.ic12s", 0x6000000, 0x800000, CRC(c86a5b9b) SHA1(4b8dda85003289e1464e12c3abf449bb8df20e3a) ) |
| 6379 | ROM_LOAD( "mpr-23194.ic13s", 0x6800000, 0x800000, CRC(5adea0bd) SHA1(f8614ba83d5f61556c3db1a1796a02ed2c51ce2a) ) |
6381 | 6380 | |
6382 | 6381 | ROM_REGION( 4, "rom_key", 0 ) |
6383 | 6382 | ROM_LOAD( "vonot-key.bin", 0, 4, CRC(021ac707) SHA1(af57844331226d3b1722aedca1a7aef024468b39) ) |
trunk/src/mess/drivers/dmv.c
r241655 | r241656 | |
25 | 25 | #include "bus/dmv/k220.h" |
26 | 26 | #include "bus/dmv/k230.h" |
27 | 27 | #include "bus/dmv/k233.h" |
28 | | #include "bus/dmv/k803.h" |
29 | 28 | #include "bus/dmv/k806.h" |
30 | 29 | #include "bus/dmv/ram.h" |
31 | 30 | |
r241655 | r241656 | |
115 | 114 | DECLARE_READ8_MEMBER(exp_program_r); |
116 | 115 | DECLARE_WRITE8_MEMBER(exp_program_w); |
117 | 116 | DECLARE_WRITE_LINE_MEMBER(thold7_w); |
118 | | |
119 | | void update_busint(int slot, int state); |
120 | | DECLARE_WRITE_LINE_MEMBER(busint2_w) { update_busint(0, state); } |
121 | | DECLARE_WRITE_LINE_MEMBER(busint2a_w) { update_busint(1, state); } |
122 | | DECLARE_WRITE_LINE_MEMBER(busint3_w) { update_busint(2, state); } |
123 | | DECLARE_WRITE_LINE_MEMBER(busint4_w) { update_busint(3, state); } |
124 | | DECLARE_WRITE_LINE_MEMBER(busint5_w) { update_busint(4, state); } |
125 | | DECLARE_WRITE_LINE_MEMBER(busint6_w) { update_busint(5, state); } |
126 | | DECLARE_WRITE_LINE_MEMBER(busint7_w) { update_busint(6, state); } |
127 | | DECLARE_WRITE_LINE_MEMBER(busint7a_w) { update_busint(7, state); } |
128 | | |
| 117 | DECLARE_WRITE_LINE_MEMBER(busint_w); |
129 | 118 | DECLARE_FLOPPY_FORMATS( floppy_formats ); |
130 | 119 | |
131 | 120 | UINT8 program_read(address_space &space, int cas, offs_t offset); |
r241655 | r241656 | |
157 | 146 | int m_dack3_line; |
158 | 147 | int m_sd_poll_state; |
159 | 148 | int m_floppy_motor; |
160 | | int m_busint[8]; |
161 | 149 | }; |
162 | 150 | |
163 | 151 | WRITE8_MEMBER(dmv_state::tc_set_w) |
r241655 | r241656 | |
341 | 329 | |
342 | 330 | static SLOT_INTERFACE_START( dmv_floppies ) |
343 | 331 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
344 | | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
345 | 332 | SLOT_INTERFACE_END |
346 | 333 | |
347 | 334 | |
r241655 | r241656 | |
388 | 375 | } |
389 | 376 | } |
390 | 377 | |
391 | | void dmv_state::update_busint(int slot, int state) |
| 378 | WRITE_LINE_MEMBER( dmv_state::busint_w ) |
392 | 379 | { |
393 | | m_busint[slot] = state; |
394 | | |
395 | | int new_state = CLEAR_LINE; |
396 | | for (int i=0; i<8; i++) |
397 | | if (m_busint[i] != CLEAR_LINE) |
398 | | { |
399 | | new_state = ASSERT_LINE; |
400 | | break; |
401 | | } |
402 | | |
403 | | m_slot7a->irq2_w(new_state); |
404 | | m_slot7->irq2_w(new_state); |
405 | | m_maincpu->set_input_line(0, new_state); |
| 380 | m_slot7a->irq2_w(state); |
| 381 | m_slot7->irq2_w(state); |
406 | 382 | } |
407 | 383 | |
408 | 384 | void dmv_state::program_write(address_space &space, int cas, offs_t offset, UINT8 data) |
r241655 | r241656 | |
529 | 505 | m_switch16 = 0; |
530 | 506 | m_thold7 = 0; |
531 | 507 | m_dma_hrq = 0; |
532 | | memset(m_busint, 0, sizeof(m_busint)); |
533 | 508 | |
534 | 509 | update_halt_line(); |
535 | 510 | } |
r241655 | r241656 | |
631 | 606 | |
632 | 607 | static SLOT_INTERFACE_START(dmv_slot2_6) |
633 | 608 | SLOT_INTERFACE("k233", DMV_K233) // K233 16K Shared RAM |
634 | | SLOT_INTERFACE("k803", DMV_K803) // K803 RTC module |
635 | 609 | SLOT_INTERFACE("k806", DMV_K806) // K806 Mouse module |
636 | 610 | SLOT_INTERFACE_END |
637 | 611 | |
r241655 | r241656 | |
718 | 692 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot1, NULL, false) |
719 | 693 | MCFG_DEVICE_ADD("slot2", DMVCART_SLOT, 0) |
720 | 694 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
721 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2_w)) |
722 | 695 | MCFG_DEVICE_ADD("slot2a", DMVCART_SLOT, 0) |
723 | 696 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2a, NULL, false) |
724 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2a_w)) |
725 | 697 | MCFG_DEVICE_ADD("slot3", DMVCART_SLOT, 0) |
726 | 698 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
727 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint3_w)) |
728 | 699 | MCFG_DEVICE_ADD("slot4", DMVCART_SLOT, 0) |
729 | 700 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
730 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint4_w)) |
731 | 701 | MCFG_DEVICE_ADD("slot5", DMVCART_SLOT, 0) |
732 | 702 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
733 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint5_w)) |
734 | 703 | MCFG_DEVICE_ADD("slot6", DMVCART_SLOT, 0) |
735 | 704 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
736 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint6_w)) |
737 | 705 | |
738 | 706 | MCFG_DEVICE_ADD("slot7", DMVCART_SLOT, 0) |
739 | 707 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7, NULL, false) |
740 | 708 | MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w)) |
741 | 709 | MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w)) |
742 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7_w)) |
| 710 | MCFG_DMVCART_SLOT_OUT_IRQ_CB(WRITELINE(dmv_state, busint_w)) |
743 | 711 | MCFG_DEVICE_ADD("slot7a", DMVCART_SLOT, 0) |
744 | 712 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7a, "k230", false) |
745 | 713 | MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w)) |
746 | 714 | MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w)) |
747 | | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7a_w)) |
| 715 | MCFG_DMVCART_SLOT_OUT_IRQ_CB(WRITELINE(dmv_state, busint_w)) |
748 | 716 | |
749 | 717 | MCFG_SOFTWARE_LIST_ADD("flop_list", "dmv") |
750 | 718 | |