src/mess/drivers/rx78.c
| r8632 | r8633 | |
| 20 | 20 | #include "cpu/z80/z80.h" |
| 21 | 21 | #include "sound/sn76496.h" |
| 22 | 22 | #include "devices/cartslot.h" |
| 23 | #include "devices/cassette.h" |
| 23 | 24 | #include "devices/messram.h" |
| 24 | 25 | |
| 25 | 26 | #define MASTER_CLOCK XTAL_28_63636MHz |
| 26 | 27 | |
| 28 | static running_device *rx78_cassette; |
| 29 | |
| 30 | static WRITE8_HANDLER( rx78_f0_w ) |
| 31 | { |
| 32 | cassette_output(rx78_cassette, (data & 1) ? -1.0 : +1.0); |
| 33 | } |
| 34 | |
| 35 | static 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 | |
| 27 | 46 | static UINT8 vram_read_bank,vram_write_bank,pal_reg[7],pri_mask; |
| 28 | 47 | |
| 29 | 48 | static VIDEO_START( rx78 ) |
| r8632 | r8633 | |
| 193 | 212 | // AM_RANGE(0xe2, 0xe2) AM_READNOP AM_WRITENOP //printer |
| 194 | 213 | // AM_RANGE(0xe3, 0xe3) AM_WRITENOP //printer |
| 195 | 214 | // AM_RANGE(0xf0, 0xf0) AM_READ(cmt_r) //cmt |
| 215 | AM_RANGE(0xf0, 0xf0) AM_READWRITE(rx78_f0_r,rx78_f0_w) |
| 196 | 216 | AM_RANGE(0xf1, 0xf1) AM_WRITE(vram_read_bank_w) |
| 197 | 217 | AM_RANGE(0xf2, 0xf2) AM_WRITE(vram_write_bank_w) |
| 198 | 218 | AM_RANGE(0xf4, 0xf4) AM_READWRITE(key_r,key_w) //keyboard |
| r8632 | r8633 | |
| 331 | 351 | |
| 332 | 352 | static MACHINE_RESET(rx78) |
| 333 | 353 | { |
| 354 | rx78_cassette = machine->device("cassette"); |
| 334 | 355 | } |
| 335 | 356 | |
| 336 | 357 | static DEVICE_IMAGE_LOAD( rx78_cart ) |
| r8632 | r8633 | |
| 378 | 399 | }; |
| 379 | 400 | |
| 380 | 401 | static GFXDECODE_START( rx78 ) |
| 381 | | GFXDECODE_ENTRY( "maincpu", 0x1a27, rx78_charlayout, 0, 1 ) |
| 402 | GFXDECODE_ENTRY( "maincpu", 0x1a27, rx78_charlayout, 0, 8 ) |
| 382 | 403 | GFXDECODE_END |
| 383 | 404 | |
| 384 | 405 | static MACHINE_DRIVER_START( rx78 ) |
| r8632 | r8633 | |
| 413 | 434 | MDRV_RAM_DEFAULT_SIZE("32k") |
| 414 | 435 | MDRV_RAM_EXTRA_OPTIONS("16k") |
| 415 | 436 | |
| 437 | MDRV_CASSETTE_ADD( "cassette", default_cassette_config ) |
| 438 | |
| 416 | 439 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 417 | 440 | |
| 418 | 441 | MDRV_SOUND_ADD("sn1", SN76489A, XTAL_28_63636MHz/8) // unknown divider |