Previous 199869 Revisions Next

r21859 Thursday 14th March, 2013 at 21:07:18 UTC by Angelo Salese
New skeleton driver for Casio FP-200, will do actual code work next
[src/mess]mess.lst mess.mak
[src/mess/drivers]fp200.c*

trunk/src/mess/mess.mak
r21858r21859
796796$(MESSOBJ)/casio.a:             \
797797   $(MESS_DRIVERS)/casloopy.o  \
798798   $(MESS_DRIVERS)/cfx9850.o   \
799   $(MESS_DRIVERS)/fp200.o     \
799800   $(MESS_DRIVERS)/fp1100.o    \
800801   $(MESS_DRIVERS)/pv1000.o    \
801802   $(MESS_DRIVERS)/pv2000.o    \
trunk/src/mess/drivers/fp200.c
r0r21859
1/***************************************************************************
2
3Casio FP-200 driver
4
5***************************************************************************/
6
7
8#include "emu.h"
9#include "cpu/i8085/i8085.h"
10
11#define MAIN_CLOCK XTAL_5MHz
12
13class fp200_state : public driver_device
14{
15public:
16   fp200_state(const machine_config &mconfig, device_type type, const char *tag)
17      : driver_device(mconfig, type, tag),
18         m_maincpu(*this, "maincpu")
19   { }
20
21   // devices
22   required_device<cpu_device> m_maincpu;
23   UINT8 m_io_type;
24
25   // screen updates
26   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
27
28   DECLARE_READ8_MEMBER(fp200_io_r);
29   DECLARE_WRITE8_MEMBER(fp200_io_w);
30   DECLARE_WRITE_LINE_MEMBER(sod_w);
31   DECLARE_READ_LINE_MEMBER(sid_r);
32
33protected:
34   // driver_device overrides
35   virtual void machine_start();
36   virtual void machine_reset();
37
38   virtual void video_start();
39   virtual void palette_init();
40};
41
42void fp200_state::video_start()
43{
44}
45
46UINT32 fp200_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
47{
48   return 0;
49}
50
51/*
52i/o map:
53SOD = 0
540x10 - 0x1f Timer control (RPC05 RTC)
550x20 - 0x2f AUTO-POWER OFF
560x40 - 0x4f Device Code
570x80 - 0xff FDD (unknown type)
58SOD = 1
590x00 - 0x0f LCD control.
600x10 - 0x1f I/O control
610x20 - 0x2f Keyboard
620x40 - 0x4f MT.RS-232C control
630x80 - 0x8f Printer (Centronics)
64*/
65
66READ8_MEMBER(fp200_state::fp200_io_r)
67{
68   UINT8 res;
69   logerror("Unemulated I/O read %02x (%02x)\n",offset,m_io_type);
70
71   if(m_io_type == 0)
72   {
73      res = 0;
74   }
75   else
76   {
77      res = 0;
78   }
79
80   return res;
81}
82
83WRITE8_MEMBER(fp200_state::fp200_io_w)
84{
85   logerror("Unemulated I/O write %02x (%02x) -> %02x\n",offset,m_io_type,data);
86   if(m_io_type == 0)
87   {
88      // ....
89   }
90   else
91   {
92      // ...
93   }
94}
95
96static ADDRESS_MAP_START( fp200_map, AS_PROGRAM, 8, fp200_state )
97   AM_RANGE(0x0000, 0x7fff) AM_ROM
98   AM_RANGE(0x8000, 0x9fff) AM_RAM
99//  0xa000, 0xffff exp RAM
100ADDRESS_MAP_END
101
102static ADDRESS_MAP_START( fp200_io, AS_IO, 8, fp200_state )
103   AM_RANGE(0x00, 0xff) AM_READWRITE(fp200_io_r,fp200_io_w)
104ADDRESS_MAP_END
105
106static INPUT_PORTS_START( fp200 )
107   /* dummy active high structure */
108   PORT_START("SYSA")
109   PORT_DIPNAME( 0x01, 0x00, "SYSA" )
110   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
111   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
112   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
113   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
114   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
115   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
116   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
117   PORT_DIPSETTING(    0x04, DEF_STR( On ) )
118   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
119   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
120   PORT_DIPSETTING(    0x08, DEF_STR( On ) )
121   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
122   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
123   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
124   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
125   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
126   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
127   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
128   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
129   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
130   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
131   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
132   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
133
134   /* dummy active low structure */
135   PORT_START("DSWA")
136   PORT_DIPNAME( 0x01, 0x01, "DSWA" )
137   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
138   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
139   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
140   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
141   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
142   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
143   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
144   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
145   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
146   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
147   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
148   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
149   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
150   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
151   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
152   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
153   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
154   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
155   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
156   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
157   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
158   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
159   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
160INPUT_PORTS_END
161
162static const gfx_layout charlayout =
163{
164   8,8,
165   RGN_FRAC(1,1),
166   1,
167   { RGN_FRAC(0,1) },
168   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
169   { 0, 1, 2, 3, 4, 5, 6, 7 },
170   8*8
171};
172
173static GFXDECODE_START( fp200 )
174   GFXDECODE_ENTRY( "gfx1", 0, charlayout,     0, 1 )
175GFXDECODE_END
176
177
178void fp200_state::machine_start()
179{
180}
181
182void fp200_state::machine_reset()
183{
184}
185
186
187void fp200_state::palette_init()
188{
189}
190
191WRITE_LINE_MEMBER( fp200_state::sod_w )
192{
193   m_io_type = state;
194}
195
196READ_LINE_MEMBER( fp200_state::sid_r )
197{
198   /* TODO: key mods */
199   return 0;
200}
201
202static I8085_CONFIG( cpu_config )
203{
204   DEVCB_NULL,             /* STATUS changed callback */
205   DEVCB_NULL,             /* INTE changed callback */
206   DEVCB_DRIVER_LINE_MEMBER(fp200_state, sid_r),   /* SID changed callback (I8085A only) */
207   DEVCB_DRIVER_LINE_MEMBER(fp200_state, sod_w)    /* SOD changed callback (I8085A only) */
208};
209
210static MACHINE_CONFIG_START( fp200, fp200_state )
211
212   /* basic machine hardware */
213   MCFG_CPU_ADD("maincpu",I8085A,MAIN_CLOCK)
214   MCFG_CPU_PROGRAM_MAP(fp200_map)
215   MCFG_CPU_IO_MAP(fp200_io)
216   MCFG_CPU_CONFIG(cpu_config)
217
218   /* video hardware */
219   MCFG_SCREEN_ADD("screen", LCD)
220   MCFG_SCREEN_REFRESH_RATE(60)
221   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
222   MCFG_SCREEN_UPDATE_DRIVER(fp200_state, screen_update)
223   MCFG_SCREEN_SIZE(20*8, 8*8)
224   MCFG_SCREEN_VISIBLE_AREA(0*8, 20*8-1, 0*8, 8*8-1)
225
226   MCFG_GFXDECODE(fp200)
227
228   MCFG_PALETTE_LENGTH(8)
229
230   /* sound hardware */
231   MCFG_SPEAKER_STANDARD_MONO("mono")
232//  MCFG_SOUND_ADD("aysnd", AY8910, MAIN_CLOCK/4)
233//  MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
234MACHINE_CONFIG_END
235
236
237/***************************************************************************
238
239  Game driver(s)
240
241***************************************************************************/
242
243ROM_START( fp200 )
244   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
245   ROM_LOAD( "fp200rom.bin", 0x0000, 0x8000, CRC(dba6e41b) SHA1(c694fa19172eb56585a9503997655bcf9d369c34) )
246
247   ROM_REGION( 0x10000, "gfx1", ROMREGION_ERASE00 )
248   ROM_LOAD( "chr.bin", 0x0000, 0x800, CRC(2e6501a5) SHA1(6186e25feabe6db851ee7d61dad11e182a6d3a4a) )
249ROM_END
250
251GAME( 1982, fp200,  0,   fp200,  fp200, driver_device,  0,       ROT0, "Casio",      "FP-200", GAME_IS_SKELETON )
Property changes on: trunk/src/mess/drivers/fp200.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mess/mess.lst
r21858r21859
21132113selz80
21142114mccpm
21152115casloopy
2116fp200
21162117fp1100
21172118fp6000
21182119tim011

Previous 199869 Revisions Next


© 1997-2024 The MAME Team