Previous 199869 Revisions Next

r33334 Tuesday 11th November, 2014 at 05:06:09 UTC by Dirk Best
Skeleton driver for the Siemens PC-D [Dirk Best, rfka01]
[src/emu/imagedev]floppy.c floppy.h
[src/mess]mess.mak
[src/mess/drivers]pc.c pcd.c*

trunk/src/emu/imagedev/floppy.c
r241845r241846
9393const device_type SONY_OA_D32W = &device_creator<sony_oa_d32w>;
9494const device_type SONY_OA_D32V = &device_creator<sony_oa_d32v>;
9595
96// teac 5.25" drives
97#if 0
98const device_type TEAC_FD_55A = &device_creator<teac_fd_55a>;
99const device_type TEAC_FD_55B = &device_creator<teac_fd_55b>;
100const device_type TEAC_FD_55E = &device_creator<teac_fd_55e>;
101#endif
102const device_type TEAC_FD_55F = &device_creator<teac_fd_55f>;
103const device_type TEAC_FD_55G = &device_creator<teac_fd_55g>;
104
96105// ALPS 5.25" drives
97106const device_type ALPS_3255190x = &device_creator<alps_3255190x>;
98107
r241845r241846
17621771   variants[var_count++] = floppy_image::SSDD;
17631772}
17641773
1774//-------------------------------------------------
1775//  teac fd-55f
1776//
1777//  track to track: 3 ms
1778//  average: 94 ms
1779//  setting time: 15 ms
1780//  motor start time: 400 ms
1781//
1782//-------------------------------------------------
17651783
1784teac_fd_55f::teac_fd_55f(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
1785   floppy_image_device(mconfig, TEAC_FD_55F, "TEAC FD-55F FDD", tag, owner, clock, "teac_fd_55f", __FILE__)
1786{
1787}
1788
1789teac_fd_55f::~teac_fd_55f()
1790{
1791}
1792
1793void teac_fd_55f::setup_characteristics()
1794{
1795   form_factor = floppy_image::FF_525;
1796   tracks = 80;
1797   sides = 2;
1798   set_rpm(300);
1799}
1800
1801void teac_fd_55f::handled_variants(UINT32 *variants, int &var_count) const
1802{
1803   var_count = 0;
1804   variants[var_count++] = floppy_image::SSSD;
1805   variants[var_count++] = floppy_image::SSDD;
1806   variants[var_count++] = floppy_image::SSQD;
1807   variants[var_count++] = floppy_image::DSSD;
1808   variants[var_count++] = floppy_image::DSDD;
1809   variants[var_count++] = floppy_image::DSQD;
1810}
1811
17661812//-------------------------------------------------
1813//  teac fd-55g
1814//
1815//  track to track: 3 ms
1816//  average: 91 ms
1817//  setting time: 15 ms
1818//  motor start time: 400 ms
1819//
1820//-------------------------------------------------
1821
1822teac_fd_55g::teac_fd_55g(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
1823   floppy_image_device(mconfig, TEAC_FD_55G, "TEAC FD-55G FDD", tag, owner, clock, "teac_fd_55g", __FILE__)
1824{
1825}
1826
1827teac_fd_55g::~teac_fd_55g()
1828{
1829}
1830
1831void teac_fd_55g::setup_characteristics()
1832{
1833   form_factor = floppy_image::FF_525;
1834   tracks = 77;
1835   sides = 2;
1836   set_rpm(360);
1837}
1838
1839void teac_fd_55g::handled_variants(UINT32 *variants, int &var_count) const
1840{
1841   var_count = 0;
1842   variants[var_count++] = floppy_image::SSSD;
1843   variants[var_count++] = floppy_image::SSDD;
1844   variants[var_count++] = floppy_image::SSQD;
1845   variants[var_count++] = floppy_image::DSDD;
1846   variants[var_count++] = floppy_image::DSQD;
1847   variants[var_count++] = floppy_image::DSHD;
1848}
1849
1850//-------------------------------------------------
17671851//  ALPS 32551901 (black) / 32551902 (brown)
17681852//
17691853//  used in the Commodoere 1541 disk drive
trunk/src/emu/imagedev/floppy.h
r241845r241846
239239DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d31v, "floppy_3_5")
240240DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32w, "floppy_3_5")
241241DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32v, "floppy_3_5")
242DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55f, "floppy_5_25")
243DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55g, "floppy_5_25")
242244DECLARE_FLOPPY_IMAGE_DEVICE(alps_3255190x, "floppy_5_25")
243245
244246
r241845r241846
288290extern const device_type SONY_OA_D31V;
289291extern const device_type SONY_OA_D32W;
290292extern const device_type SONY_OA_D32V;
293extern const device_type TEAC_FD_55F;
294extern const device_type TEAC_FD_55G;
291295extern const device_type ALPS_3255190x;
292296
293297#endif /* FLOPPY_H */
trunk/src/mess/drivers/pc.c
r241845r241846
422422   ROM_LOAD( "oliv_m15.bin",0xfc000, 0x04000, CRC(bf2ef795) SHA1(02d497131f5ca2c78f2accd38ab0eab6813e3ebf))
423423ROM_END
424424
425// Siemens PC-D (80186)
426ROM_START( pcd )
427   ROM_REGION(0x100000,"maincpu", 0)
428   ROM_LOAD16_BYTE( "sni_pcd1.bin", 0xfc001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73))
429   ROM_LOAD16_BYTE( "sni_pcd2.bin", 0xfc000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda))
430ROM_END
431
432425ROM_START( olypeopl )
433426   ROM_REGION(0x100000,"maincpu", 0)
434427   ROM_LOAD16_BYTE( "uo1271c0.bin", 0xfe000, 0x1000, CRC(c9187bce) SHA1(464e1f96046657b49afa4223ede1040650643d58))
r241845r241846
516509
517510COMP( 1985, pc7000,     ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Sharp", "PC-7000", GAME_NOT_WORKING)
518511
519COMP( 198?, pcd,        ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Siemens", "PC-D", GAME_NOT_WORKING)
520512COMP( 198?, olypeopl,   ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Olympia", "People PC", GAME_NOT_WORKING)
521513COMP( 1988, sx16,       ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Sanyo", "SX-16", GAME_NOT_WORKING)
522514COMP( 198?, mbc16,      ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Sanyo", "MBC-16" , GAME_NOT_WORKING)
trunk/src/mess/drivers/pcd.c
r0r241846
1/***************************************************************************
2
3    Siemens PC-D
4
5    license: MAME, GPL-2.0+
6    copyright-holders: Dirk Best
7
8    Skeleton driver
9
10***************************************************************************/
11
12#include "emu.h"
13#include "cpu/i86/i186.h"
14#include "machine/ram.h"
15#include "machine/pic8259.h"
16#include "machine/mc2661.h"
17#include "machine/wd_fdc.h"
18#include "machine/mc146818.h"
19#include "sound/speaker.h"
20
21
22//**************************************************************************
23//  TYPE DEFINITIONS
24//**************************************************************************
25
26class pcd_state : public driver_device
27{
28public:
29   pcd_state(const machine_config &mconfig, device_type type, const char *tag) :
30   driver_device(mconfig, type, tag),
31   m_maincpu(*this, "maincpu"),
32   m_pic1(*this, "pic1"),
33   m_pic2(*this, "pic2"),
34   m_speaker(*this, "speaker"),
35   m_fdc(*this, "fdc"),
36   m_rtc(*this, "rtc")
37   { }
38
39   DECLARE_WRITE_LINE_MEMBER( pic1_irq );
40   DECLARE_READ8_MEMBER( pic1_slave_ack_r );
41   TIMER_DEVICE_CALLBACK_MEMBER( timer0_tick );
42   DECLARE_WRITE_LINE_MEMBER( i186_timer1_w );
43
44   DECLARE_READ8_MEMBER( crt_data_r );
45   DECLARE_WRITE8_MEMBER( crt_data_w );
46   DECLARE_READ8_MEMBER( crt_status_r );
47
48protected:
49   // driver_device overrides
50   virtual void machine_start();
51
52private:
53   required_device<i80186_cpu_device> m_maincpu;
54   required_device<pic8259_device> m_pic1;
55   required_device<pic8259_device> m_pic2;
56   required_device<speaker_sound_device> m_speaker;
57   required_device<wd2793_t> m_fdc;
58   required_device<mc146818_device> m_rtc;
59};
60
61
62//**************************************************************************
63//  MACHINE EMULATION
64//**************************************************************************
65
66void pcd_state::machine_start()
67{
68}
69
70WRITE_LINE_MEMBER( pcd_state::pic1_irq )
71{
72   logerror("pic1 irq: %d\n", state);
73}
74
75READ8_MEMBER( pcd_state::pic1_slave_ack_r )
76{
77   if (offset == 0) // irq 0
78      return m_pic2->acknowledge();
79
80   return 0x00;
81}
82
83TIMER_DEVICE_CALLBACK_MEMBER( pcd_state::timer0_tick )
84{
85   m_maincpu->tmrin0_w(0);
86   m_maincpu->tmrin0_w(1);
87}
88
89WRITE_LINE_MEMBER( pcd_state::i186_timer1_w )
90{
91   m_speaker->level_w(state);
92}
93
94READ8_MEMBER( pcd_state::crt_data_r )
95{
96   logerror("crt_data_r @ %02x\n", offset);
97   return 0xff;
98}
99
100WRITE8_MEMBER( pcd_state::crt_data_w )
101{
102   logerror("crt_data_w %02x @ %02x\n", data, offset);
103}
104
105READ8_MEMBER( pcd_state::crt_status_r )
106{
107   logerror("crt_status_r @ %02x\n", offset);
108   return 0xff;
109}
110
111
112//**************************************************************************
113//  ADDRESS MAPS
114//**************************************************************************
115
116static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state )
117   AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now
118   AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
119ADDRESS_MAP_END
120
121static ADDRESS_MAP_START( pcd_io, AS_IO, 16, pcd_state )
122   ADDRESS_MAP_UNMAP_HIGH
123   AM_RANGE(0xf900, 0xf907) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0x00ff)
124   AM_RANGE(0xf940, 0xf941) AM_DEVREADWRITE8("pic1", pic8259_device, read, write, 0xff00)
125   AM_RANGE(0xf980, 0xf981) AM_READWRITE8(crt_data_r, crt_data_w, 0x00ff) AM_READ8(crt_status_r, 0xff00)
126//   AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select)
127ADDRESS_MAP_END
128
129
130//**************************************************************************
131//  MACHINE DRIVERS
132//**************************************************************************
133
134static SLOT_INTERFACE_START( pcd_floppies )
135   SLOT_INTERFACE("55f", TEAC_FD_55F)
136   SLOT_INTERFACE("55g", TEAC_FD_55G)
137SLOT_INTERFACE_END
138
139static MACHINE_CONFIG_START( pcd, pcd_state )
140   MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2)
141   MCFG_CPU_PROGRAM_MAP(pcd_map)
142   MCFG_CPU_IO_MAP(pcd_io)
143   MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w))
144
145   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 2 / 16))
146
147   MCFG_PIC8259_ADD("pic1", WRITELINE(pcd_state, pic1_irq), VCC, READ8(pcd_state, pic1_slave_ack_r))
148   MCFG_PIC8259_ADD("pic2", DEVWRITELINE("pic1", pic8259_device, ir0_w), GND, NULL)
149
150#if 0
151   MCFG_RAM_ADD(RAM_TAG)
152   MCFG_RAM_DEFAULT_SIZE("256K")
153   MCFG_RAM_EXTRA_OPTIONS("512K,1M")
154#endif
155
156   // floppy disk controller
157   MCFG_WD2793x_ADD("fdc", XTAL_16MHz/2/8)
158   MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("pic1", pic8259_device, ir6_w))
159   MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq1_w))
160
161   // floppy drives
162   MCFG_FLOPPY_DRIVE_ADD("fdc:0", pcd_floppies, "55g", floppy_image_device::default_floppy_formats)
163   MCFG_FLOPPY_DRIVE_ADD("fdc:1", pcd_floppies, "55g", floppy_image_device::default_floppy_formats)
164
165   // usart
166   MCFG_DEVICE_ADD("usart1", MC2661, XTAL_4_9152MHz)
167   MCFG_MC2661_TXEMT_DSCHG_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir2_w))
168   MCFG_DEVICE_ADD("usart2", MC2661, XTAL_4_9152MHz)
169   MCFG_MC2661_TXEMT_DSCHG_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir3_w))
170   MCFG_DEVICE_ADD("usart3", MC2661, XTAL_4_9152MHz)
171   MCFG_MC2661_TXEMT_DSCHG_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir4_w))
172
173   // sound hardware
174   MCFG_SPEAKER_STANDARD_MONO("mono")
175   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
176   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
177
178   // rtc
179   MCFG_MC146818_ADD("rtc", XTAL_32_768kHz)
180   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir7_w))
181MACHINE_CONFIG_END
182
183
184//**************************************************************************
185//  ROM DEFINITIONS
186//**************************************************************************
187
188ROM_START( pcd )
189   ROM_REGION(0x4000, "bios", 0)
190   ROM_LOAD16_BYTE("s26361-d359.d42", 0x0001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73))
191   ROM_LOAD16_BYTE("s26361-d359.d43", 0x0000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda))
192
193   // hdd (omti 5100)
194   ROM_REGION(0x2000, "hdd", 0)
195   ROM_LOAD("1002401-n.bin", 0x0000, 0x2000, CRC(d531e25c) SHA1(22e4762a70841b80e843a5d76175c1fdb6838e18))
196
197   // gfx card (scn2674 with 8741), to be moved
198   ROM_REGION(0x400, "graphics", 0)
199   ROM_LOAD("s36361-d321-v1.bin", 0x000, 0x400, CRC(69baeb2a) SHA1(98b9cd0f38c51b4988a3aed0efcf004bedd115ff))
200
201   // keyboard (8035), to be moved
202   ROM_REGION(0x1000, "keyboard", 0)
203   ROM_LOAD("pcd_keyboard.bin", 0x0000, 0x1000, CRC(d227d6cb) SHA1(3d6140764d3d043428c941826370ebf1597c63bd))
204ROM_END
205
206
207//**************************************************************************
208//  GAME DRIVERS
209//**************************************************************************
210
211COMP( 1984, pcd, 0, 0, pcd, 0, driver_device, 0, "Siemens", "PC-D", GAME_NOT_WORKING )
trunk/src/mess/mess.mak
r241845r241846
783783   $(MESSOBJ)/sega.a \
784784   $(MESSOBJ)/sgi.a \
785785   $(MESSOBJ)/sharp.a \
786   $(MESSOBJ)/siemens.a \
786787   $(MESSOBJ)/sinclair.a \
787788   $(MESSOBJ)/skeleton.a \
788789   $(MESSOBJ)/snk.a \
r241845r241846
16221623   $(MESS_VIDEO)/zx8301.o      \
16231624   $(MESS_MACHINE)/zx8302.o    \
16241625
1626$(MESSOBJ)/siemens.a:           \
1627   $(MESS_DRIVERS)/pcd.o       \
1628
16251629$(MESSOBJ)/snk.a:               \
16261630   $(MESS_DRIVERS)/ng_aes.o    \
16271631   $(MESS_DRIVERS)/ngp.o $(MESS_VIDEO)/k1ge.o \


Previous 199869 Revisions Next


© 1997-2024 The MAME Team