summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2026-05-19 21:28:10 +0200
committer angelosa <lordkale4@gmail.com>2026-05-21 18:12:55 +0200
commit1e65480fb63560128f2803eb8aed4337c790905c (patch)
tree2e40233140dd748febc24656cbbbb877808ac4f8 /src
parent104a0ee585915205182e677b08bc08c0fcde352f (diff)
skeleton/fc100.cpp: cleanups:
* convert chargen area to a memory view; * move cart hookup in memory map; * fix game driver type (is a COMPuter not a CONSole);
Diffstat (limited to 'src')
-rw-r--r--src/mame/skeleton/fc100.cpp36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/mame/skeleton/fc100.cpp b/src/mame/skeleton/fc100.cpp
index 16cfe14ddc0..96b8231d8a2 100644
--- a/src/mame/skeleton/fc100.cpp
+++ b/src/mame/skeleton/fc100.cpp
@@ -67,12 +67,12 @@ public:
, m_uart(*this, "uart")
, m_centronics(*this, "centronics")
, m_keyboard(*this, "KEY.%u", 0U)
+ , m_chargen_view(*this, "chargen_view")
+ , m_chargen_ram(*this, "chargen_ram")
{ }
void fc100(machine_config &config);
- void init_fc100();
-
private:
uint8_t mc6847_videoram_r(offs_t offset);
uint8_t port00_r(offs_t offset);
@@ -119,6 +119,8 @@ private:
required_device<i8251_device> m_uart;
required_device<centronics_device> m_centronics;
required_ioport_array<16> m_keyboard;
+ memory_view m_chargen_view;
+ required_shared_ptr<u8> m_chargen_ram;
};
@@ -126,8 +128,12 @@ void fc100_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x5fff).rom().region("roms", 0);
- //map(0x6000, 0x6fff) // mapped by the cartslot
- map(0x7800, 0x7fff).bankr("bankr").bankw("bankw"); // Banked RAM/ROM
+ map(0x6000, 0x6fff).r(m_cart, FUNC(generic_slot_device::read_rom));
+ map(0x7800, 0x7fff).view(m_chargen_view); // Banked RAM/ROM
+ m_chargen_view[0](0x7800, 0x7fff).rom().region("chargen", 0x800).lw8(
+ NAME([this] (offs_t offset, uint8_t data) { m_chargen_ram[offset] = data; })
+ );
+ m_chargen_view[1](0x7800, 0x7fff).ram().share("chargen_ram");
map(0x8000, 0xbfff).ram(); // expansion ram pack - if omitted you get a 'Pages?' prompt at boot
map(0xc000, 0xffff).ram().share("videoram");
}
@@ -457,9 +463,6 @@ TIMER_DEVICE_CALLBACK_MEMBER( fc100_state::kansas_r)
void fc100_state::machine_start()
{
- if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
-
save_item(NAME(m_ag));
save_item(NAME(m_gm2));
save_item(NAME(m_gm1));
@@ -490,15 +493,14 @@ void fc100_state::machine_reset()
m_cassbit = 0;
m_cassold = 0;
m_key_pressed = 0;
- membank("bankr")->set_entry(0);
- membank("bankw")->set_entry(0);
+ m_chargen_view.select(0);
m_uart->write_cts(0);
}
void fc100_state::port60_w(offs_t offset, uint8_t data)
{
if (m_banksw_unlocked)
- membank("bankr")->set_entry(offset);
+ m_chargen_view.select(offset);
}
void fc100_state::port70_w(offs_t offset, uint8_t data)
@@ -506,16 +508,6 @@ void fc100_state::port70_w(offs_t offset, uint8_t data)
m_banksw_unlocked = (bool)offset;
}
-void fc100_state::init_fc100()
-{
- uint8_t *ram = memregion("ram")->base();
- uint8_t *cgen = memregion("chargen")->base()+0x800;
-
- membank("bankr")->configure_entry(0, &cgen[0]);
- membank("bankw")->configure_entry(0, &ram[0]);
- membank("bankr")->configure_entry(1, &ram[0]);
-}
-
void fc100_state::fc100(machine_config &config)
{
/* basic machine hardware */
@@ -582,8 +574,6 @@ ROM_START( fc100 )
ROM_REGION( 0x800, "mcu", ROMREGION_ERASE00 )
ROM_LOAD( "mcu.bin", 0x000, 0x800, NO_DUMP )
- ROM_REGION( 0x800, "ram", ROMREGION_ERASE00 )
-
ROM_REGION( 0x1000, "chargen", 0 )
ROM_LOAD( "cg-04-01.u53", 0x0000, 0x1000, CRC(2de75b7f) SHA1(464369d98cbae92ffa322ebaa4404cf5b26825f1) )
ROM_END
@@ -594,4 +584,4 @@ ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-CONS( 1982, fc100, 0, 0, fc100, fc100, fc100_state, init_fc100, "Goldstar", "FC-100", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+COMP( 1982, fc100, 0, 0, fc100, fc100, fc100_state, empty_init, "Goldstar", "FC-100", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )