r8633 Monday 26th July, 2010 at 11:37:43 UTC by Robbbert
[RX78] Added cassette read and write.
[src/mess/drivers]rx78.c

src/mess/drivers/rx78.c
r8632r8633
2020#include "cpu/z80/z80.h"
2121#include "sound/sn76496.h"
2222#include "devices/cartslot.h"
23#include "devices/cassette.h"
2324#include "devices/messram.h"
2425
2526#define MASTER_CLOCK XTAL_28_63636MHz
2627
28static running_device *rx78_cassette;
29
30static WRITE8_HANDLER( rx78_f0_w )
31{
32   cassette_output(rx78_cassette, (data & 1) ? -1.0 : +1.0);
33}
34
35static READ8_HANDLER( rx78_f0_r )
36{
37   UINT8 data = 0;
38
39   if (cassette_input(rx78_cassette) > 0.03)
40      data++;
41
42   return data;
43}
44
45
2746static UINT8 vram_read_bank,vram_write_bank,pal_reg[7],pri_mask;
2847
2948static VIDEO_START( rx78 )
r8632r8633
193212//   AM_RANGE(0xe2, 0xe2) AM_READNOP AM_WRITENOP //printer
194213//   AM_RANGE(0xe3, 0xe3) AM_WRITENOP //printer
195214//   AM_RANGE(0xf0, 0xf0) AM_READ(cmt_r) //cmt
215   AM_RANGE(0xf0, 0xf0) AM_READWRITE(rx78_f0_r,rx78_f0_w)
196216   AM_RANGE(0xf1, 0xf1) AM_WRITE(vram_read_bank_w)
197217   AM_RANGE(0xf2, 0xf2) AM_WRITE(vram_write_bank_w)
198218   AM_RANGE(0xf4, 0xf4) AM_READWRITE(key_r,key_w) //keyboard
r8632r8633
331351
332352static MACHINE_RESET(rx78)
333353{
354   rx78_cassette = machine->device("cassette");
334355}
335356
336357static DEVICE_IMAGE_LOAD( rx78_cart )
r8632r8633
378399};
379400
380401static GFXDECODE_START( rx78 )
381   GFXDECODE_ENTRY( "maincpu", 0x1a27, rx78_charlayout, 0, 1 )
402   GFXDECODE_ENTRY( "maincpu", 0x1a27, rx78_charlayout, 0, 8 )
382403GFXDECODE_END
383404
384405static MACHINE_DRIVER_START( rx78 )
r8632r8633
413434   MDRV_RAM_DEFAULT_SIZE("32k")
414435   MDRV_RAM_EXTRA_OPTIONS("16k")
415436
437   MDRV_CASSETTE_ADD( "cassette", default_cassette_config )
438
416439   MDRV_SPEAKER_STANDARD_MONO("mono")
417440
418441   MDRV_SOUND_ADD("sn1", SN76489A, XTAL_28_63636MHz/8) // unknown divider

Previous 509070 RevisionsNext 50


© 1998-2010 The MESS Team