diff options
Diffstat (limited to 'src/mame/drivers/photon.c')
-rw-r--r-- | src/mame/drivers/photon.c | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c index 091a74266db..2ad494930e3 100644 --- a/src/mame/drivers/photon.c +++ b/src/mame/drivers/photon.c @@ -1,27 +1,27 @@ /* - Photon System - - Uses PK8000 emulation by Miodrag Milanovic - Imported to MAME by Mariusz Wojcieszek - - Russian arcade system based on PK8000 home computer, created by unknown manufacturer - in late 1980s or early 1990s. - - Following games were produced for this system: - - Tetris - - Python - - Treasure/Labyrinth - - Dump was made using custom adaptor, hence it is marked as bad dump. - The real machine has following roms: - 0000...07FFh - ROM1 (D41) - 0800...0FFFh - ROM2 (D42) - 1000...17FFh - ROM3 (D43) - 1800...1FFFh - not chip sealed (D44) - 2000...27FFh - ROM5 (D45) - 2800...2FFFh - ROM6 (D46) - 3000...37FFh - ROM7 (D47) - 3000...37FFh - ROM8 (D48) + Photon System + + Uses PK8000 emulation by Miodrag Milanovic + Imported to MAME by Mariusz Wojcieszek + + Russian arcade system based on PK8000 home computer, created by unknown manufacturer + in late 1980s or early 1990s. + + Following games were produced for this system: + - Tetris + - Python + - Treasure/Labyrinth + + Dump was made using custom adaptor, hence it is marked as bad dump. + The real machine has following roms: + 0000...07FFh - ROM1 (D41) + 0800...0FFFh - ROM2 (D42) + 1000...17FFh - ROM3 (D43) + 1800...1FFFh - not chip sealed (D44) + 2000...27FFh - ROM5 (D45) + 2800...2FFFh - ROM6 (D46) + 3000...37FFh - ROM7 (D47) + 3000...37FFh - ROM8 (D48) */ @@ -31,15 +31,15 @@ #include "machine/i8255a.h" #include "sound/dac.h" -static void pk8000_set_bank(running_machine *machine,UINT8 data) -{ +static void pk8000_set_bank(running_machine *machine,UINT8 data) +{ UINT8 *rom = memory_region(machine, "maincpu"); UINT8 *ram = memory_region(machine, "maincpu"); UINT8 block1 = data & 3; UINT8 block2 = (data >> 2) & 3; UINT8 block3 = (data >> 4) & 3; UINT8 block4 = (data >> 6) & 3; - + switch(block1) { case 0: memory_set_bankptr(machine, 1, rom + 0x10000); @@ -47,14 +47,14 @@ static void pk8000_set_bank(running_machine *machine,UINT8 data) break; case 1: break; case 2: break; - case 3: + case 3: memory_set_bankptr(machine, 1, ram); memory_set_bankptr(machine, 5, ram); break; } - + switch(block2) { - case 0: + case 0: memory_set_bankptr(machine, 2, rom + 0x14000); memory_set_bankptr(machine, 6, ram + 0x4000); break; @@ -88,7 +88,7 @@ static void pk8000_set_bank(running_machine *machine,UINT8 data) memory_set_bankptr(machine, 4, ram + 0xc000); memory_set_bankptr(machine, 8, ram + 0xc000); break; - } + } } static WRITE8_DEVICE_HANDLER(pk8000_80_porta_w) { @@ -116,17 +116,17 @@ static I8255A_INTERFACE( pk8000_ppi8255_interface_1 ) }; static READ8_DEVICE_HANDLER(pk8000_84_porta_r) -{ +{ return pk8000_video_mode; } static WRITE8_DEVICE_HANDLER(pk8000_84_porta_w) -{ +{ pk8000_video_mode = data; } static WRITE8_DEVICE_HANDLER(pk8000_84_portc_w) -{ +{ pk8000_video_enable = BIT(data,4); } static I8255A_INTERFACE( pk8000_ppi8255_interface_2 ) @@ -151,7 +151,7 @@ static ADDRESS_MAP_START( pk8000_io , ADDRESS_SPACE_IO, 8) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ppi8255_1", i8255a_r, i8255a_w) AM_RANGE(0x84, 0x87) AM_DEVREADWRITE("ppi8255_2", i8255a_r, i8255a_w) - AM_RANGE(0x88, 0x88) AM_READWRITE(pk8000_video_color_r,pk8000_video_color_w) + AM_RANGE(0x88, 0x88) AM_READWRITE(pk8000_video_color_r,pk8000_video_color_w) AM_RANGE(0x8c, 0x8c) AM_READ_PORT("JOY1") AM_RANGE(0x8d, 0x8d) AM_READ_PORT("JOY2") AM_RANGE(0x90, 0x90) AM_READWRITE(pk8000_text_start_r,pk8000_text_start_w) @@ -164,7 +164,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( photon ) PORT_START("JOY1") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) @@ -174,7 +174,7 @@ static INPUT_PORTS_START( photon ) PORT_START("JOY2") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN2) @@ -190,14 +190,14 @@ INTERRUPT_GEN( pk8000_interrupt ) } static IRQ_CALLBACK(pk8000_irq_callback) -{ +{ return 0xff; -} +} -static MACHINE_RESET(pk8000) +static MACHINE_RESET(pk8000) { - pk8000_set_bank(machine,0); + pk8000_set_bank(machine,0); cpu_set_irq_callback(cputag_get_cpu(machine, "maincpu"), pk8000_irq_callback); } @@ -215,11 +215,11 @@ static MACHINE_DRIVER_START( photon ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu",8080, 1780000) MDRV_CPU_PROGRAM_MAP(pk8000_mem) - MDRV_CPU_IO_MAP(pk8000_io) + MDRV_CPU_IO_MAP(pk8000_io) MDRV_CPU_VBLANK_INT("screen", pk8000_interrupt) MDRV_MACHINE_RESET(pk8000) - + /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(50) @@ -232,10 +232,10 @@ static MACHINE_DRIVER_START( photon ) MDRV_VIDEO_START(photon) MDRV_VIDEO_UPDATE(photon) - + MDRV_I8255A_ADD( "ppi8255_1", pk8000_ppi8255_interface_1 ) MDRV_I8255A_ADD( "ppi8255_2", pk8000_ppi8255_interface_2 ) - + /* audio hardware */ MDRV_SPEAKER_STANDARD_MONO("mono") MDRV_SOUND_ADD("dac", DAC, 0) |