Cleaned up some recent changes.

This commit is contained in:
Vas Crabb 2023-04-12 02:14:28 +10:00
parent 5b2ab244d1
commit d5399553bc
13 changed files with 138 additions and 125 deletions

View File

@ -3313,9 +3313,9 @@ void upd72069_device::auxcmd_w(uint8_t data)
}
hd63266f_device::hd63266f_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock)
: upd765_family_device(mconfig, HD63266F, tag, owner, clock)
, inp_cb(*this)
hd63266f_device::hd63266f_device(const machine_config& mconfig, const char *tag, device_t *owner, uint32_t clock)
: upd765_family_device(mconfig, HD63266F, tag, owner, clock)
, inp_cb(*this)
{
has_dor = false;
}
@ -3326,10 +3326,10 @@ void hd63266f_device::device_start()
inp_cb.resolve();
}
void hd63266f_device::map(address_map& map)
void hd63266f_device::map(address_map &map)
{
map(0x0, 0x0).rw(FUNC(upd765a_device::msr_r), FUNC(hd63266f_device::abort_w));
map(0x1, 0x1).rw(FUNC(upd765a_device::fifo_r), FUNC(upd765a_device::fifo_w));
map(0x0, 0x0).rw(FUNC(hd63266f_device::msr_r), FUNC(hd63266f_device::abort_w));
map(0x1, 0x1).rw(FUNC(hd63266f_device::fifo_r), FUNC(hd63266f_device::fifo_w));
map(0x2, 0x2).r(FUNC(hd63266f_device::extstat_r));
}
@ -3353,14 +3353,14 @@ void hd63266f_device::abort_w(u8 data)
int hd63266f_device::check_command()
{
switch(command[0]) {
case 0x0e:
return C_SLEEP;
case 0x0b:
case 0x2b:
return command_pos == 4 ? C_SPECIFY : C_INCOMPLETE;
case 0x4b:
case 0x6b:
return command_pos == 7 ? C_SPECIFY2 : C_INCOMPLETE;
case 0x0e:
return C_SLEEP;
case 0x0b:
case 0x2b:
return command_pos == 4 ? C_SPECIFY : C_INCOMPLETE;
case 0x4b:
case 0x6b:
return command_pos == 7 ? C_SPECIFY2 : C_INCOMPLETE;
}
return upd765_family_device::check_command();
}
@ -3369,27 +3369,28 @@ void hd63266f_device::execute_command(int cmd)
{
switch(cmd)
{
case C_SLEEP:
for(int i = 0; i < 4; i++)
if(flopi[i].dev) flopi[i].dev->mon_w(1);
main_phase = PHASE_CMD;
motor_state = 0;
LOGCOMMAND("sleep\n");
break;
case C_SPECIFY2:
spec = (command[1] << 8) | command[2];
LOGCOMMAND("command specify2 %02x %02x: step_rate=%d ms, head_unload=%d ms, head_load=%d ms, non_dma=%s\n",
case C_SLEEP:
for(int i = 0; i < 4; i++) {
if(flopi[i].dev) flopi[i].dev->mon_w(1);
}
main_phase = PHASE_CMD;
motor_state = 0;
LOGCOMMAND("sleep\n");
break;
case C_SPECIFY2:
spec = (command[1] << 8) | command[2];
LOGCOMMAND("command specify2 %02x %02x: step_rate=%d ms, head_unload=%d ms, head_load=%d ms, non_dma=%s\n",
command[1], command[2], 16-(command[1]>>4), (command[1]&0x0f)<<4, command[2]&0xfe, ((command[2]&1)==1)? "true":"false");
main_phase = PHASE_CMD;
break;
case C_SENSE_DRIVE_STATUS:
upd765_family_device::execute_command(cmd);
if(inp_cb)
result[0] = (result[0] & ~ST3_TS) | (inp_cb() ? 0 : 8);
break;
default:
upd765_family_device::execute_command(cmd);
break;
main_phase = PHASE_CMD;
break;
case C_SENSE_DRIVE_STATUS:
upd765_family_device::execute_command(cmd);
if(inp_cb)
result[0] = (result[0] & ~ST3_TS) | (inp_cb() ? 0 : 8);
break;
default:
upd765_family_device::execute_command(cmd);
break;
}
}
@ -3469,7 +3470,7 @@ void hd63266f_device::motor_control(int fid, bool start_motor)
void hd63266f_device::index_callback(floppy_image_device *floppy, int state)
{
if(state)
if(state) {
for(floppy_info &fi : flopi) {
if(fi.dev != floppy)
continue;
@ -3477,7 +3478,7 @@ void hd63266f_device::index_callback(floppy_image_device *floppy, int state)
// update motor on/off counters and stop motor if necessary
motor_control(fi.id, false);
}
}
upd765_family_device::index_callback(floppy, state);
}

View File

@ -598,17 +598,19 @@ private:
class hd63266f_device : public upd765_family_device {
public:
hd63266f_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock);
hd63266f_device(const machine_config &mconfig, const char *tag, device_t* owner, uint32_t clock);
virtual void map(address_map& map) override;
virtual void map(address_map &map) override;
auto inp_rd_callback() { return inp_cb.bind(); } // this is really the ts signal
void rate_w(u8 state) { state ? set_rate(500000) : set_rate(250000); }
void abort_w(u8 data);
u8 extstat_r();
protected:
virtual void soft_reset() override;
virtual void device_start() override;
private:
virtual int check_command() override;
virtual void execute_command(int cmd) override;

View File

@ -8,7 +8,7 @@
*********************************************************************/
#include "formats/abc800_dsk.h"
#include "abc800_dsk.h"
abc800_format::abc800_format() : wd177x_format(formats)
{

View File

@ -8,9 +8,11 @@
*********************************************************************/
#include "formats/abc800i_dsk.h"
#include "abc800i_dsk.h"
#include "ioprocs.h"
abc800i_format::abc800i_format() : wd177x_format(formats)
{
}

View File

@ -2,15 +2,20 @@
// copyright-holders:Bartman/Abyss
#include "emu.h"
#include "cpu/z180/z180.h"
#include "imagedev/floppy.h"
#include "imagedev/floppy.h"
#include "machine/timer.h"
#include "machine/upd765.h"
#include "sound/beep.h"
#include "video/mc6845.h"
#include "debug/debugcpu.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"
#include "util/utf8.h"
// command line parameters:
@ -23,7 +28,7 @@ Brother LW-350
Hardware:
#4
#4
Hitachi HG62F33R63FH
US0021-A
CMOS Gate Array
@ -76,14 +81,13 @@ see https://github.com/BartmanAbyss/brother-hardware/tree/master/2G%20-%20Brothe
***************************************************************************/
#include "machine/upd765.h"
#include "imagedev/floppy.h"
namespace {
class lw350_state : public driver_device
{
public:
lw350_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
lw350_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
maincpu(*this, "maincpu"),
screen(*this, "screen"),
floppy(*this, "fdc:0"),
@ -94,13 +98,13 @@ public:
vram(*this, "vram")
{ }
void lw350(machine_config& config);
void lw350(machine_config &config) ATTR_COLD;
protected:
// driver_device overrides
void machine_start() override;
void machine_reset() override;
void video_start() override;
void machine_start() override ATTR_COLD;
void machine_reset() override ATTR_COLD;
void video_start() override ATTR_COLD;
private:
// devices
@ -144,7 +148,7 @@ private:
}
uint8_t io_b8_r() {
// keyboard matrix
if(io_b8 <= 8)
if(io_b8 <= 8)
return io_kbrow[io_b8]->read();
switch(io_b8) {
@ -185,7 +189,7 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(io_90_timer_callback);
TIMER_DEVICE_CALLBACK_MEMBER(int1_timer_callback);
void map_program(address_map& map) {
void map_program(address_map &map) ATTR_COLD {
map(0x00000, 0x01fff).rom();
map(0x02000, 0x05fff).ram();
map(0x06000, 0x3ffff).rom();
@ -197,7 +201,7 @@ private:
map(0x76000, 0x7ffff).ram();
}
void map_io(address_map& map) {
void map_io(address_map &map) ATTR_COLD {
map.global_mask(0xff);
map(0x00, 0x3f).noprw(); // Z180 internal registers
map(0x70, 0x70).w(FUNC(lw350_state::io_70_w));
@ -370,16 +374,16 @@ void lw350_state::machine_start()
// ROM patches
// force jump to self-test menu
// rom[0x280f2] = 0x20;
// rom[0x280f2+1] = 0x05;
// rom[0x280f2] = 0x20;
// rom[0x280f2+1] = 0x05;
// force jump to lcd-test menu
// rom[0x280f2] = 0x2c;
// rom[0x280f2+1] = 0x05;
// rom[0x280f2] = 0x2c;
// rom[0x280f2+1] = 0x05;
// force jump to self-print menu
// rom[0x280f2] = 0x32;
// rom[0x280f2 + 1] = 0x05;
// rom[0x280f2] = 0x32;
// rom[0x280f2 + 1] = 0x05;
// set initial mode
//rom[0x29a12] = 0x0a;
@ -421,12 +425,12 @@ static void lw350_floppies(device_slot_interface& device) {
device.option_add("35hd", FLOPPY_35_HD);
}
void lw350_state::lw350(machine_config& config) {
void lw350_state::lw350(machine_config &config) {
// basic machine hardware
HD64180RP(config, maincpu, 16'000'000 / 2);
maincpu->set_addrmap(AS_PROGRAM, &lw350_state::map_program);
maincpu->set_addrmap(AS_IO, &lw350_state::map_io);
maincpu->tend0_wr_callback().set([this](int state){ fdc->tc_w((fdc_drq && state) ? 1 : 0); });
maincpu->tend0_wr_callback().set([this] (int state) { fdc->tc_w((fdc_drq && state) ? 1 : 0); });
maincpu->rts0_wr_callback().set(fdc, FUNC(hd63266f_device::rate_w));
TIMER(config, "1khz").configure_periodic(FUNC(lw350_state::int1_timer_callback), attotime::from_hz(1000));
@ -439,10 +443,10 @@ void lw350_state::lw350(machine_config& config) {
screen->set_size(480, 128);
HD63266F(config, fdc, XTAL(16'000'000));
fdc->drq_wr_callback().set([this](int state){ fdc_drq = state; maincpu->set_input_line(Z180_INPUT_LINE_DREQ0, state); });
fdc->drq_wr_callback().set([this] (int state) { fdc_drq = state; maincpu->set_input_line(Z180_INPUT_LINE_DREQ0, state); });
fdc->set_ready_line_connected(false);
fdc->set_select_lines_connected(false);
fdc->inp_rd_callback().set([this](){ return floppy->get_device()->dskchg_r(); });
fdc->inp_rd_callback().set([this] () { return floppy->get_device()->dskchg_r(); });
FLOPPY_CONNECTOR(config, floppy, lw350_floppies, "35hd", floppy_image_device::default_pc_floppy_formats);
@ -559,8 +563,8 @@ constexpr int MDA_CLOCK = 16'257'000;
class lw450_state : public driver_device
{
public:
lw450_state(const machine_config& mconfig, device_type type, const char* tag)
: driver_device(mconfig, type, tag),
lw450_state(const machine_config &mconfig, device_type type, const char* tag) :
driver_device(mconfig, type, tag),
maincpu(*this, "maincpu"),
screen(*this, "screen"),
palette(*this, "palette"),
@ -574,13 +578,13 @@ public:
rombank(*this, "dictionary")
{ }
void lw450(machine_config& config);
void lw450(machine_config &config) ATTR_COLD;
protected:
// driver_device overrides
void machine_start() override;
void machine_reset() override;
void video_start() override;
void machine_start() override ATTR_COLD;
void machine_reset() override ATTR_COLD;
void video_start() override ATTR_COLD;
private:
// devices
@ -646,15 +650,15 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(int1_timer_callback);
void map_program(address_map& map);
void map_io(address_map& map);
void map_program(address_map& map) ATTR_COLD;
void map_io(address_map& map) ATTR_COLD;
};
void lw450_state::video_start()
{
}
void lw450_state::map_program(address_map& map)
void lw450_state::map_program(address_map &map)
{
map(0x00000, 0x01fff).rom();
map(0x02000, 0x05fff).ram();
@ -668,7 +672,7 @@ void lw450_state::map_program(address_map& map)
// font @ FC000-FD000 pitch 16
}
void lw450_state::map_io(address_map& map)
void lw450_state::map_io(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x3f).noprw(); // Z180 internal registers
@ -700,8 +704,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(lw450_state::int1_timer_callback)
maincpu->set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
}
WRITE_LINE_MEMBER(lw450_state::crtc_vsync)
{
WRITE_LINE_MEMBER(lw450_state::crtc_vsync)
{
if(state) {
framecnt++;
}
@ -732,14 +736,14 @@ MC6845_UPDATE_ROW(lw450_state::crtc_update_row)
// based on LW-450 CRT Test Menu
enum attrs {
underline = 0b00000001,
extended_charset = 0b00000100,
bold = 0b00001000,
reverse = 0b00010000,
underline = 0b00000001,
extended_charset = 0b00000100,
bold = 0b00001000,
reverse = 0b00010000,
blink = 0b10000000,
};
const rgb_t *palette = this->palette->palette()->entry_list_raw();
rgb_t const *const palette = this->palette->palette()->entry_list_raw();
uint32_t* p = &bitmap.pix(y);
uint16_t chr_base = ra;
@ -838,10 +842,10 @@ void lw450_state::machine_reset()
static const gfx_layout pc_16_charlayout {
8, 16, // 8 x 16 characters
256, // 256 characters
1, // 1 bits per pixel
1, // 1 bits per pixel
{ 0 }, // no bitplanes
{ 0, 1, 2, 3, 4, 5, 6, 7 }, // x offsets
{ 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, 8 * 8, 9 * 8, 10 * 8, 11 * 8, 12 * 8, 13 * 8, 14 * 8, 15 * 8 }, // y offsets
{ 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, 8 * 8, 9 * 8, 10 * 8, 11 * 8, 12 * 8, 13 * 8, 14 * 8, 15 * 8 }, // y offsets
16*8 // every char takes 2 x 8 bytes
};
@ -849,7 +853,7 @@ static GFXDECODE_START( gfx_lw450 )
GFXDECODE_RAM("vram", 0x4000, pc_16_charlayout, 0, 1)
GFXDECODE_END
void lw450_state::lw450(machine_config& config) {
void lw450_state::lw450(machine_config &config) {
// basic machine hardware
Z80180(config, maincpu, 12'000'000 / 2);
maincpu->set_addrmap(AS_PROGRAM, &lw450_state::map_program);
@ -894,7 +898,7 @@ void lw450_state::lw450(machine_config& config) {
ROM_START( lw350 )
ROM_REGION( 0x80000, "maincpu", 0 )
ROM_LOAD("uc6273-a-lwb6", 0x00000, 0x80000, CRC(5E85D1EC) SHA1(4ca68186fc70f30ccac95429604c88db4f0c34d2))
// ROM_LOAD("patched", 0x00000, 0x80000, CRC(5E85D1EC) SHA1(4ca68186fc70f30ccac95429604c88db4f0c34d2))
// ROM_LOAD("patched", 0x00000, 0x80000, CRC(5E85D1EC) SHA1(4ca68186fc70f30ccac95429604c88db4f0c34d2))
ROM_END
ROM_START( lw450 )
@ -904,6 +908,8 @@ ROM_START( lw450 )
ROM_LOAD("ua2849-a", 0x00000, 0x80000, CRC(FA8712EB) SHA1(2d3454138c79e75604b30229c05ed8fb8e7d15fe))
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1995, lw350, 0, 0, lw350, lw350, lw350_state, empty_init, "Brother", "Brother LW-350", MACHINE_NODEVICE_PRINTER )
COMP( 1992, lw450, 0, 0, lw450, lw350, lw450_state, empty_init, "Brother", "Brother LW-450", MACHINE_NODEVICE_PRINTER )
} // anonymous namespace
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1995, lw350, 0, 0, lw350, lw350, lw350_state, empty_init, "Brother", "LW-350", MACHINE_NODEVICE_PRINTER )
COMP( 1992, lw450, 0, 0, lw450, lw350, lw450_state, empty_init, "Brother", "LW-450", MACHINE_NODEVICE_PRINTER )

View File

@ -16,11 +16,11 @@
#include "emu.h"
#include "cpu/h8/h83003.h"
#include "imagedev/floppy.h"
#include "machine/at28c16.h"
#include "machine/nvram.h"
#include "machine/timer.h"
#include "machine/upd765.h"
#include "imagedev/floppy.h"
#include "screen.h"
#include "speaker.h"
@ -34,32 +34,35 @@ class lw700i_state : public driver_device
{
public:
lw700i_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_mainram(*this, "mainram"),
m_screen(*this, "screen"),
m_fdc(*this, "fdc"),
m_floppy(*this, "fdc:1"),
m_keyboard(*this, "X%u", 0)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_mainram(*this, "mainram")
, m_screen(*this, "screen")
, m_fdc(*this, "fdc")
, m_floppy(*this, "fdc:1")
, m_keyboard(*this, "X%u", 0)
{ }
void lw700i(machine_config &config);
void lw700i(machine_config &config) ATTR_COLD;
protected:
// driver_device implementation
virtual void machine_reset() override ATTR_COLD;
virtual void machine_start() override ATTR_COLD;
virtual void video_start() override ATTR_COLD;
private:
uint8_t p7_r();
uint8_t pb_r();
void pb_w(uint8_t data);
private:
virtual void machine_reset() override;
virtual void machine_start() override;
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void main_map(address_map &map);
void io_map(address_map &map);
TIMER_DEVICE_CALLBACK_MEMBER(vbl_interrupt);
void main_map(address_map &map) ATTR_COLD;
void io_map(address_map &map) ATTR_COLD;
// devices
required_device<h83003_device> m_maincpu;
required_shared_ptr<uint16_t> m_mainram;
@ -68,9 +71,6 @@ private:
required_device<floppy_connector> m_floppy;
required_ioport_array<9> m_keyboard;
// driver_device overrides
virtual void video_start() override;
uint8_t m_keyrow = 0;
};

View File

@ -122,7 +122,7 @@ void pv1000_sound_device::sound_stream_update(sound_stream &stream, std::vector<
{
auto &buffer = outputs[0];
//Each channel has a different volume via resistor mixing which correspond to -6dB, -3dB, 0dB drops
// Each channel has a different volume via resistor mixing which correspond to -6dB, -3dB, 0dB drops
static const int volumes[3] = {0x1000, 0x1800, 0x2000};
for (int index = 0; index < buffer.samples(); index++)

View File

@ -5,7 +5,7 @@
Heathkit H19
A smart terminal designed and manufactured by Heath Company. This
is identical to the Zenith Data Systems Z-19.
is identical to the Zenith Data Systems Z-19.
****************************************************************************/

View File

@ -6,7 +6,7 @@
The board used in the H19 smart terminal designed and manufactured
by Heath Company. (and the identical Z19 sold by Zenith Data Systems)
This board is also used the Heath's H89 / H88, and ZDS's Z-89 and Z-90.
This board is also used the Heath's H89 / H88, and ZDS's Z-89 and Z-90.
The keyboard consists of a 9x10 matrix connected to a MM5740AAC/N
mask-programmed keyboard controller. The output of this passes

View File

@ -45,7 +45,6 @@ protected:
required_device<cpu_device> m_maincpu;
private:
void key_click_w(uint8_t data);
void bell_w(uint8_t data);
uint8_t kbd_key_r();

View File

@ -28,15 +28,18 @@
***************************************************************************/
#include "emu.h"
#include "k053246_k053247_k055673.h"
#include "k054156_k054157_k056832.h"
#include "k055555.h"
#include "konami_helper.h"
#include "cpu/m68000/m68000.h"
#include "machine/gen_latch.h"
#include "machine/nvram.h"
#include "machine/timer.h"
#include "sound/ymz280b.h"
#include "k053246_k053247_k055673.h"
#include "k054156_k054157_k056832.h"
#include "k055555.h"
#include "konami_helper.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"

View File

@ -1770,14 +1770,14 @@ static INPUT_PORTS_START( namcos10 )
PORT_START("SYSTEM")
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
// TODO: 0x400 might be required for extension boards
PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "DIP SW:8" )
PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "DIP SW:7" )
PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "DIP SW:6" )
PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "DIP SW:5" )
PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "DIP SW:4" )
PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "DIP SW:3" )
PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "DIP SW:2" )
PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "DIP SW:1" )
PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" )
PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:7" )
PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:6" )
PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:5" )
PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:4" )
PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:3" )
PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:2" )
PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW1:1" )
PORT_START("IN1")
PORT_BIT( 0x0f110000, IP_ACTIVE_LOW, IPT_UNUSED )
@ -1838,7 +1838,7 @@ static INPUT_PORTS_START( gamshara )
// NOTE: this uses 7 bits, only the exact value of 0x6e gives World region, the rest give Japan
// currently we only allow for values 0x7f and 0x6e to be selected
// it is unknown if the later 'gamshara' set will work in the same way or default to English
PORT_DIPNAME( 0x7f, 0x7f, DEF_STR( Region ) )
PORT_DIPNAME( 0x7f, 0x7f, DEF_STR( Region ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4,3,2")
PORT_DIPSETTING(0x7f, DEF_STR( Japan ) ) // JPN
PORT_DIPSETTING(0x6e, DEF_STR( World ) ) // ETC
INPUT_PORTS_END
@ -1858,7 +1858,7 @@ static INPUT_PORTS_START( konotako )
PORT_BIT( 0x1fff4040, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) )
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING(0x00, "Export (Cristaltec license)")
PORT_DIPSETTING(0x01, DEF_STR( Japan ) )
INPUT_PORTS_END

View File

@ -777,5 +777,5 @@ ROM_END
} // anonymous namespace
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
COMP(1992?, luna88k2, 0, 0, luna88k2, luna88k, luna_88k_state, init, "Omron", "Luna 88K²", MACHINE_NOT_WORKING)
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
COMP(1992?, luna88k2, 0, 0, luna88k2, luna88k, luna_88k_state, init, "Omron", u8"Luna 88K²", MACHINE_NOT_WORKING)