trunk/src/mess/drivers/msx.c
| r26308 | r26309 | |
| 383 | 383 | ADDRESS_MAP_END |
| 384 | 384 | |
| 385 | 385 | |
| 386 | static ADDRESS_MAP_START ( msx2p_io_map, AS_IO, 8, msx_state ) |
| 387 | ADDRESS_MAP_UNMAP_HIGH |
| 388 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 389 | AM_RANGE( 0x77, 0x77) AM_WRITE(msx_90in1_w) |
| 390 | AM_RANGE( 0x7c, 0x7d) AM_WRITE(msx_fmpac_w) |
| 391 | AM_RANGE( 0x90, 0x90) AM_READWRITE(msx_printer_status_r, msx_printer_strobe_w) |
| 392 | AM_RANGE( 0x91, 0x91) AM_WRITE(msx_printer_data_w) |
| 393 | AM_RANGE( 0xa0, 0xa7) AM_DEVREAD("ay8910", ay8910_device, data_r) AM_WRITE(msx_ay8910_w) |
| 394 | AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) |
| 395 | AM_RANGE( 0x98, 0x9b) AM_DEVREADWRITE("v9958", v9958_device, read, write) |
| 396 | AM_RANGE( 0xb4, 0xb4) AM_WRITE(msx_rtc_latch_w) |
| 397 | AM_RANGE( 0xb5, 0xb5) AM_READWRITE(msx_rtc_reg_r, msx_rtc_reg_w) |
| 398 | AM_RANGE( 0xd8, 0xd9) AM_READWRITE(msx_kanji_r, msx_kanji_w) |
| 399 | AM_RANGE( 0xfc, 0xff) AM_READWRITE(msx_ram_mapper_r, msx_ram_mapper_w) |
| 400 | ADDRESS_MAP_END |
| 401 | |
| 402 | |
| 386 | 403 | static INPUT_PORTS_START( msx_dips ) |
| 387 | 404 | PORT_START("JOY0") |
| 388 | 405 | PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) |
| r26308 | r26309 | |
| 1206 | 1223 | MACHINE_CONFIG_END |
| 1207 | 1224 | |
| 1208 | 1225 | |
| 1226 | static MACHINE_CONFIG_START( msx2p, msx_state ) |
| 1227 | /* basic machine hardware */ |
| 1228 | MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) /* 3.579545 MHz */ |
| 1229 | MCFG_CPU_PROGRAM_MAP(msx_memory_map) |
| 1230 | MCFG_CPU_IO_MAP(msx2p_io_map) |
| 1231 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", msx_state, msx2p_interrupt, "screen", 0, 2) |
| 1232 | MCFG_QUANTUM_TIME(attotime::from_hz(60)) |
| 1233 | |
| 1234 | MCFG_MACHINE_START_OVERRIDE(msx_state, msx2 ) |
| 1235 | MCFG_MACHINE_RESET_OVERRIDE(msx_state, msx2 ) |
| 1236 | |
| 1237 | MCFG_I8255_ADD( "ppi8255", msx_ppi8255_interface ) |
| 1238 | |
| 1239 | /* video hardware */ |
| 1240 | MCFG_V9958_ADD("v9958", "screen", 0x20000) |
| 1241 | MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(msx_state,msx_vdp_interrupt)) |
| 1242 | |
| 1243 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
| 1244 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1245 | MCFG_SCREEN_REFRESH_RATE(60) |
| 1246 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 1247 | MCFG_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update) |
| 1248 | MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2) |
| 1249 | 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) |
| 1250 | |
| 1251 | MCFG_PALETTE_LENGTH(19268) |
| 1252 | |
| 1253 | /* sound hardware */ |
| 1254 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 1255 | MCFG_SOUND_ADD("dac", DAC, 0) |
| 1256 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) |
| 1257 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
| 1258 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 1259 | MCFG_SOUND_ADD("ay8910", AY8910, XTAL_21_4772MHz/6/2) |
| 1260 | MCFG_SOUND_CONFIG(msx_ay8910_interface) |
| 1261 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) |
| 1262 | MCFG_SOUND_ADD("k051649", K051649, XTAL_21_4772MHz/6/2) |
| 1263 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 1264 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_21_4772MHz/6) |
| 1265 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) |
| 1266 | |
| 1267 | /* printer */ |
| 1268 | MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) |
| 1269 | |
| 1270 | /* cassette */ |
| 1271 | MCFG_CASSETTE_ADD( "cassette", msx_cassette_interface ) |
| 1272 | |
| 1273 | /* real time clock */ |
| 1274 | MCFG_RP5C01_ADD("rtc", XTAL_32_768kHz, rtc_intf) |
| 1275 | |
| 1276 | MCFG_FD1793_ADD("wd179x", msx_wd17xx_interface ) // TODO confirm type |
| 1277 | |
| 1278 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(msx_floppy_interface) |
| 1279 | |
| 1280 | MCFG_FRAGMENT_ADD(msx_cartslot) |
| 1281 | |
| 1282 | /* Software lists */ |
| 1283 | MCFG_SOFTWARE_LIST_ADD("cart_list","msx2_cart") |
| 1284 | MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("msx1_list","msx1_cart") |
| 1285 | MCFG_SOFTWARE_LIST_ADD("cass_list","msx1_cass") |
| 1286 | MACHINE_CONFIG_END |
| 1287 | |
| 1288 | |
| 1209 | 1289 | static MACHINE_CONFIG_DERIVED( msx2_pal, msx2 ) |
| 1210 | 1290 | MCFG_SCREEN_MODIFY("screen") |
| 1211 | 1291 | MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 313*2) |
| r26308 | r26309 | |
| 4534 | 4614 | COMP(1988, cpc400, msx2, 0, msx2, msx2kr, msx_state, msx, "Daewoo", "X-II CPC-400 (Korea)", 0 ) |
| 4535 | 4615 | COMP(1988, cpc400s, msx2, 0, msx2, msx2kr, msx_state, msx, "Daewoo", "X-II CPC-400S (Korea)", 0 ) |
| 4536 | 4616 | |
| 4537 | | COMP(1988, msx2p, 0, msx, msx2, msx2jp, msx_state, msx, "ASCII & Microsoft", "MSX2+", 0) |
| 4538 | | COMP(19??, expert3i, msx2p, 0, msx2, msx2, msx_state, msx, "Ciel", "Expert 3 IDE", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4539 | | COMP(1996, expert3t, msx2p, 0, msx2, msx2, msx_state, msx, "Ciel", "Expert 3 Turbo", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4540 | | COMP(19??, expertac, msx2p, 0, msx2, msx2, msx_state, msx, "Gradiente", "Expert AC88+", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4541 | | COMP(19??, expertdx, msx2p, 0, msx2, msx2, msx_state, msx, "Gradiente", "Expert DDX+", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4542 | | COMP(1988, fsa1fx, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1FX (Japan)", 0 ) |
| 4543 | | COMP(1988, fsa1wx, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan)", 0 ) |
| 4544 | | COMP(1988, fsa1wxa, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan)", 0 ) |
| 4545 | | COMP(1989, fsa1wsx, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WSX (Japan)", 0 ) |
| 4546 | | COMP(1988, hbf1xdj, msx2p, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F1XDJ (Japan)", 0 ) |
| 4547 | | COMP(1989, hbf1xv, msx2p, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F1XV (Japan)", 0 ) |
| 4548 | | COMP(1988, phc70fd, msx2p, 0, msx2, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD (Japan)", 0 ) |
| 4549 | | COMP(1988, phc70fd2, msx2p, 0, msx2, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD2 (Japan)", 0 ) |
| 4550 | | COMP(1989, phc35j, msx2p, 0, msx2, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-35J (Japan)", 0) |
| 4551 | | COMP(19??, hbf9sp, msx2p, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F9S+", GAME_NOT_WORKING) // No MSX animation, screen switches between 2 single colors |
| 4617 | COMP(1988, msx2p, 0, msx, msx2p, msx2jp, msx_state, msx, "ASCII & Microsoft", "MSX2+", 0) |
| 4618 | COMP(19??, expert3i, msx2p, 0, msx2p, msx2, msx_state, msx, "Ciel", "Expert 3 IDE", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4619 | COMP(1996, expert3t, msx2p, 0, msx2p, msx2, msx_state, msx, "Ciel", "Expert 3 Turbo", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4620 | COMP(19??, expertac, msx2p, 0, msx2p, msx2, msx_state, msx, "Gradiente", "Expert AC88+", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4621 | COMP(19??, expertdx, msx2p, 0, msx2p, msx2, msx_state, msx, "Gradiente", "Expert DDX+", GAME_NOT_WORKING ) // Some hardware not emulated |
| 4622 | COMP(1988, fsa1fx, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1FX (Japan)", 0 ) |
| 4623 | COMP(1988, fsa1wx, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan)", 0 ) |
| 4624 | COMP(1988, fsa1wxa, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan)", 0 ) |
| 4625 | COMP(1989, fsa1wsx, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WSX (Japan)", 0 ) |
| 4626 | COMP(1988, hbf1xdj, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sony", "HB-F1XDJ (Japan)", 0 ) |
| 4627 | COMP(1989, hbf1xv, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sony", "HB-F1XV (Japan)", 0 ) |
| 4628 | COMP(1988, phc70fd, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD (Japan)", 0 ) |
| 4629 | COMP(1988, phc70fd2, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD2 (Japan)", 0 ) |
| 4630 | COMP(1989, phc35j, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-35J (Japan)", 0) |
| 4631 | COMP(19??, hbf9sp, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sony", "HB-F9S+", GAME_NOT_WORKING) // No MSX animation, screen switches between 2 single colors |
| 4552 | 4632 | |
| 4553 | 4633 | /* Temporary placeholders */ |
| 4554 | 4634 | COMP(19??, fsa1gt, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic", "FS-A1GT", GAME_NOT_WORKING) |