From 2b28f14caa6e4c86974ff0cb42e03d089071fa20 Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 23 Dec 2021 20:51:37 -0500 Subject: [PATCH] New machines marked as NOT_WORKING ---------------------------------- JoMoX AiRBase 99 [DBWBP] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/airbase99.cpp | 95 ++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 4 files changed, 100 insertions(+) create mode 100644 src/mame/drivers/airbase99.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index d5c6fe4ab6e..ff13a319465 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -4508,6 +4508,7 @@ files { MAME_DIR .. "src/mame/drivers/aceex.cpp", MAME_DIR .. "src/mame/drivers/adacp150.cpp", MAME_DIR .. "src/mame/drivers/aid80f.cpp", + MAME_DIR .. "src/mame/drivers/airbase99.cpp", MAME_DIR .. "src/mame/drivers/alcat7100.cpp", MAME_DIR .. "src/mame/drivers/alesis_qs.cpp", MAME_DIR .. "src/mame/drivers/alfaskop41xx.cpp", diff --git a/src/mame/drivers/airbase99.cpp b/src/mame/drivers/airbase99.cpp new file mode 100644 index 00000000000..f6250981fd4 --- /dev/null +++ b/src/mame/drivers/airbase99.cpp @@ -0,0 +1,95 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for AirBase 99 drum machine by JoMoX GmbH. + +****************************************************************************/ + +#include "emu.h" +#include "cpu/pic17/pic17c4x.h" +#include "video/hd44780.h" +#include "emupal.h" +#include "screen.h" + +namespace { + +class airbase99_state : public driver_device +{ +public: + airbase99_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_slavecpu(*this, "slavecpu") + { + } + + void airbase99(machine_config &config); + +private: + HD44780_PIXEL_UPDATE(pixel_update); + + void mem_map(address_map &map); + + required_device m_maincpu; + required_device m_slavecpu; +}; + + +HD44780_PIXEL_UPDATE(airbase99_state::pixel_update) +{ + if (x < 5 && y < 8 && line < 2 && pos < 16) + bitmap.pix(line * 8 + y, pos * 6 + x) = state; +} + +void airbase99_state::mem_map(address_map &map) +{ + map(0x0000, 0x7fff).rom().region("firmware", 0); + map(0x8000, 0x8008).nopw(); + map(0x8008, 0x8008).nopr(); + map(0x8010, 0x8011).rw("lcdc", FUNC(hd44780_device::control_r), FUNC(hd44780_device::write)).umask16(0x00ff); +} + +static INPUT_PORTS_START(airbase99) +INPUT_PORTS_END + +void airbase99_state::airbase99(machine_config &config) +{ + PIC17C43(config, m_maincpu, 16'000'000); // PIC17C43-16/P (XTAL unreadable) + m_maincpu->set_mode(pic17c43_device::mode::MICROPROCESSOR); + m_maincpu->set_addrmap(AS_PROGRAM, &airbase99_state::mem_map); + + PIC17C43(config, m_slavecpu, 16'000'000); // PIC17C43-33/P (XTAL unreadable) + m_slavecpu->set_mode(pic17c43_device::mode::MICROCONTROLLER); + m_slavecpu->set_disable(); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update("lcdc", FUNC(hd44780_device::screen_update)); + screen.set_size(6*16, 8*2); + screen.set_visarea_full(); + screen.set_palette("palette"); + + PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED); + + hd44780_device &lcdc(HD44780(config, "lcdc", 0)); + lcdc.set_lcd_size(2, 20); + lcdc.set_pixel_update_cb(FUNC(airbase99_state::pixel_update)); +} + +ROM_START(airbase99) + ROM_REGION16_LE(0x20000, "firmware", 0) + ROM_LOAD16_BYTE("airbase99 r1_09l.bin", 0x00000, 0x10000, CRC(218ec7cc) SHA1(8eeffa22f927d5e17937f9c04dbebf5367f520df)) // second half blank + ROM_LOAD16_BYTE("airbase99 r1_09h.bin", 0x00001, 0x10000, CRC(f3e7a25f) SHA1(8978326615661238aa07304bd4aaf8471b7bf449)) // second half blank + + ROM_REGION(0x2000, "slavecpu", 0) + ROM_LOAD("airbase_slave.bin", 0x0000, 0x2000, NO_DUMP) + + ROM_REGION(0x80000, "samples", 0) + ROM_LOAD("rom0.bin", 0x00000, 0x80000, NO_DUMP) // M27C4001 +ROM_END + +} // anonymous namespace + +SYST(1998, airbase99, 0, 0, airbase99, airbase99, airbase99_state, empty_init, "JoMoX", "AiRBase 99", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 91804c48583..55d088e21df 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -1026,6 +1026,9 @@ aim65 // Rockwell AIM65 @source:aim65_40.cpp aim65_40 // Rockwell AIM65/40 +@source:airbase99.cpp +airbase99 + @source:airbustr.cpp airbustr // (c) 1990 Kaneko + Namco airbustrb // bootleg diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 436aeb744a5..07c906ae1af 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -35,6 +35,7 @@ agat.cpp aid80f.cpp aim65.cpp aim65_40.cpp +airbase99.cpp akaiax80.cpp akaivx600.cpp alcat7100.cpp