trunk/src/mess/drivers/pc9801.c
| r32295 | r32296 | |
| 38 | 38 | - Dies on ARTIC check; |
| 39 | 39 | - Presumably one ROM is undumped? |
| 40 | 40 | |
| 41 | TODO: (PC-9821AP) |
| 42 | - No way to exit the initial loop. Code looks broken/bad dump? |
| 43 | |
| 41 | 44 | floppy issues TODO (certain fail) |
| 42 | 45 | - Unsupported disk types: *.nfd, *.fdd, *.nhd |
| 43 | 46 | - 46 Okunen Monogatari - The Shinkaron |
| r32295 | r32296 | |
| 549 | 552 | UINT8 m_joy_sel; |
| 550 | 553 | UINT8 m_ext2_ff; |
| 551 | 554 | UINT8 m_sys_type; |
| 552 | | |
| 555 | UINT8 m_is_nec_bank; |
| 556 | |
| 553 | 557 | DECLARE_WRITE_LINE_MEMBER( keyboard_irq ); |
| 554 | 558 | DECLARE_WRITE_LINE_MEMBER( write_uart_clock ); |
| 555 | 559 | DECLARE_READ8_MEMBER(pc9801_xx_r); |
| r32295 | r32296 | |
| 701 | 705 | DECLARE_MACHINE_START(pc9801rs); |
| 702 | 706 | DECLARE_MACHINE_START(pc9801bx2); |
| 703 | 707 | DECLARE_MACHINE_START(pc9821); |
| 704 | | |
| 708 | DECLARE_MACHINE_START(pc9821ap2); |
| 709 | |
| 705 | 710 | DECLARE_MACHINE_RESET(pc9801_common); |
| 706 | 711 | DECLARE_MACHINE_RESET(pc9801f); |
| 707 | 712 | DECLARE_MACHINE_RESET(pc9801rs); |
| r32295 | r32296 | |
| 1901 | 1906 | { |
| 1902 | 1907 | if(offset == 1) |
| 1903 | 1908 | { |
| 1909 | #if 0 |
| 1910 | if(m_is_nec_bank) |
| 1911 | { |
| 1912 | m_rom_bank = 1; |
| 1913 | return; |
| 1914 | } |
| 1915 | #endif |
| 1916 | |
| 1904 | 1917 | if((data & 0xf0) == 0x00 || (data & 0xf0) == 0x10) |
| 1905 | 1918 | { |
| 1906 | 1919 | if((data & 0xed) == 0x00) |
| r32295 | r32296 | |
| 3376 | 3389 | m_ide_ram = auto_alloc_array(machine(), UINT8, 0x2000); |
| 3377 | 3390 | m_ext_gvram = auto_alloc_array(machine(), UINT8, 0xa0000); |
| 3378 | 3391 | |
| 3392 | m_is_nec_bank = 0; |
| 3379 | 3393 | save_pointer(NAME(m_sdip), 24); |
| 3380 | 3394 | save_pointer(NAME(m_ide_ram), 0x2000); |
| 3381 | 3395 | save_pointer(NAME(m_ext_gvram), 0xa0000); |
| 3382 | 3396 | } |
| 3383 | 3397 | |
| 3398 | MACHINE_START_MEMBER(pc9801_state,pc9821ap2) |
| 3399 | { |
| 3400 | MACHINE_START_CALL_MEMBER(pc9821); |
| 3401 | |
| 3402 | m_is_nec_bank = 1; |
| 3403 | } |
| 3404 | |
| 3384 | 3405 | MACHINE_RESET_MEMBER(pc9801_state,pc9801_common) |
| 3385 | 3406 | { |
| 3386 | 3407 | memset(m_tvram, 0, sizeof(UINT8) * 0x4000); |
| r32295 | r32296 | |
| 3874 | 3895 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
| 3875 | 3896 | MACHINE_CONFIG_END |
| 3876 | 3897 | |
| 3898 | static MACHINE_CONFIG_DERIVED( pc9821ap2, pc9821) |
| 3899 | MCFG_CPU_REPLACE("maincpu", I486, 66666667) // unknown clock |
| 3900 | MCFG_CPU_PROGRAM_MAP(pc9821_map) |
| 3901 | MCFG_CPU_IO_MAP(pc9821_io) |
| 3902 | MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq) |
| 3903 | MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb) |
| 3904 | |
| 3905 | MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9821ap2) |
| 3906 | MACHINE_CONFIG_END |
| 3907 | |
| 3877 | 3908 | static MACHINE_CONFIG_DERIVED( pc9821v20, pc9821 ) |
| 3878 | 3909 | MCFG_CPU_REPLACE("maincpu",PENTIUM,32000000) /* TODO: clock */ |
| 3879 | 3910 | MCFG_CPU_PROGRAM_MAP(pc9821_map) |
| r32295 | r32296 | |
| 4115 | 4146 | */ |
| 4116 | 4147 | |
| 4117 | 4148 | ROM_START( pc9821ap2 ) |
| 4118 | | ROM_REGION( 0x90000, "ipl", ROMREGION_ERASEFF ) |
| 4119 | | ROM_LOAD( "phd0102.rom", 0x08000, 0x80000, CRC(3036774c) SHA1(59856a348f156adf5eca06326f967aca54ff871c) ) |
| 4149 | ROM_REGION( 0x80000, "biosrom", ROMREGION_ERASEFF ) |
| 4150 | ROM_LOAD( "phd0102.rom", 0x000000, 0x80000, CRC(3036774c) SHA1(59856a348f156adf5eca06326f967aca54ff871c) ) |
| 4120 | 4151 | |
| 4152 | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) // TODO: identify ROM banks |
| 4153 | ROM_COPY( "biosrom", 0x60000, 0x00000, 0x20000 ) |
| 4154 | ROM_COPY( "biosrom", 0x20000, 0x20000, 0x20000 ) |
| 4155 | |
| 4121 | 4156 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
| 4122 | 4157 | ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) |
| 4123 | 4158 | |
| r32295 | r32296 | |
| 4316 | 4351 | COMP( 1993, pc9801bx2, pc9801rs,0, pc9801bx2,pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801BX2/U2", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |
| 4317 | 4352 | COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) //TODO: not sure about the exact model |
| 4318 | 4353 | COMP( 1993, pc9821as, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |
| 4319 | | COMP( 1993, pc9821ap2, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821AP2/U8W (98MATE A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |
| 4354 | COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2,pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821AP2/U8W (98MATE A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |
| 4320 | 4355 | COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE Xs)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |
| 4321 | 4356 | COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MULTi Ce2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |
| 4322 | 4357 | COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98NOTE)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) |