mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
(mess) m24: split m24 and correct dips, boots but it needs custom keyboard emulation (nw)
This commit is contained in:
parent
79301a669f
commit
17495c607c
128
src/mess/drivers/m24.c
Normal file
128
src/mess/drivers/m24.c
Normal file
@ -0,0 +1,128 @@
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/i86/i86.h"
|
||||
#include "bus/isa/isa.h"
|
||||
#include "bus/isa/isa_cards.h"
|
||||
#include "machine/pckeybrd.h"
|
||||
#include "includes/genpc.h"
|
||||
|
||||
class m24_state : public driver_device
|
||||
{
|
||||
public:
|
||||
m24_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_mb(*this, "mb")
|
||||
{ }
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pc_noppi_mb_device> m_mb;
|
||||
|
||||
DECLARE_READ8_MEMBER(keyboard_r);
|
||||
DECLARE_WRITE8_MEMBER(keyboard_w);
|
||||
};
|
||||
|
||||
READ8_MEMBER(m24_state::keyboard_r)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(m24_state::keyboard_w)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( m24_map, AS_PROGRAM, 16, m24_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x00000, 0x9ffff) AM_RAMBANK("bank10")
|
||||
AM_RANGE(0xa0000, 0xeffff) AM_NOP
|
||||
AM_RANGE(0xf8000, 0xfffff) AM_ROM AM_REGION("maincpu", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(m24_io, AS_IO, 16, m24_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0060, 0x0065) AM_READWRITE8(keyboard_r, keyboard_w, 0xffff)
|
||||
AM_RANGE(0x0066, 0x0067) AM_READ_PORT("DSW0")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( m24 )
|
||||
PORT_START("DSW0")
|
||||
PORT_DIPNAME( 0x8f, 0x89, "RAM banks")
|
||||
PORT_DIPSETTING( 0x01, "128K" )
|
||||
PORT_DIPSETTING( 0x82, "256K" )
|
||||
PORT_DIPSETTING( 0x84, "512K - 256/256" )
|
||||
PORT_DIPSETTING( 0x08, "512K - 512/0" )
|
||||
PORT_DIPSETTING( 0x85, "640K - 256/384" )
|
||||
PORT_DIPSETTING( 0x8d, "640K - 128/512" )
|
||||
PORT_DIPSETTING( 0x89, "640K - 512/128" )
|
||||
PORT_DIPNAME( 0x10, 0x00, "8087 installed")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR(No) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR(Yes) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "Serial Port")
|
||||
PORT_DIPSETTING( 0x20, "Z8530 SCC")
|
||||
PORT_DIPSETTING( 0x00, "INS8250" )
|
||||
|
||||
//PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x0100, 0x0000, "FDD Type")
|
||||
PORT_DIPSETTING( 0x0000, "360K" )
|
||||
PORT_DIPSETTING( 0x0100, "720K" )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, "FDD spinup")
|
||||
PORT_DIPSETTING( 0x0000, "Slow" )
|
||||
PORT_DIPSETTING( 0x0200, "Fast" )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, "HDD ROM")
|
||||
PORT_DIPSETTING( 0x0000, "Internal" )
|
||||
PORT_DIPSETTING( 0x0400, "External" )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, "Scroll rate")
|
||||
PORT_DIPSETTING( 0x0800, "Slow" )
|
||||
PORT_DIPSETTING( 0x0000, "Fast")
|
||||
PORT_DIPNAME( 0x3000, 0x2000, "Graphics adapter")
|
||||
PORT_DIPSETTING( 0x0000, "EGA/VGA" )
|
||||
PORT_DIPSETTING( 0x1000, "Color 40x25" )
|
||||
PORT_DIPSETTING( 0x2000, "Color 80x25" )
|
||||
PORT_DIPSETTING( 0x3000, "Monochrome" )
|
||||
PORT_DIPNAME( 0xc000, 0x4000, "Number of floppy drives")
|
||||
PORT_DIPSETTING( 0x0000, "1" )
|
||||
PORT_DIPSETTING( 0x4000, "2" )
|
||||
PORT_DIPSETTING( 0x8000, "3" )
|
||||
PORT_DIPSETTING( 0xc000, "4" )
|
||||
|
||||
PORT_INCLUDE(pc_keyboard)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( olivetti, m24_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", I8086, XTAL_8MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(m24_map)
|
||||
MCFG_CPU_IO_MAP(m24_io)
|
||||
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
|
||||
|
||||
MCFG_PCNOPPI_MOTHERBOARD_ADD("mb", "maincpu")
|
||||
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, "cga", false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, "fdc_xt", false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "lpt", false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, "com", false)
|
||||
|
||||
/* keyboard */
|
||||
MCFG_PC_KEYB_ADD("pc_keyboard", DEVWRITELINE("mb:pic8259", pic8259_device, ir1_w))
|
||||
/* internal ram */
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
MCFG_RAM_DEFAULT_SIZE("640K")
|
||||
|
||||
/* software lists */
|
||||
MCFG_SOFTWARE_LIST_ADD("disk_list","ibm5150")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( m24 )
|
||||
ROM_REGION16_LE(0x8000,"maincpu", 0)
|
||||
ROMX_LOAD("olivetti_m24_version_1.43_high.bin",0x4001, 0x2000, CRC(04e697ba) SHA1(1066dcc849e6289b5ac6372c84a590e456d497a6), ROM_SKIP(1))
|
||||
ROMX_LOAD("olivetti_m24_version_1.43_low.bin", 0x4000, 0x2000, CRC(ff7e0f10) SHA1(13423011a9bae3f3193e8c199f98a496cab48c0f), ROM_SKIP(1))
|
||||
ROM_END
|
||||
|
||||
ROM_START( m240 )
|
||||
ROM_REGION16_LE(0x8000,"maincpu", 0)
|
||||
ROMX_LOAD("olivetti_m240_pch5_2.04_high.bin", 0x0001, 0x4000, CRC(ceb97b59) SHA1(84fabbeab355e0a4c9445910f2b7d1ec98886642), ROM_SKIP(1))
|
||||
ROMX_LOAD("olivetti_m240_pch6_2.04_low.bin", 0x0000, 0x4000, CRC(c463aa94) SHA1(a30c763c1ace9f3ff79e7136b252d624108a50ae), ROM_SKIP(1))
|
||||
ROM_END
|
||||
|
||||
COMP( 1983, m24, ibm5150, 0, olivetti, m24, driver_device, 0, "Olivetti", "M24", GAME_NOT_WORKING)
|
||||
COMP( 1987, m240, ibm5150, 0, olivetti, m24, driver_device, 0, "Olivetti", "M240", GAME_NOT_WORKING)
|
@ -266,28 +266,6 @@ static MACHINE_CONFIG_START( zenith, pc_state )
|
||||
MCFG_SOFTWARE_LIST_ADD("disk_list","ibm5150")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( olivetti, pc_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_PC(pc16, pc16, I8086, 8000000)
|
||||
|
||||
MCFG_IBM5160_MOTHERBOARD_ADD("mb", "maincpu")
|
||||
MCFG_DEVICE_INPUT_DEFAULTS(pccga)
|
||||
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, "cga", false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, "fdc_xt", false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "lpt", false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, "com", false)
|
||||
|
||||
/* keyboard */
|
||||
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83)
|
||||
/* internal ram */
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
MCFG_RAM_DEFAULT_SIZE("640K")
|
||||
|
||||
/* software lists */
|
||||
MCFG_SOFTWARE_LIST_ADD("disk_list","ibm5150")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( ibm5550, pc_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_PC(ibm5550, ibm5550, I8086, 8000000)
|
||||
@ -393,19 +371,6 @@ ROM_START( mc1702 )
|
||||
ROM_LOAD( "ba1m_(573rf5).rom", 0x0000, 0x0800, CRC(08d938e8) SHA1(957b6c691dbef75c1c735e8e4e81669d056971e4))
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( m24 )
|
||||
ROM_REGION16_LE(0x100000,"maincpu", 0)
|
||||
ROMX_LOAD("olivetti_m24_version_1.43_high.bin",0xfc001, 0x2000, CRC(04e697ba) SHA1(1066dcc849e6289b5ac6372c84a590e456d497a6), ROM_SKIP(1))
|
||||
ROMX_LOAD("olivetti_m24_version_1.43_low.bin", 0xfc000, 0x2000, CRC(ff7e0f10) SHA1(13423011a9bae3f3193e8c199f98a496cab48c0f), ROM_SKIP(1))
|
||||
ROM_END
|
||||
|
||||
ROM_START( m240 )
|
||||
ROM_REGION16_LE(0x100000,"maincpu", 0)
|
||||
ROMX_LOAD("olivetti_m240_pch5_2.04_high.bin", 0xf8001, 0x4000, CRC(ceb97b59) SHA1(84fabbeab355e0a4c9445910f2b7d1ec98886642), ROM_SKIP(1))
|
||||
ROMX_LOAD("olivetti_m240_pch6_2.04_low.bin", 0xf8000, 0x4000, CRC(c463aa94) SHA1(a30c763c1ace9f3ff79e7136b252d624108a50ae), ROM_SKIP(1))
|
||||
ROM_END
|
||||
|
||||
ROM_START( ibm5550 )
|
||||
ROM_REGION16_LE(0x100000,"maincpu", 0)
|
||||
ROM_LOAD( "ipl5550.rom", 0xfc000, 0x4000, CRC(40cf34c9) SHA1(d41f77fdfa787b0e97ed311e1c084b8699a5b197))
|
||||
@ -501,8 +466,6 @@ COMP( 1990, mc1702, ibm5150, 0, pccga, pccga, driver_device
|
||||
|
||||
COMP( 1987, zdsupers, ibm5150, 0, zenith, pccga, driver_device, 0, "Zenith Data Systems", "SuperSport", 0)
|
||||
|
||||
COMP( 1983, m24, ibm5150, 0, olivetti, pccga, driver_device, 0, "Olivetti", "M24", GAME_NOT_WORKING)
|
||||
COMP( 1987, m240, ibm5150, 0, olivetti, pccga, driver_device, 0, "Olivetti", "M240", GAME_NOT_WORKING)
|
||||
COMP( 198?, olivm15, ibm5150, 0, pccga, pccga, driver_device, 0, "Olivetti", "M15", GAME_NOT_WORKING | GAME_NO_SOUND) // is this a pc clone or not?
|
||||
|
||||
COMP( 1983, ibm5550, ibm5150, 0, ibm5550, pccga, driver_device, 0, "International Business Machines", "IBM 5550", GAME_NOT_WORKING)
|
||||
|
@ -1470,6 +1470,7 @@ $(MESSOBJ)/novag.a: \
|
||||
|
||||
$(MESSOBJ)/olivetti.a: \
|
||||
$(MESS_DRIVERS)/m20.o \
|
||||
$(MESS_DRIVERS)/m24.o \
|
||||
|
||||
$(MESSOBJ)/omnibyte.a: \
|
||||
$(MESS_DRIVERS)/msbc1.o \
|
||||
|
Loading…
Reference in New Issue
Block a user