Previous 199869 Revisions Next

r25345 Monday 16th September, 2013 at 12:05:53 UTC by Robbbert
(MESS) lola8a : added cassette
[src/mess/drivers]lola8a.c

trunk/src/mess/drivers/lola8a.c
r25344r25345
2121#include "cpu/i8085/i8085.h"
2222#include "video/mc6845.h"
2323#include "sound/ay8910.h"
24#include "imagedev/cassette.h"
25#include "sound/wave.h"
2426
2527#define AY8910_TAG "g12"
2628#define HD46505SP_TAG "h45"
r25344r25345
3032{
3133public:
3234   lola8a_state(const machine_config &mconfig, device_type type, const char *tag)
33      : driver_device(mconfig, type, tag),
34        m_maincpu(*this, "maincpu") { }
35      : driver_device(mconfig, type, tag)
36      , m_maincpu(*this, "maincpu")
37      , m_cass(*this, "cassette")
38   { }
3539
3640   required_device<cpu_device> m_maincpu;
3741   
r25344r25345
4145   DECLARE_READ8_MEMBER(lola8a_port_a_r);
4246   DECLARE_WRITE8_MEMBER(lola8a_port_b_w);
4347   DECLARE_WRITE_LINE_MEMBER(crtc_vsync);
48   DECLARE_READ_LINE_MEMBER(cass_r);
49   DECLARE_WRITE_LINE_MEMBER(cass_w);
4450   
4551   DECLARE_READ8_MEMBER(keyboard_r);
4652   
4753private:
4854   UINT8 m_portb;
55   required_device<cassette_image_device> m_cass;
4956};
5057
5158static ADDRESS_MAP_START(lola8a_mem, AS_PROGRAM, 8, lola8a_state)
r25344r25345
215222   m_portb = data;
216223}
217224
225READ_LINE_MEMBER( lola8a_state::cass_r )
226{
227   return (m_cass->input() < 0.03);
228}
229
230WRITE_LINE_MEMBER( lola8a_state::cass_w )
231{
232   m_cass->output(state ? -1.0 : +1.0);
233}
234
218235READ8_MEMBER(lola8a_state::keyboard_r)
219236{
220237   static const char *const keynames[] =
r25344r25345
264281   MCFG_CPU_ADD("maincpu", I8085A, XTAL_4_9152MHz)
265282   MCFG_CPU_PROGRAM_MAP(lola8a_mem)
266283   MCFG_CPU_IO_MAP(lola8a_io)
267
284   MCFG_I8085A_SID(READLINE(lola8a_state, cass_r))
285   MCFG_I8085A_SOD(WRITELINE(lola8a_state, cass_w))
268286     
269287   MCFG_SPEAKER_STANDARD_MONO("mono")
270288   MCFG_SOUND_ADD(AY8910_TAG, AY8910, XTAL_4_9152MHz / 4)
271289   MCFG_SOUND_CONFIG(psg_intf)
272290   MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",1.0)
273291   
274    /* video hardware */
292   /* video hardware */
275293   MCFG_SCREEN_ADD("screen", RASTER)
276294   MCFG_SCREEN_REFRESH_RATE(50)
277295   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
278296   MCFG_SCREEN_UPDATE_DEVICE(HD46505SP_TAG, hd6845_device, screen_update)
279297   MCFG_SCREEN_SIZE(640, 480)
280298   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
281   
282299   MCFG_MC6845_ADD(HD46505SP_TAG, HD6845, "screen", XTAL_8MHz / 8, hd46505sp_intf) // HD6845 == HD46505S
283   
284300      MCFG_PALETTE_LENGTH(8)
301
302   /* Cassette */
303   MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
304   MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
305   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
285306MACHINE_CONFIG_END
286307
287308/* ROM definition */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team