From 53c74058028efef0c749d924fbc670598368d72e Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 3 Apr 2013 12:29:48 +0000 Subject: [PATCH] modernized photon and small cleanup (nw) --- src/mame/drivers/photon.c | 83 ++++++++++++---------------- src/mame/includes/pk8000.h | 51 +++++++++++------- src/mame/video/pk8000.c | 107 +++++++++++++++++++------------------ src/mess/drivers/pk8000.c | 41 +++++--------- 4 files changed, 134 insertions(+), 148 deletions(-) diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c index 8c5bf697118..4a3dc838274 100644 --- a/src/mame/drivers/photon.c +++ b/src/mame/drivers/photon.c @@ -22,30 +22,28 @@ #include "sound/speaker.h" -class photon_state : public driver_device +class photon_state : public pk8000_base_state { public: photon_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : pk8000_base_state(mconfig, type, tag) { } DECLARE_WRITE8_MEMBER(pk8000_80_porta_w); DECLARE_READ8_MEMBER(pk8000_80_portb_r); DECLARE_WRITE8_MEMBER(pk8000_80_portc_w); - DECLARE_READ8_MEMBER(pk8000_84_porta_r); - DECLARE_WRITE8_MEMBER(pk8000_84_porta_w); - DECLARE_WRITE8_MEMBER(pk8000_84_portc_w); virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(pk8000_interrupt); IRQ_CALLBACK_MEMBER(pk8000_irq_callback); + void pk8000_set_bank(UINT8 data); }; -static void pk8000_set_bank(running_machine &machine,UINT8 data) +void photon_state::pk8000_set_bank(UINT8 data) { - UINT8 *rom = machine.root_device().memregion("maincpu")->base(); - UINT8 *ram = machine.root_device().memregion("maincpu")->base(); + UINT8 *rom = memregion("maincpu")->base(); + UINT8 *ram = memregion("maincpu")->base(); UINT8 block1 = data & 3; UINT8 block2 = (data >> 2) & 3; UINT8 block3 = (data >> 4) & 3; @@ -53,57 +51,57 @@ static void pk8000_set_bank(running_machine &machine,UINT8 data) switch(block1) { case 0: - machine.root_device().membank("bank1")->set_base(rom + 0x10000); - machine.root_device().membank("bank5")->set_base(ram); + membank("bank1")->set_base(rom + 0x10000); + membank("bank5")->set_base(ram); break; case 1: break; case 2: break; case 3: - machine.root_device().membank("bank1")->set_base(ram); - machine.root_device().membank("bank5")->set_base(ram); + membank("bank1")->set_base(ram); + membank("bank5")->set_base(ram); break; } switch(block2) { case 0: - machine.root_device().membank("bank2")->set_base(rom + 0x14000); - machine.root_device().membank("bank6")->set_base(ram + 0x4000); + membank("bank2")->set_base(rom + 0x14000); + membank("bank6")->set_base(ram + 0x4000); break; case 1: break; case 2: break; case 3: - machine.root_device().membank("bank2")->set_base(ram + 0x4000); - machine.root_device().membank("bank6")->set_base(ram + 0x4000); + membank("bank2")->set_base(ram + 0x4000); + membank("bank6")->set_base(ram + 0x4000); break; } switch(block3) { case 0: - machine.root_device().membank("bank3")->set_base(rom + 0x18000); - machine.root_device().membank("bank7")->set_base(ram + 0x8000); + membank("bank3")->set_base(rom + 0x18000); + membank("bank7")->set_base(ram + 0x8000); break; case 1: break; case 2: break; case 3: - machine.root_device().membank("bank3")->set_base(ram + 0x8000); - machine.root_device().membank("bank7")->set_base(ram + 0x8000); + membank("bank3")->set_base(ram + 0x8000); + membank("bank7")->set_base(ram + 0x8000); break; } switch(block4) { case 0: - machine.root_device().membank("bank4")->set_base(rom + 0x1c000); - machine.root_device().membank("bank8")->set_base(ram + 0xc000); + membank("bank4")->set_base(rom + 0x1c000); + membank("bank8")->set_base(ram + 0xc000); break; case 1: break; case 2: break; case 3: - machine.root_device().membank("bank4")->set_base(ram + 0xc000); - machine.root_device().membank("bank8")->set_base(ram + 0xc000); + membank("bank4")->set_base(ram + 0xc000); + membank("bank8")->set_base(ram + 0xc000); break; } } WRITE8_MEMBER(photon_state::pk8000_80_porta_w) { - pk8000_set_bank(machine(),data); + pk8000_set_bank(data); } READ8_MEMBER(photon_state::pk8000_80_portb_r) @@ -126,28 +124,14 @@ static I8255_INTERFACE( pk8000_ppi8255_interface_1 ) DEVCB_DRIVER_MEMBER(photon_state,pk8000_80_portc_w) }; -READ8_MEMBER(photon_state::pk8000_84_porta_r) -{ - return pk8000_video_mode; -} - -WRITE8_MEMBER(photon_state::pk8000_84_porta_w) -{ - pk8000_video_mode = data; -} - -WRITE8_MEMBER(photon_state::pk8000_84_portc_w) -{ - pk8000_video_enable = BIT(data,4); -} static I8255A_INTERFACE( pk8000_ppi8255_interface_2 ) { - DEVCB_DRIVER_MEMBER(photon_state,pk8000_84_porta_r), - DEVCB_DRIVER_MEMBER(photon_state,pk8000_84_porta_w), + DEVCB_DRIVER_MEMBER(pk8000_base_state,pk8000_84_porta_r), + DEVCB_DRIVER_MEMBER(pk8000_base_state,pk8000_84_porta_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, - DEVCB_DRIVER_MEMBER(photon_state,pk8000_84_portc_w) + DEVCB_DRIVER_MEMBER(pk8000_base_state,pk8000_84_portc_w) }; static ADDRESS_MAP_START(pk8000_mem, AS_PROGRAM, 8, photon_state ) @@ -162,14 +146,14 @@ static ADDRESS_MAP_START( pk8000_io , AS_IO, 8, photon_state ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0x84, 0x87) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) - AM_RANGE(0x88, 0x88) AM_READWRITE_LEGACY(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_LEGACY(pk8000_text_start_r,pk8000_text_start_w) - AM_RANGE(0x91, 0x91) AM_READWRITE_LEGACY(pk8000_chargen_start_r,pk8000_chargen_start_w) - AM_RANGE(0x92, 0x92) AM_READWRITE_LEGACY(pk8000_video_start_r,pk8000_video_start_w) - AM_RANGE(0x93, 0x93) AM_READWRITE_LEGACY(pk8000_color_start_r,pk8000_color_start_w) - AM_RANGE(0xa0, 0xbf) AM_READWRITE_LEGACY(pk8000_color_r,pk8000_color_w) + AM_RANGE(0x90, 0x90) AM_READWRITE(pk8000_text_start_r,pk8000_text_start_w) + AM_RANGE(0x91, 0x91) AM_READWRITE(pk8000_chargen_start_r,pk8000_chargen_start_w) + AM_RANGE(0x92, 0x92) AM_READWRITE(pk8000_video_start_r,pk8000_video_start_w) + AM_RANGE(0x93, 0x93) AM_READWRITE(pk8000_color_start_r,pk8000_color_start_w) + AM_RANGE(0xa0, 0xbf) AM_READWRITE(pk8000_color_r,pk8000_color_w) ADDRESS_MAP_END static INPUT_PORTS_START( photon ) @@ -200,7 +184,7 @@ IRQ_CALLBACK_MEMBER(photon_state::pk8000_irq_callback) void photon_state::machine_reset() { - pk8000_set_bank(machine(),0); + pk8000_set_bank(0); machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(photon_state::pk8000_irq_callback),this)); } @@ -230,7 +214,6 @@ static MACHINE_CONFIG_START( photon, photon_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update_photon) MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT(pk8000) MCFG_I8255_ADD( "ppi8255_1", pk8000_ppi8255_interface_1 ) diff --git a/src/mame/includes/pk8000.h b/src/mame/includes/pk8000.h index 10c8056d566..a48c1c0760c 100644 --- a/src/mame/includes/pk8000.h +++ b/src/mame/includes/pk8000.h @@ -1,21 +1,36 @@ -/*----------- defined in video/pk8000.c -----------*/ +class pk8000_base_state : public driver_device +{ +public: + pk8000_base_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) { } + + DECLARE_READ8_MEMBER(pk8000_video_color_r); + DECLARE_WRITE8_MEMBER(pk8000_video_color_w); + DECLARE_READ8_MEMBER(pk8000_text_start_r); + DECLARE_WRITE8_MEMBER(pk8000_text_start_w); + DECLARE_READ8_MEMBER(pk8000_chargen_start_r); + DECLARE_WRITE8_MEMBER(pk8000_chargen_start_w); + DECLARE_READ8_MEMBER(pk8000_video_start_r); + DECLARE_WRITE8_MEMBER(pk8000_video_start_w); + DECLARE_READ8_MEMBER(pk8000_color_start_r); + DECLARE_WRITE8_MEMBER(pk8000_color_start_w); + DECLARE_READ8_MEMBER(pk8000_color_r); + DECLARE_WRITE8_MEMBER(pk8000_color_w); + DECLARE_READ8_MEMBER(pk8000_84_porta_r); + DECLARE_WRITE8_MEMBER(pk8000_84_porta_w); + DECLARE_WRITE8_MEMBER(pk8000_84_portc_w); -DECLARE_READ8_HANDLER(pk8000_video_color_r); -DECLARE_WRITE8_HANDLER(pk8000_video_color_w); -DECLARE_READ8_HANDLER(pk8000_text_start_r); -DECLARE_WRITE8_HANDLER(pk8000_text_start_w); -DECLARE_READ8_HANDLER(pk8000_chargen_start_r); -DECLARE_WRITE8_HANDLER(pk8000_chargen_start_w); -DECLARE_READ8_HANDLER(pk8000_video_start_r); -DECLARE_WRITE8_HANDLER(pk8000_video_start_w); -DECLARE_READ8_HANDLER(pk8000_color_start_r); -DECLARE_WRITE8_HANDLER(pk8000_color_start_w); -DECLARE_READ8_HANDLER(pk8000_color_r); -DECLARE_WRITE8_HANDLER(pk8000_color_w); + virtual void palette_init(); -extern UINT8 pk8000_video_mode; -extern UINT8 pk8000_video_enable; + UINT32 pk8000_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *videomem); +protected: + UINT8 m_pk8000_text_start; + UINT8 m_pk8000_chargen_start; + UINT8 m_pk8000_video_start; + UINT8 m_pk8000_color_start; -PALETTE_INIT( pk8000 ); - -UINT32 pk8000_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *videomem); + UINT8 m_pk8000_video_mode; + UINT8 m_pk8000_video_color; + UINT8 m_pk8000_color[32]; + UINT8 m_pk8000_video_enable; +}; diff --git a/src/mame/video/pk8000.c b/src/mame/video/pk8000.c index 4c43e5057c3..86aabf86329 100644 --- a/src/mame/video/pk8000.c +++ b/src/mame/video/pk8000.c @@ -1,74 +1,64 @@ #include "emu.h" #include "includes/pk8000.h" -static UINT8 pk8000_text_start; -static UINT8 pk8000_chargen_start; -static UINT8 pk8000_video_start; -static UINT8 pk8000_color_start; - -UINT8 pk8000_video_mode; -static UINT8 pk8000_video_color; -static UINT8 pk8000_color[32]; -UINT8 pk8000_video_enable; - -READ8_HANDLER(pk8000_video_color_r) +READ8_MEMBER(pk8000_base_state::pk8000_video_color_r) { - return pk8000_video_color; + return m_pk8000_video_color; } -WRITE8_HANDLER(pk8000_video_color_w) +WRITE8_MEMBER(pk8000_base_state::pk8000_video_color_w) { - pk8000_video_color = data; + m_pk8000_video_color = data; } -READ8_HANDLER(pk8000_text_start_r) +READ8_MEMBER(pk8000_base_state::pk8000_text_start_r) { - return pk8000_text_start; + return m_pk8000_text_start; } -WRITE8_HANDLER(pk8000_text_start_w) +WRITE8_MEMBER(pk8000_base_state::pk8000_text_start_w) { - pk8000_text_start = data; + m_pk8000_text_start = data; } -READ8_HANDLER(pk8000_chargen_start_r) +READ8_MEMBER(pk8000_base_state::pk8000_chargen_start_r) { - return pk8000_chargen_start; + return m_pk8000_chargen_start; } -WRITE8_HANDLER(pk8000_chargen_start_w) +WRITE8_MEMBER(pk8000_base_state::pk8000_chargen_start_w) { - pk8000_chargen_start = data; + m_pk8000_chargen_start = data; } -READ8_HANDLER(pk8000_video_start_r) +READ8_MEMBER(pk8000_base_state::pk8000_video_start_r) { - return pk8000_video_start; + return m_pk8000_video_start; } -WRITE8_HANDLER(pk8000_video_start_w) +WRITE8_MEMBER(pk8000_base_state::pk8000_video_start_w) { - pk8000_video_start = data; + m_pk8000_video_start = data; } -READ8_HANDLER(pk8000_color_start_r) +READ8_MEMBER(pk8000_base_state::pk8000_color_start_r) { - return pk8000_color_start; + return m_pk8000_color_start; } -WRITE8_HANDLER(pk8000_color_start_w) +WRITE8_MEMBER(pk8000_base_state::pk8000_color_start_w) { - pk8000_color_start = data; + m_pk8000_color_start = data; } -READ8_HANDLER(pk8000_color_r) +READ8_MEMBER(pk8000_base_state::pk8000_color_r) { - return pk8000_color[offset]; + return m_pk8000_color[offset]; } -WRITE8_HANDLER(pk8000_color_w) +WRITE8_MEMBER(pk8000_base_state::pk8000_color_w) { - pk8000_color[offset] = data; + m_pk8000_color[offset] = data; } static const rgb_t pk8000_palette[16] = { @@ -90,33 +80,48 @@ static const rgb_t pk8000_palette[16] = { MAKE_RGB(0xff, 0xff, 0xff), // F }; -PALETTE_INIT( pk8000 ) +void pk8000_base_state::palette_init() { - palette_set_colors(machine, 0, pk8000_palette, ARRAY_LENGTH(pk8000_palette)); + palette_set_colors(machine(), 0, pk8000_palette, ARRAY_LENGTH(pk8000_palette)); } -UINT32 pk8000_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *videomem) +READ8_MEMBER(pk8000_base_state::pk8000_84_porta_r) +{ + return m_pk8000_video_mode; +} + +WRITE8_MEMBER(pk8000_base_state::pk8000_84_porta_w) +{ + m_pk8000_video_mode = data; +} + +WRITE8_MEMBER(pk8000_base_state::pk8000_84_portc_w) +{ + m_pk8000_video_enable = BIT(data,4); +} + +UINT32 pk8000_base_state::pk8000_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *videomem) { int x,y,j,b; - UINT16 offset = (pk8000_video_mode & 0xc0) << 8; + UINT16 offset = (m_pk8000_video_mode & 0xc0) << 8; rectangle my_rect; my_rect.set(0, 256+32-1, 0, 192+32-1); - if (pk8000_video_enable) { - bitmap.fill((pk8000_video_color >> 4) & 0x0f, my_rect); + if (m_pk8000_video_enable) { + bitmap.fill((m_pk8000_video_color >> 4) & 0x0f, my_rect); - if (BIT(pk8000_video_mode,4)==0){ + if (BIT(m_pk8000_video_mode,4)==0){ // Text mode - if (BIT(pk8000_video_mode,5)==0){ + if (BIT(m_pk8000_video_mode,5)==0){ // 32 columns for (y = 0; y < 24; y++) { for (x = 0; x < 32; x++) { - UINT8 chr = videomem[x +(y*32) + ((pk8000_text_start & 0x0f) << 10)+offset] ; - UINT8 color= pk8000_color[chr>>3]; + UINT8 chr = videomem[x +(y*32) + ((m_pk8000_text_start & 0x0f) << 10)+offset] ; + UINT8 color= m_pk8000_color[chr>>3]; for (j = 0; j < 8; j++) { - UINT8 code = videomem[((chr<<3) + j) + ((pk8000_chargen_start & 0x0e) << 10)+offset]; + UINT8 code = videomem[((chr<<3) + j) + ((m_pk8000_chargen_start & 0x0e) << 10)+offset]; for (b = 0; b < 8; b++) { @@ -132,12 +137,12 @@ UINT32 pk8000_video_update(screen_device &screen, bitmap_ind16 &bitmap, const re { for (x = 0; x < 42; x++) { - UINT8 chr = videomem[x +(y*64) + ((pk8000_text_start & 0x0e) << 10)+offset] ; + UINT8 chr = videomem[x +(y*64) + ((m_pk8000_text_start & 0x0e) << 10)+offset] ; for (j = 0; j < 8; j++) { - UINT8 code = videomem[((chr<<3) + j) + ((pk8000_chargen_start & 0x0e) << 10)+offset]; + UINT8 code = videomem[((chr<<3) + j) + ((m_pk8000_chargen_start & 0x0e) << 10)+offset]; for (b = 2; b < 8; b++) { - UINT8 col = ((code >> b) & 0x01) ? (pk8000_video_color) & 0x0f : (pk8000_video_color>>4) & 0x0f; + UINT8 col = ((code >> b) & 0x01) ? (m_pk8000_video_color) & 0x0f : (m_pk8000_video_color>>4) & 0x0f; bitmap.pix16((y*8)+j+16, x*6+(7-b)+16+8) = col; } } @@ -148,11 +153,11 @@ UINT32 pk8000_video_update(screen_device &screen, bitmap_ind16 &bitmap, const re //Graphics for (y = 0; y < 24; y++) { - UINT16 off_color = (((~pk8000_color_start) & 0x08) << 10)+offset + ((y>>3)<<11); - UINT16 off_code = (((~pk8000_video_start) & 0x08) << 10)+offset + ((y>>3)<<11); + UINT16 off_color = (((~m_pk8000_color_start) & 0x08) << 10)+offset + ((y>>3)<<11); + UINT16 off_code = (((~m_pk8000_video_start) & 0x08) << 10)+offset + ((y>>3)<<11); for (x = 0; x < 32; x++) { - UINT8 chr = videomem[x +(y*32) + ((pk8000_chargen_start & 0x0e) << 10)+offset] ; + UINT8 chr = videomem[x +(y*32) + ((m_pk8000_chargen_start & 0x0e) << 10)+offset] ; for (j = 0; j < 8; j++) { UINT8 color= videomem[((chr<<3) + j)+off_color]; UINT8 code = videomem[((chr<<3) + j)+off_code]; diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c index be62b4a49d9..34123ec6b13 100644 --- a/src/mess/drivers/pk8000.c +++ b/src/mess/drivers/pk8000.c @@ -18,11 +18,11 @@ #include "machine/ram.h" -class pk8000_state : public driver_device +class pk8000_state : public pk8000_base_state { public: pk8000_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) + : pk8000_base_state(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_cassette(*this, CASSETTE_TAG) , m_ram(*this, RAM_TAG) @@ -51,9 +51,7 @@ public: DECLARE_WRITE8_MEMBER(pk8000_80_porta_w); DECLARE_READ8_MEMBER(pk8000_80_portb_r); DECLARE_WRITE8_MEMBER(pk8000_80_portc_w); - DECLARE_READ8_MEMBER(pk8000_84_porta_r); - DECLARE_WRITE8_MEMBER(pk8000_84_porta_w); - DECLARE_WRITE8_MEMBER(pk8000_84_portc_w); + IRQ_CALLBACK_MEMBER(pk8000_irq_callback); protected: @@ -171,28 +169,14 @@ static I8255_INTERFACE( pk8000_ppi8255_interface_1 ) DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_80_portc_w) }; -READ8_MEMBER(pk8000_state::pk8000_84_porta_r) -{ - return pk8000_video_mode; -} - -WRITE8_MEMBER(pk8000_state::pk8000_84_porta_w) -{ - pk8000_video_mode = data; -} - -WRITE8_MEMBER(pk8000_state::pk8000_84_portc_w) -{ - pk8000_video_enable = BIT(data,4); -} static I8255_INTERFACE( pk8000_ppi8255_interface_2 ) { - DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_84_porta_r), - DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_84_porta_w), + DEVCB_DRIVER_MEMBER(pk8000_base_state,pk8000_84_porta_r), + DEVCB_DRIVER_MEMBER(pk8000_base_state,pk8000_84_porta_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, - DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_84_portc_w) + DEVCB_DRIVER_MEMBER(pk8000_base_state,pk8000_84_portc_w) }; READ8_MEMBER(pk8000_state::pk8000_joy_1_r) @@ -220,14 +204,14 @@ static ADDRESS_MAP_START( pk8000_io , AS_IO, 8, pk8000_state ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0x84, 0x87) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) - AM_RANGE(0x88, 0x88) AM_READWRITE_LEGACY(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(pk8000_joy_1_r) AM_RANGE(0x8d, 0x8d) AM_READ(pk8000_joy_2_r) - AM_RANGE(0x90, 0x90) AM_READWRITE_LEGACY(pk8000_text_start_r,pk8000_text_start_w) - AM_RANGE(0x91, 0x91) AM_READWRITE_LEGACY(pk8000_chargen_start_r,pk8000_chargen_start_w) - AM_RANGE(0x92, 0x92) AM_READWRITE_LEGACY(pk8000_video_start_r,pk8000_video_start_w) - AM_RANGE(0x93, 0x93) AM_READWRITE_LEGACY(pk8000_color_start_r,pk8000_color_start_w) - AM_RANGE(0xa0, 0xbf) AM_READWRITE_LEGACY(pk8000_color_r,pk8000_color_w) + AM_RANGE(0x90, 0x90) AM_READWRITE(pk8000_text_start_r,pk8000_text_start_w) + AM_RANGE(0x91, 0x91) AM_READWRITE(pk8000_chargen_start_r,pk8000_chargen_start_w) + AM_RANGE(0x92, 0x92) AM_READWRITE(pk8000_video_start_r,pk8000_video_start_w) + AM_RANGE(0x93, 0x93) AM_READWRITE(pk8000_color_start_r,pk8000_color_start_w) + AM_RANGE(0xa0, 0xbf) AM_READWRITE(pk8000_color_r,pk8000_color_w) ADDRESS_MAP_END /* Input ports */ @@ -405,7 +389,6 @@ static MACHINE_CONFIG_START( pk8000, pk8000_state ) MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update_pk8000) MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT(pk8000) MCFG_I8255_ADD( "ppi8255_1", pk8000_ppi8255_interface_1 )