From 82700b27c35126aa9113769df202dce7e9253974 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Thu, 12 May 2011 19:20:43 +0000 Subject: [PATCH] MSX says goodbye --- .gitattributes | 2 - src/mame/drivers/msx.c | 3937 ----------------------------------- src/mame/machine/msx_slot.c | 2516 ---------------------- src/mame/mame.mak | 2 - 4 files changed, 6457 deletions(-) delete mode 100644 src/mame/drivers/msx.c delete mode 100644 src/mame/machine/msx_slot.c diff --git a/.gitattributes b/.gitattributes index 5ee18c955ef..f89d8b72d6e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2330,7 +2330,6 @@ src/mame/drivers/mrgame.c svneol=native#text/plain src/mame/drivers/mrjong.c svneol=native#text/plain src/mame/drivers/ms32.c svneol=native#text/plain src/mame/drivers/msisaac.c svneol=native#text/plain -src/mame/drivers/msx.c svneol=native#text/plain src/mame/drivers/mugsmash.c svneol=native#text/plain src/mame/drivers/multfish.c svneol=native#text/plain src/mame/drivers/multigam.c svneol=native#text/plain @@ -3834,7 +3833,6 @@ src/mame/machine/mie.h svneol=native#text/plain src/mame/machine/model1.c svneol=native#text/plain src/mame/machine/model3.c svneol=native#text/plain src/mame/machine/msx.c svneol=native#text/plain -src/mame/machine/msx_slot.c svneol=native#text/plain src/mame/machine/mw8080bw.c svneol=native#text/plain src/mame/machine/n64.c svneol=native#text/plain src/mame/machine/namco06.c svneol=native#text/plain diff --git a/src/mame/drivers/msx.c b/src/mame/drivers/msx.c deleted file mode 100644 index 749357849ce..00000000000 --- a/src/mame/drivers/msx.c +++ /dev/null @@ -1,3937 +0,0 @@ -/* -** msx.c : driver for MSX -** -** Todo: -** - Add support for other MSX models (de,fr,jp,ru etc.) - -This following list is probably incomplete. Corrections are welcome. - -Al Alamiah AX-170 -Al Alamiah AX-350 -Al Alamiah AX-370 -Canon V-10 -Canon V-20 -Ciel Expert 3 IDE -Ciel Expert 3 Turbo -Daewoo CPC-300 -Daewoo CPC-400 -Daewoo CPC-400S -Daewoo DPC-100 -Daewoo DPC-180 -Daewoo DPC-200 -Goldstar FC-200 -Gradiente Expert 1.0 -Gradiente Expert 1.1 -Gradiente Expert 1.3 -Gradiente Expert 2.0 -Gradiente Expert DDPlus -Gradiente Expert Plus -JVC HC-7GB -Mitsubishi ML-F80 -Mitsubishi ML-FX1 -National CF-1200 -National CF-2000 -National CF-2700 -National CF-3000 -National CF-3300 -National FS-1300 -National FS-4000 -National FS-4500 -National FS-4600 -National FS-4700 -National FS-5000 -National FS-5500F1 -National FS-5500F2 -Panasonic FS-A1 -Panasonic FS-A1 MK2 -Panasonic FS-A1F -Panasonic FS-A1FM -Panasonic FS-A1FX -Panasonic FS-A1GT -Panasonic FS-A1ST -Panasonic FS-A1WSX -Panasonic FS-A1WX -Philips NMS-801 -Philips NMS-8220 -Philips NMS-8245 -Philips NMS-8245F -Philips NMS-8250 -Philips NMS-8255 -Philips NMS-8280 -Philips NMS-8280G -Philips VG-8000 -Philips VG-8010 -Philips VG-8010F -Philips VG-8020-00 -Philips VG-8020-20 -Philips VG-8020-40 -Philips VG-8230 -Philips VG-8235 -Philips VG-8235F -Philips VG-8240 -=============== - -PCB Layout missing - - -Pioneer PX-7 -============ - -|---------------------------------------| -| CN1 CN2 | -| | -| | -| IC33 |---------------------------------| -| CN3 | -| IC32 IC34 IC38 IC40 | -| IC20 | -| IC15 IC18 IC43 IC8 IC35 IC6 |----IC3---| | -| |----------| IC21 | -| IC16 IC19 |---IC13---| IC7 IC10 | -| |----------| IC36 IC29 --- | -| IC17 IC14 X2 | | | -| |--IC12---| |----IC1-----| IC37 |I| | -| IC28 IC11 |---------| |------------| X1 |C| | -| |2| | -| |----IC4----| |----IC5----| IC39 IC9 IC42 IC44 | | | -| |-----------| |-----------| --- | -| | -| IC45 IC31 IC30 IC41 | -| | -| CN4 CN5 CN6 CN7 CN8 | -|-------------------------------------------------------------------------| - -Notes: - X1 - 3.579MHz - X2 - 500kHz - IC1 - Sharp LH0080A Z80A-CPU-D - IC2 - TMS91289NL - IC3 - MB111S112 Z10 (500kHz) - IC4 - M5L8255AP-5 - IC5 - YM2149F - IC6,IC7,IC8,IC10,IC45 - SN74LS367AN - IC9 - SN74LS245N - IC11,IC34 - SN74LS139N - IC12 - YM2301-23908 / 53 18 85 A (might indicate a version) - IC13 - Pioneer PD5031 2364-213 514100 (M5L2764-213) - IC14,IC17,IC30,IC31 - SN74LS157N - IC15-IC19 - MB81416-12 - IC20,IC21 - TMS4416-I5NL - IC28 - SN74LS153N - IC29 - SN74LS02N - IC32 - SN74LS374N - IC33 - M5218P - IC35 - SN74LS74AN - IC36 - SN74LS30N - IC37-IC39 - SN74LS04N - IC40,IC41 - SN74LS05N - IC42 - SN74LS08N - IC43,IC44 - SN74LS32N - CN1 - Printer - CN2 - Cassette recorder - CN3 - Expansion slot - CN4 - Keyboard - CN5 - Keyboard - CN6 - Controller #1 - CN7 - Controller #2 - CN8 - Expansion slot - - -Sanyo MPC-100 -Sanyo PHC-28S -Sanyo Wavy PHC-23 -Sanyo Wavy PHC-35J -Sanyo Wavy PHC70FD1 -Sanyo Wavy PHC70FD2 -Sharp Epcom HotBit 1.1 -Sharp Epcom HotBit 1.2 -Sharp Epcom HotBit 1.3b -Sharp Epcom HotBit 1.3p -Sharp Epcom HotBit 2.0 -Sony HB-10P -Sony HB-201 -Sony HB-201P -Sony HB-501P -Sony HB-55D -Sony HB-55P -Sony HB-75D -Sony HB-75P -Sony HB-F1 -Sony HB-F1II -Sony HB-F1XD -Sony HB-F1XD MK2 -Sony HB-F1XDJ -Sony HB-F1XV -Sony HB-F5 -Sony HB-F500 -Sony HB-F500P -Sony HB-F700D -Sony HB-F700F -Sony HB-F700P -Sony HB-F700S -Sony HB-F900 -Sony HB-F9P -Sony HB-F9S -Sony HB-G900AP -Sony HB-G900P -Sony HB-T7 -Spectravideo SVI-728 -Spectravideo SVI-738 -Talent DPC-200 -Talent DPC-200A -Talent TPC-310 -============== - -PCB Layouts missing - - -Toshiba HX-10 -============= - -Code on PCB: MSX TUK - |---------------------------|-------------------|-------------| - | CN1 CN2 CN3 CN4 CN5 | - | |---------------------------| | - | |---------------------------| | - | CN6 | - | IC40 | - | CN7 | - | IC38 IC32 IC33 IC37 | - | | - | Q2 IC31 IC34 IC35 | - | Q1 CN8 | - | IC39 | - | |--IC15------| |--IC2----| |----IC1-----| | - | |------------| |---------| |------------| | - | IC30 | - | IC3 IC4 CN9 | - | |-----IC15-------| | - | IC17 IC18 IC7 IC8 |----------------| | - | IC27 | - | IC19 IC20 IC9 IC10 |----IC25------| | -|----| | |--------------| IC26 | -| Q | | IC21 IC22 IC11 IC12 | -| | | | -| S | | IC23 IC24 IC13 IC14 IC29 IC28 | -| L | | | -| | | CN11 CN10 | -|----| |-------------------------------------------------------------| - -Notes: - Mainboard components: - IC1 - Sharp LH0080A Z80A-CPU-D - IC2 - MB83256 - IC3,IC4,IC27,IC28 - Texas Instruments SN74LS157N - IC7-IC14 - HM4864AP - IC15 - Toshiba TCX-1007 (64pin custom chip) - IC16 - 40pin chip covered with some kind of heatsink(?), probably TMS9929A - IC17-IC24 - 4116-3 - IC25 - AY-3-8910A - IC26 - SN74LS09N - IC29 - HD74LS145P - IC30-IC34 - M74LS367AP - IC35 - MB74LS74A - IC37 - HD74LS373P - IC38 - Toshiba TC74HCU04P - IC39 - HD74LS08P - IC40 - TA75559P - Q1 - 10687.5 - Q2 - 3579545 - CN1 - Cassette connecter - CN2 - RF connector - CN3 - Audio connector - CN4 - Video connector - CN5 - Expansion connector - CN6 - Cartridge connector - CN7 - Printer connector - CN8 - Joystick 2 connector - CN9 - Joystick 1 connector - CN10 - Keyboard connector 1 - CN11 - Keyboard connector 2 - - Extra pcb (video related?) components:: - Q - 4.433619 - S - 74LS04 - L - LVA510 - - -Toshiba HX-10S -Toshiba HX-20 -Toshiba HX-23 -Toshiba HX-23F -Yamaha CX5M -Yamaha CX5M-128 -Yamaha CX7M -Yamaha CX7M-128 -Yamaha YIS-303 -Yamaha YIS-503 -Yamaha YIS-503M -Yamaha YIS-503 -Yashica YC-64 -============= - -PCB Layouts missing - - -*/ - -#include "emu.h" -#include "cpu/z80/z80.h" -#include "deprecat.h" -#include "machine/i8255.h" -#include "machine/rp5c01.h" -#include "machine/wd17xx.h" -#include "video/tms9928a.h" -#include "video/v9938.h" -#include "machine/ctronics.h" -#include "includes/msx_slot.h" -#include "includes/msx.h" -#include "imagedev/flopdrv.h" -#include "imagedev/cartslot.h" -#include "imagedev/cassette.h" -#include "formats/fmsx_cas.h" -#include "formats/msx_dsk.h" -#include "sound/ay8910.h" -#include "sound/dac.h" -#include "sound/wave.h" -#include "sound/k051649.h" -#include "sound/2413intf.h" - -static ADDRESS_MAP_START (msx_memory_map, AS_PROGRAM, 8) - AM_RANGE( 0x0000, 0x1fff) AM_READ_BANK("bank1") AM_WRITE( msx_page0_w ) - AM_RANGE( 0x2000, 0x3fff) AM_READ_BANK("bank2") AM_WRITE( msx_page0_1_w ) - AM_RANGE( 0x4000, 0x5fff) AM_READ_BANK("bank3") AM_WRITE( msx_page1_w ) - AM_RANGE( 0x6000, 0x7ff7) AM_READ_BANK("bank4") AM_WRITE( msx_page1_1_w ) - AM_RANGE( 0x7ff8, 0x7fff) AM_READ_BANK("bank5") AM_WRITE( msx_page1_2_w ) - AM_RANGE( 0x8000, 0x97ff) AM_READ_BANK("bank6") AM_WRITE( msx_page2_w ) - AM_RANGE( 0x9800, 0x9fff) AM_READ_BANK("bank7") AM_WRITE(msx_page2_1_w ) - AM_RANGE( 0xa000, 0xb7ff) AM_READ_BANK("bank8") AM_WRITE( msx_page2_2_w ) - AM_RANGE( 0xb800, 0xbfff) AM_READ_BANK("bank9") AM_WRITE( msx_page2_3_w ) - AM_RANGE( 0xc000, 0xdfff) AM_READ_BANK("bank10") AM_WRITE( msx_page3_w ) - AM_RANGE( 0xe000, 0xfffe) AM_READ_BANK("bank11") AM_WRITE( msx_page3_1_w ) - AM_RANGE( 0xffff, 0xffff) AM_READWRITE( msx_sec_slot_r, msx_sec_slot_w ) -ADDRESS_MAP_END - - -static WRITE8_DEVICE_HANDLER( msx_ay8910_w ) -{ - if ( offset & 1 ) - ay8910_data_w( device, offset, data ); - else - ay8910_address_w( device, offset, data ); -} - - -static ADDRESS_MAP_START (msx_io_map, AS_IO, 8) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE( 0x77, 0x77) AM_WRITE( msx_90in1_w ) - AM_RANGE( 0x7c, 0x7d) AM_WRITE( msx_fmpac_w ) - AM_RANGE( 0x90, 0x90) AM_DEVREADWRITE("centronics", msx_printer_status_r, msx_printer_strobe_w) - AM_RANGE( 0x91, 0x91) AM_DEVWRITE("centronics", msx_printer_data_w) - AM_RANGE( 0xa0, 0xa7) AM_DEVREADWRITE("ay8910", ay8910_r, msx_ay8910_w ) - AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE_MODERN("ppi8255", i8255_device, read, write) - AM_RANGE( 0x98, 0x98) AM_READWRITE( TMS9928A_vram_r, TMS9928A_vram_w ) - AM_RANGE( 0x99, 0x99) AM_READWRITE( TMS9928A_register_r, TMS9928A_register_w ) - AM_RANGE( 0xd8, 0xd9) AM_READWRITE( msx_kanji_r, msx_kanji_w ) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START (msx2_io_map, AS_IO, 8) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE( 0x77, 0x77) AM_WRITE( msx_90in1_w ) - AM_RANGE( 0x7c, 0x7d) AM_WRITE( msx_fmpac_w ) - AM_RANGE( 0x90, 0x90) AM_DEVREADWRITE("centronics", msx_printer_status_r, msx_printer_strobe_w) - AM_RANGE( 0x91, 0x91) AM_DEVWRITE("centronics", msx_printer_data_w) - AM_RANGE( 0xa0, 0xa7) AM_DEVREADWRITE("ay8910", ay8910_r, msx_ay8910_w ) - AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE_MODERN("ppi8255", i8255_device, read, write) - AM_RANGE( 0x98, 0x98) AM_READWRITE( v9938_0_vram_r, v9938_0_vram_w ) - AM_RANGE( 0x99, 0x99) AM_READWRITE( v9938_0_status_r, v9938_0_command_w ) - AM_RANGE( 0x9a, 0x9a) AM_WRITE( v9938_0_palette_w ) - AM_RANGE( 0x9b, 0x9b) AM_WRITE( v9938_0_register_w ) - AM_RANGE( 0xb4, 0xb4) AM_WRITE( msx_rtc_latch_w ) - AM_RANGE( 0xb5, 0xb5) AM_READWRITE( msx_rtc_reg_r, msx_rtc_reg_w ) - AM_RANGE( 0xd8, 0xd9) AM_READWRITE( msx_kanji_r, msx_kanji_w ) - AM_RANGE( 0xfc, 0xff) AM_READWRITE( msx_ram_mapper_r, msx_ram_mapper_w ) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( msx_dips ) - PORT_START("JOY0") - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON1) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_BUTTON2) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x80, 0, "Game port 1") - PORT_DIPSETTING( 0x00, DEF_STR( Joystick )) - PORT_DIPSETTING( 0x80, "Mouse") - - PORT_START("JOY1") - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x80, 0, "Game port 2") - PORT_DIPSETTING( 0x00, DEF_STR( Joystick )) - PORT_DIPSETTING( 0x80, "Mouse") - - PORT_START("DSW") - PORT_DIPNAME( 0x40, 0, "Swap game port 1 and 2") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0, "SIMPL") - PORT_DIPSETTING( 0x00, DEF_STR ( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR ( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Enforce 4/8 sprites/line") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x03, 0, "Render resolution") - PORT_DIPSETTING( 0, DEF_STR( High )) - PORT_DIPSETTING( 1, DEF_STR( Low )) - PORT_DIPSETTING( 2, "Auto" ) - - PORT_START("MOUSE0") - PORT_BIT( 0xff00, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) - PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) - - PORT_START("MOUSE1") - PORT_BIT( 0xff00, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(2) - PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(2) -INPUT_PORTS_END - - -/* 2008-05 FP: About keyboards - -Even if some later Philips (and maybe others) models started to use a layout similar to current -PC keyboards, common MSX keyboards have a couple of keys which do not fit usual mapping -- the key in the 1st row before 'Backspace', 3rd key from '0', here re-mapped to KEYCODE_BACKSLASH2 -- the last key in the 4th row, 4th key from 'M' (not counting Shift), here re-mapped to KEYCODE_TILDE - -These keys corresponds to the following symbols - - input_port | msx | msxuk | msxjp | msxkr |hotbit |expert | - ------------------------------------------------------------- - BACKSLASH2 | \ | | \ | | ? | | won | | \ ^ | { } | - ------------------------------------------------------------- - TILDE | DK* | DK* | _ | _ | < > | / ? | - -* DK = "Dead Key" -Notice that 'expert' input_ports covers both versions 1.0 and 1.1. -msx2 input_ports have the same symbols as their msx counterparts. - -TO DO: -- check Expert 1.0 layout with the real thing -- check Korean layout -- fix natural support in systems using msx inputs but with different mapping -(these systems could have different uses for keys mapped at the following -locations: COLON, QUOTE, BACKSLASH, OPENBRACE, CLOSEBRACE, BACKSLASH2, TILDE. -The corresponding symbols would not work properly in -natural mode). - -Additional note about natural keyboard support: currently, -- "Keypad ," is not mapped -- "Graph" is mapped to 'F6' (this key could be labeled "L Graph") -- "Code" is mapped to 'F7' (this key could be labeled "R Graph", "Kana" or "Hangul") -- "Stop" is mapped to 'F8' -- "Select" is mapped to 'F9' -*/ - -#define KEYB_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - -#define KEYB_EXPERT11_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - -#define KEYB_HOTBIT_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('"') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - -#define KEYB_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('|') \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') - -#define KEYB_HOTBIT_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('^') \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('\'') PORT_CHAR('`') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('"') PORT_CHAR('`') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR('\xC7') PORT_CHAR('\xE7') - -#define KEYB_EXPERT11_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('\'') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('{') PORT_CHAR('}') \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('\'') PORT_CHAR('`') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR(']') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('~') PORT_CHAR('^') - -#define KEYB_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('`') PORT_CHAR('~') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dead Key") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - -#define KEYB_HOTBIT_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('~') PORT_CHAR('^') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('[') PORT_CHAR(']') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('<') PORT_CHAR('>') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - -#define KEYB_EXPERT10_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\xC7') PORT_CHAR('\xE7') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dead Key") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - -#define KEYB_EXPERT11_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('*') PORT_CHAR('@') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR('\xC7') PORT_CHAR('\xE7') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('/') PORT_CHAR('?') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR(';') PORT_CHAR(':') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - -#define KEYB_ROW3 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - -#define KEYB_ROW4 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - -#define KEYB_ROW5 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - -#define KEYB_ROW6 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F6)) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CODE") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(F7)) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1 F6") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2 F7") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3 F8") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - -#define KEYB_EXPERT11_ROW6 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CONTROL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L GRA") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F6)) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R GRA") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(F7)) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1 F6") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2 F7") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3 F8") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - -#define KEYB_ROW7 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4 F9") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5 F10") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(F8)) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SELECT") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(F9)) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - -#define KEYB_ROW8 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))\ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - -#define KEYB_ROW9 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) - -#define KEYB_ROW10 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad ,") PORT_CODE(KEYCODE_ENTER_PAD) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) - -static INPUT_PORTS_START( msx ) - PORT_START("KEY0") - KEYB_ROW0 - KEYB_ROW1 - - PORT_START("KEY1") - KEYB_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - KEYB_ROW6 - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -#ifdef UNREFERENCED_CODE -static INPUT_PORTS_START( msxuk ) - PORT_START("KEY0") - KEYB_ROW0 - KEYB_ROW1 - - PORT_START("KEY1") - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"') - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\xA3') PORT_CHAR('~') - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dead Key") PORT_CODE(KEYCODE_TILDE) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - KEYB_ROW6 - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END -#endif - -#define KEYB_JAP_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - -#define KEYB_JAP_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\xA5') PORT_CHAR('|')\ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('`') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR('{') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - -#define KEYB_KOR_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x82\xA9 |") PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR(0xffe6) PORT_CHAR('|') \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('`') \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR('{') \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - -#define KEYB_JAP_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(']') PORT_CHAR('}') \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("_") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_') \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - -static INPUT_PORTS_START( msxjp ) - PORT_START("KEY0") - KEYB_JAP_ROW0 - KEYB_JAP_ROW1 - - PORT_START("KEY1") - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KANA") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(F7)) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1 F6") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2 F7") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3 F8") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static INPUT_PORTS_START( msxkr ) - PORT_START("KEY0") - KEYB_JAP_ROW0 - KEYB_KOR_ROW1 - - PORT_START("KEY1") - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Hangul") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(F7)) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1 F6") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2 F7") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3 F8") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static INPUT_PORTS_START( hotbit ) - PORT_START("KEY0") - KEYB_HOTBIT_ROW0 - KEYB_HOTBIT_ROW1 - - PORT_START("KEY1") - KEYB_HOTBIT_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - KEYB_ROW6 - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -/* 2008-05 FP: I guess these belong to the keypad */ -#define KEYB_EXPERT11_ROW9 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) \ - PORT_BIT (0xf000, IP_ACTIVE_LOW, IPT_UNUSED) \ - -static INPUT_PORTS_START( expert11 ) - PORT_START("KEY0") - KEYB_EXPERT11_ROW0 - KEYB_EXPERT11_ROW1 - - PORT_START("KEY1") - KEYB_EXPERT11_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - KEYB_EXPERT11_ROW6 - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - KEYB_EXPERT11_ROW9 - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static INPUT_PORTS_START( expert10 ) - PORT_START("KEY0") - KEYB_ROW0 - KEYB_ROW1 - - PORT_START("KEY1") - KEYB_EXPERT10_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - KEYB_EXPERT11_ROW6 - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - KEYB_EXPERT11_ROW9 - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static INPUT_PORTS_START( msx2 ) - PORT_START("KEY0") - KEYB_ROW0 - KEYB_ROW1 - - PORT_START("KEY1") - KEYB_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - KEYB_ROW6 - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - KEYB_ROW9 - - PORT_START("KEY5") - KEYB_ROW10 - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static INPUT_PORTS_START( msx2jp ) - PORT_START("KEY0") - KEYB_JAP_ROW0 - KEYB_JAP_ROW1 - - PORT_START("KEY1") - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KANA") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(F7)) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1 F6") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2 F7") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3 F8") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - KEYB_ROW9 - - PORT_START("KEY5") - KEYB_ROW10 - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static INPUT_PORTS_START( msx2kr ) - PORT_START("KEY0") - KEYB_JAP_ROW0 - KEYB_KOR_ROW1 - - PORT_START("KEY1") - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START("KEY2") - KEYB_ROW4 - KEYB_ROW5 - - PORT_START("KEY3") - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Hangul") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(F7)) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1 F6") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2 F7") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3 F8") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - KEYB_ROW7 - - PORT_START("KEY4") - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START("KEY5") - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -static const ay8910_interface msx_ay8910_interface = -{ - AY8910_LEGACY_OUTPUT, - AY8910_DEFAULT_LOADS, - DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, msx_psg_port_a_r), - DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, msx_psg_port_b_r), - DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, msx_psg_port_a_w), - DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, msx_psg_port_b_w) -}; - -static VIDEO_START( msx2 ) -{ - VIDEO_START_CALL(generic_bitmapped); - v9938_init(machine, 0, *machine.primary_screen, machine.generic.tmpbitmap, MODEL_V9938, 0x20000, msx_vdp_interrupt); -} - -#define MSX_XBORDER_PIXELS 15 -#define MSX_YBORDER_PIXELS 27 -#define MSX_TOTAL_XRES_PIXELS 256 + (MSX_XBORDER_PIXELS * 2) -#define MSX_TOTAL_YRES_PIXELS 192 + (MSX_YBORDER_PIXELS * 2) -#define MSX_VISIBLE_XBORDER_PIXELS 8 -#define MSX_VISIBLE_YBORDER_PIXELS 24 - -static const cassette_config msx_cassette_config = -{ - fmsx_cassette_formats, - NULL, - (cassette_state)(CASSETTE_PLAY), - NULL -}; - -static const floppy_config msx_floppy_config = -{ - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - FLOPPY_STANDARD_5_25_DSHD, - FLOPPY_OPTIONS_NAME(msx), - NULL -}; - -static MACHINE_CONFIG_FRAGMENT( msx_cartslot ) - MCFG_CARTSLOT_ADD("cart1") - MCFG_CARTSLOT_EXTENSION_LIST("mx1,rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_LOAD(msx_cart) - MCFG_CARTSLOT_UNLOAD(msx_cart) - - MCFG_CARTSLOT_ADD("cart2") - MCFG_CARTSLOT_EXTENSION_LIST("mx1,rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_LOAD(msx_cart) - MCFG_CARTSLOT_UNLOAD(msx_cart) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( msx, msx_state ) - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", Z80, 3579545) /* 3.579545 MHz */ - MCFG_CPU_PROGRAM_MAP(msx_memory_map) - MCFG_CPU_IO_MAP(msx_io_map) - MCFG_CPU_VBLANK_INT("screen", msx_interrupt) - MCFG_QUANTUM_TIME(attotime::from_hz(60)) - - MCFG_MACHINE_START( msx ) - MCFG_MACHINE_RESET( msx ) - - MCFG_I8255_ADD( "ppi8255", msx_ppi8255_interface ) - - /* video hardware */ - MCFG_FRAGMENT_ADD(tms9928a) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(MSX_TOTAL_XRES_PIXELS, MSX_TOTAL_YRES_PIXELS) - MCFG_SCREEN_VISIBLE_AREA(MSX_XBORDER_PIXELS - MSX_VISIBLE_XBORDER_PIXELS, MSX_TOTAL_XRES_PIXELS - MSX_XBORDER_PIXELS + MSX_VISIBLE_XBORDER_PIXELS - 1, MSX_YBORDER_PIXELS - MSX_VISIBLE_YBORDER_PIXELS, MSX_TOTAL_YRES_PIXELS - MSX_YBORDER_PIXELS + MSX_VISIBLE_YBORDER_PIXELS - 1) - - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_SOUND_WAVE_ADD("wave", "cassette") - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_SOUND_ADD("ay8910", AY8910, 1789773) - MCFG_SOUND_CONFIG(msx_ay8910_interface) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_SOUND_ADD("k051649", K051649, 1789773) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_SOUND_ADD("ym2413", YM2413, 3579545) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - /* printer */ - MCFG_CENTRONICS_ADD("centronics", standard_centronics) - - MCFG_CASSETTE_ADD( "cassette", msx_cassette_config ) - - MCFG_WD179X_ADD("wd179x", msx_wd17xx_interface ) - - MCFG_FLOPPY_2_DRIVES_ADD(msx_floppy_config) - - MCFG_FRAGMENT_ADD(msx_cartslot) -MACHINE_CONFIG_END - - -static MACHINE_CONFIG_DERIVED( msx_pal, msx ) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(50) -MACHINE_CONFIG_END - -#define MSX2_XBORDER_PIXELS 16 -#define MSX2_YBORDER_PIXELS 28 -#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2) -#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2) -#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2 -#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2 - -static RP5C01_INTERFACE( rtc_intf ) -{ - DEVCB_NULL -}; - -static MACHINE_CONFIG_START( msx2, msx_state ) - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", Z80, 3579545) /* 3.579545 MHz */ - MCFG_CPU_PROGRAM_MAP(msx_memory_map) - MCFG_CPU_IO_MAP(msx2_io_map) - MCFG_CPU_VBLANK_INT_HACK(msx2_interrupt, 262) - MCFG_QUANTUM_TIME(attotime::from_hz(60)) - - MCFG_MACHINE_START( msx2 ) - MCFG_MACHINE_RESET( msx2 ) - - MCFG_I8255_ADD( "ppi8255", msx_ppi8255_interface ) - - /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS) - MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1) - MCFG_SCREEN_UPDATE(generic_bitmapped) - - MCFG_PALETTE_LENGTH(512) - MCFG_PALETTE_INIT(v9938) - - MCFG_VIDEO_START(msx2) - - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_SOUND_WAVE_ADD("wave", "cassette") - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_SOUND_ADD("ay8910", AY8910, 1789773) - MCFG_SOUND_CONFIG(msx_ay8910_interface) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_SOUND_ADD("k051649", K051649, 1789773) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_SOUND_ADD("ym2413", YM2413, 3579545) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - /* printer */ - MCFG_CENTRONICS_ADD("centronics", standard_centronics) - - /* cassette */ - MCFG_CASSETTE_ADD( "cassette", msx_cassette_config ) - - /* real time clock */ - MCFG_RP5C01_ADD("rtc", XTAL_32_768kHz, rtc_intf) - - MCFG_WD179X_ADD("wd179x", msx_wd17xx_interface ) - - MCFG_FLOPPY_2_DRIVES_ADD(msx_floppy_config) - - MCFG_FRAGMENT_ADD(msx_cartslot) -MACHINE_CONFIG_END - - -static MACHINE_CONFIG_DERIVED( msx2_pal, msx2 ) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(50) -MACHINE_CONFIG_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/******************************** MSX 1 **********************************/ - -/* MSX */ - -ROM_START (msx) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("msx.rom", 0x0000, 0x8000, CRC(8205795e) SHA1(829c00c3114f25b3dae5157c0a238b52a3ac37db)) -ROM_END - -MSX_LAYOUT_INIT (msx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Al Alamiah AX-170 */ - -ROM_START (ax170) - ROM_REGION (0x10000, "maincpu", 0) - ROM_LOAD ("ax170bios.rom", 0x0000, 0x8000, CRC(bd95c436) SHA1(5e094fca95ab8e91873ee372a3f1239b9a48a48d)) - ROM_LOAD ("ax170arab.rom", 0x8000, 0x8000, CRC(339cd1aa) SHA1(0287b2ec897b9196788cd9f10c99e1487d7adbbb)) -ROM_END - -MSX_LAYOUT_INIT (ax170) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 1, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Canon V-10 */ - -ROM_START (canonv10) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("v10bios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) -ROM_END - -MSX_LAYOUT_INIT (canonv10) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Canon V-20 */ -ROM_START (canonv20) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("v20bios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) -ROM_END - -MSX_LAYOUT_INIT (canonv20) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Daewoo DPC-100 */ - -ROM_START (dpc100) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("100bios.rom", 0x0000, 0x8000, CRC(3ab0cd3b) SHA1(171b587bd5a947a13f3114120b6e7baca3b57d78)) - ROM_LOAD ("100han.rom", 0x8000, 0x4000, CRC(97478efb) SHA1(4421fa2504cbce18f7c84b5ea97f04e017007f07)) -ROM_END - -MSX_LAYOUT_INIT (dpc100) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Daewoo DPC-180 */ - -ROM_START (dpc180) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("180bios.rom", 0x0000, 0x8000, CRC(3ab0cd3b) SHA1(171b587bd5a947a13f3114120b6e7baca3b57d78)) - ROM_LOAD ("180han.rom", 0x8000, 0x4000, CRC(97478efb) SHA1(4421fa2504cbce18f7c84b5ea97f04e017007f07)) -ROM_END - -MSX_LAYOUT_INIT (dpc180) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Daewoo DPC-200 */ - -ROM_START (dpc200) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("200bios.rom", 0x0000, 0x8000, CRC(3ab0cd3b) SHA1(171b587bd5a947a13f3114120b6e7baca3b57d78)) - ROM_LOAD ("200han.rom", 0x8000, 0x4000, CRC(97478efb) SHA1(4421fa2504cbce18f7c84b5ea97f04e017007f07)) -ROM_END - -MSX_LAYOUT_INIT (dpc200) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Goldstar FC-200 */ - -ROM_START (gsfc200) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("fc200bios.rom.u5a", 0x0000, 0x4000, CRC(61f473fb) SHA1(c425750bbb2ae1d278216b45029d303e37d8df2f)) - ROM_LOAD ("fc200bios.rom.u5b", 0x4000, 0x4000, CRC(1a99b1a1) SHA1(e18f72271b64693a2a2bc226e1b9ebd0448e07c0)) -ROM_END - -MSX_LAYOUT_INIT (gsfc200) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Gradiente Expert 1.0 */ - -ROM_START (expert10) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("expbios.rom", 0x0000, 0x8000, CRC(07610d77) SHA1(ef3e010eb57e4476700a3bbff9d2119ab3acdf62)) -ROM_END - -MSX_LAYOUT_INIT (expert10) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Gradiente Expert 1.1 */ -ROM_START (expert11) - ROM_REGION (0xc000, "maincpu",0) - ROM_LOAD ("expbios11.rom", 0x0000, 0x8000, CRC(efb4b972) SHA1(d6720845928ee848cfa88a86accb067397685f02)) -ROM_END - -MSX_LAYOUT_INIT (expert11) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Gradiente Expert 1.3 */ -ROM_START (expert13) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("expbios13.rom", 0x0000, 0x8000, CRC(5638bc38) SHA1(605f5af3f358c6811f54e0173bad908614a198c0)) -ROM_END - -MSX_LAYOUT_INIT (expert13) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Gradiente Expert DDPlus */ -ROM_START (expertdp) - ROM_REGION (0xc000, "maincpu",0) - ROM_LOAD ("eddpbios.rom", 0x0000, 0x8000, CRC(efb4b972) SHA1(d6720845928ee848cfa88a86accb067397685f02)) - ROM_LOAD ("eddpdisk.rom", 0x8000, 0x4000, CRC(549f1d90) SHA1(f1525de4e0b60a6687156c2a96f8a8b2044b6c56)) -ROM_END - -MSX_LAYOUT_INIT (expertdp) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0x8000) -MSX_LAYOUT_END - -/* MSX - Gradiente Expert Plus */ - -ROM_START (expertpl) - ROM_REGION (0xc000, "maincpu",0) - ROM_LOAD ("exppbios.rom", 0x0000, 0x8000, CRC(efb4b972) SHA1(d6720845928ee848cfa88a86accb067397685f02)) - ROM_LOAD ("exppdemo.rom", 0x8000, 0x4000, CRC(a9bbef64) SHA1(d4cea8c815f3eeabe0c6a1c845f902ec4318bf6b)) -ROM_END - -MSX_LAYOUT_INIT (expertpl) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 2, 1, ROM, 0x4000, 0x8000) -MSX_LAYOUT_END - -/* MSX - JVC HC-7GB */ - -ROM_START (jvchc7gb) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("hc7gbbios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) -ROM_END - -MSX_LAYOUT_INIT (jvchc7gb) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Mitsubishi ML-F80 */ - -ROM_START (mlf80) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("mlf80bios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) -ROM_END - -MSX_LAYOUT_INIT (mlf80) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Mitsubishi ML-FX1 */ - -ROM_START (mlfx1) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("mlfx1bios.rom", 0x0000, 0x8000, CRC(62867dce) SHA1(0cbe0df4af45e8f531e9c761403ac9e71808f20c)) -ROM_END - -MSX_LAYOUT_INIT (mlfx1) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - National CF-1200 */ - -ROM_START (cf1200) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("1200bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (cf1200) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - National CF-2000 */ - -ROM_START (cf2000) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("2000bios.rom", 0x0000, 0x8000, CRC(ee229390) SHA1(302afb5d8be26c758309ca3df611ae69cced2821)) -ROM_END - -MSX_LAYOUT_INIT (cf2000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - National CF-2700 */ -ROM_START (cf2700) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("2700bios.rom.ic32", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (cf2700) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - National CF-3000 */ - -ROM_START (cf3000) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("3000bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (cf3000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - National CF-3300 */ -ROM_START (cf3300) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("3300bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) - ROM_LOAD ("3300disk.rom", 0x8000, 0x4000, CRC(549f1d90) SHA1(f1525de4e0b60a6687156c2a96f8a8b2044b6c56)) -ROM_END - -MSX_LAYOUT_INIT (cf3300) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) -MSX_LAYOUT_END - -/* MSX - National FS-1300 */ - -ROM_START (fs1300) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("1300bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (fs1300) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - National FS-4000 */ -ROM_START (fs4000) - ROM_REGION (0x38000 ,"maincpu", 0) - ROM_LOAD ("4000bios.rom", 0x0000, 0x8000, CRC(071135e0) SHA1(df48902f5f12af8867ae1a87f255145f0e5e0774)) - ROM_LOAD ("4000word.rom", 0x8000, 0x8000, CRC(950b6c87) SHA1(931d6318774bd495a32ec3dabf8d0edfc9913324)) - ROM_LOAD ("4000kdr.rom", 0x10000, 0x8000, CRC(ebaa5a1e) SHA1(77bd67d5d10d459d343e79eafcd8e17eb0f209dd)) - ROM_LOAD ("4000kfn.rom", 0x18000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) -ROM_END - -MSX_LAYOUT_INIT (fs4000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x10000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_KANJI (0x18000) -MSX_LAYOUT_END - -/* MSX - Philips NMS-801 */ - -ROM_START (nms801) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("801bios.rom", 0x0000, 0x8000, CRC(fa089461) SHA1(21329398c0f350e330b353f45f21aa7ba338fc8d)) -ROM_END - -MSX_LAYOUT_INIT (nms801) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Philips VG-8000 */ - -ROM_START (vg8000) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("8000bios.rom", 0x0000, 0x8000, CRC(efd970b0) SHA1(42252cf87deeb58181a7bfec7c874190a1351779)) -ROM_END - -MSX_LAYOUT_INIT (vg8000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x4000, 0xC000) /* 16KB RAM */ -MSX_LAYOUT_END - -/* MSX - Philips VG-8010 */ - -ROM_START (vg8010) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("8010bios.rom", 0x0000, 0x8000, CRC(efd970b0) SHA1(42252cf87deeb58181a7bfec7c874190a1351779)) -ROM_END - -MSX_LAYOUT_INIT (vg8010) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x8000, 0x8000) /* 32KB RAM */ -MSX_LAYOUT_END - -/* MSX - Philips VG-8010F */ - -ROM_START (vg8010f) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("8010fbios.rom", 0x0000, 0x8000, CRC(df57c9ca) SHA1(898630ad1497dc9a329580c682ee55c4bcb9c30c)) -ROM_END - -MSX_LAYOUT_INIT (vg8010f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x8000, 0x8000) /* 32KB RAM */ -MSX_LAYOUT_END - -/* MSX - Philips VG-8020-00 */ - -ROM_START (vg802000) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("8020-00bios.rom", 0x0000, 0x8000, CRC(8205795e) SHA1(829c00c3114f25b3dae5157c0a238b52a3ac37db)) -ROM_END - -MSX_LAYOUT_INIT (vg802000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Philips VG-8020-20 */ - -ROM_START (vg802020) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("8020-20bios.rom", 0x0000, 0x8000, CRC(A317E6B4) SHA1(E998F0C441F4F1800EF44E42CD1659150206CF79)) -ROM_END - -MSX_LAYOUT_INIT (vg802020) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ -MSX_LAYOUT_END - -/* MSX - Pioneer PX-7 */ - -ROM_START (piopx7) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("ym2301.ic12", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) - ROM_LOAD ("pd5031.ic13", 0x8000, 0x2000, CRC(91e0df72) SHA1(4f0102cdc27216fd9bcdb9663db728d2ccd8ca6d)) - ROM_FILL( 0xa000, 0x2000, 0x6E ) -ROM_END - -MSX_LAYOUT_INIT (piopx7) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 1, 2, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Sanyo MPC-100 */ - -ROM_START (mpc100) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("mpc100bios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) -ROM_END - -MSX_LAYOUT_INIT (mpc100) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sharp Epcom HotBit 1.1 */ - -ROM_START (hotbit11) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("hotbit11.rom", 0x0000, 0x8000, CRC(b6942694) SHA1(663f8c512d04d213fa616b0db5eefe3774012a4b)) -ROM_END - -MSX_LAYOUT_INIT (hotbit11) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sharp Epcom HotBit 1.2 */ - -ROM_START (hotbit12) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("hotbit12.rom", 0x0000, 0x8000, CRC(f59a4a0c) SHA1(9425815446d468058705bae545ffa13646744a87)) -ROM_END - -MSX_LAYOUT_INIT (hotbit12) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sharp Epcom HotBit 1.3b */ - -ROM_START (hotbi13b) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("hotbit13b.rom", 0x0000, 0x8000, CRC(7a19820e) SHA1(e0c2bfb078562d15acabc5831020a2370ea87052)) -ROM_END - -MSX_LAYOUT_INIT (hotbi13b) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ -MSX_LAYOUT_END - -/* MSX - Sharp Epcom HotBit 1.3p */ - -ROM_START (hotbi13p) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("hotbit13p.rom", 0x0000, 0x8000, CRC(150e239c) SHA1(942f9507d206cd8156f15601fe8032fcf0e3875b)) -ROM_END - -MSX_LAYOUT_INIT (hotbi13p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ -MSX_LAYOUT_END - -/* MSX - Sony HB-10P */ - -ROM_START (hb10p) - ROM_REGION (0x10000, "maincpu", 0) - ROM_LOAD ("10pbios.rom", 0x0000, 0x8000, CRC(0f488dd8) SHA1(5e7c8eab238712d1e18b0219c0f4d4dae180420d)) -ROM_END - -MSX_LAYOUT_INIT (hb10p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sony HB-20P */ - -ROM_START (hb20p) - ROM_REGION (0x10000, "maincpu", 0) - ROM_LOAD ("20pbios.rom", 0x0000, 0x8000, CRC(21af423f) SHA1(365c93d7652c9f727221689bcc348652832a7b7a)) -ROM_END - -MSX_LAYOUT_INIT (hb20p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sony HB-201 */ - -ROM_START (hb201) - ROM_REGION (0x10000, "maincpu", 0) - ROM_LOAD ("201bios.rom.ic9", 0x0000, 0x8000, CRC(ee229390) SHA1(302afb5d8be26c758309ca3df611ae69cced2821)) - ROM_LOAD ("201note.rom.ic8", 0x8000, 0x4000, CRC(74567244) SHA1(0f4f09f1a6ef7535b243afabfb44a3a0eb0498d9)) - ROM_FILL( 0xc000, 0x4000, 0xff ) -ROM_END - -MSX_LAYOUT_INIT (hb201) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sony HB-201P */ - -ROM_START (hb201p) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("201pbios.rom.ic9", 0x0000, 0x8000, CRC(0f488dd8) SHA1(5e7c8eab238712d1e18b0219c0f4d4dae180420d)) - ROM_LOAD ("201pnote.rom.ic8", 0x8000, 0x4000, CRC(1ff9b6ec) SHA1(e84d3ec7a595ee36b50e979683c84105c1871857)) -ROM_END - -MSX_LAYOUT_INIT (hb201p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sony HB-501P */ - -ROM_START (hb501p) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("501pbios.rom", 0x0000, 0x8000, CRC(0f488dd8) SHA1(5e7c8eab238712d1e18b0219c0f4d4dae180420d)) -ROM_END - -MSX_LAYOUT_INIT (hb501p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Sony HB-55D */ - -ROM_START (hb55d) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("55dbios.rom", 0x0000, 0x8000, CRC(7e2b32dd) SHA1(38a645febd0e0fe86d594f27c2d14be995acc730)) - ROM_LOAD ("55dnote.rom", 0x8000, 0x4000, CRC(8aae0494) SHA1(97ce59892573cac3c440efff6d74c8a1c29a5ad3)) -ROM_END - -MSX_LAYOUT_INIT (hb55d) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Sony HB-55P */ - -ROM_START (hb55p) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("55pbios.ic42", 0x0000, 0x4000, CRC(24c198be) SHA1(7f8c94cb8913db32a696dec80ffc78e46693f1b7)) - ROM_LOAD ("55pbios.ic43", 0x4000, 0x4000, CRC(e516e7e5) SHA1(05fedd4b9bfcf4949020c79d32c4c3f03a54fb62)) - ROM_LOAD ("55pnote.ic44", 0x8000, 0x4000, CRC(492b12f8) SHA1(b262aedc71b445303f84efe5e865cbb71fd7d952)) -ROM_END - -MSX_LAYOUT_INIT (hb55p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Sony HB-75D */ - -ROM_START (hb75d) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("75dbios.rom", 0x0000, 0x8000, CRC(7e2b32dd) SHA1(38a645febd0e0fe86d594f27c2d14be995acc730)) - ROM_LOAD ("75dnote.rom", 0x8000, 0x4000, CRC(8aae0494) SHA1(97ce59892573cac3c440efff6d74c8a1c29a5ad3)) -ROM_END - -MSX_LAYOUT_INIT (hb75d) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Sony HB-75P */ - -ROM_START (hb75p) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("75pbios.ic42", 0x0000, 0x4000, CRC(24c198be) SHA1(7f8c94cb8913db32a696dec80ffc78e46693f1b7)) - ROM_LOAD ("75pbios.ic43", 0x4000, 0x4000, CRC(e516e7e5) SHA1(05fedd4b9bfcf4949020c79d32c4c3f03a54fb62)) - ROM_LOAD ("75pnote.ic44", 0x8000, 0x4000, CRC(492b12f8) SHA1(b262aedc71b445303f84efe5e865cbb71fd7d952)) -ROM_END - -MSX_LAYOUT_INIT (hb75p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Spectravideo SVI-728 */ - -ROM_START (svi728) - ROM_REGION (0xc000, "maincpu", 0) - ROM_LOAD ("728bios.rom", 0x0000, 0x8000, CRC(1ce9246c) SHA1(ea6a82cf8c6e65eb30b98755c8577cde8d9186c0)) - ROM_LOAD ("707disk.rom", 0x8000, 0x4000, CRC(f9978853) SHA1(6aa856cc56eb98863c9da7a566571605682b5c6b)) -ROM_END - -MSX_LAYOUT_INIT (svi728) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Spectravideo SVI-738 */ - -ROM_START (svi738) - ROM_REGION (0x10000, "maincpu", 0) - ROM_LOAD ("738bios.rom", 0x0000, 0x8000, CRC(ad007d62) SHA1(c53b3f2c00f31683914f7452f3f4d94ae2929c0d)) - ROM_LOAD ("738disk.rom", 0x8000, 0x4000, CRC(acd27a36) SHA1(99a40266bc296cef1d432cb0caa8df1a7e570be4)) - ROM_LOAD ("738232c.rom", 0xc000, 0x2000, CRC(3353dcc6) SHA1(4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7)) - ROM_FILL (0xe000, 0x2000, 0xff) -ROM_END - -MSX_LAYOUT_INIT (svi738) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Spectravideo SVI-738 Swedish */ - -ROM_START (svi738sw) - ROM_REGION (0x10000, "maincpu", 0) - ROM_LOAD ("738sebios.rom", 0x0000, 0x8000, CRC(c8ccdaa0) SHA1(87f4d0fa58cfe9cef818a3185df2735e6da6168c)) - ROM_LOAD ("738sedisk.rom", 0x8000, 0x4000, CRC(fb884df4) SHA1(6d3a530ae822ec91f6444c681c9b08b9efadc7e7)) - ROM_LOAD ("738se232c.rom", 0xc000, 0x2000, CRC(3353dcc6) SHA1(4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7)) - ROM_FILL (0xe000, 0x2000, 0xff) -ROM_END - -MSX_LAYOUT_INIT (svi738sw) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - - -/* MSX - Talent DPC-200 */ - -ROM_START (tadpc200) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("dpc200bios.rom", 0x0000, 0x8000, CRC(8205795e) SHA1(829c00c3114f25b3dae5157c0a238b52a3ac37db)) -ROM_END - -MSX_LAYOUT_INIT (tadpc200) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - - -/* MSX - Talent DPC-200A */ - -ROM_START (tadpc20a) - ROM_REGION (0x8000, "maincpu", 0) - ROM_LOAD ("dpc200abios.rom", 0x0000, 0x8000, CRC(8205795e) SHA1(829c00c3114f25b3dae5157c0a238b52a3ac37db)) -ROM_END - -MSX_LAYOUT_INIT (tadpc20a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Toshiba HX-10 */ -/* The BIOS on the Toshiba HX-10 is inside a big 64pin Toshiba chip label TCX-1007 */ - -ROM_START (hx10) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("tcx-1007.ic15", 0x0000, 0x8000, CRC(5486b711) SHA1(4dad9de7c28b452351cc12910849b51bd9a37ab3)) -ROM_END - -MSX_LAYOUT_INIT (hx10) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Toshiba HX-10S */ - -ROM_START (hx10s) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("hx10sbios.rom", 0x0000, 0x8000, CRC(5486b711) SHA1(4dad9de7c28b452351cc12910849b51bd9a37ab3)) -ROM_END - -MSX_LAYOUT_INIT (hx10s) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -/* MSX - Toshiba HX-20 */ - -ROM_START (hx20) - ROM_REGION (0x10000, "maincpu",0) - ROM_LOAD ("hx20bios.rom", 0x0000, 0x8000, CRC(8205795e) SHA1(829c00c3114f25b3dae5157c0a238b52a3ac37db)) - ROM_LOAD ("hx20word.rom", 0x8000, 0x8000, CRC(39b3e1c0) SHA1(9f7cfa932bd7dfd0d9ecaadc51655fb557c2e125)) -ROM_END - -MSX_LAYOUT_INIT (hx20) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 2, 0, RAM, 0x8000, 0x0000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x8000) -MSX_LAYOUT_END - -/* MSX - Yamaha CX5M */ - -ROM_START (cx5m) - ROM_REGION (0x10000, "maincpu",0) - ROM_LOAD ("cx5mbios.rom", 0x0000, 0x8000, CRC(e2242b53) SHA1(706dd67036baeec7127e4ccd8c8db8f6ce7d0e4c)) - ROM_LOAD ("sfg05m.rom", 0x8000, 0x8000, CRC(6c2545c9) SHA1(bc4b242647116f4886bb92e86421f97b1be51938)) -ROM_END - -MSX_LAYOUT_INIT (cx5m) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ -MSX_LAYOUT_END - -/* MSX - Yamaha CX5M-128 */ - -ROM_START (cx5m128) - ROM_REGION (0x18000, "maincpu",0) - ROM_LOAD ("cx5m128bios.rom", 0x0000, 0x8000, CRC(507b2caa) SHA1(0dde59e8d98fa524961cd37b0e100dbfb42cf576)) - ROM_LOAD ("cx5m128ext.rom", 0x8000, 0x4000, CRC(feada82e) SHA1(48b0c2ff1f1e407cc44394219f7b3878efaa919f)) - ROM_LOAD ("sfg05.rom", 0xc000, 0x8000, CRC(2425c279) SHA1(d956167e234f60ad916120437120f86fc8c3c321)) - ROM_LOAD ("yrm502.rom", 0x14000,0x4000, CRC(5330fe21) SHA1(7b1798561ee1844a7d6432924fbee9b4fc591c19)) -ROM_END - -MSX_LAYOUT_INIT (cx5m128) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 1, ROM, 0x4000, 0x14000) /* YRM-502 */ - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 0, 2, ROM, 0x8000, 0xc000) /* SFG-05 */ -MSX_LAYOUT_END - -/* MSX - Yamaha CX5MII */ - -ROM_START (cx5m2) - ROM_REGION (0x14000, "maincpu",0) - ROM_LOAD ("cx5m2bios.rom", 0x0000, 0x8000, CRC(507b2caa) SHA1(0dde59e8d98fa524961cd37b0e100dbfb42cf576)) - ROM_LOAD ("cx5m2ext.rom", 0x8000, 0x4000, CRC(feada82e) SHA1(48b0c2ff1f1e407cc44394219f7b3878efaa919f)) - ROM_LOAD ("sfg05.rom", 0xc000, 0x8000, CRC(2425c279) SHA1(d956167e234f60ad916120437120f86fc8c3c321)) -ROM_END - -MSX_LAYOUT_INIT (cx5m2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 0, 2, ROM, 0x8000, 0xc000) -MSX_LAYOUT_END - -/* MSX - Yamaha YIS303 */ - -ROM_START (yis303) - ROM_REGION (0x14000, "maincpu",0) - ROM_LOAD ("yis303bios.rom", 0x0000, 0x8000, CRC(e2242b53) SHA1(706dd67036baeec7127e4ccd8c8db8f6ce7d0e4c)) - ROM_FILL( 0x8000, 0xc000, 0xff ) -ROM_END - -MSX_LAYOUT_INIT (yis303) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 3, ROM, 0xC000, 0x0000) /* Fill FF */ - MSX_LAYOUT_SLOT (3, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ -MSX_LAYOUT_END - -/* MSX - Yamaha YIS503 */ - -ROM_START (yis503) - ROM_REGION (0x10000, "maincpu",0) - ROM_LOAD ("yis503bios.rom", 0x0000, 0x8000, CRC(e2242b53) SHA1(706dd67036baeec7127e4ccd8c8db8f6ce7d0e4c)) - ROM_FILL( 0x8000, 0x8000, 0xff ) -ROM_END - -MSX_LAYOUT_INIT (yis503) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 2, ROM, 0xC000, 0x0000) /* Fill FF */ - MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ -MSX_LAYOUT_END - -/* MSX - Yamaha YIS503II */ - -ROM_START (yis503ii) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("yis503iibios.rom", 0x0000, 0x8000, CRC(e2242b53) SHA1(706dd67036baeec7127e4ccd8c8db8f6ce7d0e4c)) -ROM_END - -MSX_LAYOUT_INIT (yis503ii) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Yamaha YIS503IIR Russian */ - -ROM_START (y503iir) - ROM_REGION (0xe000, "maincpu",0) - ROM_LOAD ("yis503iirbios.rom", 0x0000, 0x8000, CRC(225a4f9e) SHA1(5173ac403e26c462f904f85c9ef5e7b1e19253e7)) - ROM_LOAD ("yis503iirdisk.rom", 0x8000, 0x4000, CRC(9eb7e24d) SHA1(3a481c7b7e4f0406a55952bc5b9f8cf9d699376c)) - ROM_LOAD ("yis503iirnet.rom", 0xc000, 0x2000, CRC(0731db3f) SHA1(264fbb2de69fdb03f87dc5413428f6aa19511a7f)) -ROM_END - -MSX_LAYOUT_INIT (y503iir) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) /* National disk */ - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x2000, 0xc000) /* Net */ -MSX_LAYOUT_END - -/* MSX - Yamaha YIS503IIR Estonian */ - -ROM_START (y503iir2) - ROM_REGION (0xe000, "maincpu",0) - ROM_LOAD ("yis503ii2bios.rom", 0x0000, 0x8000, CRC(1548cee3) SHA1(42c7fff25b1bd90776ac0aea971241aedce8947d)) - ROM_LOAD ("yis503iirdisk.rom", 0x8000, 0x4000, CRC(9eb7e24d) SHA1(3a481c7b7e4f0406a55952bc5b9f8cf9d699376c)) - ROM_LOAD ("yis503iirnet.rom", 0xc000, 0x2000, CRC(0731db3f) SHA1(264fbb2de69fdb03f87dc5413428f6aa19511a7f)) -ROM_END - -MSX_LAYOUT_INIT (y503iir2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) /* National disk */ - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x2000, 0xc000) /* Net */ -MSX_LAYOUT_END - -/* MSX - Yamaha YIS503M */ - -ROM_START (yis503m) - ROM_REGION (0x10000, "maincpu",0) - ROM_LOAD ("yis503mbios.rom", 0x0000, 0x8000, CRC(e2242b53) SHA1(706dd67036baeec7127e4ccd8c8db8f6ce7d0e4c)) - ROM_LOAD ("sfg05m.rom", 0x8000, 0x8000, CRC(6c2545c9) SHA1(bc4b242647116f4886bb92e86421f97b1be51938)) -ROM_END - -MSX_LAYOUT_INIT (yis503m) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ -MSX_LAYOUT_END - -/* MSX - Yashica YC-64 */ - -ROM_START (yc64) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD ("yc64bios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) -ROM_END - -MSX_LAYOUT_INIT (yc64) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX - Frael Bruc 100-1 */ - -ROM_START (bruc100) - ROM_REGION (0x8000, "maincpu",0) - ROM_LOAD( "bruc100-1bios.rom", 0x0000, 0x8000, CRC(c7bc4298) SHA1(3abca440cba16ac5e162b602557d30169f77adab)) -ROM_END - -MSX_LAYOUT_INIT (bruc100) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - - -/******************************** MSX 2 **********************************/ - -/* MSX2 */ - -ROM_START (msx2) - ROM_REGION (0x20000, "maincpu",0) - ROM_LOAD ("msx2.rom", 0x0000, 0x8000, CRC(f05ed518) SHA1(5e1a4bd6826b29302a1eb88c340477e7cbd0b50a)) - ROM_LOAD ("msx2ext.rom", 0x8000, 0x4000, CRC(95db2959) SHA1(e7905d16d2ccd57a013c122dc432106cd59ef52c)) - ROM_LOAD_OPTIONAL ("disk.rom", 0xc000, 0x4000, CRC(b7c58fad) SHA1(bc517b4a248c3a1338c5efc937b0128b6a783808)) - ROM_LOAD_OPTIONAL ("fmpac.rom", 0x10000, 0x10000, CRC(0e84505d) SHA1(9d789166e3caf28e4742fe933d962e99618c633d)) -ROM_END - -MSX_LAYOUT_INIT (msx2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Al Alamiah AX-350 */ - -ROM_START (ax350) - ROM_REGION (0x44000, "maincpu", 0) - ROM_LOAD ("ax350bios.rom", 0x0000, 0x8000, CRC(ea306155) SHA1(35195ab67c289a0b470883464df66bc6ea5b00d3)) - ROM_LOAD ("ax350ext.rom", 0x8000, 0x4000, CRC(7c7540b7) SHA1(ebb76f9061e875365023523607db610f2eda1d26)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("ax350arab.rom", 0x20000, 0x8000, CRC(c0d8fc85) SHA1(2c9600c6e0025fee10d249e97448ecaa37e38c42)) - ROM_LOAD ("ax350swp.rom", 0x28000, 0x8000, CRC(076f40fc) SHA1(4b4508131dca6d811694ae6379f41364c477de58)) - ROM_LOAD ("ax350paint.rom",0x30000, 0x10000, CRC(18956e3a) SHA1(ace202e87337fbc54fea21e22c0b3af0abe6f4ae)) - ROM_LOAD ("ax350disk.rom", 0x40000, 0x4000, CRC(1e7d6512) SHA1(78cd7f847e77fd8cd51a647efb2725ba93f4c471)) -ROM_END - -MSX_LAYOUT_INIT (ax350) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) /* Bios */ - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) /* Ext */ - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x20000) /* Arab */ - MSX_LAYOUT_SLOT (0, 2, 1, 2, ROM, 0x8000, 0x28000) /* SWP */ - MSX_LAYOUT_SLOT (0, 3, 0, 4, ROM, 0x10000, 0x30000) /* Paint */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x40000) /* Disk */ - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Al Alamiah AX-370 */ - -ROM_START (ax370) - ROM_REGION (0x44000, "maincpu", 0) - ROM_LOAD ("ax370bios.rom", 0x0000, 0x8000, CRC(ea306155) SHA1(35195ab67c289a0b470883464df66bc6ea5b00d3)) - ROM_LOAD ("ax370ext.rom", 0x8000, 0x4000, CRC(7c7540b7) SHA1(ebb76f9061e875365023523607db610f2eda1d26)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("ax370arab.rom", 0x20000, 0x8000, CRC(c0d8fc85) SHA1(2c9600c6e0025fee10d249e97448ecaa37e38c42)) - ROM_LOAD ("ax370swp.rom", 0x28000, 0x8000, CRC(076f40fc) SHA1(4b4508131dca6d811694ae6379f41364c477de58)) - ROM_LOAD ("ax370paint.rom",0x30000, 0x10000, CRC(18956e3a) SHA1(ace202e87337fbc54fea21e22c0b3af0abe6f4ae)) - ROM_LOAD ("ax370disk.rom", 0x40000, 0x4000, CRC(60f8baba) SHA1(95de8809d2758fc0a743390ea5085b602e59e101)) -ROM_END - -MSX_LAYOUT_INIT (ax370) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) /* Bios */ - MSX_LAYOUT_SLOT (0, 2, 1, 2, ROM, 0x8000, 0x28000) /* SWP */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) /* Ext */ - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) /* Arab */ - //MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0x40000) /* TC8566AF Disk controller*/ - MSX_LAYOUT_SLOT (3, 3, 0, 4, ROM, 0x10000, 0x30000) /* Paint */ - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Daewoo CPC-300 */ - -ROM_START (cpc300) - ROM_REGION (0x30000, "maincpu", 0) - ROM_LOAD ("300bios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("300ext.rom", 0x20000, 0x8000, CRC(d64da39c) SHA1(fb51c505adfbc174df94289fa894ef969f5357bc)) - ROM_LOAD ("300han.rom", 0x28000, 0x8000, CRC(e78cd87f) SHA1(47a9d9a24e4fc6f9467c6e7d61a02d45f5a753ef)) -ROM_END - -MSX_LAYOUT_INIT (cpc300) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Daewoo CPC-300E */ - -ROM_START (cpc300e) - ROM_REGION (0x30000, "maincpu", 0) - ROM_LOAD ("300ebios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("300eext.rom", 0x20000, 0x8000, CRC(d64da39c) SHA1(fb51c505adfbc174df94289fa894ef969f5357bc)) - ROM_LOAD ("300ehan.rom", 0x28000, 0x4000, CRC(5afea78d) SHA1(f08c91f8c78d681e1f02eaaaaafb87ad81112b60)) -ROM_END - -MSX_LAYOUT_INIT (cpc300e) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Daewoo CPC-400 */ -ROM_START (cpc400) - ROM_REGION (0x50000, "maincpu", 0) - ROM_LOAD ("400bios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - ROM_LOAD ("400disk.rom", 0x8000, 0x4000, CRC(5fa517df) SHA1(914f6ccb25d78621186001f2f5e2aaa2d628cd0c)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("400ext.rom", 0x20000, 0x8000, CRC(2ba104a3) SHA1(b6d3649a6647fa9f6bd61efc317485a20901128f)) - ROM_LOAD ("400han.rom", 0x28000, 0x8000, CRC(a8ead5e3) SHA1(87936f808423dddfd00629056d6807b4be1dc63e)) - ROM_LOAD ("400kfn.rom", 0x30000, 0x20000, CRC(b663c605) SHA1(965f4982790f1817bcbabbb38c8777183b231a55)) -ROM_END - -MSX_LAYOUT_INIT (cpc400) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 1, 2, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Daewoo CPC-400S */ - -ROM_START (cpc400s) - ROM_REGION (0x50000, "maincpu", 0) - ROM_LOAD ("400sbios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - ROM_LOAD ("400sdisk.rom", 0x8000, 0x4000, CRC(5fa517df) SHA1(914f6ccb25d78621186001f2f5e2aaa2d628cd0c)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("400sext.rom", 0x20000, 0x8000, CRC(2ba104a3) SHA1(b6d3649a6647fa9f6bd61efc317485a20901128f)) - ROM_LOAD ("400shan.rom", 0x28000, 0x8000, CRC(975e7a31) SHA1(6a50295ea35e720ba6f4ba5616c3441128b384ed)) - ROM_LOAD ("400skfn.rom", 0x30000, 0x20000, CRC(fa85368c) SHA1(30fff22e3e3d464993707488442721a5e56a9707)) -ROM_END - -MSX_LAYOUT_INIT (cpc400s) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 1, 2, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Gradiente Expert 2.0 */ - -ROM_START (expert20) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("exp20bios.rom", 0x0000, 0x8000, CRC(6BACDCE4) SHA1(9c43106dba3ae2829e9a11dffa9d000ed6d6454c)) - ROM_LOAD ("exp20ext.rom", 0x8000, 0x4000, CRC(08CED880) SHA1(4f2a7e0172f0214f025f23845f6e053d0ffd28e8)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("xbasic2.rom", 0x20000, 0x4000, CRC(2825b1a0) SHA1(47370bec7ca1f0615a54eda548b07fbc0c7ef398)) - ROM_LOAD ("microsoldisk.rom", 0x24000, 0x4000, CRC(6704ef81) SHA1(a3028515ed829e900cc8deb403e17b09a38bf9b0)) -ROM_END - -MSX_LAYOUT_INIT (expert20) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (1, 1, 0, 1, ROM, 0x4000, 0x8000) /* EXT */ - MSX_LAYOUT_SLOT (1, 1, 1, 1, ROM, 0x4000, 0x20000) /* BASIC */ - MSX_LAYOUT_SLOT (1, 3, 1, 1, DISK_ROM, 0x4000, 0x24000) /* Microsol controller */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - - -/* MSX2 - National FS-4500 */ - -ROM_START (fs4500) - ROM_REGION (0x94000, "maincpu",0) - ROM_LOAD ("4500bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("4500ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("4500font.rom", 0x20000, 0x4000, CRC(4bd54f95) SHA1(3ce8e35790eb4689b21e14c7ecdd4b63943ee158)) - ROM_LOAD ("4500buns.rom", 0x24000, 0x8000, CRC(c9398e11) SHA1(e89ea1e8e583392e2dd9debb8a4b6a162f58ba91)) - ROM_LOAD ("4500jush.rom", 0x2c000, 0x8000, CRC(4debfd2d) SHA1(6442c1c5cece64c6dae90cc6ae3675f070d93e06)) - ROM_LOAD ("4500wor1.rom", 0x34000, 0xc000, CRC(0c8b5cfb) SHA1(3f047469b62d93904005a0ea29092e892724ce0b)) - ROM_LOAD ("4500wor2.rom", 0x40000, 0xc000, CRC(d9909451) SHA1(4c8ea05c09b40c41888fa18db065575a317fda16)) - ROM_LOAD ("4500kdr1.rom", 0x4c000, 0x4000, CRC(f8c7f0db) SHA1(df07e89fa0b1c7874f9cdf184c136f964fea4ff4)) - ROM_LOAD ("4500kdr2.rom", 0x50000, 0x4000, CRC(69e87c31) SHA1(c63db26660da96af56f8a7d3ea18544b9ae5a37c)) - ROM_LOAD ("4500kfn.rom", 0x54000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) - ROM_LOAD ("4500budi.rom", 0x74000, 0x20000, CRC(f94590f8) SHA1(1ebb06062428fcdc66808a03761818db2bba3c73)) -ROM_END - -MSX_LAYOUT_INIT (fs4500) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 2, 0, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (0, 3, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 3, ROM, 0xc000, 0x34000) - MSX_LAYOUT_SLOT (3, 0, 3, 1, ROM, 0x4000, 0x4c000) - MSX_LAYOUT_SLOT (3, 1, 0, 3, ROM, 0xc000, 0x40000) - MSX_LAYOUT_SLOT (3, 1, 3, 1, ROM, 0x4000, 0x50000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_KANJI (0x54000) -/* MSX_LAYOUT_BUNSETSU (0x74000) */ /* Matsushita Bunsetsu Henkan ROM must be emulated */ -MSX_LAYOUT_END - -/* MSX2 - National FS-4600 */ - -ROM_START (fs4600) - ROM_REGION (0x170000, "maincpu",0) - ROM_LOAD ("4600bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("4600ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("4600disk.rom", 0xc000, 0x4000, CRC(ae4e65b7) SHA1(073feb8bb645d935e099afaf61e6f04f52adee42)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("4600fon1.rom", 0x20000, 0x4000, CRC(7391389b) SHA1(31292b9ca9fe7d1d8833530f44c0a5671bfefe4e)) - ROM_LOAD ("4600fon2.rom", 0x24000, 0x4000, CRC(c3a6b445) SHA1(02155fc25c9bd23e1654fe81c74486351e1ecc28)) - ROM_LOAD ("4600kdr.rom", 0x28000, 0x8000, CRC(b2db6bf5) SHA1(3a9a942ed888dd641cddf8deada1879c454df3c6)) - ROM_LOAD ("4600kfn.rom", 0x30000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) - ROM_LOAD ("4600kf12.rom", 0x50000, 0x20000, CRC(340d1ef7) SHA1(a7a23dc01314e88381eee88b4878b39931ab4818)) - ROM_LOAD ("4600firm.rom", 0x70000, 0x100000, CRC(1df57472) SHA1(005794c10a4237de3907ba4a44d436078d3c06c2)) -ROM_END - -MSX_LAYOUT_INIT (fs4600) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 2, 0, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (0, 2, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 3, 0, 1, ROM, 0x4000, 0x24000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, ASCII16, 0x100000, 0x70000) /* National FS-4600 Mapper must be emulated */ - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x30000) -/* MSX_LAYOUT_KANJI_12 (0x50000) */ /* Matsushita 12 dots Kanji ROM must be emulated */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - National FS-4700 */ - -ROM_START (fs4700) - ROM_REGION (0x94000, "maincpu",0) - ROM_LOAD ("4700bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("4700ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - ROM_LOAD ("4700disk.rom", 0xc000, 0x4000, CRC(1e7d6512) SHA1(78cd7f847e77fd8cd51a647efb2725ba93f4c471)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("4700font.rom", 0x20000, 0x4000, CRC(4bd54f95) SHA1(3ce8e35790eb4689b21e14c7ecdd4b63943ee158)) - ROM_LOAD ("4700buns.rom", 0x24000, 0x8000, CRC(c9398e11) SHA1(e89ea1e8e583392e2dd9debb8a4b6a162f58ba91)) - ROM_LOAD ("4700jush.rom", 0x2c000, 0x8000, CRC(4debfd2d) SHA1(6442c1c5cece64c6dae90cc6ae3675f070d93e06)) - ROM_LOAD ("4700wor1.rom", 0x34000, 0xc000, CRC(5f39a727) SHA1(f5af1d2a8bcf247f78847e1a9d995e581df87e8e)) - ROM_LOAD ("4700wor2.rom", 0x40000, 0xc000, CRC(d9909451) SHA1(4c8ea05c09b40c41888fa18db065575a317fda16)) - ROM_LOAD ("4700kdr1.rom", 0x4c000, 0x4000, CRC(f8c7f0db) SHA1(df07e89fa0b1c7874f9cdf184c136f964fea4ff4)) - ROM_LOAD ("4700kdr2.rom", 0x50000, 0x4000, CRC(69e87c31) SHA1(c63db26660da96af56f8a7d3ea18544b9ae5a37c)) - ROM_LOAD ("4700kfn.rom", 0x54000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) - ROM_LOAD ("4700budi.rom", 0x74000, 0x20000, CRC(f94590f8) SHA1(1ebb06062428fcdc66808a03761818db2bba3c73)) -ROM_END - -MSX_LAYOUT_INIT (fs4700) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 2, 0, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (0, 3, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 3, ROM, 0xc000, 0x34000) - MSX_LAYOUT_SLOT (3, 0, 3, 1, ROM, 0x4000, 0x4c000) - MSX_LAYOUT_SLOT (3, 1, 0, 3, ROM, 0xc000, 0x40000) - MSX_LAYOUT_SLOT (3, 1, 3, 1, ROM, 0x4000, 0x50000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x54000) -/* MSX_LAYOUT_BUNSETSU (0x74000) */ /* Matsushita Bunsetsu Henkan ROM must be emulated */ -MSX_LAYOUT_END - -/* MSX2 - National FS-5000 */ - -ROM_START (fs5000) - ROM_REGION (0x50000, "maincpu",0) - ROM_LOAD ("5000bios.rom", 0x0000, 0x8000, CRC(a44ea707) SHA1(59967765d6e9328909dee4dac1cbe4cf9d47d315)) - ROM_LOAD ("5000ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("5000disk.rom", 0xc000, 0x4000, CRC(ae4e65b7) SHA1(073feb8bb645d935e099afaf61e6f04f52adee42)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0xff) - ROM_LOAD ("5000rtc.rom", 0x20000, 0x8000, CRC(03351598) SHA1(98bbfa3ab07b7a5cad55d7ddf7cbd9440caa2a86)) - ROM_LOAD ("5000kdr.rom", 0x28000, 0x8000, CRC(b2db6bf5) SHA1(3a9a942ed888dd641cddf8deada1879c454df3c6)) - ROM_LOAD ("5000kfn.rom", 0x30000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) -ROM_END - -MSX_LAYOUT_INIT (fs5000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 3, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (3, 1, 1, 1, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - National FS-5500F1/F2*/ - -ROM_START (fs5500) - ROM_REGION (0x50000, "maincpu",0) - ROM_LOAD ("5500bios.rom", 0x0000, 0x8000, CRC(5bf38e13) SHA1(44e0dd215b2a9f0770dd76fb49187c05b083eed9)) - ROM_LOAD ("5500ext.rom", 0x8000, 0x4000, CRC(3c42c367) SHA1(4be8371f3b03e70ddaca495958345f3c4f8e2d36)) - ROM_LOAD ("5500disk.rom", 0xc000, 0x4000, CRC(1e7d6512) SHA1(78cd7f847e77fd8cd51a647efb2725ba93f4c471)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0xff) - ROM_LOAD ("5500imp.rom", 0x20000, 0x8000, CRC(6173a88c) SHA1(b677a861b67e8763a11d5dcf52416b42493ade57)) - ROM_LOAD ("5500kdr.rom", 0x28000, 0x8000, CRC(b2db6bf5) SHA1(3a9a942ed888dd641cddf8deada1879c454df3c6)) - ROM_LOAD ("5500kfn.rom", 0x30000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) -ROM_END - -MSX_LAYOUT_INIT (fs5500) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 3, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (3, 1, 1, 1, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x30000) -MSX_LAYOUT_END - - -/* MSX2 - Panasonic FS-A1 */ - -ROM_START (fsa1) - ROM_REGION (0x30000, "maincpu",0) - ROM_LOAD ("a1bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("a1desk1.rom", 0x20000, 0x8000, CRC(99c48147) SHA1(63098f27beac9eca6b39d837d2a552395df33fe1)) - ROM_LOAD ("a1desk2.rom", 0x28000, 0x8000, CRC(7f6f4aa1) SHA1(7f5b76605e3d898cc4b5aacf1d7682b82fe84353)) -ROM_END - -MSX_LAYOUT_INIT (fsa1) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64 KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) -MSX_LAYOUT_END - -/* MSX2 - Panasonic FS-A1 (a) */ - -ROM_START (fsa1a) - ROM_REGION (0x30000, "maincpu",0) - ROM_LOAD ("a1bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("a1desk1a.rom", 0x20000, 0x8000, CRC(25b5b170) SHA1(d9307bfdaab1312d25e38af7c0d3a7671a9f716b)) - ROM_LOAD ("a1desk2.rom", 0x28000, 0x8000, CRC(7f6f4aa1) SHA1(7f5b76605e3d898cc4b5aacf1d7682b82fe84353)) -ROM_END - -MSX_LAYOUT_INIT (fsa1a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) -MSX_LAYOUT_END - -/* MSX2 - Panasonic FS-A1F */ - -ROM_START (fsa1f) - ROM_REGION (0x50000, "maincpu",0) - ROM_LOAD ("a1fbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1fext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("a1fdisk.rom", 0xc000, 0x4000, CRC(e25cacca) SHA1(607cfca605eaf82e3efa33459d6583efb7ecc13b)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1fkdr.rom", 0x20000, 0x8000, CRC(2dbea5ec) SHA1(ea35cc2cad9cfdf56cae224d8ee41579de37f000)) - ROM_LOAD ("a1fcock.rom", 0x28000, 0x8000, CRC(5c2948cd) SHA1(4a99f2444f29c2b642efd6f084081d6fd96bfa9b)) - ROM_LOAD ("a1fkfn.rom", 0x30000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) -ROM_END - -MSX_LAYOUT_INIT (fsa1f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Panasonic FS-A1FM */ - -ROM_START (fsa1fm) - ROM_REGION (0x180000, "maincpu",0) - ROM_LOAD ("a1fmbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1fmext.rom", 0x8000, 0x4000, CRC(ad295b5d) SHA1(d552319a19814494e3016de4b8f010e8f7b97e02)) - ROM_LOAD ("a1fmdisk.rom", 0xc000, 0x4000, CRC(e25cacca) SHA1(607cfca605eaf82e3efa33459d6583efb7ecc13b)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1fmkfn.rom", 0x40000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) - ROM_LOAD ("a1fmkf12.rom", 0x60000, 0x20000, CRC(340d1ef7) SHA1(a7a23dc01314e88381eee88b4878b39931ab4818)) - ROM_LOAD ("a1fmfirm.rom", 0x80000, 0x100000, CRC(8ce0ece7) SHA1(f89e3d8f3b6855c29d71d3149cc762e0f6918ad5)) -ROM_END - -MSX_LAYOUT_INIT (fsa1fm) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) -/* MSX_LAYOUT_SLOT (3, 1, 1, 2, MODEM_ROM, 0x20000, 0x20000) */ /* Modem Mapper of FS-CM1/A1FM must be emulated */ -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 0, 4, FSA1FM_ROM, 0x100000, 0x80000) */ /* Panasonic FS-A1FM Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x40000) -/* MSX_LAYOUT_KANJI_12 (0x60000) */ /* Matsushita 12 dots Kanji ROM must be emulated */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Panasonic FS-A1MK2 */ - -ROM_START (fsa1mk2) - ROM_REGION (0x34000, "maincpu",0) - ROM_LOAD ("a1mkbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1mk2ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("a1mkcoc1.rom", 0x20000, 0x8000, CRC(0eda3f57) SHA1(2752cd89754c05abdf7c23cba132d38e3ef0f27d)) - ROM_LOAD ("a1mkcoc2.rom", 0x28000, 0x4000, CRC(756d7128) SHA1(e194d290ebfa4595ce0349ea2fc15442508485b0)) - ROM_LOAD ("a1mkcoc3.rom", 0x2c000, 0x8000, CRC(c1945676) SHA1(a3f4e2e4934074925d775afe30ac72f150ede543)) -ROM_END - -MSX_LAYOUT_INIT (fsa1mk2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64 KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8220 - 2 possible sets (/00 /16) */ - -ROM_START (nms8220) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8220bios.rom.u14", 0x0000, 0x8000, BAD_DUMP CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8220ext.rom.u14", 0x8000, 0x4000, BAD_DUMP CRC(06e4f5e6) SHA1(f5eb0a396097572589f2a6efeed045044e9425e4)) - ROM_LOAD ("8220pen.rom.u13", 0xc000, 0x4000, CRC(3d38c53e) SHA1(cb754aed85b3e97a7d3c5894310df7ca18f89f41)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8220) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8220 (a) */ - -ROM_START (nms8220a) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8220bios.rom.u14", 0x0000, 0x8000, BAD_DUMP CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8220ext.rom.u14", 0x8000, 0x4000, BAD_DUMP CRC(06e4f5e6) SHA1(f5eb0a396097572589f2a6efeed045044e9425e4)) - ROM_LOAD ("8220pena.rom.u13", 0xc000, 0x4000, CRC(17817b5a) SHA1(5df95d033ae70b107697b69470126ce1b7ae9eb5)) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8220a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8245 - 2 possible sets (/00 /16) */ - -ROM_START (nms8245) - ROM_REGION (0x40000, "maincpu", 0) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("nms8245.u7", 0x20000, 0x20000, BAD_DUMP CRC(0c827d5f) SHA1(064e706cb1f12b99b329944ceeedc0efc3b2d9be)) -ROM_END - -MSX_LAYOUT_INIT (nms8245) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0x2c000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8245F */ - -ROM_START (nms8245f) - ROM_REGION (0x40000, "maincpu", 0) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("nms8245.u7", 0x20000, 0x20000, BAD_DUMP CRC(0c827d5f) SHA1(064e706cb1f12b99b329944ceeedc0efc3b2d9be)) -ROM_END - -MSX_LAYOUT_INIT (nms8245f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x30000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x38000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0x3c000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8250 */ -/* Labels taken from an NMS-8250/00 */ - -ROM_START (nms8250) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("d23c256eac.ic119", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("d23128ec.ic118", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("jq00014.ic117", 0xc000, 0x04000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8250) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8255 */ - -ROM_START (nms8255) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8255bios.rom.ic119", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8255ext.rom.ic118", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8255disk.rom.ic117", 0xc000, 0x04000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8255) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8280 - 2 possible sets (/00 /16) */ - -ROM_START (nms8280) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8280bios.rom.ic119", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8280ext.rom.ic118", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8280disk.rom.ic117", 0xc000, 0x04000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8280) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips NMS-8280G */ - -ROM_START (nms8280g) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8280gbios.rom.ic119", 0x0000, 0x8000, CRC(8fa060e2) SHA1(b17d9bea0eb16a1aa2d0ccbd7c9488da9f57698e)) - ROM_LOAD ("8280gext.rom.ic118", 0x8000, 0x4000, CRC(41e36d03) SHA1(4ab7b2030d022f5486abaab22aaeaf8aa23e05f3)) - ROM_LOAD ("8280gdisk.rom.ic117", 0xc000, 0x04000, CRC(d0beebb8) SHA1(d1001f93c87ff7fb389e418e33bf7bc81bdbb65f)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8280g) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips VG-8230 (u11 - exp, u12 - basic, u13 - disk */ - -ROM_START (vg8230) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8230bios.rom.u12", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("8230ext.rom.u11", 0x8000, 0x4000, CRC(8f84f783) SHA1(3288894e1be6af705871499b23c85732dbc40993)) - ROM_LOAD ("8230disk.rom.u13", 0xc000, 0x4000, CRC(77c4e5bc) SHA1(849f93867ff7846b27f84d0be418569faf058ac2)) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (vg8230) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips VG-8235 3 psosible basic and ext roms (/00 /02 /19) */ - -ROM_START (vg8235) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8235bios.rom.u48", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8235ext.rom.u49", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8235disk.rom.u50", 0xc000, 0x4000, CRC(51daeb25) SHA1(8954e59aa79310c7b719ecf0cde1e82fb731dcd1)) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (vg8235) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips VG-8235F */ - -ROM_START (vg8235f) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8235fbios.rom.u48", 0x0000, 0x8000, CRC(c0577a50) SHA1(3926cdd91fa89657a811463e48cfbdb350676e51)) - ROM_LOAD ("8235fext.rom.u49", 0x8000, 0x4000, CRC(e235d5c8) SHA1(792e6b2814ab783d06c7576c1e3ccd6a9bbac34a)) - ROM_LOAD ("8235fdisk.rom.u50", 0xc000, 0x4000, CRC(77c4e5bc) SHA1(849f93867ff7846b27f84d0be418569faf058ac2)) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (vg8235f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Philips VG-8240 */ - -ROM_START (vg8240) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("8240bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8240ext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8240disk.rom", 0xc000, 0x4000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - /* 0x10000 - 0x1ffff reserved for optional fmpac rom from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (vg8240) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -/* MSX2 - Sanyo Wavy PHC-23 */ - -ROM_START (phc23) - ROM_REGION (0x20000, "maincpu",0) - ROM_LOAD ("23bios.rom", 0x0000, 0x8000, CRC(ba81b3dd) SHA1(4ce41fcc1a603411ec4e99556409c442078f0ecf)) - ROM_LOAD ("23ext.rom", 0x8000, 0x4000, CRC(90ca25b5) SHA1(fd9fa78bac25aa3c0792425b21d14e364cf7eea4)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) -ROM_END - -MSX_LAYOUT_INIT (phc23) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX2 - Sharp Epcom HotBit 2.0 */ - -ROM_START (hotbit20) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("hb2bios.rom", 0x0000, 0x8000, CRC(0160e8c9) SHA1(d0cfc35f22b150a1cb10decae4841dfe63b78251)) - ROM_LOAD ("hb2ext.rom", 0x8000, 0x4000, CRC(08ced880) SHA1(4f2a7e0172f0214f025f23845f6e053d0ffd28e8)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("xbasic2.rom", 0x20000, 0x4000, CRC(2825b1a0) SHA1(47370bec7ca1f0615a54eda548b07fbc0c7ef398)) - ROM_LOAD ("microsoldisk.rom", 0x24000, 0x4000, CRC(6704ef81) SHA1(a3028515ed829e900cc8deb403e17b09a38bf9b0)) -ROM_END - -MSX_LAYOUT_INIT (hotbit20) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (1, 1, 0, 1, ROM, 0x4000, 0x8000) /* EXT */ - MSX_LAYOUT_SLOT (1, 1, 1, 1, ROM, 0x4000, 0x20000) /* BASIC */ - MSX_LAYOUT_SLOT (1, 3, 1, 1, DISK_ROM, 0x4000, 0x24000) /* Microsol controller */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F1 */ - -ROM_START (hbf1) - ROM_REGION (0x34000, "maincpu",0) - ROM_LOAD ("f1bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f1ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("f1note1.rom", 0x20000, 0x4000, CRC(84810ea8) SHA1(9db72bb78792595a12499c821048504dc96ef848)) - ROM_LOAD ("f1note2.rom", 0x24000, 0x8000, CRC(e32e5ee0) SHA1(aa78fc9bcd2343f84cf790310a768ee47f90c841)) - ROM_LOAD ("f1note3.rom", 0x2c000, 0x8000, CRC(73eb9329) SHA1(58accf41a90693874b86ce98d8d43c27beb8b6dc)) -ROM_END - -MSX_LAYOUT_INIT (hbf1) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x24000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F1II */ - -ROM_START (hbf12) - ROM_REGION (0x34000, "maincpu",0) - ROM_LOAD ("f12bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f12ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("f12note1.rom", 0x20000, 0x4000, CRC(dcacf970) SHA1(30d914cda2180889a40a3328e0a0c1327f4eaa10)) - ROM_LOAD ("f12note2.rom", 0x24000, 0x8000, CRC(b0241a61) SHA1(ed2fea5c2a3c2e58d4f69f9d636e08574486a2b1)) - ROM_LOAD ("f12note3.rom", 0x2c000, 0x8000, CRC(44a10e6a) SHA1(917d1c079e03c4a44de864f123d03c4e32c8daae)) -ROM_END - -MSX_LAYOUT_INIT (hbf12) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x24000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F1XD */ - -ROM_START (hbf1xd) - ROM_REGION (0x20000, "maincpu",0) - ROM_LOAD ("f1xdbios.rom.ic27", 0x0000, 0x8000, BAD_DUMP CRC(ba81b3dd) SHA1(4ce41fcc1a603411ec4e99556409c442078f0ecf)) - ROM_LOAD ("f1xdext.rom.ic27", 0x8000, 0x4000, BAD_DUMP CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f1xddisk.rom.ic27", 0xc000, 0x4000, BAD_DUMP CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf1xd) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F1XDMK2 */ - -ROM_START (hbf1xdm2) - ROM_REGION (0x20000, "maincpu",0) - ROM_LOAD ("f1m2bios.rom.ic27", 0x0000, 0x8000, BAD_DUMP CRC(ba81b3dd) SHA1(4ce41fcc1a603411ec4e99556409c442078f0ecf)) - ROM_LOAD ("f1m2ext.rom.ic27", 0x8000, 0x4000, BAD_DUMP CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f1m2disk.rom.ic27", 0xc000, 0x4000, BAD_DUMP CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf1xdm2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F500 */ - -ROM_START (hbf500) - ROM_REGION (0x40000, "maincpu", 0) - ROM_LOAD ("f500bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f500ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - ROM_LOAD ("f500disk.rom", 0xc000, 0x4000, CRC(f7f5b0ea) SHA1(e93b8da1e8dddbb3742292b0e5e58731b90e9313)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f500kfn.rom", 0x20000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799)) -ROM_END - -MSX_LAYOUT_INIT (hbf500) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (0, 2, 0, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_KANJI (0x20000) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F500P */ - -ROM_START (hbf500p) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("500pbios.rom.ic41", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("500pext.ic47", 0x8000, 0x8000, CRC(cdd4824a) SHA1(505031f1e8396a6e0cb11c1540e6e7f6999d1191)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf500p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (0, 2, 0, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, ROM, 0x10000, 0x10000) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F700D */ - -ROM_START (hbf700d) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("700dbios.rom.ic5", 0x0000, 0x8000, CRC(e975aa79) SHA1(cef16eb95502ba6ab2265fcafcedde470a101541)) - ROM_LOAD ("700dext.ic6", 0x8000, 0x8000, CRC(100cf756) SHA1(317722fa36c2ed31c07c5218b43490fd5badf1f8)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700d) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F700F */ - -ROM_START (hbf700f) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("700fbios.ic5", 0x0000, 0x8000, CRC(440dae3c) SHA1(fedd9b682d056ddd1e9b3d281723e12f859b2e69)) - ROM_LOAD ("700fext.ic6", 0x8000, 0x8000, CRC(7c8b07b1) SHA1(ecacb20ba0a9bbd25e8c0f128d64dd66f8cd8bee)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F700P */ - -ROM_START (hbf700p) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("700pbios.rom.ic5", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("700pext.ic6", 0x8000, 0x8000, CRC(63e1bffc) SHA1(496698a60432490dc1306c8cc1d4a6ded275261a)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F700S */ - -ROM_START (hbf700s) - ROM_REGION (0x20000, "maincpu", 0) - ROM_LOAD ("700sbios.rom.ic5", 0x0000, 0x8000, CRC(c2b889a5) SHA1(4811956f878c3e03da46317f787cdc4bebc86f47)) - ROM_LOAD ("700sext.ic6", 0x8000, 0x8000, CRC(28d1badf) SHA1(ae3ed88a2d7034178e08f7bdf5409f462bf67fc9)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700s) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F900 */ -ROM_START (hbf900) - ROM_REGION (0x44000, "maincpu", 0) - ROM_LOAD ("f900bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f900ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f900disk.rom", 0xc000, 0x4000, CRC(f83d0ea6) SHA1(fc760d1d7b16370abc7eea39955f230b95b37df6)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f900util.rom", 0x20000, 0x4000, CRC(bc6c7c66) SHA1(558b7383544542cf7333700ff90c3efbf93ba2a3)) - ROM_LOAD ("f900kfn.rom", 0x24000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799)) -ROM_END - -MSX_LAYOUT_INIT (hbf900) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x10000) - MSX_LAYOUT_KANJI (0x24000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F900 (a) */ -ROM_START (hbf900a) - ROM_REGION (0x44000, "maincpu", 0) - ROM_LOAD ("f900bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f900ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f900disa.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f900util.rom", 0x20000, 0x4000, CRC(bc6c7c66) SHA1(558b7383544542cf7333700ff90c3efbf93ba2a3)) - ROM_LOAD ("f900kfn.rom", 0x24000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799)) -ROM_END - -MSX_LAYOUT_INIT (hbf900a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x10000) - MSX_LAYOUT_KANJI (0x24000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F9P */ - -ROM_START (hbf9p) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("f9pbios.rom.ic11", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("f9pfirm1.ic12", 0x8000, 0x8000, CRC(524f67aa) SHA1(41a186afced50ca6312cb5b6c4adb684faca6232)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f9pfirm2.rom.ic13", 0x20000, 0x8000, CRC(ea97069f) SHA1(2d1880d1f5a6944fcb1b198b997a3d90ecd1903d)) -ROM_END - -MSX_LAYOUT_INIT (hbf9p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-F9P Russian */ - -/* MSX2 - Sony HB-F9S */ -ROM_START (hbf9s) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("f9sbios.ic11", 0x0000, 0x8000, CRC(c2b889a5) SHA1(4811956f878c3e03da46317f787cdc4bebc86f47)) - ROM_LOAD ("f9sfirm1.ic12", 0x8000, 0x8000, CRC(cf39620b) SHA1(1166a93d7185ba024bdf2bfa9a30e1c447fb6db1)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f9sfirm2.ic13", 0x20000, 0x8000, CRC(ea97069f) SHA1(2d1880d1f5a6944fcb1b198b997a3d90ecd1903d)) -ROM_END - -MSX_LAYOUT_INIT (hbf9s) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Sony HB-G900AP */ - -/* IC109 - 32KB Basic ROM SLOT#00 0000-7FFF */ -/* IC112 - 16KB Basic ROM SLOT#01 0000-3FFF */ -/* IC117 - 16KB Disk ROM SLOT#01 4000-7FFF */ -/* IC123 - 32KB ROM RS232C ROM SLOT#02 4000-7FFF / Video Utility ROM SLOT#03 4000-7FFF */ - -/* MSX2 - Sony HB-G900AP */ -ROM_START (hbg900ap) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("g900bios.rom", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("g900ext.rom", 0x8000, 0x4000, CRC(8f84f783) SHA1(3288894e1be6af705871499b23c85732dbc40993)) - ROM_LOAD ("g900disk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("g900232c.rom", 0x20000, 0x4000, CRC(06cf1da6) SHA1(373aa82d0426830880a7344ef98f7309d93814c7)) - ROM_LOAD ("g900util.rom", 0x24000, 0x4000, CRC(d0417c20) SHA1(8779b004e7605a3c419825f0373a5d8fa84e1d5b)) -ROM_END - -MSX_LAYOUT_INIT (hbg900ap) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) -/* MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x20000) */ /* RS232C must be emulated */ - MSX_LAYOUT_SLOT (0, 3, 1, 1, ROM, 0x4000, 0x24000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x80000, 0x0000) /* 512KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - - -/* MSX2 - Sony HB-G900P - 3x 32KB ROMs */ - -ROM_START (hbg900p) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("g900bios.rom", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("g900ext.rom", 0x8000, 0x4000, CRC(8f84f783) SHA1(3288894e1be6af705871499b23c85732dbc40993)) - ROM_LOAD ("g900disk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("g900232c.rom", 0x20000, 0x4000, CRC(06cf1da6) SHA1(373aa82d0426830880a7344ef98f7309d93814c7)) - ROM_LOAD ("g900util.rom", 0x24000, 0x4000, CRC(d0417c20) SHA1(8779b004e7605a3c419825f0373a5d8fa84e1d5b)) -ROM_END - -MSX_LAYOUT_INIT (hbg900p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) -/* MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x20000) */ /* RS232C must be emulated */ - MSX_LAYOUT_SLOT (0, 3, 1, 1, ROM, 0x4000, 0x24000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Talent TPC-310 */ -ROM_START (tpc310) - ROM_REGION (0x2c000, "maincpu", 0) - ROM_LOAD ("tpc310bios.rom", 0x0000, 0x8000, CRC(8cd3e845) SHA1(7bba23669b7abfb6a142f9e1735b847d6e4e8267)) - ROM_LOAD ("tpc310ext.rom", 0x8000, 0x4000, CRC(094a9e7a) SHA1(39dfc46260f99b670916b1e55f67a5d4136e6e54)) - ROM_LOAD ("dpf550disk.rom", 0xc000, 0x4000, CRC(347b1b44) SHA1(c1d83c559e1e6a6da961eafa55aab105681c634c)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("tpc310turbo.rom",0x20000, 0x4000, CRC(0ea62a4d) SHA1(181bf58da7184e128cd419da3109b93344a543cf)) - ROM_LOAD ("tpc310acc.rom", 0x24000, 0x8000, CRC(4fb8fab3) SHA1(cdeb0ed8adecaaadb78d5a5364fd603238591685)) -ROM_END - -MSX_LAYOUT_INIT (tpc310) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x24000) - MSX_LAYOUT_SLOT (3, 2, 1, 1, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Toshiba HX-23 */ - -ROM_START (hx23) - ROM_REGION (0x30000, "maincpu", 0) - ROM_LOAD ("hx23bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("hx23ext.rom", 0x8000, 0x4000, CRC(06e4f5e6) SHA1(f5eb0a396097572589f2a6efeed045044e9425e4)) - /* 0xc000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("hx23word.rom", 0x20000, 0x8000, CRC(39b3e1c0) SHA1(9f7cfa932bd7dfd0d9ecaadc51655fb557c2e125)) - ROM_FILL (0x28000, 0x8000, 0) -ROM_END - -MSX_LAYOUT_INIT (hx23) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, ROM, 0x10000, 0x20000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Toshiba HX-23F */ - -ROM_START (hx23f) - ROM_REGION (0x30000, "maincpu", 0) - ROM_LOAD ("hx23fbios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("hx23fext.rom", 0x8000, 0x4000, CRC(06e4f5e6) SHA1(f5eb0a396097572589f2a6efeed045044e9425e4)) - /* 0xc000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("hx23fword.rom", 0x20000, 0x8000, CRC(39b3e1c0) SHA1(9f7cfa932bd7dfd0d9ecaadc51655fb557c2e125)) - ROM_FILL (0x28000, 0x8000, 0) -ROM_END - -MSX_LAYOUT_INIT (hx23f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, ROM, 0x10000, 0x20000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Yamaha CX7M */ - -ROM_START (cx7m) - ROM_REGION (0x28000, "maincpu", 0) - ROM_LOAD ("cx7mbios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("cx7mext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - /* 0xc000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("sfg05m.rom", 0x20000, 0x8000, CRC(6c2545c9) SHA1(bc4b242647116f4886bb92e86421f97b1be51938)) -ROM_END - -MSX_LAYOUT_INIT (cx7m) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2 - Yamaha CX7M-128 */ - -ROM_START (cx7m128) - ROM_REGION (0x2c000, "maincpu", 0) - ROM_LOAD ("cx7mbios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("cx7mext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - /* 0xc000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("sfg05m.rom", 0x20000, 0x8000, CRC(6c2545c9) SHA1(bc4b242647116f4886bb92e86421f97b1be51938)) - ROM_LOAD ("yrm502.rom", 0x28000, 0x4000, CRC(51f7ddd1) SHA1(2a4b4a4657e3077df8a88f98210b76883d3702b1)) -ROM_END - -MSX_LAYOUT_INIT (cx7m128) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 1, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/******************************** MSX 2+ **********************************/ - -/* MSX2+ */ - -ROM_START (msx2p) - ROM_REGION (0x48000, "maincpu",0) - ROM_LOAD ("msx2p.rom", 0x0000, 0x8000, CRC(00870134) SHA1(e2fbd56e42da637609d23ae9df9efd1b4241b18a)) - ROM_LOAD ("msx2pext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD_OPTIONAL ("disk.rom", 0xc000, 0x4000, CRC(b7c58fad) SHA1(bc517b4a248c3a1338c5efc937b0128b6a783808)) - ROM_LOAD_OPTIONAL ("fmpac.rom", 0x10000, 0x10000, CRC(0e84505d) SHA1(9d789166e3caf28e4742fe933d962e99618c633d)) - ROM_LOAD ("msx2pkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("msx2pkfn.rom", 0x28000, 0x20000, CRC(b244f6cf) SHA1(e0e99cd91e88ce2676445663f832c835d74d6fd4)) -ROM_END - -MSX_LAYOUT_INIT (msx2p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x28000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Panasonic FS-A1FX */ - -ROM_START (fsa1fx) - ROM_REGION (0x50000, "maincpu",0) - ROM_LOAD ("a1fxbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("a1fxext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1fxdisk.rom", 0xc000, 0x4000, CRC(2bda0184) SHA1(2a0d228afde36ac7c5d3c2aac9c7c664dd071a8c)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1fxkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("a1fxcock.rom", 0x28000, 0x8000, CRC(f662e6eb) SHA1(9d67fab55b85f4ac4f5924323a70020eb8589057)) - ROM_LOAD ("a1fxkfn.rom", 0x30000, 0x20000, CRC(b244f6cf) SHA1(e0e99cd91e88ce2676445663f832c835d74d6fd4)) -ROM_END - -MSX_LAYOUT_INIT (fsa1fx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Panasonic FS-A1WSX */ - -ROM_START (fsa1wsx) - ROM_REGION (0x270000, "maincpu",0) - ROM_LOAD ("a1wsbios.rom", 0x0000, 0x8000, CRC(358ec547) SHA1(f4433752d3bf876bfefb363c749d4d2e08a218b6)) - ROM_LOAD ("a1wsext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1wsdisk.rom", 0xc000, 0x4000, CRC(ac7d92b4) SHA1(b7068e2aab02072852ca249596b7550ac632c4c2)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1wskdr.rom", 0x20000, 0x8000, CRC(b4fc574d) SHA1(dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06)) - ROM_LOAD ("a1wsmusp.rom", 0x28000, 0x4000, CRC(456e494e) SHA1(6354ccc5c100b1c558c9395fa8c00784d2e9b0a3)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("a1wskfn.rom", 0x30000, 0x40000, CRC(1f6406fb) SHA1(5aff2d9b6efc723bc395b0f96f0adfa83cc54a49)) - ROM_LOAD ("a1wsfirm.rom", 0x70000, 0x200000, CRC(e363595d) SHA1(3330d9b6b76e3c4ccb7cf252496ed15d08b95d3f)) -ROM_END - -MSX_LAYOUT_INIT (fsa1wsx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 1, 4, PANASONIC08, 0x200000, 0x70000) */ /* Panasonic 08KB Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Panasonic FS-A1WX */ - -ROM_START (fsa1wx) - ROM_REGION (0x270000, "maincpu",0) - ROM_LOAD ("a1wxbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("a1wxext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1wxdisk.rom", 0xc000, 0x4000, CRC(2bda0184) SHA1(2a0d228afde36ac7c5d3c2aac9c7c664dd071a8c)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1wxkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("a1wxmusp.rom", 0x28000, 0x4000, CRC(456e494e) SHA1(6354ccc5c100b1c558c9395fa8c00784d2e9b0a3)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("a1wxkfn.rom", 0x30000, 0x40000, CRC(1f6406fb) SHA1(5aff2d9b6efc723bc395b0f96f0adfa83cc54a49)) - ROM_LOAD ("a1wxfirm.rom", 0x70000, 0x200000, CRC(283f3250) SHA1(d37ab4bd2bfddd8c97476cbe7347ae581a6f2972)) -ROM_END - -MSX_LAYOUT_INIT (fsa1wx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 1, 4, PANASONIC08, 0x200000, 0x70000) */ /* Panasonic 08KB Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Panasonic FS-A1WX (a) */ -ROM_START (fsa1wxa) - ROM_REGION (0x270000, "maincpu",0) - ROM_LOAD ("a1wxbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("a1wxext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1wxdisk.rom", 0xc000, 0x4000, CRC(2bda0184) SHA1(2a0d228afde36ac7c5d3c2aac9c7c664dd071a8c)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1wxkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("a1wxmusp.rom", 0x28000, 0x4000, CRC(456e494e) SHA1(6354ccc5c100b1c558c9395fa8c00784d2e9b0a3)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("a1wxkfn.rom", 0x30000, 0x40000, CRC(1f6406fb) SHA1(5aff2d9b6efc723bc395b0f96f0adfa83cc54a49)) - ROM_LOAD ("a1wxfira.rom", 0x70000, 0x200000, CRC(58440a8e) SHA1(8e0d4a77e7d5736e8225c2df4701509363eb230f)) -ROM_END - -MSX_LAYOUT_INIT (fsa1wxa) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 1, 4, PANASONIC08, 0x200000, 0x70000) */ /* Panasonic 08KB Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Sanyo Wavy PHC-35J */ - -ROM_START (phc35j) - ROM_REGION (0x48000, "maincpu",0) - ROM_LOAD ("35jbios.rom", 0x0000, 0x8000, CRC(358ec547) SHA1(f4433752d3bf876bfefb363c749d4d2e08a218b6)) - ROM_LOAD ("35jext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - /* 0x0c000 - 0x1ffff reserved for optional disk and fmpac roms from msx2p parent set */ - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("35jkdr.rom", 0x20000, 0x8000, CRC(b4fc574d) SHA1(dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06)) - ROM_LOAD ("35jkfn.rom", 0x28000, 0x20000, CRC(c9651b32) SHA1(84a645becec0a25d3ab7a909cde1b242699a8662)) -ROM_END - -MSX_LAYOUT_INIT (phc35j) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_KANJI (0x28000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Sanyo Wavy PHC-70FD1 */ - -ROM_START (phc70fd) - ROM_REGION (0x50000, "maincpu",0) - ROM_LOAD ("70fdbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("70fdext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("70fddisk.rom", 0xc000, 0x4000, CRC(db7f1125) SHA1(9efa744be8355675e7bfdd3976bbbfaf85d62e1d)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("70fdkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("70fdmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_LOAD ("70fdbas.rom", 0x2c000, 0x4000, CRC(da7be246) SHA1(22b3191d865010264001b9d896186a9818478a6b)) - ROM_LOAD ("70fdkfn.rom", 0x30000, 0x20000, CRC(c9651b32) SHA1(84a645becec0a25d3ab7a909cde1b242699a8662)) -ROM_END - -MSX_LAYOUT_INIT (phc70fd) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 3, 2, 1, ROM, 0x4000, 0x2c000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Sanyo Wavy PHC-70FD2 */ -ROM_START (phc70fd2) - ROM_REGION (0x70000, "maincpu",0) - ROM_LOAD ("70f2bios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("70f2ext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("70f2disk.rom", 0xc000, 0x4000, CRC(db7f1125) SHA1(9efa744be8355675e7bfdd3976bbbfaf85d62e1d)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("70f2kdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("70f2mus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_LOAD ("70f2bas.rom", 0x2c000, 0x4000, CRC(da7be246) SHA1(22b3191d865010264001b9d896186a9818478a6b)) - ROM_LOAD ("70f2kfn.rom", 0x30000, 0x40000, CRC(9a850db9) SHA1(bcdb4dae303dfe5234f372d70a5e0271d3202c36)) -ROM_END - -MSX_LAYOUT_INIT (phc70fd2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 3, 2, 1, ROM, 0x4000, 0x2c000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Sony HB-F1XDJ */ - -ROM_START (hbf1xdj) - ROM_REGION (0x170000, "maincpu",0) - ROM_LOAD ("f1xjbios.rom", 0x0000, 0x8000, CRC(00870134) SHA1(e2fbd56e42da637609d23ae9df9efd1b4241b18a)) - ROM_LOAD ("f1xjext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("f1xjdisk.rom", 0xc000, 0x4000, CRC(a21f5266) SHA1(c1bb307a570ab833e3bfcc4a58a4f4e12dc1df0f)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f1xjkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("f1xjmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("f1xjkfn.rom", 0x30000, 0x40000, CRC(7016dfd0) SHA1(218d91eb6df2823c924d3774a9f455492a10aecb)) - ROM_LOAD ("f1xjfirm.rom", 0x70000, 0x100000, CRC(77be583f) SHA1(ade0c5ba5574f8114d7079050317099b4519e88f)) -ROM_END - -MSX_LAYOUT_INIT (hbf1xdj) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) -/* MSX_LAYOUT_SLOT (0, 3, 1, 4, SONY08, 0x100000, 0x70000) */ /* Sony 08KB MSX-JE Mapper must be emulated */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -/* MSX2+ - Sony HB-F1XV */ - -ROM_START (hbf1xv) - ROM_REGION (0x170000, "maincpu",0) - ROM_LOAD ("f1xvbios.rom", 0x0000, 0x8000, CRC(2c7ed27b) SHA1(174c9254f09d99361ff7607630248ff9d7d8d4d6)) - ROM_LOAD ("f1xvext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("f1xvdisk.rom", 0xc000, 0x4000, CRC(04e4e533) SHA1(5a4e7dbbfb759109c7d2a3b38bda9c60bf6ffef5)) - /* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2p parent set */ - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f1xvkdr.rom", 0x20000, 0x8000, CRC(b4fc574d) SHA1(dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06)) - ROM_LOAD ("f1xvmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("f1xvkfn.rom", 0x30000, 0x40000, CRC(7016dfd0) SHA1(218d91eb6df2823c924d3774a9f455492a10aecb)) - ROM_LOAD ("f1xvfirm.rom", 0x70000, 0x100000, CRC(77be583f) SHA1(ade0c5ba5574f8114d7079050317099b4519e88f)) -ROM_END - -MSX_LAYOUT_INIT (hbf1xv) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) -/* MSX_LAYOUT_SLOT (0, 3, 1, 4, SONY08, 0x100000, 0x70000) */ /* Sony 08KB MSX-JE Mapper must be emulated */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -MSX_DRIVER_LIST - /* MSX 1 */ - MSX_DRIVER (msx) - MSX_DRIVER (ax170) - MSX_DRIVER (canonv10) - MSX_DRIVER (canonv20) - MSX_DRIVER (dpc100) - MSX_DRIVER (dpc180) - MSX_DRIVER (dpc200) - MSX_DRIVER (gsfc200) - MSX_DRIVER (expert10) - MSX_DRIVER (expert11) - MSX_DRIVER (expert13) - MSX_DRIVER (expert20) - MSX_DRIVER (expertdp) - MSX_DRIVER (expertpl) - MSX_DRIVER (jvchc7gb) - MSX_DRIVER (mlf80) - MSX_DRIVER (mlfx1) - MSX_DRIVER (cf1200) - MSX_DRIVER (cf2000) - MSX_DRIVER (cf2700) - MSX_DRIVER (cf3000) - MSX_DRIVER (cf3300) - MSX_DRIVER (fs1300) - MSX_DRIVER (fs4000) - MSX_DRIVER (nms801) - MSX_DRIVER (vg802000) - MSX_DRIVER (vg802020) - MSX_DRIVER (piopx7) - MSX_DRIVER (mpc100) - MSX_DRIVER (hotbit11) - MSX_DRIVER (hotbit12) - MSX_DRIVER (hotbi13b) - MSX_DRIVER (hotbi13p) - MSX_DRIVER (hotbit20) - MSX_DRIVER (hb10p) - MSX_DRIVER (hb20p) - MSX_DRIVER (hb201) - MSX_DRIVER (hb201p) - MSX_DRIVER (hb501p) - MSX_DRIVER (hb55d) - MSX_DRIVER (hb55p) - MSX_DRIVER (hb75d) - MSX_DRIVER (hb75p) - MSX_DRIVER (svi728) - MSX_DRIVER (svi738) - MSX_DRIVER (svi738sw) - MSX_DRIVER (tadpc200) - MSX_DRIVER (tadpc20a) - MSX_DRIVER (hx10) - MSX_DRIVER (hx10s) - MSX_DRIVER (hx20) - MSX_DRIVER (cx5m) - MSX_DRIVER (cx5m128) - MSX_DRIVER (cx5m2) - MSX_DRIVER (yis303) - MSX_DRIVER (yis503) - MSX_DRIVER (yis503ii) - MSX_DRIVER (y503iir) - MSX_DRIVER (y503iir2) - MSX_DRIVER (yis503m) - MSX_DRIVER (yc64) - MSX_DRIVER (bruc100) - - - - MSX_DRIVER (msx2) - MSX_DRIVER (ax350) - MSX_DRIVER (ax370) - MSX_DRIVER (nms8220) - MSX_DRIVER (nms8220a) - MSX_DRIVER (vg8230) - MSX_DRIVER (vg8235) - MSX_DRIVER (vg8235f) - MSX_DRIVER (vg8240) - MSX_DRIVER (nms8245) - MSX_DRIVER (nms8245f) - MSX_DRIVER (nms8250) - MSX_DRIVER (nms8255) - MSX_DRIVER (nms8280) - MSX_DRIVER (nms8280g) - MSX_DRIVER (hbf9p) - MSX_DRIVER (hbf9s) - MSX_DRIVER (hbf500p) - MSX_DRIVER (hbf700d) - MSX_DRIVER (hbf700f) - MSX_DRIVER (hbf700p) - MSX_DRIVER (hbf700s) - MSX_DRIVER (hbg900ap) - MSX_DRIVER (hbg900p) - MSX_DRIVER (fs5500) - MSX_DRIVER (fs4500) - MSX_DRIVER (fs4700) - MSX_DRIVER (fs5000) - MSX_DRIVER (fs4600) - MSX_DRIVER (fsa1) - MSX_DRIVER (fsa1a) - MSX_DRIVER (fsa1mk2) - MSX_DRIVER (fsa1f) - MSX_DRIVER (fsa1fm) - MSX_DRIVER (hbf500) - MSX_DRIVER (hbf900) - MSX_DRIVER (hbf900a) - MSX_DRIVER (hbf1) - MSX_DRIVER (hbf12) - MSX_DRIVER (hbf1xd) - MSX_DRIVER (hbf1xdm2) - MSX_DRIVER (phc23) - MSX_DRIVER (cpc300) - MSX_DRIVER (cpc300e) - MSX_DRIVER (cpc400) - MSX_DRIVER (cpc400s) - MSX_DRIVER (msx2p) - MSX_DRIVER (fsa1fx) - MSX_DRIVER (fsa1wx) - MSX_DRIVER (fsa1wxa) - MSX_DRIVER (fsa1wsx) - MSX_DRIVER (hbf1xdj) - MSX_DRIVER (hbf1xv) - MSX_DRIVER (phc70fd) - MSX_DRIVER (phc70fd2) - MSX_DRIVER (phc35j) - - MSX_DRIVER (tpc310) - MSX_DRIVER (hx23) - MSX_DRIVER (hx23f) - MSX_DRIVER (cx7m) - MSX_DRIVER (cx7m128) - -MSX_DRIVER_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1983, msx, 0, 0, msx_pal, msx, msx, "ASCII & Microsoft", "MSX" , 0) - -COMP(1983, ax170, msx, 0, msx_pal, msx, msx, "Al Alamiah", "AX-170" , 0) -COMP(1983, canonv10, msx, 0, msx_pal, msx, msx, "Canon", "V-10" , 0) -COMP(1983, canonv20, msx, 0, msx_pal, msx, msx, "Canon", "V-20" , 0) -COMP(1984, dpc100, msx, 0, msx, msxkr, msx, "Daewoo", "IQ-1000 DPC-100 (Korea)" , 0) -COMP(1984, dpc180, msx, 0, msx, msxkr, msx, "Daewoo", "IQ-1000 DPC-180 (Korea)" , 0) -COMP(1984, dpc200, msx, 0, msx, msxkr, msx, "Daewoo", "IQ-1000 DPC-200 (Korea)" , 0) -COMP(1983, gsfc200, msx, 0, msx_pal, msx, msx, "Goldstar", "FC-200" , 0) -COMP(1983, expert10, msx, 0, msx, expert10, msx, "Gradiente", "Expert 1.0 (Brazil)" , 0) -COMP(1984, expert11, msx, 0, msx, expert11, msx, "Gradiente", "Expert 1.1 (Brazil)" , 0) -COMP(1984, expert13, msx, 0, msx, expert11, msx, "Gradiente", "Expert 1.3 (Brazil)" , 0) -COMP(1985, expertdp, msx, 0, msx, expert11, msx, "Gradiente", "Expert DDPlus (Brazil)", 0 ) -COMP(1984, expertpl, msx, 0, msx, expert11, msx, "Gradiente", "Expert Plus (Brazil)" , 0) -COMP(1983, jvchc7gb, msx, 0, msx_pal, msx, msx, "JVC", "HC-7GB" , 0) -COMP(1983, mlf80, msx, 0, msx_pal, msx, msx, "Mitsubishi", "ML-F80" , 0) -COMP(1983, mlfx1, msx, 0, msx_pal, msx, msx, "Mitsubishi", "ML-FX1" , 0) -COMP(1984, cf1200, msx, 0, msx, msxjp, msx, "National / Matsushita", "CF-1200 (Japan)" , 0) -COMP(1983, cf2000, msx, 0, msx, msxjp, msx, "National / Matsushita", "CF-2000 (Japan)" , 0) -COMP(1984, cf2700, msx, 0, msx, msxjp, msx, "National / Matsushita", "CF-2700 (Japan)" , 0) -COMP(1984, cf3000, msx, 0, msx, msxjp, msx, "National / Matsushita", "CF-3000 (Japan)" , 0) -COMP(1985, cf3300, msx, 0, msx, msxjp, msx, "National / Matsushita", "CF-3300 (Japan)", 0 ) -COMP(1985, fs1300, msx, 0, msx, msxjp, msx, "National / Matsushita", "FS-1300 (Japan)" , 0) -COMP(1985, fs4000, msx, 0, msx, msxjp, msx, "National / Matsushita", "FS-4000 (Japan)" , 0) -COMP(1983, nms801, msx, 0, msx_pal, msx, msx, "Philips", "NMS-801" , 0) -COMP(1984, vg8000, msx, 0, msx, msx, msx, "Philips", "VG-8000" , GAME_NOT_WORKING) -COMP(1984, vg8010, msx, 0, msx, msx, msx, "Philips", "VG-8010" , GAME_NOT_WORKING) -COMP(1984, vg8010f, msx, 0, msx, msx, msx, "Philips", "VG-8010F" , GAME_NOT_WORKING) -COMP(1985, vg802000, msx, 0, msx, msx, msx, "Philips", "VG-8020-00" , 0) -COMP(1985, vg802020, msx, 0, msx, msx, msx, "Philips", "VG-8020-20" , 0) -COMP(1985, piopx7, msx, 0, msx_pal, msx, msx, "Pioneer", "PX-07" , 0) -COMP(1985, mpc100, msx, 0, msx_pal, msx, msx, "Sanyo", "MPC-100" , 0) -COMP(1985, hotbit11, msx, 0, msx, hotbit, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.1" , 0) -COMP(1985, hotbit12, msx, 0, msx, hotbit, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.2" , 0) -COMP(1985, hotbi13b, msx, 0, msx, hotbit, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.3b" , 0) -COMP(1985, hotbi13p, msx, 0, msx, hotbit, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.3p" , 0) -COMP(1985, hb10p, msx, 0, msx_pal, msx, msx, "Sony", "HB-10P" , 0) -COMP(1985, hb20p, msx, 0, msx_pal, msx, msx, "Sony", "HB-20P (Spanish)" , 0) -COMP(1985, hb201, msx, 0, msx, msxjp, msx, "Sony", "HB-201 (Japan)" , 0) -COMP(1985, hb201p, msx, 0, msx_pal, msx, msx, "Sony", "HB-201P" , 0) -COMP(1984, hb501p, msx, 0, msx_pal, msx, msx, "Sony", "HB-501P" , 0) -COMP(1983, hb55d, msx, 0, msx_pal, msx, msx, "Sony", "HB-55D (Germany)" , 0) -COMP(1983, hb55p, msx, 0, msx_pal, msx, msx, "Sony", "HB-55P" , 0) -COMP(1983, hb75d, msx, 0, msx_pal, msx, msx, "Sony", "HB-75D (Germany)" , 0) -COMP(1983, hb75p, msx, 0, msx_pal, msx, msx, "Sony", "HB-75P" , 0) -COMP(1985, svi728, msx, 0, msx_pal, msx, msx, "Spectravideo", "SVI-728", 0 ) -COMP(1985, svi738, msx, 0, msx_pal, msx, msx, "Spectravideo", "SVI-738", 0 ) -COMP(1985, svi738sw, msx, 0, msx_pal, msx, msx, "Spectravideo", "SVI-738 (Swedish)", 0 ) -COMP(1983, tadpc200, msx, 0, msx_pal, msx, msx, "Talent", "DPC-200" , 0) -COMP(1983, tadpc20a, msx, 0, msx_pal, msx, msx, "Talent", "DPC-200A" , 0) -COMP(1984, hx10, msx, 0, msx_pal, msx, msx, "Toshiba", "HX-10" , 0) -COMP(1984, hx10s, msx, 0, msx_pal, msx, msx, "Toshiba", "HX-10S" , 0) -COMP(1984, hx20, msx, 0, msx_pal, msx, msx, "Toshiba", "HX-20" , 0) -COMP(1984, cx5m, msx, 0, msx_pal, msx, msx, "Yamaha", "CX5M" , GAME_NOT_WORKING) -COMP(1984, cx5m128, msx, 0, msx_pal, msx, msx, "Yamaha", "CX5M-128" , GAME_NOT_WORKING) -COMP(1984, cx5m2, msx, 0, msx_pal, msx, msx, "Yamaha", "CX5MII" , GAME_NOT_WORKING) -COMP(1984, yis303, msx, 0, msx_pal, msx, msx, "Yamaha", "YIS303" , 0) -COMP(1984, yis503, msx, 0, msx_pal, msx, msx, "Yamaha", "YIS503" , 0) -COMP(1984, yis503ii,msx, 0, msx_pal, msx, msx, "Yamaha", "YIS503II" , 0) -COMP(1986, y503iir, msx, 0, msx_pal, msx, msx, "Yamaha", "YIS503IIR (Russian)" , 0) -COMP(1986, y503iir2, msx, 0, msx_pal, msx, msx, "Yamaha", "YIS503IIR (Estonian)" , 0) -COMP(1984, yis503m, msx, 0, msx_pal, msx, msx, "Yamaha", "YIS503M" , GAME_NOT_WORKING) -COMP(1984, yc64, msx, 0, msx_pal, msx, msx, "Yashica", "YC-64" , 0) -COMP(1984, bruc100, msx, 0, msx_pal, msx, msx, "Frael", "Bruc 100-1" , 0) - -COMP(1985, msx2, 0, msx,msx2_pal, msx2, msx, "ASCII & Microsoft", "MSX2", 0) -COMP(1986, ax350, msx2, 0, msx2_pal, msx2, msx, "Al Alamiah", "AX-350", 0) -COMP(1986, ax370, msx2, 0, msx2_pal, msx2, msx, "Al Alamiah", "AX-370", 0) -COMP(1986, expert20, msx2, 0, msx2_pal, msx2, msx, "Gradiente", "Expert 2.0 (Brazil)" , GAME_NOT_WORKING) -COMP(1986, nms8220, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8220 (12-jun-1986)", 0) -COMP(1986, nms8220a, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8220 (13-aug-1986)", 0) -COMP(1986, vg8230, msx2, 0, msx2_pal, msx2, msx, "Philips", "VG-8230", 0) -COMP(1986, vg8235, msx2, 0, msx2_pal, msx2, msx, "Philips", "VG-8235", 0) -COMP(1986, vg8235f, msx2, 0, msx2_pal, msx2, msx, "Philips", "VG-8235F", 0) -COMP(1986, vg8240, msx2, 0, msx2_pal, msx2, msx, "Philips", "VG-8240", 0) -COMP(1986, nms8245, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8245", 0) -COMP(1986, nms8245f, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8245F", 0) -COMP(1986, nms8250, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8250", 0) -COMP(1986, nms8255, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8255", 0) -COMP(1986, nms8280, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8280", 0) -COMP(1986, nms8280g, msx2, 0, msx2_pal, msx2, msx, "Philips", "NMS-8280G", 0) -COMP(1985, hbf9p, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F9P" , 0) -COMP(1985, hbf9s, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F9S" , 0) -COMP(1985, hbf500p, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F500P", 0) -COMP(1985, hbf700d, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F700D (Germany)" , 0) -COMP(1985, hbf700f, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F700F" , 0) -COMP(1985, hbf700p, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F700P" , 0) -COMP(1985, hbf700s, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-F700S (Spain)", 0) -COMP(1986, hbg900ap, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-G900AP", 0 ) -COMP(1986, hbg900p, msx2, 0, msx2_pal, msx2, msx, "Sony", "HB-G900P", 0 ) -COMP(1986, hotbit20, msx2, 0, msx2_pal, msx2, msx, "Sharp / Epcom", "HB-8000 Hotbit 2.0" , GAME_NOT_WORKING) -COMP(1986, tpc310, msx2, 0, msx2_pal, msx2, msx, "Talent", "TPC-310", 0) -COMP(1986, hx23, msx2, 0, msx2_pal, msx2, msx, "Toshiba", "HX-23", 0) -COMP(1986, hx23f, msx2, 0, msx2_pal, msx2, msx, "Toshiba", "HX-23F", 0) -COMP(1986, cx7m, msx2, 0, msx2_pal,msx2, msx, "Yamaha", "CX7M" , GAME_NOT_WORKING) -COMP(1986, cx7m128, msx2, 0, msx2_pal,msx2, msx, "Yamaha", "CX7M-128" , GAME_NOT_WORKING) -COMP(1985, fs5500, msx2, 0, msx2, msx2jp, msx, "National / Matsushita", "FS-5500F1/F2 (Japan)", 0 ) -COMP(1986, fs4500, msx2, 0, msx2, msx2jp, msx, "National / Matsushita", "FS-4500 (Japan)", 0 ) -COMP(1986, fs4700, msx2, 0, msx2, msx2jp, msx, "National / Matsushita", "FS-4700 (Japan)", 0 ) -COMP(1986, fs5000, msx2, 0, msx2, msx2jp, msx, "National / Matsushita", "FS-5000F2 (Japan)", 0 ) -COMP(1986, fs4600, msx2, 0, msx2, msx2jp, msx, "National / Matsushita", "FS-4600 (Japan)", 0 ) -COMP(1986, fsa1, msx2, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1 / 1st released version (Japan)", 0) -COMP(1986, fsa1a, msx2, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1 / 2nd released version (Japan)", 0) -COMP(1987, fsa1mk2, msx2, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1MK2 (Japan)", 0) -COMP(1987, fsa1f, msx2, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1F (Japan)", 0 ) -COMP(1987, fsa1fm, msx2, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1FM (Japan)", 0 ) -COMP(1986, hbf500, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F500 (Japan)", 0) -COMP(1986, hbf900, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F900 / 1st released version (Japan)", 0) -COMP(1986, hbf900a, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F900 / 2nd released version (Japan)", 0) -COMP(1986, hbf1, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F1 (Japan)", GAME_NOT_WORKING ) -COMP(1987, hbf12, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F1II (Japan)", GAME_NOT_WORKING ) -COMP(1987, hbf1xd, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F1XD (Japan)", 0) -COMP(1988, hbf1xdm2, msx2, 0, msx2, msx2jp, msx, "Sony", "HB-F1XDMK2 (Japan)", 0) -COMP(1988, phc23, msx2, 0, msx2, msx2jp, msx, "Sanyo", "WAVY PHC-23 (Japan)", 0) - -COMP(1986, cpc300, msx2, 0, msx2, msx2kr, msx, "Daewoo", "IQ-2000 CPC-300 (Korea)", 0) -COMP(1986, cpc300e, msx2, 0, msx2, msx2kr, msx, "Daewoo", "IQ-2000 CPC-300E (Korea)", 0) -COMP(1986, cpc400, msx2, 0, msx2, msx2kr, msx, "Daewoo", "X-II CPC-400 (Korea)", 0 ) -COMP(1986, cpc400s, msx2, 0, msx2, msx2kr, msx, "Daewoo", "X-II CPC-400S (Korea)", 0 ) -COMP(1988, msx2p, 0, msx,msx2, msx2jp, msx, "ASCII & Microsoft", "MSX2+", 0) -COMP(1988, fsa1fx, msx2p, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1FX (Japan)", 0 ) -COMP(1988, fsa1wx, msx2p, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan)", 0 ) -COMP(1988, fsa1wxa, msx2p, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan)", 0 ) -COMP(1989, fsa1wsx, msx2p, 0, msx2, msx2jp, msx, "Panasonic / Matsushita", "FS-A1WSX (Japan)", 0 ) -COMP(1988, hbf1xdj, msx2p, 0, msx2, msx2jp, msx, "Sony", "HB-F1XDJ (Japan)", 0 ) -COMP(1989, hbf1xv, msx2p, 0, msx2, msx2jp, msx, "Sony", "HB-F1XV (Japan)", 0 ) -COMP(1988, phc70fd, msx2p, 0, msx2, msx2jp, msx, "Sanyo", "WAVY PHC-70FD (Japan)", 0 ) -COMP(1988, phc70fd2, msx2p, 0, msx2, msx2jp, msx, "Sanyo", "WAVY PHC-70FD2 (Japan)", 0 ) -COMP(1989, phc35j, msx2p, 0, msx2, msx2jp, msx, "Sanyo", "WAVY PHC-35J (Japan)", 0) - diff --git a/src/mame/machine/msx_slot.c b/src/mame/machine/msx_slot.c deleted file mode 100644 index 4d47bfc57ce..00000000000 --- a/src/mame/machine/msx_slot.c +++ /dev/null @@ -1,2516 +0,0 @@ -/* - * msx_slot.c : definitions of the different slots - * - * Copyright (C) 2004 Sean Young - * - * Missing: - * - Holy Qu'ran - * like ascii8, with switch address 5000h/5400h/5800h/5c00h, not working. - * - Harry Fox - * 16kb banks, 6000h and 7000h switch address; isn't it really an ascii16? - * - Halnote - * writes to page 0? - * - Playball - * Unemulated D7756C, same as src/drivers/homerun.c - * - Some ascii8 w/ sram need 32kb sram? - * - MegaRAM - * - fmsx painter.rom - */ - -#include "emu.h" -#include "emuopts.h" -#include "machine/i8255.h" -#include "includes/msx_slot.h" -#include "includes/msx.h" -#include "machine/wd17xx.h" -#include "sound/k051649.h" -#include "sound/2413intf.h" -#include "sound/dac.h" -#include "sound/ay8910.h" - -static void msx_cpu_setbank (running_machine &machine, int page, UINT8 *mem) -{ - msx_state *state = machine.driver_data(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - switch (page) - { - case 1: - memory_set_bankptr (machine,"bank1", mem); - break; - case 2: - memory_set_bankptr (machine,"bank2", mem); - break; - case 3: - memory_set_bankptr (machine,"bank3", mem); - break; - case 4: - memory_set_bankptr (machine,"bank4", mem); - memory_set_bankptr (machine,"bank5", mem + 0x1ff8); - space->install_read_bank(0x7ff8, 0x7fff, "bank5"); - break; - case 5: - memory_set_bankptr (machine,"bank6", mem); - memory_set_bankptr (machine,"bank7", mem + 0x1800); - space->install_read_bank(0x9800, 0x9fff, "bank7"); - break; - case 6: - memory_set_bankptr (machine,"bank8", mem); - memory_set_bankptr (machine,"bank9", mem + 0x1800); - space->install_read_bank(0xb800, 0xbfff, "bank9"); - break; - case 7: - memory_set_bankptr (machine,"bank10", mem); - break; - case 8: - memory_set_bankptr (machine,"bank11", mem); - state->m_top_page = mem; - break; - } -} - -MSX_SLOT_INIT(empty) -{ - state->m_type = SLOT_EMPTY; - - return 0; -} - -MSX_SLOT_RESET(empty) -{ - /* reset void */ -} - -MSX_SLOT_MAP(empty) -{ - msx_state *drvstate = machine.driver_data(); - msx_cpu_setbank (machine, page * 2 + 1, drvstate->m_empty); - msx_cpu_setbank (machine, page * 2 + 2, drvstate->m_empty); -} - -MSX_SLOT_INIT(rom) -{ - state->m_type = SLOT_ROM; - state->m_mem = mem; - state->m_size = size; - state->m_start_page = page; - - return 0; -} - -MSX_SLOT_RESET(rom) -{ - /* state-less */ -} - -MSX_SLOT_MAP(rom) -{ - UINT8 *mem = state->m_mem + (page - state->m_start_page) * 0x4000; - - msx_cpu_setbank (machine, page * 2 + 1, mem); - msx_cpu_setbank (machine, page * 2 + 2, mem + 0x2000); -} - -MSX_SLOT_INIT(ram) -{ - state->m_mem = auto_alloc_array(machine, UINT8, size); - memset (state->m_mem, 0, size); - state->m_type = SLOT_RAM; - state->m_start_page = page; - state->m_size = size; - - return 0; -} - -MSX_SLOT_MAP(ram) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem = state->m_mem + (page - state->m_start_page) * 0x4000; - - drvstate->m_ram_pages[page] = mem; - msx_cpu_setbank (machine, page * 2 + 1, mem); - msx_cpu_setbank (machine, page * 2 + 2, mem + 0x2000); -} - -MSX_SLOT_RESET(ram) -{ -} - -MSX_SLOT_INIT(rammm) -{ - int i, mask, nsize; -#ifdef MONMSX - FILE *f; -#endif - - nsize = 0x10000; /* 64 kb */ - mask = 3; - for (i=0; i<6; i++) - { - if (size == nsize) - { - break; - } - mask = (mask << 1) | 1; - nsize <<= 1; - } - if (i == 6) - { - logerror ("ram mapper: error: must be 64kb, 128kb, 256kb, 512kb, " - "1mb, 2mb or 4mb\n"); - return 1; - } - state->m_mem = auto_alloc_array(machine, UINT8, size); - memset (state->m_mem, 0, size); - -#ifdef MONMSX - f = fopen ("/home/sean/msx/hack/monmsx.bin", "r"); - if (f) - { - fseek (f, 6L, SEEK_SET); - fread (state->m_mem, 1, 6151 - 6, f); - fclose (f); - } -#endif - - state->m_type = SLOT_RAM_MM; - state->m_start_page = page; - state->m_size = size; - state->m_bank_mask = mask; - - return 0; -} - -MSX_SLOT_RESET(rammm) -{ - msx_state *drvstate = machine.driver_data(); - int i; - - for (i=0; i<4; i++) - { - drvstate->m_ram_mapper[i] = 3 - i; - } -} - -MSX_SLOT_MAP(rammm) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem = state->m_mem + - 0x4000 * (drvstate->m_ram_mapper[page] & state->m_bank_mask); - - drvstate->m_ram_pages[page] = mem; - msx_cpu_setbank (machine, page * 2 + 1, mem); - msx_cpu_setbank (machine, page * 2 + 2, mem + 0x2000); -} - -MSX_SLOT_INIT(msxdos2) -{ - if (size != 0x10000) - { - logerror ("msxdos2: error: rom file must be 64kb\n"); - return 1; - } - state->m_type = SLOT_MSXDOS2; - state->m_mem = mem; - state->m_size = size; - - return 0; -} - -MSX_SLOT_RESET(msxdos2) -{ - state->m_banks[0] = 0; -} - -MSX_SLOT_MAP(msxdos2) -{ - msx_state *drvstate = machine.driver_data(); - if (page != 1) - { - msx_cpu_setbank (machine, page * 2 + 1, drvstate->m_empty); - msx_cpu_setbank (machine, page * 2 + 2, drvstate->m_empty); - } - else - { - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x4000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[0] * 0x4000 + 0x2000); - } -} - -MSX_SLOT_WRITE(msxdos2) -{ - if (addr == 0x6000) - { - state->m_banks[0] = val & 3; - slot_msxdos2_map (machine, state, 1); - } -} - -MSX_SLOT_INIT(konami) -{ - int banks; - - if (size > 0x200000) - { - logerror ("konami: warning: truncating to 2mb\n"); - size = 0x200000; - return 1; - } - banks = size / 0x2000; - if (size != banks * 0x2000 || (~(banks - 1) % banks)) - { - logerror ("konami: error: must be a 2 power of 8kb\n"); - return 1; - } - state->m_type = SLOT_KONAMI; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(konami) -{ - int i; - - for (i=0; i<4; i++) state->m_banks[i] = i; -} - -MSX_SLOT_MAP(konami) -{ - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, state->m_mem); - msx_cpu_setbank (machine, 2, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 8, state->m_mem + state->m_banks[3] * 0x2000); - } -} - -MSX_SLOT_WRITE(konami) -{ - msx_state *drvstate = machine.driver_data(); - switch (addr) - { - case 0x6000: - state->m_banks[1] = val & state->m_bank_mask; - slot_konami_map (machine, state, 1); - if (drvstate->m_state[0] == state) - { - slot_konami_map (machine, state, 0); - } - break; - case 0x8000: - state->m_banks[2] = val & state->m_bank_mask; - slot_konami_map (machine, state, 2); - if (drvstate->m_state[3] == state) - { - slot_konami_map (machine, state, 3); - } - break; - case 0xa000: - state->m_banks[3] = val & state->m_bank_mask; - slot_konami_map (machine, state, 2); - if (drvstate->m_state[3] == state) - { - slot_konami_map (machine, state, 3); - } - } -} - -MSX_SLOT_INIT(konami_scc) -{ - int banks; - - if (size > 0x200000) - { - logerror ("konami_scc: warning: truncating to 2mb\n"); - size = 0x200000; - return 1; - } - banks = size / 0x2000; - if (size != banks * 0x2000 || (~(banks - 1) % banks)) - { - logerror ("konami_scc: error: must be a 2 power of 8kb\n"); - return 1; - } - - state->m_type = SLOT_KONAMI_SCC; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(konami_scc) -{ - int i; - - for (i=0; i<4; i++) state->m_banks[i] = i; - state->m_cart.scc.active = 0; -} - -static READ8_HANDLER (konami_scc_bank5) -{ - if (offset & 0x80) - { -#if 0 - if ((offset & 0xff) >= 0xe0) - { - /* write 0xff to deformation register */ - } -#endif - return 0xff; - } - else - { - return k051649_waveform_r (space->machine().device("k051649"), offset & 0x7f); - } -} - -MSX_SLOT_MAP(konami_scc) -{ - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 2, state->m_mem + state->m_banks[3] * 0x2000); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); - if (state->m_cart.scc.active ) { - machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x9800, 0x9fff, FUNC(konami_scc_bank5)); - } else { - machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x9800, 0x9fff,"bank7"); - } - break; - case 3: - msx_cpu_setbank (machine, 7, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 8, state->m_mem + state->m_banks[1] * 0x2000); - } -} - -MSX_SLOT_WRITE(konami_scc) -{ - msx_state *drvstate = machine.driver_data(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - if (addr >= 0x5000 && addr < 0x5800) - { - state->m_banks[0] = val & state->m_bank_mask; - slot_konami_scc_map (machine, state, 1); - if (drvstate->m_state[3] == state) - { - slot_konami_scc_map (machine, state, 3); - } - } - else if (addr >= 0x7000 && addr < 0x7800) - { - state->m_banks[1] = val & state->m_bank_mask; - slot_konami_scc_map (machine, state, 1); - if (drvstate->m_state[3] == state) - { - slot_konami_scc_map (machine, state, 3); - } - } - else if (addr >= 0x9000 && addr < 0x9800) - { - state->m_banks[2] = val & state->m_bank_mask; - state->m_cart.scc.active = ((val & 0x3f) == 0x3f); - slot_konami_scc_map (machine, state, 2); - if (drvstate->m_state[0] == state) - { - slot_konami_scc_map (machine, state, 0); - } - } - else if (state->m_cart.scc.active && addr >= 0x9800 && addr < 0xa000) - { - device_t *k051649 = space->machine().device("k051649"); - int offset = addr & 0xff; - - if (offset < 0x80) - { - k051649_waveform_w (k051649, offset, val); - } - else if (offset < 0xa0) - { - offset &= 0xf; - if (offset < 0xa) - { - k051649_frequency_w (k051649, offset, val); - } - else if (offset < 0xf) - { - k051649_volume_w (k051649, offset - 0xa, val); - } - else - { - k051649_keyonoff_w (k051649, 0, val); - } - } -#if 0 - else if (offset >= 0xe0) - { - /* deformation register */ - } -#endif - } - else if (addr >= 0xb000 && addr < 0xb800) - { - state->m_banks[3] = val & state->m_bank_mask; - slot_konami_scc_map (machine, state, 2); - if (drvstate->m_state[0] == state) - { - slot_konami_scc_map (machine, state, 0); - } - } -} - -MSX_SLOT_INIT(ascii8) -{ - int banks; - - if (size > 0x200000) - { - logerror ("ascii8: warning: truncating to 2mb\n"); - size = 0x200000; - return 1; - } - banks = size / 0x2000; - if (size != banks * 0x2000 || (~(banks - 1) % banks)) - { - logerror ("ascii8: error: must be a 2 power of 8kb\n"); - return 1; - } - state->m_type = SLOT_ASCII8; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(ascii8) -{ - int i; - - for (i=0; i<4; i++) state->m_banks[i] = i; -} - -MSX_SLOT_MAP(ascii8) -{ - msx_state *drvstate = machine.driver_data(); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(ascii8) -{ - msx_state *drvstate = machine.driver_data(); - int bank; - - if (addr >= 0x6000 && addr < 0x8000) - { - bank = (addr / 0x800) & 3; - - state->m_banks[bank] = val & state->m_bank_mask; - if (bank <= 1) - { - slot_ascii8_map (machine, state, 1); - } - else if (drvstate->m_state[2] == state) - { - slot_ascii8_map (machine, state, 2); - } - } -} - -MSX_SLOT_INIT(ascii16) -{ - int banks; - - if (size > 0x400000) - { - logerror ("ascii16: warning: truncating to 4mb\n"); - size = 0x400000; - } - banks = size / 0x4000; - if (size != banks * 0x4000 || (~(banks - 1) % banks)) - { - logerror ("ascii16: error: must be a 2 power of 16kb\n"); - return 1; - } - - state->m_type = SLOT_ASCII16; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(ascii16) -{ - int i; - - for (i=0; i<2; i++) state->m_banks[i] = i; -} - -MSX_SLOT_MAP(ascii16) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem; - - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - mem = state->m_mem + state->m_banks[0] * 0x4000; - msx_cpu_setbank (machine, 3, mem); - msx_cpu_setbank (machine, 4, mem + 0x2000); - break; - case 2: - mem = state->m_mem + state->m_banks[1] * 0x4000; - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(ascii16) -{ - msx_state *drvstate = machine.driver_data(); - if (addr >= 0x6000 && addr < 0x6800) - { - state->m_banks[0] = val & state->m_bank_mask; - slot_ascii16_map (machine, state, 1); - } - else if (addr >= 0x7000 && addr < 0x7800) - { - state->m_banks[1] = val & state->m_bank_mask; - if (drvstate->m_state[2] == state) - { - slot_ascii16_map (machine, state, 2); - } - } -} - -MSX_SLOT_INIT(ascii8_sram) -{ - static const char sramfile[] = "ascii8"; - int banks; - - state->m_cart.sram.mem = auto_alloc_array(machine, UINT8, 0x2000); - if (size > 0x100000) - { - logerror ("ascii8_sram: warning: truncating to 1mb\n"); - size = 0x100000; - return 1; - } - banks = size / 0x2000; - if (size != banks * 0x2000 || (~(banks - 1) % banks)) - { - logerror ("ascii8_sram: error: must be a 2 power of 8kb\n"); - return 1; - } - memset (state->m_cart.sram.mem, 0, 0x2000); - state->m_type = SLOT_ASCII8_SRAM; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - state->m_cart.sram.sram_mask = banks; - state->m_cart.sram.empty_mask = ~(banks | (banks - 1)); - if (!state->m_sramfile) - { - state->m_sramfile = sramfile; - } - - return 0; -} - -MSX_SLOT_RESET(ascii8_sram) -{ - int i; - - for (i=0; i<4; i++) state->m_banks[i] = i; -} - -static UINT8 *ascii8_sram_bank_select (msx_state *drvstate, slot_state *state, int bankno) -{ - int bank = state->m_banks[bankno]; - - if (bank & state->m_cart.sram.empty_mask) - { - return drvstate->m_empty; - } - else if (bank & state->m_cart.sram.sram_mask) - { - return state->m_cart.sram.mem; - } - else - { - return state->m_mem + (bank & state->m_bank_mask) * 0x2000; - } -} - -MSX_SLOT_MAP(ascii8_sram) -{ - msx_state *drvstate = machine.driver_data(); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, ascii8_sram_bank_select (drvstate, state, 0)); - msx_cpu_setbank (machine, 4, ascii8_sram_bank_select (drvstate, state, 1)); - break; - case 2: - msx_cpu_setbank (machine, 5, ascii8_sram_bank_select (drvstate, state, 2)); - msx_cpu_setbank (machine, 6, ascii8_sram_bank_select (drvstate, state, 3)); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(ascii8_sram) -{ - msx_state *drvstate = machine.driver_data(); - int bank; - - if (addr >= 0x6000 && addr < 0x8000) - { - bank = (addr / 0x800) & 3; - - state->m_banks[bank] = val; - if (bank <= 1) - { - slot_ascii8_sram_map (machine, state, 1); - } - else if (drvstate->m_state[2] == state) - { - slot_ascii8_sram_map (machine, state, 2); - } - } - if (addr >= 0x8000 && addr < 0xc000) - { - bank = addr < 0xa000 ? 2 : 3; - if (!(state->m_banks[bank] & state->m_cart.sram.empty_mask) && - (state->m_banks[bank] & state->m_cart.sram.sram_mask)) - { - state->m_cart.sram.mem[addr & 0x1fff] = val; - } - } -} - -MSX_SLOT_LOADSRAM(ascii8_sram) -{ - if (!state->m_sramfile) - { - logerror ("ascii8_sram: error: no sram filename provided\n"); - return 1; - } - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_READ); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - if (f.read(state->m_cart.sram.mem, 0x2000) == 0x2000) - { - logerror ("ascii8_sram: info: sram loaded\n"); - return 0; - } - memset (state->m_cart.sram.mem, 0, 0x2000); - logerror ("ascii8_sram: warning: could not read sram file\n"); - return 1; - } - - logerror ("ascii8_sram: warning: could not open sram file for reading\n"); - - return 1; -} - -MSX_SLOT_SAVESRAM(ascii8_sram) -{ - if (!state->m_sramfile) - { - return 0; - } - - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_WRITE); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - f.write(state->m_cart.sram.mem, 0x2000); - logerror ("ascii8_sram: info: sram saved\n"); - - return 0; - } - - logerror ("ascii8_sram: warning: could not open sram file for saving\n"); - - return 1; -} - -MSX_SLOT_INIT(ascii16_sram) -{ - static const char sramfile[] = "ascii16"; - int banks; - - state->m_cart.sram.mem = auto_alloc_array(machine, UINT8, 0x4000); - - if (size > 0x200000) - { - logerror ("ascii16_sram: warning: truncating to 2mb\n"); - size = 0x200000; - } - banks = size / 0x4000; - if (size != banks * 0x4000 || (~(banks - 1) % banks)) - { - logerror ("ascii16_sram: error: must be a 2 power of 16kb\n"); - return 1; - } - - memset (state->m_cart.sram.mem, 0, 0x4000); - state->m_type = SLOT_ASCII16_SRAM; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - state->m_cart.sram.sram_mask = banks; - state->m_cart.sram.empty_mask = ~(banks | (banks - 1)); - if (!state->m_sramfile) - { - state->m_sramfile = sramfile; - } - - return 0; -} - -MSX_SLOT_RESET(ascii16_sram) -{ - int i; - - for (i=0; i<2; i++) state->m_banks[i] = i; -} - -static UINT8 *ascii16_sram_bank_select (msx_state *drvstate, slot_state *state, int bankno) -{ - int bank = state->m_banks[bankno]; - - if (bank & state->m_cart.sram.empty_mask) - { - return drvstate->m_empty; - } - else if (bank & state->m_cart.sram.sram_mask) - { - return state->m_cart.sram.mem; - } - else - { - return state->m_mem + (bank & state->m_bank_mask) * 0x4000; - } -} - -MSX_SLOT_MAP(ascii16_sram) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem; - - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - mem = ascii16_sram_bank_select (drvstate, state, 0); - msx_cpu_setbank (machine, 3, mem); - msx_cpu_setbank (machine, 4, mem + 0x2000); - break; - case 2: - mem = ascii16_sram_bank_select (drvstate, state, 1); - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(ascii16_sram) -{ - msx_state *drvstate = machine.driver_data(); - if (addr >= 0x6000 && addr < 0x6800) - { - state->m_banks[0] = val; - slot_ascii16_sram_map (machine, state, 1); - } - else if (addr >= 0x7000 && addr < 0x7800) - { - state->m_banks[1] = val; - if (drvstate->m_state[2] == state) - { - slot_ascii16_sram_map (machine, state, 2); - } - } - else if (addr >= 0x8000 && addr < 0xc000) - { - if (!(state->m_banks[1] & state->m_cart.sram.empty_mask) && - (state->m_banks[1] & state->m_cart.sram.sram_mask)) - { - int offset, i; - - offset = addr & 0x07ff; - for (i=0; i<8; i++) - { - state->m_cart.sram.mem[offset] = val; - offset += 0x0800; - } - } - } -} - -MSX_SLOT_LOADSRAM(ascii16_sram) -{ - UINT8 *p; - - if (!state->m_sramfile) - { - logerror ("ascii16_sram: error: no sram filename provided\n"); - return 1; - } - - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_READ); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - p = state->m_cart.sram.mem; - - if (f.read(state->m_cart.sram.mem, 0x200) == 0x200) - { - int /*offset,*/ i; - //offset = 0; - for (i=0; i<7; i++) - { - memcpy (p + 0x800, p, 0x800); - p += 0x800; - } - - logerror ("ascii16_sram: info: sram loaded\n"); - return 0; - } - memset (state->m_cart.sram.mem, 0, 0x4000); - logerror ("ascii16_sram: warning: could not read sram file\n"); - return 1; - } - - logerror ("ascii16_sram: warning: could not open sram file for reading\n"); - - return 1; -} - -MSX_SLOT_SAVESRAM(ascii16_sram) -{ - if (!state->m_sramfile) - { - return 0; - } - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_WRITE); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - f.write(state->m_cart.sram.mem, 0x200); - logerror ("ascii16_sram: info: sram saved\n"); - - return 0; - } - - logerror ("ascii16_sram: warning: could not open sram file for saving\n"); - - return 1; -} - -MSX_SLOT_INIT(rtype) -{ - if (!(size == 0x60000 || size == 0x80000)) - { - logerror ("rtype: error: rom file should be exactly 384kb\n"); - return 1; - } - - state->m_type = SLOT_RTYPE; - state->m_mem = mem; - state->m_size = size; - - return 0; -} - -MSX_SLOT_RESET(rtype) -{ - state->m_banks[0] = 15; -} - -MSX_SLOT_MAP(rtype) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem; - - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - mem = state->m_mem + 15 * 0x4000; - msx_cpu_setbank (machine, 3, mem); - msx_cpu_setbank (machine, 4, mem + 0x2000); - break; - case 2: - mem = state->m_mem + state->m_banks[0] * 0x4000; - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(rtype) -{ - msx_state *drvstate = machine.driver_data(); - if (addr >= 0x7000 && addr < 0x8000) - { - int data ; - - if (val & 0x10) - { - data = 0x10 | (val & 7); - } - else - { - data = val & 0x0f; - } - state->m_banks[0] = data; - if (drvstate->m_state[2] == state) - { - slot_rtype_map (machine, state, 2); - } - } -} - -MSX_SLOT_INIT(gmaster2) -{ - UINT8 *p; - static const char sramfile[] = "GameMaster2"; - - if (size != 0x20000) - { - logerror ("gmaster2: error: rom file should be 128kb\n"); - return 1; - } - state->m_type = SLOT_GAMEMASTER2; - state->m_size = size; - state->m_mem = mem; - - p = auto_alloc_array(machine, UINT8, 0x4000); - memset (p, 0, 0x4000); - state->m_cart.sram.mem = p; - if (!state->m_sramfile) - { - state->m_sramfile = sramfile; - } - - return 0; -} - -MSX_SLOT_RESET(gmaster2) -{ - int i; - - for (i=0; i<4; i++) - { - state->m_banks[i] = i; - } -} - -MSX_SLOT_MAP(gmaster2) -{ - switch (page) - { - case 0: - case 1: - msx_cpu_setbank (machine, 1 + page * 2, state->m_mem); /* bank 0 is hardwired */ - if (state->m_banks[1] > 15) - { - msx_cpu_setbank (machine, 2 + page * 2, state->m_cart.sram.mem + - (state->m_banks[1] - 16) * 0x2000); - } - else - { - msx_cpu_setbank (machine, 2 + page * 2, state->m_mem + state->m_banks[1] * 0x2000); - } - break; - case 2: - case 3: - if (state->m_banks[2] > 15) - { - msx_cpu_setbank (machine, 5 + page * 2, state->m_cart.sram.mem + - (state->m_banks[2] - 16) * 0x2000); - } - else - { - msx_cpu_setbank (machine, 5 + page * 2, state->m_mem + state->m_banks[2] * 0x2000); - } - if (state->m_banks[3] > 15) - { - msx_cpu_setbank (machine, 6 + page * 2, state->m_cart.sram.mem + - (state->m_banks[3] - 16) * 0x2000); - } - else - { - msx_cpu_setbank (machine, 6 + page * 2, state->m_mem + state->m_banks[3] * 0x2000); - } - break; - } -} - -MSX_SLOT_WRITE(gmaster2) -{ - msx_state *drvstate = machine.driver_data(); - if (addr >= 0x6000 && addr < 0x7000) - { - if (val & 0x10) - { - val = val & 0x20 ? 17 : 16; - } - else - { - val = val & 15; - } - state->m_banks[1] = val; - slot_gmaster2_map (machine, state, 1); - if (drvstate->m_state[0] == state) - { - slot_gmaster2_map (machine, state, 0); - } - } - else if (addr >= 0x8000 && addr < 0x9000) - { - if (val & 0x10) - { - val = val & 0x20 ? 17 : 16; - } - else - { - val = val & 15; - } - state->m_banks[2] = val; - slot_gmaster2_map (machine, state, 2); - if (drvstate->m_state[3] == state) - { - slot_gmaster2_map (machine, state, 3); - } - } - else if (addr >= 0xa000 && addr < 0xb000) - { - if (val & 0x10) - { - val = val & 0x20 ? 17 : 16; - } - else - { - val = val & 15; - } - state->m_banks[3] = val; - slot_gmaster2_map (machine, state, 2); - if (drvstate->m_state[3] == state) - { - slot_gmaster2_map (machine, state, 3); - } - } - else if (addr >= 0xb000 && addr < 0xc000) - { - addr &= 0x0fff; - switch (state->m_banks[3]) - { - case 16: - state->m_cart.sram.mem[addr] = val; - state->m_cart.sram.mem[addr + 0x1000] = val; - break; - case 17: - state->m_cart.sram.mem[addr + 0x2000] = val; - state->m_cart.sram.mem[addr + 0x3000] = val; - break; - } - } -} - -MSX_SLOT_LOADSRAM(gmaster2) -{ - UINT8 *p; - - p = state->m_cart.sram.mem; - - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_READ); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - if (f.read(p + 0x1000, 0x2000) == 0x2000) - { - memcpy (p, p + 0x1000, 0x1000); - memcpy (p + 0x3000, p + 0x2000, 0x1000); - logerror ("gmaster2: info: sram loaded\n"); - return 0; - } - memset (p, 0, 0x4000); - logerror ("gmaster2: warning: could not read sram file\n"); - return 1; - } - - logerror ("gmaster2: warning: could not open sram file for reading\n"); - - return 1; -} - -MSX_SLOT_SAVESRAM(gmaster2) -{ - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_WRITE); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - f.write(state->m_cart.sram.mem + 0x1000, 0x2000); - logerror ("gmaster2: info: sram saved\n"); - - return 0; - } - - logerror ("gmaster2: warning: could not open sram file for saving\n"); - - return 1; -} - -MSX_SLOT_INIT(diskrom) -{ - if (size != 0x4000) - { - logerror ("diskrom: error: the diskrom should be 16kb\n"); - return 1; - } - - state->m_type = SLOT_DISK_ROM; - state->m_mem = mem; - state->m_size = size; - - return 0; -} - -MSX_SLOT_RESET(diskrom) -{ - device_t *fdc = machine.device("wd179x"); - wd17xx_reset(fdc); -} - -static READ8_HANDLER (msx_diskrom_page1_r) -{ - msx_state *state = space->machine().driver_data(); - device_t *fdc = space->machine().device("wd179x"); - switch (offset) - { - case 0: return wd17xx_status_r (fdc, 0); - case 1: return wd17xx_track_r (fdc, 0); - case 2: return wd17xx_sector_r (fdc, 0); - case 3: return wd17xx_data_r (fdc, 0); - case 7: return state->m_dsk_stat; - default: - return state->m_state[1]->m_mem[offset + 0x3ff8]; - } -} - -static READ8_HANDLER (msx_diskrom_page2_r) -{ - msx_state *state = space->machine().driver_data(); - device_t *fdc = space->machine().device("wd179x"); - if (offset >= 0x7f8) - { - switch (offset) - { - case 0x7f8: - return wd17xx_status_r (fdc, 0); - case 0x7f9: - return wd17xx_track_r (fdc, 0); - case 0x7fa: - return wd17xx_sector_r (fdc, 0); - case 0x7fb: - return wd17xx_data_r (fdc, 0); - case 0x7ff: - return state->m_dsk_stat; - default: - return state->m_state[2]->m_mem[offset + 0x3800]; - } - } - else - { - return 0xff; - } -} - -MSX_SLOT_MAP(diskrom) -{ - msx_state *drvstate = machine.driver_data(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem); - msx_cpu_setbank (machine, 4, state->m_mem + 0x2000); - space->install_legacy_read_handler(0x7ff8, 0x7fff, FUNC(msx_diskrom_page1_r)); - break; - case 2: - msx_cpu_setbank (machine, 5, drvstate->m_empty); - msx_cpu_setbank (machine, 6, drvstate->m_empty); - space->install_legacy_read_handler(0xb800, 0xbfff, FUNC(msx_diskrom_page2_r)); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - break; - } -} - -MSX_SLOT_WRITE(diskrom) -{ - device_t *fdc = machine.device("wd179x"); - if (addr >= 0xa000 && addr < 0xc000) - { - addr -= 0x4000; - } - switch (addr) - { - case 0x7ff8: - wd17xx_command_w (fdc, 0, val); - break; - case 0x7ff9: - wd17xx_track_w (fdc, 0, val); - break; - case 0x7ffa: - wd17xx_sector_w (fdc, 0, val); - break; - case 0x7ffb: - wd17xx_data_w (fdc, 0, val); - break; - case 0x7ffc: - wd17xx_set_side (fdc,val & 1); - state->m_mem[0x3ffc] = val | 0xfe; - break; - case 0x7ffd: - wd17xx_set_drive (fdc,val & 1); - if ((state->m_mem[0x3ffd] ^ val) & 0x40) - { - set_led_status (machine, 0, !(val & 0x40)); - } - state->m_mem[0x3ffd] = (val | 0x7c) & ~0x04; - break; - } -} - -MSX_SLOT_INIT(diskrom2) -{ - if (size != 0x4000) - { - logerror ("diskrom2: error: the diskrom2 should be 16kb\n"); - return 1; - } - - state->m_type = SLOT_DISK_ROM2; - state->m_mem = mem; - state->m_size = size; - - return 0; -} - -MSX_SLOT_RESET(diskrom2) -{ - device_t *fdc = machine.device("wd179x"); - wd17xx_reset (fdc); -} - -static READ8_HANDLER (msx_diskrom2_page1_r) -{ - msx_state *state = space->machine().driver_data(); - device_t *fdc = space->machine().device("wd179x"); - switch (offset) - { - case 0: return wd17xx_status_r(fdc, 0); - case 1: return wd17xx_track_r(fdc, 0); - case 2: return wd17xx_sector_r(fdc, 0); - case 3: return wd17xx_data_r(fdc, 0); - case 4: return state->m_dsk_stat; - default: - return state->m_state[1]->m_mem[offset + 0x3ff8]; - } -} - -static READ8_HANDLER (msx_diskrom2_page2_r) -{ - msx_state *state = space->machine().driver_data(); - device_t *fdc = space->machine().device("wd179x"); - if (offset >= 0x7b8) - { - switch (offset) - { - case 0x7b8: - return wd17xx_status_r (fdc, 0); - case 0x7b9: - return wd17xx_track_r (fdc, 0); - case 0x7ba: - return wd17xx_sector_r (fdc, 0); - case 0x7bb: - return wd17xx_data_r (fdc, 0); - case 0x7bc: - return state->m_dsk_stat; - default: - return state->m_state[2]->m_mem[offset + 0x3800]; - } - } - else - { - return 0xff; - } -} - -MSX_SLOT_MAP(diskrom2) -{ - msx_state *drvstate = machine.driver_data(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem); - msx_cpu_setbank (machine, 4, state->m_mem + 0x2000); - space->install_legacy_read_handler(0x7fb8, 0x7fbc, FUNC(msx_diskrom2_page1_r)); - break; - case 2: - msx_cpu_setbank (machine, 5, drvstate->m_empty); - msx_cpu_setbank (machine, 6, drvstate->m_empty); - space->install_legacy_read_handler(0xb800, 0xbfbc, FUNC(msx_diskrom2_page2_r)); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(diskrom2) -{ - device_t *fdc = machine.device("wd179x"); - if (addr >= 0xa000 && addr < 0xc000) - { - addr -= 0x4000; - } - switch (addr) - { - case 0x7fb8: - wd17xx_command_w (fdc, 0, val); - break; - case 0x7fb9: - wd17xx_track_w (fdc, 0, val); - break; - case 0x7fba: - wd17xx_sector_w (fdc, 0, val); - break; - case 0x7fbb: - wd17xx_data_w (fdc, 0, val); - break; - case 0x7fbc: - wd17xx_set_side (fdc,val & 1); - state->m_mem[0x3fbc] = val | 0xfe; - wd17xx_set_drive (fdc,val & 1); - if ((state->m_mem[0x3fbc] ^ val) & 0x40) - { - set_led_status (machine, 0, !(val & 0x40)); - } - state->m_mem[0x3fbc] = (val | 0x7c) & ~0x04; - break; - } -} - -MSX_SLOT_INIT(synthesizer) -{ - if (size != 0x8000) - { - logerror ("synthesizer: error: rom file must be 32kb\n"); - return 1; - } - state->m_type = SLOT_SYNTHESIZER; - state->m_mem = mem; - state->m_size = size; - - return 0; -} - -MSX_SLOT_RESET(synthesizer) -{ - /* empty */ -} - -MSX_SLOT_MAP(synthesizer) -{ - msx_state *drvstate = machine.driver_data(); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem); - msx_cpu_setbank (machine, 4, state->m_mem + 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + 0x4000); - msx_cpu_setbank (machine, 6, state->m_mem + 0x6000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(synthesizer) -{ - if (addr >= 0x4000 && addr < 0x8000 && !(addr & 0x0010)) - { - dac_data_w (machine.device("dac"), val); - } -} - -MSX_SLOT_INIT(majutsushi) -{ - if (size != 0x20000) - { - logerror ("majutsushi: error: rom file must be 128kb\n"); - return 1; - } - state->m_type = SLOT_MAJUTSUSHI; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = 0x0f; - - return 0; -} - -MSX_SLOT_RESET(majutsushi) -{ - int i; - - for (i=0; i<4; i++) - { - state->m_banks[i] = i; - } -} - -MSX_SLOT_MAP(majutsushi) -{ - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 2, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 8, state->m_mem + state->m_banks[3] * 0x2000); - break; - } -} - -MSX_SLOT_WRITE(majutsushi) -{ - msx_state *drvstate = machine.driver_data(); - if (addr >= 0x5000 && addr < 0x6000) - { - dac_data_w (machine.device("dac"), val); - } - else if (addr >= 0x6000 && addr < 0x8000) - { - state->m_banks[1] = val & 0x0f; - slot_majutsushi_map (machine, state, 1); - if (drvstate->m_state[0] == state) - { - slot_konami_map (machine, state, 0); - } - } - else if (addr >= 0x8000 && addr < 0xc000) - { - state->m_banks[addr < 0xa000 ? 2 : 3] = val & 0x0f; - slot_majutsushi_map (machine, state, 2); - if (drvstate->m_state[3] == state) - { - slot_konami_map (machine, state, 3); - } - } -} - -MSX_SLOT_INIT(fmpac) -{ - static const char sramfile[] = "fmpac.rom"; - UINT8 *p; - int banks; - - if (size > 0x400000) - { - logerror ("fmpac: warning: truncating rom to 4mb\n"); - size = 0x400000; - } - banks = size / 0x4000; - if (size != banks * 0x4000 || (~(banks - 1) % banks)) - { - logerror ("fmpac: error: must be a 2 power of 16kb\n"); - return 1; - } - - if (!strncmp ((char*)mem + 0x18, "PAC2", 4)) - { - state->m_cart.fmpac.sram_support = 1; - p = auto_alloc_array(machine, UINT8, 0x4000); - memset (p, 0, 0x2000); - memset (p + 0x2000, 0xff, 0x2000); - state->m_cart.fmpac.mem = p; - } - else - { - state->m_cart.fmpac.sram_support = 0; - state->m_cart.fmpac.mem = NULL; - } - - state->m_type = SLOT_FMPAC; - state->m_size = size; - state->m_mem = mem; - state->m_bank_mask = banks - 1; - if (!state->m_sramfile) - { - state->m_sramfile = sramfile; - } - - return 0; -} - -MSX_SLOT_RESET(fmpac) -{ - msx_state *drvstate = machine.driver_data(); - int i; - - state->m_banks[0] = 0; - state->m_cart.fmpac.sram_active = 0; - state->m_cart.fmpac.opll_active = 0; - drvstate->m_opll_active = 0; - for (i=0; i<=state->m_bank_mask; i++) - { - state->m_mem[0x3ff6 + i * 0x4000] = 0; - } - - /* NPW 21-Feb-2004 - Adding check for null */ - if (state->m_cart.fmpac.mem) - { - state->m_cart.fmpac.mem[0x3ff6] = 0; - state->m_cart.fmpac.mem[0x3ff7] = 0; - } - - /* IMPROVE: reset sound chip */ -} - -MSX_SLOT_MAP(fmpac) -{ - msx_state *drvstate = machine.driver_data(); - if (page == 1) - { - if (state->m_cart.fmpac.sram_active) - { - msx_cpu_setbank (machine, 3, state->m_cart.fmpac.mem); - msx_cpu_setbank (machine, 4, state->m_cart.fmpac.mem + 0x2000); - } - else - { - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x4000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[0] * 0x4000 + 0x2000); - } - } - else - { - msx_cpu_setbank (machine, page * 2 + 1, drvstate->m_empty); - msx_cpu_setbank (machine, page * 2 + 2, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(fmpac) -{ - msx_state *drvstate = machine.driver_data(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - int i, data; - - if (addr >= 0x4000 && addr < 0x6000 && state->m_cart.fmpac.sram_support) - { - if (state->m_cart.fmpac.sram_active || addr >= 0x5ffe) - { - state->m_cart.fmpac.mem[addr & 0x1fff] = val; - } - - state->m_cart.fmpac.sram_active = - (state->m_cart.fmpac.mem[0x1ffe] == 0x4d && - state->m_cart.fmpac.mem[0x1fff] == 0x69); - } - - switch (addr) - { - case 0x7ff4: - if (state->m_cart.fmpac.opll_active) - { - ym2413_w (space->machine().device("ay8910"), 0, val); - } - break; - case 0x7ff5: - if (state->m_cart.fmpac.opll_active) - { - ym2413_w (space->machine().device("ay8910"), 1, val); - } - break; - case 0x7ff6: - data = val & 0x11; - for (i=0; i<=state->m_bank_mask; i++) - { - state->m_mem[0x3ff6 + i * 0x4000] = data; - } - state->m_cart.fmpac.mem[0x3ff6] = data; - state->m_cart.fmpac.opll_active = val & 1; - if ((drvstate->m_opll_active ^ val) & 1) - { - logerror ("FM-PAC: OPLL %sactivated\n", val & 1 ? "" : "de"); - } - drvstate->m_opll_active = val & 1; - break; - case 0x7ff7: - state->m_banks[0] = val & state->m_bank_mask; - state->m_cart.fmpac.mem[0x3ff7] = val & state->m_bank_mask; - slot_fmpac_map (machine, state, 1); - break; - } -} - -static const char PAC_HEADER[] = "PAC2 BACKUP DATA"; -#define PAC_HEADER_LEN (16) - -MSX_SLOT_LOADSRAM(fmpac) -{ - char buf[PAC_HEADER_LEN]; - - if (!state->m_cart.fmpac.sram_support) - { - logerror ("Your fmpac.rom does not support sram\n"); - return 1; - } - - if (!state->m_sramfile) - { - logerror ("No sram filename provided\n"); - return 1; - } - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_READ); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - if ((f.read(buf, PAC_HEADER_LEN) == PAC_HEADER_LEN) && - !strncmp (buf, PAC_HEADER, PAC_HEADER_LEN) && - f.read(state->m_cart.fmpac.mem, 0x1ffe)) - { - logerror ("fmpac: info: sram loaded\n"); - return 0; - } - else - { - logerror ("fmpac: warning: failed to load sram\n"); - return 1; - } - } - - logerror ("fmpac: warning: could not open sram file\n"); - return 1; -} - -MSX_SLOT_SAVESRAM(fmpac) -{ - if (!state->m_cart.fmpac.sram_support || !state->m_sramfile) - { - return 0; - } - - emu_file f(machine.options().memcard_directory(), OPEN_FLAG_WRITE); - file_error filerr = f.open(state->m_sramfile); - if (filerr == FILERR_NONE) - { - if ((f.write(PAC_HEADER, PAC_HEADER_LEN) == PAC_HEADER_LEN) && - (f.write(state->m_cart.fmpac.mem, 0x1ffe) == 0x1ffe)) - { - logerror ("fmpac: info: sram saved\n"); - return 0; - } - else - { - logerror ("fmpac: warning: sram save to file failed\n"); - return 1; - } - } - - logerror ("fmpac: warning: could not open sram file for writing\n"); - - return 1; -} - -MSX_SLOT_INIT(superloadrunner) -{ - if (size != 0x20000) - { - logerror ("superloadrunner: error: rom file should be exactly " - "128kb\n"); - return 1; - } - state->m_type = SLOT_SUPERLOADRUNNER; - state->m_mem = mem; - state->m_size = size; - state->m_start_page = page; - state->m_bank_mask = 7; - - return 0; -} - -MSX_SLOT_RESET(superloadrunner) -{ - msx_state *drvstate = machine.driver_data(); - drvstate->m_superloadrunner_bank = 0; -} - -MSX_SLOT_MAP(superloadrunner) -{ - msx_state *drvstate = machine.driver_data(); - if (page == 2) - { - UINT8 *mem = state->m_mem + - (drvstate->m_superloadrunner_bank & state->m_bank_mask) * 0x4000; - - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - } - else - { - msx_cpu_setbank (machine, page * 2 + 1, drvstate->m_empty); - msx_cpu_setbank (machine, page * 2 + 2, drvstate->m_empty); - } -} - -MSX_SLOT_INIT(crossblaim) -{ - if (size != 0x10000) - { - logerror ("crossblaim: error: rom file should be exactly 64kb\n"); - return 1; - } - state->m_type = SLOT_CROSS_BLAIM; - state->m_mem = mem; - state->m_size = size; - - return 0; -} - -MSX_SLOT_RESET(crossblaim) -{ - state->m_banks[0] = 1; -} - -MSX_SLOT_MAP(crossblaim) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem; - - /* This might look odd, but it's what happens on the real cartridge */ - - switch (page) - { - case 0: - if (state->m_banks[0] < 2){ - mem = state->m_mem + state->m_banks[0] * 0x4000; - msx_cpu_setbank (machine, 1, mem); - msx_cpu_setbank (machine, 2, mem + 0x2000); - } - else - { - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - } - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem); - msx_cpu_setbank (machine, 4, state->m_mem + 0x2000); - break; - case 2: - mem = state->m_mem + state->m_banks[0] * 0x4000; - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - break; - case 3: - if (state->m_banks[0] < 2){ - mem = state->m_mem + state->m_banks[0] * 0x4000; - msx_cpu_setbank (machine, 7, mem); - msx_cpu_setbank (machine, 8, mem + 0x2000); - } - else - { - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } - } -} - -MSX_SLOT_WRITE(crossblaim) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 block = val & 3; - - if (!block) block = 1; - state->m_banks[0] = block; - - if (drvstate->m_state[0] == state) - { - slot_crossblaim_map (machine, state, 0); - } - if (drvstate->m_state[2] == state) - { - slot_crossblaim_map (machine, state, 2); - } - if (drvstate->m_state[3] == state) - { - slot_crossblaim_map (machine, state, 3); - } -} - -MSX_SLOT_INIT(korean80in1) -{ - int banks; - - if (size > 0x200000) - { - logerror ("korean-80in1: warning: truncating to 2mb\n"); - size = 0x200000; - } - banks = size / 0x2000; - if (size != banks * 0x2000 || (~(banks - 1) % banks)) - { - logerror ("korean-80in1: error: must be a 2 power of 8kb\n"); - return 1; - } - state->m_type = SLOT_KOREAN_80IN1; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(korean80in1) -{ - int i; - - for (i=0; i<4; i++) - { - state->m_banks[i] = i; - } -} - -MSX_SLOT_MAP(korean80in1) -{ - msx_state *drvstate = machine.driver_data(); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(korean80in1) -{ - msx_state *drvstate = machine.driver_data(); - int bank; - - if (addr >= 0x4000 && addr < 0x4004) - { - bank = addr & 3; - - state->m_banks[bank] = val & state->m_bank_mask; - if (bank <= 1) - { - slot_korean80in1_map (machine, state, 1); - } - else if (drvstate->m_state[2] == state) - { - slot_korean80in1_map (machine, state, 2); - } - } -} - -MSX_SLOT_INIT(korean90in1) -{ - int banks; - - if (size > 0x100000) - { - logerror ("korean-90in1: warning: truncating to 1mb\n"); - size = 0x100000; - } - banks = size / 0x4000; - if (size != banks * 0x4000 || (~(banks - 1) % banks)) - { - logerror ("korean-90in1: error: must be a 2 power of 16kb\n"); - return 1; - } - state->m_type = SLOT_KOREAN_90IN1; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(korean90in1) -{ - msx_state *drvstate = machine.driver_data(); - drvstate->m_korean90in1_bank = 0; -} - -MSX_SLOT_MAP(korean90in1) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem; - UINT8 mask = (drvstate->m_korean90in1_bank & 0xc0) == 0x80 ? 0x3e : 0x3f; - mem = state->m_mem + - ((drvstate->m_korean90in1_bank & mask) & state->m_bank_mask) * 0x4000; - - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - msx_cpu_setbank (machine, 3, mem); - msx_cpu_setbank (machine, 4, mem + 0x2000); - break; - case 2: - switch (drvstate->m_korean90in1_bank & 0xc0) - { - case 0x80: /* 32 kb mode */ - mem += 0x4000; - default: /* ie. 0x00 and 0x40: same memory as page 1 */ - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - break; - case 0xc0: /* same memory as page 1, but swap lower/upper 8kb */ - msx_cpu_setbank (machine, 5, mem + 0x2000); - msx_cpu_setbank (machine, 6, mem); - break; - } - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_INIT(korean126in1) -{ - int banks; - - if (size > 0x400000) - { - logerror ("korean-126in1: warning: truncating to 4mb\n"); - size = 0x400000; - } - banks = size / 0x4000; - if (size != banks * 0x4000 || (~(banks - 1) % banks)) - { - logerror ("korean-126in1: error: must be a 2 power of 16kb\n"); - return 1; - } - - state->m_type = SLOT_KOREAN_126IN1; - state->m_mem = mem; - state->m_size = size; - state->m_bank_mask = banks - 1; - - return 0; -} - -MSX_SLOT_RESET(korean126in1) -{ - int i; - - for (i=0; i<2; i++) state->m_banks[i] = i; -} - -MSX_SLOT_MAP(korean126in1) -{ - msx_state *drvstate = machine.driver_data(); - UINT8 *mem; - - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, drvstate->m_empty); - msx_cpu_setbank (machine, 2, drvstate->m_empty); - break; - case 1: - mem = state->m_mem + state->m_banks[0] * 0x4000; - msx_cpu_setbank (machine, 3, mem); - msx_cpu_setbank (machine, 4, mem + 0x2000); - break; - case 2: - mem = state->m_mem + state->m_banks[1] * 0x4000; - msx_cpu_setbank (machine, 5, mem); - msx_cpu_setbank (machine, 6, mem + 0x2000); - break; - case 3: - msx_cpu_setbank (machine, 7, drvstate->m_empty); - msx_cpu_setbank (machine, 8, drvstate->m_empty); - } -} - -MSX_SLOT_WRITE(korean126in1) -{ - msx_state *drvstate = machine.driver_data(); - if (addr >= 0x4000 && addr < 0x4002) - { - int bank = addr & 1; - state->m_banks[bank] = val & state->m_bank_mask; - if (bank == 0) - { - slot_korean126in1_map (machine, state, 1); - } - else if (drvstate->m_state[2] == state) - { - slot_korean126in1_map (machine, state, 2); - } - } -} - -MSX_SLOT_INIT(soundcartridge) -{ - UINT8 *p; - - p = auto_alloc_array(machine, UINT8, 0x20000); - memset (p, 0, 0x20000); - - state->m_mem = p; - state->m_size = 0x20000; - state->m_bank_mask = 15; - state->m_type = SLOT_SOUNDCARTRIDGE; - - return 0; -} - -MSX_SLOT_RESET(soundcartridge) -{ - int i; - - for (i=0; i<4; i++) - { - state->m_banks[i] = i; - state->m_cart.sccp.ram_mode[i] = 0; - state->m_cart.sccp.banks_saved[i] = i; - } - state->m_cart.sccp.mode = 0; - state->m_cart.sccp.scc_active = 0; - state->m_cart.sccp.sccp_active = 0; -} - -static READ8_HANDLER (soundcartridge_scc) -{ - msx_state *state = space->machine().driver_data(); - int reg; - - - if (offset >= 0x7e0) - { - return state->m_state[2]->m_mem[ - state->m_state[2]->m_banks[2] * 0x2000 + 0x1800 + offset]; - } - - reg = offset & 0xff; - - if (reg < 0x80) - { - return k051649_waveform_r (space->machine().device("k051649"), reg); - } - else if (reg < 0xa0) - { - /* nothing */ - } - else if (reg < 0xc0) - { - /* read wave 5 */ - return k051649_waveform_r (space->machine().device("k051649"), 0x80 + (reg & 0x1f)); - } -#if 0 - else if (reg < 0xe0) - { - /* write 0xff to deformation register */ - } -#endif - - return 0xff; -} - -static READ8_HANDLER (soundcartridge_sccp) -{ - msx_state *state = space->machine().driver_data(); - int reg; - - if (offset >= 0x7e0) - { - return state->m_state[2]->m_mem[ - state->m_state[2]->m_banks[3] * 0x2000 + 0x1800 + offset]; - } - - reg = offset & 0xff; - - if (reg < 0xa0) - { - return k051649_waveform_r (space->machine().device("k051649"), reg); - } -#if 0 - else if (reg >= 0xc0 && reg < 0xe0) - { - /* write 0xff to deformation register */ - } -#endif - - return 0xff; -} - -MSX_SLOT_MAP(soundcartridge) -{ - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - switch (page) - { - case 0: - msx_cpu_setbank (machine, 1, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 2, state->m_mem + state->m_banks[3] * 0x2000); - break; - case 1: - msx_cpu_setbank (machine, 3, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 4, state->m_mem + state->m_banks[1] * 0x2000); - break; - case 2: - msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); - msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); - if (state->m_cart.sccp.scc_active) { - space->install_legacy_read_handler(0x9800, 0x9fff, FUNC(soundcartridge_scc)); - } else { - space->install_read_bank(0x9800, 0x9fff, "bank7"); - } - if (state->m_cart.sccp.scc_active) { - space->install_legacy_read_handler(0xb800, 0xbfff, FUNC(soundcartridge_sccp)); - } else { - space->install_read_bank(0xb800, 0xbfff, "bank9"); - } - break; - case 3: - msx_cpu_setbank (machine, 7, state->m_mem + state->m_banks[0] * 0x2000); - msx_cpu_setbank (machine, 8, state->m_mem + state->m_banks[1] * 0x2000); - break; - } -} - -MSX_SLOT_WRITE(soundcartridge) -{ - msx_state *drvstate = machine.driver_data(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - int i; - - if (addr < 0x4000) - { - return; - } - else if (addr < 0x6000) - { - if (state->m_cart.sccp.ram_mode[0]) - { - state->m_mem[state->m_banks[0] * 0x2000 + (addr & 0x1fff)] = val; - } - else if (addr >= 0x5000 && addr < 0x5800) - { - state->m_banks[0] = val & state->m_bank_mask; - state->m_cart.sccp.banks_saved[0] = val; - slot_soundcartridge_map (machine, state, 1); - if (drvstate->m_state[3] == state) - { - slot_soundcartridge_map (machine, state, 3); - } - } - } - else if (addr < 0x8000) - { - if (state->m_cart.sccp.ram_mode[1]) - { - state->m_mem[state->m_banks[1] * 0x2000 + (addr & 0x1fff)] = val; - } - else if (addr >= 0x7000 && addr < 0x7800) - { - state->m_banks[1] = val & state->m_bank_mask; - state->m_cart.sccp.banks_saved[1] = val; - if (drvstate->m_state[3] == state) - { - slot_soundcartridge_map (machine, state, 3); - } - slot_soundcartridge_map (machine, state, 1); - } - } - else if (addr < 0xa000) - { - if (state->m_cart.sccp.ram_mode[2]) - { - state->m_mem[state->m_banks[2] * 0x2000 + (addr & 0x1fff)] = val; - } - else if (addr >= 0x9000 && addr < 0x9800) - { - state->m_banks[2] = val & state->m_bank_mask; - state->m_cart.sccp.banks_saved[2] = val; - state->m_cart.sccp.scc_active = - (((val & 0x3f) == 0x3f) && !(state->m_cart.sccp.mode & 0x20)); - - slot_soundcartridge_map (machine, state, 2); - if (drvstate->m_state[0] == state) - { - slot_soundcartridge_map (machine, state, 0); - } - } - else if (addr >= 0x9800 && state->m_cart.sccp.scc_active) - { - device_t *k051649 = space->machine().device("k051649"); - int offset = addr & 0xff; - - if (offset < 0x80) - { - k051649_waveform_w (k051649, offset, val); - } - else if (offset < 0xa0) - { - offset &= 0xf; - - if (offset < 0xa) - { - k051649_frequency_w (k051649, offset, val); - } - else if (offset < 0x0f) - { - k051649_volume_w (k051649, offset - 0xa, val); - } - else if (offset == 0x0f) - { - k051649_keyonoff_w (k051649, 0, val); - } - } -#if 0 - else if (offset < 0xe0) - { - /* write to deformation register */ - } -#endif - } - } - else if (addr < 0xbffe) - { - if (state->m_cart.sccp.ram_mode[3]) - { - state->m_mem[state->m_banks[3] * 0x2000 + (addr & 0x1fff)] = val; - } - else if (addr >= 0xb000 && addr < 0xb800) - { - state->m_cart.sccp.banks_saved[3] = val; - state->m_banks[3] = val & state->m_bank_mask; - state->m_cart.sccp.sccp_active = - (val & 0x80) && (state->m_cart.sccp.mode & 0x20); - slot_soundcartridge_map (machine, state, 2); - if (drvstate->m_state[0] == state) - { - slot_soundcartridge_map (machine, state, 0); - } - } - else if (addr >= 0xb800 && state->m_cart.sccp.sccp_active) - { - device_t *k051649 = space->machine().device("k051649"); - int offset = addr & 0xff; - - if (offset < 0xa0) - { - k052539_waveform_w (k051649, offset, val); - } - else if (offset < 0xc0) - { - offset &= 0x0f; - - if (offset < 0x0a) - { - k051649_frequency_w (k051649, offset, val); - } - else if (offset < 0x0f) - { - k051649_volume_w (k051649, offset - 0x0a, val); - } - else if (offset == 0x0f) - { - k051649_keyonoff_w (k051649, 0, val); - } - } -#if 0 - else if (offset < 0xe0) - { - /* write to deformation register */ - } -#endif - } - } - else if (addr < 0xc000) - { - /* write to mode register */ - if ((state->m_cart.sccp.mode ^ val) & 0x20) - { - logerror ("soundcartrige: changed to %s mode\n", - val & 0x20 ? "scc+" : "scc"); - } - state->m_cart.sccp.mode = val; - if (val & 0x10) - { - /* all ram mode */ - for (i=0; i<4; i++) - { - state->m_cart.sccp.ram_mode[i] = 1; - } - } - else - { - state->m_cart.sccp.ram_mode[0] = val & 1; - state->m_cart.sccp.ram_mode[1] = val & 2; - state->m_cart.sccp.ram_mode[2] = (val & 4) && (val & 0x20); - state->m_cart.sccp.ram_mode[3] = 0; - - } - - state->m_cart.sccp.scc_active = - (((state->m_cart.sccp.banks_saved[2] & 0x3f) == 0x3f) && - !(val & 0x20)); - - state->m_cart.sccp.sccp_active = - ((state->m_cart.sccp.banks_saved[3] & 0x80) && (val & 0x20)); - - slot_soundcartridge_map (machine, state, 2); - } -} - -MSX_SLOT_START - MSX_SLOT_ROM (SLOT_EMPTY, empty) - MSX_SLOT (SLOT_MSXDOS2, msxdos2) - MSX_SLOT (SLOT_KONAMI_SCC, konami_scc) - MSX_SLOT (SLOT_KONAMI, konami) - MSX_SLOT (SLOT_ASCII8, ascii8) - MSX_SLOT (SLOT_ASCII16, ascii16) - MSX_SLOT_SRAM (SLOT_GAMEMASTER2, gmaster2) - MSX_SLOT_SRAM (SLOT_ASCII8_SRAM, ascii8_sram) - MSX_SLOT_SRAM (SLOT_ASCII16_SRAM, ascii16_sram) - MSX_SLOT (SLOT_RTYPE, rtype) - MSX_SLOT (SLOT_MAJUTSUSHI, majutsushi) - MSX_SLOT_SRAM (SLOT_FMPAC, fmpac) - MSX_SLOT_ROM (SLOT_SUPERLOADRUNNER, superloadrunner) - MSX_SLOT (SLOT_SYNTHESIZER, synthesizer) - MSX_SLOT (SLOT_CROSS_BLAIM, crossblaim) - MSX_SLOT (SLOT_DISK_ROM, diskrom) - MSX_SLOT (SLOT_KOREAN_80IN1, korean80in1) - MSX_SLOT (SLOT_KOREAN_126IN1, korean126in1) - MSX_SLOT_ROM (SLOT_KOREAN_90IN1, korean90in1) - MSX_SLOT (SLOT_SOUNDCARTRIDGE, soundcartridge) - MSX_SLOT_ROM (SLOT_ROM, rom) - MSX_SLOT_RAM (SLOT_RAM, ram) - MSX_SLOT_RAM (SLOT_RAM_MM, rammm) - MSX_SLOT_NULL (SLOT_CARTRIDGE1) - MSX_SLOT_NULL (SLOT_CARTRIDGE2) - MSX_SLOT (SLOT_DISK_ROM2, diskrom2) -MSX_SLOT_END - diff --git a/src/mame/mame.mak b/src/mame/mame.mak index edf38adc289..0622c80d366 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -403,8 +403,6 @@ $(MAMEOBJ)/aristocr.a: \ $(MAMEOBJ)/ascii.a: \ - $(DRIVERS)/msx.o \ - $(MACHINE)/msx_slot.o \ $(MACHINE)/msx.o \ $(DRIVERS)/big10.o \ $(DRIVERS)/forte2.o \