From 9f4a33eee8687fc9324c71cdac7b90a7be3ee430 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 1 Aug 2018 22:23:35 -0400 Subject: mstation.cpp, nakajies.cpp, avigo.cpp, kc.cpp: Use make_unique_clear instead of abusing region_alloc (nw) --- src/mame/drivers/mstation.cpp | 5 ++--- src/mame/drivers/nakajies.cpp | 11 +++++------ src/mame/includes/avigo.h | 2 +- src/mame/includes/kc.h | 2 +- src/mame/machine/kc.cpp | 6 +++--- src/mame/video/avigo.cpp | 5 ++--- src/mame/video/kc.cpp | 16 +++++++--------- 7 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/mame/drivers/mstation.cpp b/src/mame/drivers/mstation.cpp index 14fd5ad2c22..8d7804dc9eb 100644 --- a/src/mame/drivers/mstation.cpp +++ b/src/mame/drivers/mstation.cpp @@ -63,7 +63,7 @@ private: uint8_t m_bank1[2]; uint8_t m_bank2[2]; - uint8_t *m_vram; + std::unique_ptr m_vram; uint8_t m_screen_column; uint8_t m_port2; uint8_t m_irq; @@ -396,7 +396,7 @@ INPUT_PORTS_END void mstation_state::machine_start() { // allocate the videoram - m_vram = (uint8_t*)machine().memory().region_alloc( "vram", 9600, 1, ENDIANNESS_LITTLE )->base(); + m_vram = make_unique_clear(9600); // map firsh RAM bank at 0xc000-0xffff membank("sysram")->set_base(m_nvram); @@ -407,7 +407,6 @@ void mstation_state::machine_reset() { m_bank1[0] = m_bank1[1] = 0; m_bank2[0] = m_bank2[1] = 0; - memset(m_vram, 0, 9600); // reset banks m_bankdev1->set_bank(0); diff --git a/src/mame/drivers/nakajies.cpp b/src/mame/drivers/nakajies.cpp index 16015369b1f..e5a6e01579c 100644 --- a/src/mame/drivers/nakajies.cpp +++ b/src/mame/drivers/nakajies.cpp @@ -340,7 +340,7 @@ private: uint32_t m_rom_size; /* RAM */ - uint8_t *m_ram_base; + std::unique_ptr m_ram_base; uint32_t m_ram_size; /* Banking */ @@ -364,13 +364,13 @@ void nakajies_state::update_banks() { /* RAM banking */ /* Not entirely sure if bank 0x1f refers to first or second ram bank ... */ - m_bank_base[i] = m_ram_base + ( ( ( ( m_bank[i] & 0x0f ) ^ 0xf ) << 17 ) % m_ram_size ); + m_bank_base[i] = &m_ram_base[(((m_bank[i] & 0x0f) ^ 0xf) << 17) % m_ram_size]; } else { /* ROM banking */ /* 0 is last bank, 1 bank before last, etc */ - m_bank_base[i] = m_rom_base + ( ( ( ( m_bank[i] & 0x0f ) ^ 0xf ) << 17 ) % m_rom_size ); + m_bank_base[i] = &m_rom_base[(((m_bank[i] & 0x0f) ^ 0xf) << 17) % m_rom_size]; } } membank( "bank0" )->set_base( m_bank_base[0] ); @@ -651,7 +651,7 @@ void nakajies_state::machine_start() { m_ram_size = 256 * 1024; } - m_ram_base = machine().memory().region_alloc( "mainram", m_ram_size, 1, ENDIANNESS_LITTLE )->base(); + m_ram_base = make_unique_clear(m_ram_size); } @@ -667,13 +667,12 @@ void nakajies_state::machine_reset() { elem = 0; } - memset(m_ram_base, 0, m_ram_size); update_banks(); } uint32_t nakajies_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t* lcd_memory_start = m_ram_base + (m_lcd_memory_start<<9); + uint8_t* lcd_memory_start = &m_ram_base[m_lcd_memory_start << 9]; int height = screen.height(); for (int y=0; y m_video_memory; uint8_t m_screen_column; uint8_t m_warm_start; DECLARE_PALETTE_INIT(avigo); diff --git a/src/mame/includes/kc.h b/src/mame/includes/kc.h index 22725e31b26..c5df7463c58 100644 --- a/src/mame/includes/kc.h +++ b/src/mame/includes/kc.h @@ -134,7 +134,7 @@ public: // driver state uint8_t * m_ram_base; - uint8_t * m_video_ram; + std::unique_ptr m_video_ram; int m_pio_data[2]; int m_high_resolution; uint8_t m_ardy; diff --git a/src/mame/machine/kc.cpp b/src/mame/machine/kc.cpp index dd037fe75ec..60b119e9524 100644 --- a/src/mame/machine/kc.cpp +++ b/src/mame/machine/kc.cpp @@ -384,7 +384,7 @@ void kc_state::update_0x08000() /* IRM enabled */ LOG(("IRM enabled\n")); - membank("bank3")->set_base(m_video_ram); + membank("bank3")->set_base(&m_video_ram[0]); space.install_readwrite_bank(0x8000, 0xbfff, "bank3"); } else @@ -485,12 +485,12 @@ void kc85_4_state::update_0x08000() /* IRM enabled - has priority over RAM8 enabled */ LOG(("IRM enabled\n")); - uint8_t* ram_page = m_video_ram + ((BIT(m_port_84_data, 2)<<15) | (BIT(m_port_84_data, 1)<<14)); + uint8_t* ram_page = &m_video_ram[(BIT(m_port_84_data, 2)<<15) | (BIT(m_port_84_data, 1)<<14)]; membank("bank3")->set_base(ram_page); space.install_readwrite_bank(0x8000, 0xa7ff, "bank3"); - membank("bank6")->set_base(m_video_ram + 0x2800); + membank("bank6")->set_base(&m_video_ram[0x2800]); space.install_readwrite_bank(0xa800, 0xbfff, "bank6"); } else if (m_pio_data[1] & (1<<5)) diff --git a/src/mame/video/avigo.cpp b/src/mame/video/avigo.cpp index 7e60cc0c418..9e4a4681879 100644 --- a/src/mame/video/avigo.cpp +++ b/src/mame/video/avigo.cpp @@ -71,8 +71,7 @@ void avigo_state::video_start() m_screen_column = 0; /* allocate video memory */ - m_video_memory = machine().memory().region_alloc( "videoram", (AVIGO_SCREEN_WIDTH>>3) * AVIGO_SCREEN_HEIGHT + 1, 1, ENDIANNESS_LITTLE )->base(); - memset(m_video_memory, 0, (AVIGO_SCREEN_WIDTH>>3) * AVIGO_SCREEN_HEIGHT + 1); + m_video_memory = make_unique_clear((AVIGO_SCREEN_WIDTH>>3) * AVIGO_SCREEN_HEIGHT + 1); save_pointer(NAME(m_video_memory), (AVIGO_SCREEN_WIDTH>>3) * AVIGO_SCREEN_HEIGHT + 1); } @@ -94,7 +93,7 @@ uint32_t avigo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, for (y=0; y>3)); + uint8_t *line_ptr = &m_video_memory[y*(AVIGO_SCREEN_WIDTH>>3)]; x = 0; for (by=((AVIGO_SCREEN_WIDTH>>3)-1); by>=0; by--) diff --git a/src/mame/video/kc.cpp b/src/mame/video/kc.cpp index a9a346c1844..7371c8513af 100644 --- a/src/mame/video/kc.cpp +++ b/src/mame/video/kc.cpp @@ -148,9 +148,8 @@ void kc_state::video_draw_8_pixels(bitmap_ind16 &bitmap, int x, int y, uint8_t c void kc85_4_state::video_start() { - m_video_ram = machine().memory().region_alloc("videoram", (KC85_4_SCREEN_COLOUR_RAM_SIZE*2) + (KC85_4_SCREEN_PIXEL_RAM_SIZE*2), 1, ENDIANNESS_LITTLE)->base(); - memset(m_video_ram, 0, (KC85_4_SCREEN_COLOUR_RAM_SIZE*2) + (KC85_4_SCREEN_PIXEL_RAM_SIZE*2)); - m_display_video_ram = m_video_ram; + m_video_ram = make_unique_clear((KC85_4_SCREEN_COLOUR_RAM_SIZE*2) + (KC85_4_SCREEN_PIXEL_RAM_SIZE*2)); + m_display_video_ram = &m_video_ram[0]; m_kc85_blink_state = 0; } @@ -159,9 +158,9 @@ void kc85_4_state::video_control_w(int data) { /* calculate address of video ram to display */ if (data & 1) - m_display_video_ram = m_video_ram + (KC85_4_SCREEN_PIXEL_RAM_SIZE + KC85_4_SCREEN_COLOUR_RAM_SIZE); + m_display_video_ram = &m_video_ram[KC85_4_SCREEN_PIXEL_RAM_SIZE + KC85_4_SCREEN_COLOUR_RAM_SIZE]; else - m_display_video_ram = m_video_ram; + m_display_video_ram = &m_video_ram[0]; m_high_resolution = (data & 0x08) ? 0 : 1; } @@ -194,8 +193,7 @@ uint32_t kc85_4_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap void kc_state::video_start() { - m_video_ram = machine().memory().region_alloc("videoram", 0x4000, 1, ENDIANNESS_LITTLE)->base(); - memset(m_video_ram, 0, 0x4000); + m_video_ram = make_unique_clear(0x4000); m_kc85_blink_state = 0; } @@ -203,8 +201,8 @@ void kc_state::video_start() uint32_t kc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* colour ram takes up 0x02800 bytes */ - uint8_t *pixel_ram = m_video_ram; - uint8_t *colour_ram = m_video_ram + 0x02800; + uint8_t *pixel_ram = &m_video_ram[0]; + uint8_t *colour_ram = &m_video_ram[0x2800]; for (int y=cliprect.min_y; y<=cliprect.max_y; y++) { -- cgit v1.2.3