Previous 199869 Revisions Next

r20991 Tuesday 12th February, 2013 at 18:47:03 UTC by Sandro Ronco
(MESS) Moved SST39VF020/SST39VF400A emulation into intelfsh. (nw)
[src/emu/machine]intelfsh.c intelfsh.h
[src/mess]mess.mak
[src/mess/drivers]cybiko.c
[src/mess/includes]cybiko.h
[src/mess/machine]cybiko.c sst39vfx.c sst39vfx.h

trunk/src/emu/machine/intelfsh.c
r20990r20991
8989const device_type PANASONIC_MN63F805MNP = &device_creator<panasonic_mn63f805mnp_device>;
9090const device_type SANYO_LE26FV10N1TS = &device_creator<sanyo_le26fv10n1ts_device>;
9191const device_type SST_28SF040 = &device_creator<sst_28sf040_device>;
92const device_type SST_39VF020 = &device_creator<sst_39vf020_device>;
9293
9394const device_type SHARP_LH28F400 = &device_creator<sharp_lh28f400_device>;
9495const device_type INTEL_E28F008SA = &device_creator<intel_e28f008sa_device>;
9596const device_type INTEL_TE28F160 = &device_creator<intel_te28f160_device>;
9697const device_type SHARP_UNK128MBIT = &device_creator<sharp_unk128mbit_device>;
9798const device_type INTEL_28F320J3D = &device_creator<intel_28f320j3d_device>;
99const device_type SST_39VF400A = &device_creator<sst_39vf400a_device>;
98100
99101static ADDRESS_MAP_START( memory_map8_512Kb, AS_PROGRAM, 8, intelfsh_device )
100102   AM_RANGE(0x00000, 0x00ffff) AM_RAM
r20990r20991
104106   AM_RANGE(0x00000, 0x01ffff) AM_RAM
105107ADDRESS_MAP_END
106108
109static ADDRESS_MAP_START( memory_map8_2Mb, AS_PROGRAM, 8, intelfsh_device )
110   AM_RANGE(0x00000, 0x03ffff) AM_RAM
111ADDRESS_MAP_END
112
107113static ADDRESS_MAP_START( memory_map8_4Mb, AS_PROGRAM, 8, intelfsh_device )
108114   AM_RANGE(0x00000, 0x07ffff) AM_RAM
109115ADDRESS_MAP_END
r20990r20991
209215      m_sector_is_4k = true;
210216      map = ADDRESS_MAP_NAME( memory_map16_32Mb );
211217      break;
218   case FLASH_SST_39VF020:
219      m_bits = 8;
220      m_size = 0x40000;
221      m_maker_id = MFG_SST;
222      m_device_id = 0xd6;
223      m_sector_is_4k = true;
224      map = ADDRESS_MAP_NAME( memory_map8_2Mb );
225      break;
226   case FLASH_SST_39VF400A:
227      m_bits = 16;
228      m_size = 0x80000;
229      m_maker_id = MFG_SST;
230      m_device_id = 0xd6;
231      m_sector_is_4k = true;
232      map = ADDRESS_MAP_NAME( memory_map16_4Mb );
233      break;
212234   case FLASH_SHARP_LH28F400:
213235   case FLASH_INTEL_E28F400:
214236      m_bits = 16;
r20990r20991
338360sst_28sf040_device::sst_28sf040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
339361   : intelfsh8_device(mconfig, SST_28SF040, "SST 28SF040 Flash", tag, owner, clock, FLASH_SST_28SF040) { }
340362
363sst_39vf020_device::sst_39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
364   : intelfsh8_device(mconfig, SST_39VF020, "SST 39VF020 Flash", tag, owner, clock, FLASH_SST_39VF020) { }
365
341366sharp_lh28f400_device::sharp_lh28f400_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
342367   : intelfsh16_device(mconfig, SHARP_LH28F400, "Sharp LH28F400 Flash", tag, owner, clock, FLASH_SHARP_LH28F400) { }
343368
r20990r20991
353378intel_28f320j3d_device::intel_28f320j3d_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
354379   : intelfsh16_device(mconfig, INTEL_28F320J3D, "Intel 28F320J3D Flash", tag, owner, clock, FLASH_INTEL_28F320J3D) { }
355380
381sst_39vf400a_device::sst_39vf400a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
382   : intelfsh16_device(mconfig, SST_39VF400A, "SST 39VF400A Flash", tag, owner, clock, FLASH_SST_39VF400A) { }
383
356384//-------------------------------------------------
357385//  device_start - device-specific startup
358386//-------------------------------------------------
trunk/src/emu/machine/intelfsh.h
r20990r20991
4949#define MCFG_SST_28SF040_ADD(_tag) \
5050   MCFG_DEVICE_ADD(_tag, SST_28SF040, 0)
5151
52#define MCFG_SST_39VF020_ADD(_tag) \
53   MCFG_DEVICE_ADD(_tag, SST_39VF020, 0)
54
5255#define MCFG_SHARP_LH28F400_ADD(_tag) \
5356   MCFG_DEVICE_ADD(_tag, SHARP_LH28F400, 0)
5457
r20990r20991
6467#define MCFG_INTEL_28F320J3D_ADD(_tag) \
6568   MCFG_DEVICE_ADD(_tag, INTEL_28F320J3D, 0)
6669
70#define MCFG_SST_39VF400A_ADD(_tag) \
71   MCFG_DEVICE_ADD(_tag, SST_39VF400A, 0)
72
6773//**************************************************************************
6874//  TYPE DEFINITIONS
6975//**************************************************************************
r20990r20991
94100      FLASH_PANASONIC_MN63F805MNP,
95101      FLASH_SANYO_LE26FV10N1TS,
96102      FLASH_SST_28SF040,
103      FLASH_SST_39VF020,
97104
98105      // 16-bit variants
99106      FLASH_SHARP_LH28F400 = 0x1000,
100107      FLASH_INTEL_E28F400,
101108      FLASH_INTEL_TE28F160,
102109      FLASH_SHARP_UNK128MBIT,
103      FLASH_INTEL_28F320J3D
110      FLASH_INTEL_28F320J3D,
111      FLASH_SST_39VF400A
104112   };
105113
106114protected:
r20990r20991
262270   sst_28sf040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
263271};
264272
273class sst_39vf020_device : public intelfsh8_device
274{
275public:
276   sst_39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
277};
278
265279// 16-bit variants
266280class sharp_lh28f400_device : public intelfsh16_device
267281{
r20990r20991
293307   intel_28f320j3d_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
294308};
295309
310class sst_39vf400a_device : public intelfsh16_device
311{
312public:
313   sst_39vf400a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
314};
296315
316
297317// device type definition
298318extern const device_type INTEL_28F016S5;
299319extern const device_type SHARP_LH28F016S;
r20990r20991
308328extern const device_type PANASONIC_MN63F805MNP;
309329extern const device_type SANYO_LE26FV10N1TS;
310330extern const device_type SST_28SF040;
331extern const device_type SST_39VF020;
311332
312333extern const device_type SHARP_LH28F400;
313334extern const device_type INTEL_E28F008SA;
314335extern const device_type INTEL_TE28F160;
315336extern const device_type SHARP_UNK128MBIT;
316337extern const device_type INTEL_28F320J3D;
338extern const device_type SST_39VF400A;
317339
318340#endif
trunk/src/mess/drivers/cybiko.c
r20990r20991
8080// 256 kbyte ram + 256 kbyte memory mapped flash
8181static ADDRESS_MAP_START( cybikov2_mem, AS_PROGRAM, 16, cybiko_state )
8282   AM_RANGE( 0x000000, 0x007fff ) AM_ROM
83   AM_RANGE( 0x100000, 0x13ffff ) AM_READ_BANK("bank2") AM_MIRROR( 0x0c0000 )
83   AM_RANGE( 0x100000, 0x13ffff ) AM_READ8(cybikov2_flash_r, 0xffff) AM_MIRROR( 0x0c0000 )
8484   AM_RANGE( 0x600000, 0x600001 ) AM_READWRITE( cybiko_lcd_r, cybiko_lcd_w ) AM_MIRROR( 0x1ffffe )
8585   AM_RANGE( 0xe00000, 0xffdbff ) AM_READ( cybikov2_key_r )
8686ADDRESS_MAP_END
r20990r20991
9090   AM_RANGE( 0x000000, 0x007fff ) AM_ROM AM_MIRROR( 0x038000 )
9191   AM_RANGE( 0x100000, 0x100001 ) AM_READWRITE( cybiko_lcd_r, cybiko_lcd_w )
9292   AM_RANGE( 0x200000, 0x200003 ) AM_WRITE( cybiko_usb_w )
93   AM_RANGE( 0x600000, 0x67ffff ) AM_READ_BANK("bank2") AM_MIRROR( 0x180000 )
93   AM_RANGE( 0x600000, 0x67ffff ) AM_READ(cybikoxt_flash_r) AM_MIRROR( 0x180000 )
9494   AM_RANGE( 0xe00000, 0xefffff ) AM_READ( cybikoxt_key_r )
9595ADDRESS_MAP_END
9696
r20990r20991
342342   MCFG_RAM_EXTRA_OPTIONS("1M")
343343MACHINE_CONFIG_END
344344
345const sst39vfx_config cybyko_sst39vfx_intf =
346{
347   16, ENDIANNESS_BIG
348};
349
350345static MACHINE_CONFIG_DERIVED( cybikov2, cybikov1)
351346   // cpu
352347   MCFG_CPU_REPLACE("maincpu", H8S2246, 11059200)
r20990r20991
355350   // machine
356351   MCFG_MACHINE_START_OVERRIDE(cybiko_state,cybikov2)
357352   MCFG_MACHINE_RESET_OVERRIDE(cybiko_state,cybikov2)
358   MCFG_SST39VF020_ADD("flash2", cybyko_sst39vfx_intf)
353   MCFG_SST_39VF020_ADD("flash2")
359354
360355   /* internal ram */
361356   MCFG_RAM_MODIFY(RAM_TAG)
r20990r20991
372367   MCFG_MACHINE_START_OVERRIDE(cybiko_state,cybikoxt)
373368   MCFG_MACHINE_RESET_OVERRIDE(cybiko_state,cybikoxt)
374369   MCFG_DEVICE_REMOVE("flash1")
375   MCFG_SST39VF400A_ADD("flash2", cybyko_sst39vfx_intf)
370   MCFG_SST_39VF400A_ADD("flashxt")
376371
377372   /* internal ram */
378373   MCFG_RAM_MODIFY(RAM_TAG)
trunk/src/mess/mess.mak
r20990r20991
537537   $(MESS_MACHINE)/sa1403d.o   \
538538   $(MESS_MACHINE)/smartmed.o  \
539539   $(MESS_MACHINE)/smc92x4.o   \
540   $(MESS_MACHINE)/sst39vfx.o  \
541540   $(MESS_MACHINE)/terminal.o  \
542541   $(MESS_MACHINE)/teleprinter.o   \
543542   $(MESS_MACHINE)/upd7002.o   \
trunk/src/mess/machine/sst39vfx.c
r20990r20991
1/*
2
3    SST Multi-Purpose Flash (MPF)
4
5    (c) 2001-2007 Tim Schuerewegen
6
7    SST39VF020  - 256 KByte
8    SST39VF400A - 512 Kbyte
9
10*/
11
12#include "sst39vfx.h"
13
14#define LOG_LEVEL  1
15#define _logerror(level,x)  do { if (LOG_LEVEL > level) logerror x; } while (0)
16
17/***************************************************************************
18    TYPE DEFINITIONS
19***************************************************************************/
20
21struct sst39vfx_t
22{
23   UINT8 *data;
24   UINT32 size;
25   UINT8 swap;
26};
27
28enum
29{
30   TYPE_SST39VF020,
31   TYPE_SST39VF400A
32};
33
34/***************************************************************************
35    INLINE FUNCTIONS
36***************************************************************************/
37
38INLINE sst39vfx_t *get_token(device_t *device)
39{
40   assert(device != NULL);
41   assert(device->type() == SST39VF020 || device->type() == SST39VF400A);
42
43   return (sst39vfx_t *) downcast<sst39vf020_device *>(device)->token();
44}
45
46INLINE const sst39vfx_config *get_config(device_t *device)
47{
48   assert(device != NULL);
49   assert(device->type() == SST39VF020 || device->type() == SST39VF400A);
50
51   return (const sst39vfx_config *)device->static_config();
52}
53
54
55/***************************************************************************
56    IMPLEMENTATION
57***************************************************************************/
58
59static void common_start(device_t *device, int device_type)
60{
61   sst39vfx_t *flash = get_token(device);
62   const sst39vfx_config *config = get_config(device);
63
64   _logerror( 0, ("sst39vfx_init (%d)\n", device_type));
65   memset(flash, 0, sizeof(sst39vfx_t));
66   switch (device_type)
67   {
68      case TYPE_SST39VF020  : flash->size = 256 * 1024; break;
69      case TYPE_SST39VF400A : flash->size = 512 * 1024; break;
70   }
71   flash->data = auto_alloc_array(device->machine(), UINT8, flash->size);
72#ifdef LSB_FIRST
73   if (config->cpu_endianess != ENDIANNESS_LITTLE) flash->swap = config->cpu_datawidth / 8; else flash->swap = 0;
74#else
75   if (config->cpu_endianess != ENDIANNESS_BIG) flash->swap = config->cpu_datawidth / 8; else flash->swap = 0;
76#endif
77
78   state_save_register_item_pointer(device->machine(), "sst39vfx", device->tag(), 0, flash->data, flash->size);
79   state_save_register_item(device->machine(), "sst39vfx", device->tag(), 0, flash->swap);
80}
81
82
83static DEVICE_START( sst39vf020 )
84{
85   common_start(device, TYPE_SST39VF020);
86}
87
88static DEVICE_START( sst39vf400a )
89{
90   common_start(device, TYPE_SST39VF400A);
91}
92
93UINT8* sst39vfx_get_base( device_t *device)
94{
95   sst39vfx_t *flash = get_token(device);
96   return flash->data;
97}
98
99UINT32 sst39vfx_get_size( device_t *device)
100{
101   sst39vfx_t *flash = get_token(device);
102   return flash->size;
103}
104
105/*
106#define OFFSET_SWAP(offset,width) (offset & (~(width - 1))) | (width - 1 - (offset & (width - 1)))
107*/
108
109#ifdef UNUSED_FUNCTION
110READ8_HANDLER( sst39vfx_r )
111{
112   _logerror( 1, ("sst39vfx_r (%08X)\n", offset));
113   if (flash->swap) offset = OFFSET_SWAP( offset, flash->swap);
114   return flash->data[offset];
115}
116
117WRITE8_HANDLER( sst39vfx_w )
118{
119   _logerror( 1, ("sst39vfx_w (%08X/%02X)\n", offset, data));
120   if (flash->swap) offset = OFFSET_SWAP( offset, flash->swap);
121   flash->data[offset] = data;
122}
123#endif
124
125static void sst39vfx_swap( device_t *device)
126{
127   int i, j;
128   UINT8 *base, temp[8];
129   sst39vfx_t *flash = get_token(device);
130
131   base = flash->data;
132   for (i=0;i<flash->size;i+=flash->swap)
133   {
134      memcpy( temp, base, flash->swap);
135      for (j=flash->swap-1;j>=0;j--) *base++ = temp[j];
136   }
137}
138
139void sst39vfx_load(device_t *device, emu_file *file)
140{
141   sst39vfx_t *flash = get_token(device);
142
143   _logerror( 0, ("sst39vfx_load (%p)\n", file));
144   file->read(flash->data, flash->size);
145   if (flash->swap) sst39vfx_swap(device);
146}
147
148void sst39vfx_save(device_t *device, emu_file *file)
149{
150   sst39vfx_t *flash = get_token(device);
151
152   _logerror( 0, ("sst39vfx_save (%p)\n", file));
153   if (flash->swap) sst39vfx_swap(device);
154   file->write(flash->data, flash->size);
155   if (flash->swap) sst39vfx_swap(device);
156}
157
158#if 0
159NVRAM_HANDLER( sst39vfx )
160{
161   _logerror( 0, ("nvram_handler_sst39vfx (%p/%d)\n", file, read_or_write));
162   if (read_or_write)
163   {
164      sst39vfx_save( file);
165   }
166   else
167   {
168      if (file)
169      {
170         sst39vfx_load( file);
171      }
172      else
173      {
174         memset( flash->data, 0xFF, flash->size);
175      }
176   }
177}
178#endif
179
180const device_type SST39VF020 = &device_creator<sst39vf020_device>;
181
182sst39vf020_device::sst39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
183   : device_t(mconfig, SST39VF020, "SST39VF020", tag, owner, clock)
184{
185   m_token = global_alloc_clear(sst39vfx_t);
186}
187sst39vf020_device::sst39vf020_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock)
188   : device_t(mconfig, type, name, tag, owner, clock)
189{
190   m_token = global_alloc_clear(sst39vfx_t);
191}
192
193//-------------------------------------------------
194//  device_config_complete - perform any
195//  operations now that the configuration is
196//  complete
197//-------------------------------------------------
198
199void sst39vf020_device::device_config_complete()
200{
201}
202
203//-------------------------------------------------
204//  device_start - device-specific startup
205//-------------------------------------------------
206
207void sst39vf020_device::device_start()
208{
209   DEVICE_START_NAME( sst39vf020 )(this);
210}
211
212
213const device_type SST39VF400A = &device_creator<sst39vf400a_device>;
214
215sst39vf400a_device::sst39vf400a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
216   : sst39vf020_device(mconfig, SST39VF400A, "SST39VF400A", tag, owner, clock)
217{
218}
219
220//-------------------------------------------------
221//  device_start - device-specific startup
222//-------------------------------------------------
223
224void sst39vf400a_device::device_start()
225{
226   DEVICE_START_NAME( sst39vf400a )(this);
227}
trunk/src/mess/machine/sst39vfx.h
r20990r20991
1/*
2
3    SST Multi-Purpose Flash (MPF)
4
5    (c) 2001-2007 Tim Schuerewegen
6
7    SST39VF020  - 256 KByte
8    SST39VF400A - 512 Kbyte
9
10*/
11
12#ifndef _SST39VFX_H_
13#define _SST39VFX_H_
14
15#include "emu.h"
16
17/***************************************************************************
18    TYPE DEFINITIONS
19***************************************************************************/
20
21struct sst39vfx_config
22{
23   int cpu_datawidth;
24   int cpu_endianess;
25};
26
27/***************************************************************************
28    MACROS
29***************************************************************************/
30
31class sst39vf020_device : public device_t
32{
33public:
34   sst39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
35   sst39vf020_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
36   ~sst39vf020_device() { global_free(m_token); }
37
38   // access to legacy token
39   void *token() const { assert(m_token != NULL); return m_token; }
40protected:
41   // device-level overrides
42   virtual void device_config_complete();
43   virtual void device_start();
44private:
45   // internal state
46   void *m_token;
47};
48
49extern const device_type SST39VF020;
50
51
52#define MCFG_SST39VF020_ADD(_tag, _config) \
53   MCFG_DEVICE_ADD(_tag, SST39VF020, 0) \
54   MCFG_DEVICE_CONFIG(_config)
55
56#define MCFG_SST39VF020_REMOVE(_tag) \
57   MCFG_DEVICE_REMOVE(_tag)
58
59class sst39vf400a_device : public sst39vf020_device
60{
61public:
62   sst39vf400a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
63protected:
64   // device-level overrides
65   virtual void device_start();
66};
67
68extern const device_type SST39VF400A;
69
70
71#define MCFG_SST39VF400A_ADD(_tag,_config) \
72   MCFG_DEVICE_ADD(_tag, SST39VF400A, 0) \
73   MCFG_DEVICE_CONFIG(_config)
74
75#define MCFG_SST39VF400A_REMOVE(_tag) \
76   MCFG_DEVICE_REMOVE(_tag)
77
78/***************************************************************************
79    FUNCTION PROTOTYPES
80***************************************************************************/
81// get base/size
82UINT8* sst39vfx_get_base( device_t *device );
83UINT32 sst39vfx_get_size( device_t *device );
84
85// read/write handler
86#if 0
87DECLARE_READ8_HANDLER( sst39vfx_r );
88DECLARE_WRITE8_HANDLER( sst39vfx_w );
89#endif
90
91// load/save
92void sst39vfx_load(device_t *device, emu_file *file);
93void sst39vfx_save(device_t *device, emu_file *file);
94
95// non-volatile ram handler
96//NVRAM_HANDLER( sst39vfx );
97
98#endif
trunk/src/mess/machine/cybiko.c
r20990r20991
104104   return TRUE;
105105}
106106
107static void cybiko_sst39vfx_load(running_machine &machine, emu_file *file)
108{
109   device_t *device = machine.device("flash2");
110   sst39vfx_load(device, file);
111}
112
113static void cybiko_sst39vfx_save(running_machine &machine, emu_file *file)
114{
115   device_t *device = machine.device("flash2");
116   sst39vfx_save(device, file);
117}
118
119107static void cybiko_ramdisk_load(running_machine &machine, emu_file *file)
120108{
121109   UINT8 *ram = machine.device<ram_device>(RAM_TAG)->pointer();
r20990r20991
161149
162150MACHINE_START_MEMBER(cybiko_state,cybikov2)
163151{
164   device_t *flash2 = machine().device("flash2");
165
166152   _logerror( 0, ("machine_start_cybikov2\n"));
167   // multi-purpose flash
168   nvram_system_load( machine(), "flash2", cybiko_sst39vfx_load, 1);
169   machine().root_device().membank( "bank2" )->set_base( sst39vfx_get_base(flash2));
170153   // serial port
171154   cybiko_rs232_init(machine());
172155   // other
r20990r20991
175158
176159MACHINE_START_MEMBER(cybiko_state,cybikoxt)
177160{
178   device_t *flash2 = machine().device("flash2");
179161   _logerror( 0, ("machine_start_cybikoxt\n"));
180   // multi-purpose flash
181   nvram_system_load( machine(), "flash2", cybiko_sst39vfx_load, 1);
182   machine().root_device().membank( "bank2" )->set_base( sst39vfx_get_base(flash2));
183162   // ramdisk
184163   nvram_system_load( machine(), "ramdisk", cybiko_ramdisk_load, 0);
185164   // serial port
r20990r20991
224203void cybiko_state::machine_stop_cybikov2()
225204{
226205   _logerror( 0, ("machine_stop_cybikov2\n"));
227   // multi-purpose flash
228   nvram_system_save( machine(), "flash2", cybiko_sst39vfx_save);
229206   // serial port
230207   cybiko_rs232_exit();
231208}
r20990r20991
233210void cybiko_state::machine_stop_cybikoxt()
234211{
235212   _logerror( 0, ("machine_stop_cybikoxt\n"));
236   // multi-purpose flash
237   nvram_system_save( machine(), "flash2", cybiko_sst39vfx_save);
238213   // ramdisk
239214   nvram_system_save( machine(), "ramdisk", cybiko_ramdisk_save);
240215   // serial port
r20990r20991
318293// READ/WRITE HANDLERS //
319294/////////////////////////
320295
296READ8_MEMBER( cybiko_state::cybikov2_flash_r )
297{
298   return m_flash2->read(offset);
299}
300
301READ16_MEMBER( cybiko_state::cybikoxt_flash_r )
302{
303   return m_flashxt->read(offset);
304}
305
321306READ16_MEMBER( cybiko_state::cybiko_lcd_r )
322307{
323308   UINT16 data = 0;
trunk/src/mess/includes/cybiko.h
r20990r20991
2525#include "video/hd66421.h"
2626#include "machine/pcf8593.h"
2727#include "machine/at45dbxx.h"
28#include "machine/sst39vfx.h"
28#include "machine/intelfsh.h"
2929#include "machine/ram.h"
3030
3131struct CYBIKO_RS232_PINS
r20990r20991
4949   m_crtc(*this, "hd66421"),
5050   m_speaker(*this, SPEAKER_TAG),
5151   m_rtc(*this, "rtc"),
52   m_flash1(*this, "flash1")
52   m_flash1(*this, "flash1"),
53   m_flash2(*this, "flash2"),
54   m_flashxt(*this, "flashxt")
5355   { }
5456
5557   CYBIKO_RS232 m_rs232;
r20990r20991
6567   DECLARE_WRITE8_MEMBER(cybikov1_io_reg_w);
6668   DECLARE_WRITE8_MEMBER(cybikov2_io_reg_w);
6769   DECLARE_WRITE8_MEMBER(cybikoxt_io_reg_w);
70   DECLARE_READ8_MEMBER(cybikov2_flash_r);
71   DECLARE_READ16_MEMBER(cybikoxt_flash_r);
6872   int cybiko_key_r( offs_t offset, int mem_mask);
6973   void cybiko_rs232_write_byte(int data);
7074   void cybiko_rs232_pin_sck(int data);
r20990r20991
7680   required_device<speaker_sound_device> m_speaker;
7781   required_device<pcf8593_device> m_rtc;
7882   optional_device<at45db041_device> m_flash1;
83   optional_device<intelfsh8_device> m_flash2;
84   optional_device<intelfsh16_device> m_flashxt;
7985   DECLARE_DRIVER_INIT(cybikoxt);
8086   DECLARE_DRIVER_INIT(cybikov1);
8187   DECLARE_DRIVER_INIT(cybikov2);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team