src/mess/drivers/phc25.c
| r0 | r7464 | |
| 1 | /***************************************************************************
|
| 2 | |
| 3 | Sanyo PHC-25
|
| 4 | |
| 5 | Skeleton driver.
|
| 6 | |
| 7 | ****************************************************************************/
|
| 8 | |
| 9 | /*
|
| 10 | |
| 11 | http://www.geocities.jp/sanyo_phc_25/
|
| 12 | |
| 13 | Z80 @ 4 MHz
|
| 14 | MC6847 video
|
| 15 | 3x 8KB bios ROM
|
| 16 | 1x 4KB chargen ROM
|
| 17 | 16KB RAM
|
| 18 | 6KB video RAM
|
| 19 | |
| 20 | */
|
| 21 | |
| 22 | #include "emu.h"
|
| 23 | #include "cpu/z80/z80.h"
|
| 24 | #include "devices/messram.h"
|
| 25 | #include "video/m6847.h"
|
| 26 | #include "sound/ay8910.h"
|
| 27 | |
| 28 | |
| 29 | static ADDRESS_MAP_START(phc25_mem, ADDRESS_SPACE_PROGRAM, 8)
|
| 30 | ADDRESS_MAP_UNMAP_HIGH
|
| 31 | AM_RANGE(0x0000, 0x5fff) AM_ROM
|
| 32 | AM_RANGE(0x8000, 0xbfff) AM_RAM
|
| 33 | AM_RANGE(0xe800, 0xffff) AM_RAM // video RAM
|
| 34 | ADDRESS_MAP_END
|
| 35 | |
| 36 | static ADDRESS_MAP_START(phc25_io, ADDRESS_SPACE_IO, 8)
|
| 37 | ADDRESS_MAP_UNMAP_HIGH
|
| 38 | ADDRESS_MAP_GLOBAL_MASK(0x80)
|
| 39 | // AM_RANGE(0x40, 0x40) 6847
|
| 40 | // AM_RANGE(0x80, 0x88) keyboard
|
| 41 | // AM_RANGE(0xc0, 0xc1) PSG
|
| 42 | ADDRESS_MAP_END
|
| 43 | |
| 44 | /* Input ports */
|
| 45 | INPUT_PORTS_START( phc25 )
|
| 46 | INPUT_PORTS_END
|
| 47 | |
| 48 | |
| 49 | static MACHINE_RESET(phc25)
|
| 50 | {
|
| 51 | }
|
| 52 | |
| 53 | static VIDEO_START( phc25 )
|
| 54 | {
|
| 55 | }
|
| 56 | |
| 57 | static VIDEO_UPDATE( phc25 )
|
| 58 | {
|
| 59 | return 0;
|
| 60 | }
|
| 61 | |
| 62 | static const mc6847_interface mc6847_intf =
|
| 63 | {
|
| 64 | DEVCB_NULL,
|
| 65 | DEVCB_NULL,
|
| 66 | DEVCB_NULL,
|
| 67 | DEVCB_NULL,
|
| 68 | DEVCB_NULL,
|
| 69 | DEVCB_NULL,
|
| 70 | DEVCB_NULL,
|
| 71 | DEVCB_NULL,
|
| 72 | DEVCB_NULL,
|
| 73 | DEVCB_NULL,
|
| 74 | DEVCB_NULL,
|
| 75 | DEVCB_NULL
|
| 76 | };
|
| 77 | |
| 78 | static const ay8910_interface ay8910_intf =
|
| 79 | {
|
| 80 | AY8910_LEGACY_OUTPUT,
|
| 81 | AY8910_DEFAULT_LOADS,
|
| 82 | DEVCB_NULL,
|
| 83 | DEVCB_NULL,
|
| 84 | DEVCB_NULL,
|
| 85 | DEVCB_NULL
|
| 86 | };
|
| 87 | |
| 88 | static MACHINE_DRIVER_START( phc25 )
|
| 89 | /* basic machine hardware */
|
| 90 | MDRV_CPU_ADD("maincpu", Z80, XTAL_4MHz)
|
| 91 | MDRV_CPU_PROGRAM_MAP(phc25_mem)
|
| 92 | MDRV_CPU_IO_MAP(phc25_io)
|
| 93 | |
| 94 | MDRV_MACHINE_RESET(phc25)
|
| 95 | |
| 96 | /* video hardware */
|
| 97 | MDRV_SCREEN_ADD("screen", RASTER)
|
| 98 | MDRV_SCREEN_REFRESH_RATE(50)
|
| 99 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
| 100 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
| 101 | MDRV_SCREEN_SIZE(640, 480)
|
| 102 | MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
|
| 103 | MDRV_PALETTE_LENGTH(2)
|
| 104 | MDRV_PALETTE_INIT(black_and_white)
|
| 105 | |
| 106 | MDRV_VIDEO_START(phc25)
|
| 107 | MDRV_VIDEO_UPDATE(phc25)
|
| 108 | |
| 109 | MDRV_MC6847_ADD("mc6847", mc6847_intf)
|
| 110 | MDRV_MC6847_TYPE(M6847_VERSION_ORIGINAL_NTSC)
|
| 111 | |
| 112 | /* sound hardware */
|
| 113 | MDRV_SPEAKER_STANDARD_MONO("mono")
|
| 114 | MDRV_SOUND_ADD("ay8910", AY8910, 3579545/2)
|
| 115 | MDRV_SOUND_CONFIG(ay8910_intf)
|
| 116 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
| 117 |
|
| 118 | /* internal ram */
|
| 119 | MDRV_RAM_ADD("messram")
|
| 120 | MDRV_RAM_DEFAULT_SIZE("16K")
|
| 121 | MACHINE_DRIVER_END
|
| 122 | |
| 123 | /* ROM definition */
|
| 124 | ROM_START( phc25 )
|
| 125 | ROM_REGION( 0x8000, "maincpu", 0 )
|
| 126 | ROM_LOAD( "phc25rom.bin", 0x0000, 0x6000, CRC(c442ed57) SHA1(af0a6a6be8e48a56b6960f89c76bad6320ea0f55))
|
| 127 | |
| 128 | ROM_REGION( 0x1000, "chargen", 0 )
|
| 129 | ROM_LOAD( "chargen.bin", 0x0000, 0x1000, NO_DUMP)
|
| 130 | ROM_END
|
| 131 | |
| 132 | /* Driver */
|
| 133 | |
| 134 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
|
| 135 | COMP( 1983, phc25, 0, 0, phc25, phc25, 0, "Sanyo", "PHC-25", GAME_NOT_WORKING | GAME_NO_SOUND)
|
| 136 | |