trunk/src/mess/drivers/pc9801.c
| r19178 | r19179 | |
| 18 | 18 | |
| 19 | 19 | TODO (PC-9821): |
| 20 | 20 | - fix CPU for some clones; |
| 21 | | - "cache error", there might be "windowed" RAM at 0x80000-0x9ffff (hence the RAM POST |
| 22 | | that stops at 512k) |
| 21 | - "cache error" |
| 22 | - undumped IDE ROM, kludged to work |
| 23 | 23 | |
| 24 | |
| 24 | 25 | TODO: (PC-486MU) |
| 25 | 26 | - Tries to read port C of i8255_sys (-> 0x35) at boot without setting up the control |
| 26 | 27 | port. This causes a jump to invalid program area; |
| r19178 | r19179 | |
| 279 | 280 | required_shared_ptr<UINT8> m_video_ram_1; |
| 280 | 281 | required_shared_ptr<UINT8> m_video_ram_2; |
| 281 | 282 | UINT8 *m_char_rom; |
| 283 | UINT8 *m_kanji_rom; |
| 282 | 284 | |
| 283 | 285 | UINT8 m_portb_tmp; |
| 284 | 286 | UINT8 m_dma_offset[4]; |
| r19178 | r19179 | |
| 320 | 322 | UINT8 m_sdip[24], m_sdip_bank; |
| 321 | 323 | UINT8 *m_ideram; |
| 322 | 324 | UINT8 *m_ext_gvram; |
| 325 | UINT8 *m_vram256; |
| 326 | UINT8 m_pc9821_window_bank; |
| 323 | 327 | |
| 324 | 328 | DECLARE_READ8_MEMBER(pc9801_xx_r); |
| 325 | 329 | DECLARE_WRITE8_MEMBER(pc9801_xx_w); |
| r19178 | r19179 | |
| 386 | 390 | DECLARE_WRITE8_MEMBER(pc9801rs_access_ctrl_w); |
| 387 | 391 | DECLARE_READ8_MEMBER(pc9821_memory_r); |
| 388 | 392 | DECLARE_WRITE8_MEMBER(pc9821_memory_w); |
| 393 | DECLARE_READ8_MEMBER(pc9821_vram256_r); |
| 394 | DECLARE_WRITE8_MEMBER(pc9821_vram256_w); |
| 389 | 395 | |
| 390 | 396 | DECLARE_READ8_MEMBER(sdip_0_r); |
| 391 | 397 | DECLARE_READ8_MEMBER(sdip_1_r); |
| r19178 | r19179 | |
| 413 | 419 | DECLARE_WRITE8_MEMBER(sdip_a_w); |
| 414 | 420 | DECLARE_WRITE8_MEMBER(sdip_b_w); |
| 415 | 421 | |
| 422 | DECLARE_READ8_MEMBER(pc9821_ide_r); |
| 416 | 423 | DECLARE_READ8_MEMBER(pc9821_ideram_r); |
| 417 | 424 | DECLARE_WRITE8_MEMBER(pc9821_ideram_w); |
| 418 | 425 | DECLARE_READ8_MEMBER(pc9821_ext_gvram_r); |
| 419 | 426 | DECLARE_WRITE8_MEMBER(pc9821_ext_gvram_w); |
| 427 | DECLARE_READ8_MEMBER(pc9821_window_bank_r); |
| 428 | DECLARE_WRITE8_MEMBER(pc9821_window_bank_w); |
| 429 | DECLARE_READ32_MEMBER(pc9821_timestamp_r); |
| 420 | 430 | |
| 421 | 431 | void fdc_2hd_irq(bool state); |
| 422 | 432 | void fdc_2hd_drq(bool state); |
| r19178 | r19179 | |
| 481 | 491 | |
| 482 | 492 | // find memory regions |
| 483 | 493 | m_char_rom = memregion("chargen")->base(); |
| 494 | m_kanji_rom = memregion("kanji")->base(); |
| 484 | 495 | } |
| 485 | 496 | |
| 486 | 497 | UINT32 pc9801_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r19178 | r19179 | |
| 534 | 545 | int xi,yi; |
| 535 | 546 | int x; |
| 536 | 547 | UINT8 char_size,interlace_on; |
| 548 | UINT8 kanji_on; |
| 537 | 549 | |
| 538 | 550 | if(state->m_video_ff[DISPLAY_REG] == 0) //screen is off |
| 539 | 551 | return; |
| 540 | 552 | |
| 541 | 553 | interlace_on = state->m_video_reg[2] == 0x10; /* TODO: correct? */ |
| 542 | 554 | char_size = (interlace_on) ? 16 : 8; |
| 555 | kanji_on = 0; |
| 543 | 556 | |
| 544 | 557 | for(x=0;x<pitch;x++) |
| 545 | 558 | { |
| 546 | 559 | UINT8 tile_data,secret,reverse,u_line,v_line; |
| 547 | 560 | UINT8 color; |
| 548 | | UINT8 tile,attr,pen; |
| 561 | UINT8 attr,pen; |
| 549 | 562 | UINT32 tile_addr; |
| 563 | UINT16 tile; |
| 564 | UINT8 knj_tile; |
| 550 | 565 | |
| 551 | 566 | tile_addr = addr+(x*(state->m_video_ff[WIDTH40_REG]+1)); |
| 552 | 567 | |
| 553 | | tile = state->m_video_ram_1[(tile_addr*2) & 0x1fff] & 0x00ff; //TODO: kanji |
| 568 | if(kanji_on) |
| 569 | kanji_on--; |
| 570 | |
| 571 | if(kanji_on == 0) |
| 572 | { |
| 573 | tile = state->m_video_ram_1[(tile_addr*2) & 0x1fff] & 0x00ff; |
| 574 | knj_tile = state->m_video_ram_1[(tile_addr*2+1) & 0x1fff] & 0x7f; |
| 575 | if((tile & 0xf0) == 0 && knj_tile) // kanji select |
| 576 | { |
| 577 | tile <<= 8; |
| 578 | tile |= knj_tile; |
| 579 | /* annoying kanji bit-swap applied on the address bus ... */ |
| 580 | tile = BITSWAP16(tile,7,15,14,13,12,11,6,5,10,9,8,4,3,2,1,0); |
| 581 | tile &= 0xfff; |
| 582 | kanji_on = 2; |
| 583 | } |
| 584 | } |
| 554 | 585 | attr = (state->m_video_ram_1[(tile_addr*2 & 0x1fff) | 0x2000] & 0x00ff); |
| 555 | 586 | |
| 556 | 587 | secret = (attr & 1) ^ 1; |
| r19178 | r19179 | |
| 572 | 603 | if(res_x > 640 || res_y > char_size*25) //TODO |
| 573 | 604 | continue; |
| 574 | 605 | |
| 575 | | tile_data = secret ? 0 : (state->m_char_rom[tile*char_size+interlace_on*0x800+yi]); |
| 606 | if(kanji_on) |
| 607 | { |
| 608 | tile_data = secret ? 0 : (state->m_kanji_rom[tile*0x20+yi*2+(kanji_on & 1)]); |
| 609 | } |
| 610 | else |
| 611 | tile_data = secret ? 0 : (state->m_char_rom[tile*char_size+interlace_on*0x800+yi]); |
| 576 | 612 | |
| 577 | 613 | if(reverse) { tile_data^=0xff; } |
| 578 | 614 | if(u_line && yi == 7) { tile_data = 0xff; } |
| r19178 | r19179 | |
| 1472 | 1508 | switch(offset & 6) |
| 1473 | 1509 | { |
| 1474 | 1510 | case 2: machine().device<upd765a_device>("upd765_2hd")->fifo_w(space, 0, data, 0xff); return; |
| 1475 | | case 4: printf("%02x FDC ctrl\n",data); return; |
| 1511 | case 4: printf("%02x 2HD FDC ctrl\n",data); return; |
| 1476 | 1512 | } |
| 1477 | 1513 | } |
| 1478 | 1514 | |
| r19178 | r19179 | |
| 1511 | 1547 | switch(offset & 6) |
| 1512 | 1548 | { |
| 1513 | 1549 | case 2: machine().device<upd765a_device>("upd765_2hd")->fifo_w(space, 0, data, 0xff); return; |
| 1514 | | case 4: printf("%02x FDC ctrl\n",data); return; |
| 1550 | case 4: printf("%02x 2DD FDC ctrl\n",data); return; |
| 1515 | 1551 | } |
| 1516 | 1552 | } |
| 1517 | 1553 | |
| r19178 | r19179 | |
| 1675 | 1711 | * |
| 1676 | 1712 | ************************************/ |
| 1677 | 1713 | |
| 1714 | READ8_MEMBER(pc9801_state::pc9821_ide_r) |
| 1715 | { |
| 1716 | UINT8 *IDE = memregion("ide")->base(); |
| 1717 | |
| 1718 | return IDE[offset]; |
| 1719 | } |
| 1720 | |
| 1721 | READ8_MEMBER(pc9801_state::pc9821_vram256_r) |
| 1722 | { |
| 1723 | return m_vram256[offset]; |
| 1724 | } |
| 1725 | |
| 1726 | WRITE8_MEMBER(pc9801_state::pc9821_vram256_w) |
| 1727 | { |
| 1728 | m_vram256[offset] = data; |
| 1729 | } |
| 1730 | |
| 1678 | 1731 | /* Note: not hooking this up causes "MEMORY ERROR" at POST */ |
| 1679 | 1732 | READ8_MEMBER(pc9801_state::pc9821_ideram_r) |
| 1680 | 1733 | { |
| r19178 | r19179 | |
| 1702 | 1755 | if(m_gate_a20 == 0) |
| 1703 | 1756 | offset &= 0xfffff; |
| 1704 | 1757 | |
| 1705 | | if ( offset <= 0x0007ffff) { return pc9801rs_wram_r(space,offset); } |
| 1758 | if(offset >= 0x00080000 && offset <= 0x0009ffff) |
| 1759 | offset = (offset & 0x1ffff) | (m_pc9821_window_bank & 0xfe) * 0x10000; |
| 1760 | |
| 1761 | if ( offset <= 0x0009ffff) { return pc9801rs_wram_r(space,offset); } |
| 1762 | // else if(offset >= 0x00080000 && offset <= 0x0009ffff) { return pc9821_winram_r(space,offset & 0x1ffff); } |
| 1706 | 1763 | else if(offset >= 0x000a0000 && offset <= 0x000a3fff) { return pc9801_tvram_r(space,offset-0xa0000); } |
| 1707 | 1764 | else if(offset >= 0x000a4000 && offset <= 0x000a4fff) { return pc9801rs_knjram_r(space,offset & 0xfff); } |
| 1708 | 1765 | else if(offset >= 0x000a8000 && offset <= 0x000bffff) { return pc9801_gvram_r(space,offset-0xa8000); } |
| 1766 | else if(offset >= 0x000d8000 && offset <= 0x000d9fff) { return pc9821_ide_r(space,offset & 0x1fff); } |
| 1709 | 1767 | else if(offset >= 0x000da000 && offset <= 0x000dbfff) { return pc9821_ideram_r(space,offset & 0x1fff); } |
| 1768 | else if(offset >= 0x000e0000 && offset <= 0x000e7fff) { return pc9821_vram256_r(space,offset & 0x1ffff); } |
| 1710 | 1769 | else if(offset >= 0x000e0000 && offset <= 0x000fffff) { return pc9801rs_ipl_r(space,offset & 0x1ffff); } |
| 1770 | else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1) { return pc9801rs_ex_wram_r(space,offset-0x00100000); } |
| 1711 | 1771 | else if(offset >= 0x00f00000 && offset <= 0x00f9ffff) { return pc9821_ext_gvram_r(space,offset-0x00f00000); } |
| 1712 | | else if(offset >= 0x01000000 && offset <= 0x01000000+m_ram_size-1) { return pc9801rs_ex_wram_r(space,offset-0x01000000); } |
| 1713 | 1772 | else if(offset >= 0xfffe0000 && offset <= 0xffffffff) { return pc9801rs_ipl_r(space,offset & 0x1ffff); } |
| 1714 | 1773 | |
| 1715 | | printf("%08x\n",offset); |
| 1774 | //printf("%08x\n",offset); |
| 1716 | 1775 | return 0x00; |
| 1717 | 1776 | } |
| 1718 | 1777 | |
| r19178 | r19179 | |
| 1722 | 1781 | if(m_gate_a20 == 0) |
| 1723 | 1782 | offset &= 0xfffff; |
| 1724 | 1783 | |
| 1725 | | if ( offset <= 0x0007ffff) { pc9801rs_wram_w(space,offset,data); } |
| 1784 | if(offset >= 0x00080000 && offset <= 0x0009ffff) |
| 1785 | offset = (offset & 0x1ffff) | (m_pc9821_window_bank & 0xfe) * 0x10000; |
| 1786 | |
| 1787 | if ( offset <= 0x0009ffff) { pc9801rs_wram_w(space,offset,data); } |
| 1788 | // else if(offset >= 0x00080000 && offset <= 0x0009ffff) { pc9821_winram_w(space,offset & 0x1ffff,data); } |
| 1726 | 1789 | else if(offset >= 0x000a0000 && offset <= 0x000a3fff) { pc9801_tvram_w(space,offset-0xa0000,data); } |
| 1727 | 1790 | else if(offset >= 0x000a4000 && offset <= 0x000a4fff) { pc9801rs_knjram_w(space,offset & 0xfff,data); } |
| 1728 | 1791 | else if(offset >= 0x000a8000 && offset <= 0x000bffff) { pc9801_gvram_w(space,offset-0xa8000,data); } |
| 1729 | 1792 | else if(offset >= 0x000da000 && offset <= 0x000dbfff) { pc9821_ideram_w(space,offset & 0x1fff,data); } |
| 1793 | else if(offset >= 0x000e0000 && offset <= 0x000e7fff) { pc9821_vram256_w(space,offset & 0x1ffff,data); } |
| 1794 | else if(offset >= 0x000e8000 && offset <= 0x000fffff) { /* TODO: shadow ROM */ } |
| 1795 | else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1) { pc9801rs_ex_wram_w(space,offset-0x00100000,data); } |
| 1730 | 1796 | else if(offset >= 0x00f00000 && offset <= 0x00f9ffff) { pc9821_ext_gvram_w(space,offset-0x00f00000,data); } |
| 1731 | | else if(offset >= 0x01000000 && offset <= 0x01000000+m_ram_size-1) { pc9801rs_ex_wram_w(space,offset-0x01000000,data); } |
| 1732 | | else |
| 1733 | | printf("%08x %08x\n",offset,data); |
| 1797 | //else |
| 1798 | // printf("%08x %08x\n",offset,data); |
| 1734 | 1799 | |
| 1735 | 1800 | } |
| 1736 | 1801 | |
| r19178 | r19179 | |
| 1826 | 1891 | return 0x50; // status |
| 1827 | 1892 | } |
| 1828 | 1893 | |
| 1894 | READ8_MEMBER(pc9801_state::pc9821_window_bank_r) |
| 1895 | { |
| 1896 | if(offset == 1) |
| 1897 | return m_pc9821_window_bank & 0xfe; |
| 1898 | |
| 1899 | return 0xff; |
| 1900 | } |
| 1901 | |
| 1902 | WRITE8_MEMBER(pc9801_state::pc9821_window_bank_w) |
| 1903 | { |
| 1904 | if(offset == 1) |
| 1905 | m_pc9821_window_bank = data & 0xfe; |
| 1906 | } |
| 1907 | |
| 1829 | 1908 | UINT8 pc9801_state::m_sdip_read(UINT16 port, UINT8 sdip_offset) |
| 1830 | 1909 | { |
| 1831 | 1910 | if(port == 2) |
| r19178 | r19179 | |
| 1882 | 1961 | printf("SDIP area B write %02x %02x\n",offset,data); |
| 1883 | 1962 | } |
| 1884 | 1963 | |
| 1964 | READ32_MEMBER(pc9801_state::pc9821_timestamp_r) |
| 1965 | { |
| 1966 | return m_maincpu->total_cycles(); |
| 1967 | } |
| 1968 | |
| 1885 | 1969 | static ADDRESS_MAP_START( pc9821_map, AS_PROGRAM, 32, pc9801_state ) |
| 1886 | 1970 | AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE8(pc9821_memory_r,pc9821_memory_w,0xffffffff) |
| 1887 | 1971 | ADDRESS_MAP_END |
| r19178 | r19179 | |
| 1891 | 1975 | |
| 1892 | 1976 | AM_RANGE(0x0030, 0x0037) AM_READWRITE8(pc9801rs_30_r, pc9801_30_w, 0xffffffff) //i8251 RS232c / i8255 system port |
| 1893 | 1977 | AM_RANGE(0x0040, 0x0047) AM_READWRITE8(pc9801_40_r, pc9801_40_w, 0xffffffff) //i8255 printer port / i8251 keyboard |
| 1894 | | AM_RANGE(0x005c, 0x005f) AM_NOP //ARTIC (serial card?) |
| 1978 | AM_RANGE(0x005c, 0x005f) AM_READ(pc9821_timestamp_r) AM_WRITENOP |
| 1895 | 1979 | AM_RANGE(0x0060, 0x0063) AM_READWRITE8(pc9801_60_r, pc9801_60_w, 0xffffffff) //upd7220 character ports / <undefined> |
| 1896 | 1980 | AM_RANGE(0x0064, 0x0067) AM_WRITE8(pc9801_vrtc_mask_w, 0xffffffff) |
| 1897 | 1981 | AM_RANGE(0x0068, 0x006b) AM_WRITE8(pc9821_video_ff_w, 0xffffffff) //mode FF / <undefined> |
| r19178 | r19179 | |
| 1913 | 1997 | AM_RANGE(0x0438, 0x043b) AM_READWRITE8(pc9801rs_access_ctrl_r,pc9801rs_access_ctrl_w,0xffffffff) |
| 1914 | 1998 | // AM_RANGE(0x043d, 0x043d) ROM/RAM bank (NEC) |
| 1915 | 1999 | AM_RANGE(0x043c, 0x043f) AM_WRITE8(pc9801rs_bank_w, 0xffffffff) //ROM/RAM bank (EPSON) |
| 2000 | AM_RANGE(0x0460, 0x0463) AM_READWRITE8(pc9821_window_bank_r,pc9821_window_bank_w, 0xffffffff) |
| 1916 | 2001 | // AM_RANGE(0x04a0, 0x04af) EGC |
| 1917 | 2002 | // AM_RANGE(0x04be, 0x04be) FDC "RPM" register |
| 1918 | 2003 | // AM_RANGE(0x0642, 0x064f) IDE registers / <undefined> |
| r19178 | r19179 | |
| 2293 | 2378 | |
| 2294 | 2379 | static GFXDECODE_START( pc9801 ) |
| 2295 | 2380 | GFXDECODE_ENTRY( "chargen", 0x00000, charset_8x8, 0x000, 0x01 ) |
| 2296 | | GFXDECODE_ENTRY( "chargen", 0x00800, charset_8x16, 0x000, 0x01 ) |
| 2381 | GFXDECODE_ENTRY( "chargen", 0x00800, charset_8x16, 0x000, 0x01 ) |
| 2297 | 2382 | GFXDECODE_ENTRY( "kanji", 0x00000, charset_16x16, 0x000, 0x01 ) |
| 2298 | 2383 | GFXDECODE_END |
| 2299 | 2384 | |
| r19178 | r19179 | |
| 2727 | 2812 | MACHINE_START_CALL_MEMBER(pc9801); |
| 2728 | 2813 | |
| 2729 | 2814 | m_ideram = auto_alloc_array(machine(), UINT8, 0x2000); |
| 2815 | m_vram256 = auto_alloc_array(machine(), UINT8, 0x8000); |
| 2730 | 2816 | m_ext_gvram = auto_alloc_array(machine(), UINT8, 0xa0000); |
| 2731 | 2817 | |
| 2732 | 2818 | state_save_register_global_pointer(machine(), m_sdip, 24); |
| 2733 | 2819 | state_save_register_global_pointer(machine(), m_ideram, 0x2000); |
| 2820 | state_save_register_global_pointer(machine(), m_vram256, 0x8000); |
| 2734 | 2821 | state_save_register_global_pointer(machine(), m_ext_gvram, 0xa0000); |
| 2735 | 2822 | } |
| 2736 | 2823 | |
| r19178 | r19179 | |
| 2914 | 3001 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |
| 2915 | 3002 | |
| 2916 | 3003 | MCFG_RAM_ADD(RAM_TAG) |
| 2917 | | MCFG_RAM_DEFAULT_SIZE("640K") |
| 2918 | | MCFG_RAM_EXTRA_OPTIONS("1664K,3712K,7808K") |
| 3004 | MCFG_RAM_DEFAULT_SIZE("1664K") |
| 3005 | MCFG_RAM_EXTRA_OPTIONS("3712K,7808K") |
| 2919 | 3006 | |
| 2920 | 3007 | MCFG_SCREEN_ADD("screen", RASTER) |
| 2921 | 3008 | MCFG_SCREEN_REFRESH_RATE(60) |
| r19178 | r19179 | |
| 3118 | 3205 | ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3119 | 3206 | ROM_LOAD( "bios.rom", 0x28000, 0x18000, BAD_DUMP CRC(34a19a59) SHA1(2e92346727b0355bc1ec9a7ded1b444a4917f2b9) ) |
| 3120 | 3207 | |
| 3208 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3209 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3210 | ROM_FILL( 0x0000, 0x2000, 0xcb ) |
| 3211 | |
| 3121 | 3212 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3122 | 3213 | |
| 3123 | 3214 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3128 | 3219 | ROM_REGION( 0x50000, "chargen", 0 ) |
| 3129 | 3220 | ROM_LOAD( "font.rom", 0x00000, 0x46800, BAD_DUMP CRC(a61c0649) SHA1(554b87377d176830d21bd03964dc71f8e98676b1) ) |
| 3130 | 3221 | |
| 3131 | | ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF ) |
| 3132 | | //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 ) |
| 3222 | ROM_REGION( 0x20000, "kanji", ROMREGION_ERASEFF )// taken from pc9801f |
| 3223 | ROM_LOAD16_BYTE( "24256c-x01.bin", 0x00000, 0x8000, BAD_DUMP CRC(28ec1375) SHA1(9d8e98e703ce0f483df17c79f7e841c5c5cd1692) ) |
| 3224 | ROM_LOAD16_BYTE( "24256c-x02.bin", 0x00001, 0x8000, BAD_DUMP CRC(90985158) SHA1(78fb106131a3f4eb054e87e00fe4f41193416d65) ) |
| 3225 | ROM_LOAD16_BYTE( "24256c-x03.bin", 0x10000, 0x8000, BAD_DUMP CRC(d4893543) SHA1(eb8c1bee0f694e1e0c145a24152222d4e444e86f) ) |
| 3226 | ROM_LOAD16_BYTE( "24256c-x04.bin", 0x10001, 0x8000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) ) |
| 3133 | 3227 | |
| 3134 | 3228 | ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF ) |
| 3135 | 3229 | ROM_END |
| r19178 | r19179 | |
| 3143 | 3237 | ROM_LOAD( "itf.rom", 0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3144 | 3238 | ROM_LOAD( "bios_as.rom", 0x028000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3145 | 3239 | |
| 3240 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3241 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3242 | |
| 3146 | 3243 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3147 | 3244 | |
| 3148 | 3245 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3169 | 3266 | ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3170 | 3267 | ROM_LOAD( "bios_ne.rom", 0x28000, 0x18000, BAD_DUMP CRC(2ae070c4) SHA1(d7963942042bfd84ed5fc9b7ba8f1c327c094172) ) |
| 3171 | 3268 | |
| 3269 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3270 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3271 | |
| 3172 | 3272 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3173 | 3273 | |
| 3174 | 3274 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3194 | 3294 | ROM_LOAD( "bios_486mu.rom", 0x08000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24)) |
| 3195 | 3295 | ROM_RELOAD( 0x28000, 0x18000 ) // missing rom? |
| 3196 | 3296 | |
| 3297 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3298 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3299 | |
| 3197 | 3300 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3198 | 3301 | |
| 3199 | 3302 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3219 | 3322 | ROM_LOAD( "itf_ce2.rom", 0x18000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) ) |
| 3220 | 3323 | ROM_LOAD( "bios_ce2.rom", 0x28000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) ) |
| 3221 | 3324 | |
| 3325 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3326 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3327 | |
| 3222 | 3328 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3223 | 3329 | |
| 3224 | 3330 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3244 | 3350 | ROM_LOAD( "itf.rom", 0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3245 | 3351 | ROM_LOAD( "bios_xs.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3246 | 3352 | |
| 3353 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3354 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3355 | |
| 3247 | 3356 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3248 | 3357 | |
| 3249 | 3358 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3270 | 3379 | ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3271 | 3380 | ROM_LOAD( "bios_v13.rom", 0x28000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3272 | 3381 | |
| 3382 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3383 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3384 | |
| 3273 | 3385 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3274 | 3386 | |
| 3275 | 3387 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |
| r19178 | r19179 | |
| 3295 | 3407 | ROM_LOAD( "itf_v20.rom", 0x18000, 0x08000, CRC(10e52302) SHA1(f95b8648e3f5a23e507a9fbda8ab2e317d8e5151) ) |
| 3296 | 3408 | ROM_LOAD( "bios_v20.rom", 0x28000, 0x018000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) ) |
| 3297 | 3409 | |
| 3410 | ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) |
| 3411 | ROM_LOAD( "ide.rom", 0x00000, 0x02000, NO_DUMP ) |
| 3412 | |
| 3298 | 3413 | ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 ) |
| 3299 | 3414 | |
| 3300 | 3415 | ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 ) |