trunk/src/mame/drivers/pc9801.cpp
r253629 | r253630 | |
398 | 398 | #include "machine/upd765.h" |
399 | 399 | #include "machine/upd1990a.h" |
400 | 400 | #include "machine/i8251.h" |
| 401 | #include "machine/bankdev.h" |
401 | 402 | |
402 | 403 | #include "bus/scsi/pc9801_sasi.h" |
403 | 404 | #include "bus/scsi/scsi.h" |
r253629 | r253630 | |
465 | 466 | m_ext_gvram(*this, "ext_gvram"), |
466 | 467 | m_beeper(*this, "beeper"), |
467 | 468 | m_ram(*this, RAM_TAG), |
| 469 | m_ipl(*this, "ipl_bank"), |
468 | 470 | m_gfxdecode(*this, "gfxdecode"), |
469 | 471 | m_palette(*this, "palette"), |
470 | 472 | m_screen(*this, "screen") |
r253629 | r253630 | |
494 | 496 | optional_shared_ptr<UINT32> m_ext_gvram; |
495 | 497 | required_device<beep_device> m_beeper; |
496 | 498 | optional_device<ram_device> m_ram; |
| 499 | optional_device<address_map_bank_device> m_ipl; |
497 | 500 | required_device<gfxdecode_device> m_gfxdecode; |
498 | 501 | required_device<palette_device> m_palette; |
499 | 502 | required_device<screen_device> m_screen; |
r253629 | r253630 | |
508 | 511 | }; |
509 | 512 | |
510 | 513 | emu_timer *m_vbirq; |
511 | | UINT8 *m_ipl_rom; |
512 | 514 | UINT8 *m_char_rom; |
513 | 515 | UINT8 *m_kanji_rom; |
514 | 516 | |
r253629 | r253630 | |
526 | 528 | UINT8 m_font_line; |
527 | 529 | UINT16 m_font_lr; |
528 | 530 | |
529 | | UINT8 m_keyb_press; |
530 | | |
531 | 531 | UINT8 m_fdc_2dd_ctrl,m_fdc_2hd_ctrl; |
532 | 532 | UINT8 m_nmi_ff; |
533 | 533 | |
r253629 | r253630 | |
537 | 537 | /* PC9801RS specific */ |
538 | 538 | UINT8 m_gate_a20; //A20 line |
539 | 539 | UINT8 m_access_ctrl; // DMA related |
540 | | UINT8 m_rom_bank; |
541 | 540 | UINT8 m_fdc_ctrl; |
542 | 541 | UINT8 m_ex_video_ff[128]; |
543 | 542 | struct { |
r253629 | r253630 | |
626 | 625 | int m_sasi_data_enable; |
627 | 626 | UINT8 m_sasi_ctrl; |
628 | 627 | |
629 | | DECLARE_READ8_MEMBER(pc9801rs_ipl_r); |
630 | 628 | DECLARE_READ8_MEMBER(pc9801rs_knjram_r); |
631 | 629 | DECLARE_WRITE8_MEMBER(pc9801rs_knjram_w); |
632 | 630 | DECLARE_WRITE8_MEMBER(pc9801rs_bank_w); |
r253629 | r253630 | |
646 | 644 | DECLARE_READ8_MEMBER(midi_r); |
647 | 645 | // DECLARE_READ8_MEMBER(winram_r); |
648 | 646 | // DECLARE_WRITE8_MEMBER(winram_w); |
649 | | // DECLARE_READ8_MEMBER(pc9801_ext_opna_r); |
650 | | // DECLARE_WRITE8_MEMBER(pc9801_ext_opna_w); |
651 | 647 | DECLARE_READ8_MEMBER(pic_r); |
652 | 648 | DECLARE_WRITE8_MEMBER(pic_w); |
653 | 649 | |
r253629 | r253630 | |
1001 | 997 | |
1002 | 998 | WRITE8_MEMBER(pc9801_state::nmi_ctrl_w) |
1003 | 999 | { |
1004 | | m_nmi_ff = (offset & 2) >> 1; |
| 1000 | m_nmi_ff = offset; |
1005 | 1001 | } |
1006 | 1002 | |
1007 | 1003 | WRITE8_MEMBER(pc9801_state::vrtc_clear_w) |
r253629 | r253630 | |
1735 | 1731 | AM_IMPORT_FROM(pc9801_common_io) |
1736 | 1732 | ADDRESS_MAP_END |
1737 | 1733 | |
1738 | | |
1739 | 1734 | /************************************* |
1740 | 1735 | * |
1741 | 1736 | * PC-9801RS specific handlers (IA-32) |
1742 | 1737 | * |
1743 | 1738 | ************************************/ |
1744 | 1739 | |
1745 | | READ8_MEMBER(pc9801_state::pc9801rs_ipl_r) { return m_ipl_rom[(offset & 0x1ffff)+(m_rom_bank*0x20000)]; } |
1746 | | |
1747 | 1740 | /* TODO: it's possible that the offset calculation is actually linear. */ |
1748 | 1741 | /* TODO: having this non-linear makes the system to boot in BASIC for PC-9821. Perhaps it stores settings? How to change these? */ |
1749 | 1742 | READ8_MEMBER(pc9801_state::pc9801rs_knjram_r) |
r253629 | r253630 | |
1795 | 1788 | { |
1796 | 1789 | if((data & 0xed) == 0x00) |
1797 | 1790 | { |
1798 | | m_rom_bank = (data & 2) >> 1; |
| 1791 | m_ipl->set_bank((data & 2) >> 1); |
1799 | 1792 | return; |
1800 | 1793 | } |
1801 | 1794 | } |
r253629 | r253630 | |
2103 | 2096 | upd7220_grcg_w(space, offset | (m_vram_bank << 16), data, mem_mask); |
2104 | 2097 | } |
2105 | 2098 | |
| 2099 | static ADDRESS_MAP_START( ipl_bank, AS_0, 16, pc9801_state ) |
| 2100 | AM_RANGE(0x00000, 0x2ffff) AM_ROM AM_REGION("ipl", 0) |
| 2101 | ADDRESS_MAP_END |
| 2102 | |
2106 | 2103 | static ADDRESS_MAP_START( pc9801ux_map, AS_PROGRAM, 16, pc9801_state ) |
2107 | 2104 | AM_RANGE(0x000000, 0x09ffff) AM_RAMBANK("wram") |
2108 | 2105 | AM_RANGE(0x0a0000, 0x0a3fff) AM_READWRITE(tvram_r, tvram_w) |
2109 | 2106 | AM_RANGE(0x0a4000, 0x0a4fff) AM_READWRITE8(pc9801rs_knjram_r, pc9801rs_knjram_w, 0xffff) |
2110 | 2107 | AM_RANGE(0x0a8000, 0x0bffff) AM_READWRITE(grcg_gvram_r, grcg_gvram_w) |
2111 | 2108 | AM_RANGE(0x0e0000, 0x0e7fff) AM_READWRITE(grcg_gvram0_r,grcg_gvram0_w) |
2112 | | AM_RANGE(0x0e0000, 0x0fffff) AM_READ8(pc9801rs_ipl_r, 0xffff) |
| 2109 | AM_RANGE(0x0e8000, 0x0fffff) AM_DEVICE("ipl_bank", address_map_bank_device, amap16) |
2113 | 2110 | ADDRESS_MAP_END |
2114 | 2111 | |
2115 | 2112 | static ADDRESS_MAP_START( pc9801ux_io, AS_IO, 16, pc9801_state ) |
r253629 | r253630 | |
2134 | 2131 | static ADDRESS_MAP_START( pc9801rs_map, AS_PROGRAM, 16, pc9801_state ) |
2135 | 2132 | // AM_RANGE(0x0d8000, 0x0d9fff) AM_ROM AM_REGION("ide",0) |
2136 | 2133 | AM_RANGE(0x0da000, 0x0dbfff) AM_RAM // ide ram |
2137 | | AM_RANGE(0xee0000, 0xefffff) AM_READ8(pc9801rs_ipl_r, 0xffff) |
2138 | | AM_RANGE(0xfe0000, 0xffffff) AM_READ8(pc9801rs_ipl_r, 0xffff) |
| 2134 | AM_RANGE(0xee8000, 0xefffff) AM_DEVICE("ipl_bank", address_map_bank_device, amap16) |
| 2135 | AM_RANGE(0xfe8000, 0xffffff) AM_DEVICE("ipl_bank", address_map_bank_device, amap16) |
2139 | 2136 | AM_IMPORT_FROM(pc9801ux_map) |
2140 | 2137 | ADDRESS_MAP_END |
2141 | 2138 | |
r253629 | r253630 | |
2343 | 2340 | // AM_RANGE(0x000d8000, 0x000d9fff) AM_ROM AM_REGION("ide",0) |
2344 | 2341 | AM_RANGE(0x000da000, 0x000dbfff) AM_RAM // ide ram |
2345 | 2342 | AM_RANGE(0x000e0000, 0x000e7fff) AM_READWRITE16(grcg_gvram0_r,grcg_gvram0_w, 0xffffffff) |
2346 | | AM_RANGE(0x000e0000, 0x000fffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff) |
| 2343 | AM_RANGE(0x000e8000, 0x000fffff) AM_DEVICE16("ipl_bank", address_map_bank_device, amap16, 0xffffffff) |
2347 | 2344 | AM_RANGE(0x00f00000, 0x00f9ffff) AM_RAM AM_SHARE("ext_gvram") |
2348 | | AM_RANGE(0xffee0000, 0xffefffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff) |
2349 | | AM_RANGE(0xfffe0000, 0xffffffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff) |
| 2345 | AM_RANGE(0xffee8000, 0xffefffff) AM_DEVICE16("ipl_bank", address_map_bank_device, amap16, 0xffffffff) |
| 2346 | AM_RANGE(0xfffe8000, 0xffffffff) AM_DEVICE16("ipl_bank", address_map_bank_device, amap16, 0xffffffff) |
2350 | 2347 | ADDRESS_MAP_END |
2351 | 2348 | |
2352 | 2349 | static ADDRESS_MAP_START( pc9821_io, AS_IO, 32, pc9801_state ) |
r253629 | r253630 | |
2435 | 2432 | ADDRESS_MAP_END |
2436 | 2433 | |
2437 | 2434 | static ADDRESS_MAP_START( upd7220_1_map, AS_0, 16, pc9801_state ) |
2438 | | AM_RANGE(0x00000, 0x3ffff) AM_RAM AM_SHARE("video_ram_1") |
| 2435 | AM_RANGE(0x00000, 0x03fff) AM_RAM AM_SHARE("video_ram_1") |
2439 | 2436 | ADDRESS_MAP_END |
2440 | 2437 | |
2441 | 2438 | static ADDRESS_MAP_START( upd7220_2_map, AS_0, 16, pc9801_state ) |
r253629 | r253630 | |
2965 | 2962 | m_rtc->cs_w(1); |
2966 | 2963 | m_rtc->oe_w(1); |
2967 | 2964 | |
2968 | | m_ipl_rom = memregion("ipl")->base(); |
2969 | 2965 | m_vbirq = timer_alloc(TIMER_VBIRQ); |
2970 | 2966 | |
2971 | 2967 | save_item(NAME(m_sasi_data)); |
r253629 | r253630 | |
3075 | 3071 | MACHINE_RESET_CALL_MEMBER(pc9801_common); |
3076 | 3072 | |
3077 | 3073 | m_gate_a20 = 0; |
3078 | | m_rom_bank = 0; |
3079 | 3074 | m_fdc_ctrl = 3; |
3080 | 3075 | m_access_ctrl = 0; |
3081 | 3076 | m_ide_sel = 0; |
3082 | 3077 | m_ide1_irq = m_ide2_irq = false; |
3083 | | m_keyb_press = 0xff; // temp kludge, for PC-9821 booting |
3084 | | // m_has_opna = ioport("SOUND_CONFIG")->read() & 1; |
3085 | 3078 | m_maincpu->set_input_line(INPUT_LINE_A20, m_gate_a20); |
3086 | 3079 | |
3087 | 3080 | if(memregion("ide")) |
r253629 | r253630 | |
3306 | 3299 | MCFG_PALETTE_INIT_OWNER(pc9801_state,pc9801) |
3307 | 3300 | MACHINE_CONFIG_END |
3308 | 3301 | |
3309 | | static MACHINE_CONFIG_DERIVED( pc9801vm, pc9801 ) |
3310 | | MCFG_CPU_REPLACE("maincpu",V30,10000000) |
3311 | | MCFG_CPU_PROGRAM_MAP(pc9801ux_map) |
3312 | | MCFG_CPU_IO_MAP(pc9801ux_io) |
3313 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, vrtc_irq) |
3314 | 3302 | |
3315 | | MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801_common) |
3316 | | MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801_common) |
3317 | | MACHINE_CONFIG_END |
3318 | | |
3319 | 3303 | static MACHINE_CONFIG_START( pc9801rs, pc9801_state ) |
3320 | 3304 | MCFG_CPU_ADD("maincpu", I386SX, MAIN_CLOCK_X1*8) // unknown clock. |
3321 | 3305 | MCFG_CPU_PROGRAM_MAP(pc9801rs_map) |
r253629 | r253630 | |
3325 | 3309 | |
3326 | 3310 | MCFG_FRAGMENT_ADD(pc9801_common) |
3327 | 3311 | |
| 3312 | MCFG_DEVICE_ADD("ipl_bank", ADDRESS_MAP_BANK, 0) |
| 3313 | MCFG_DEVICE_PROGRAM_MAP(ipl_bank) |
| 3314 | MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE) |
| 3315 | MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16) |
| 3316 | MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(18) |
| 3317 | MCFG_ADDRESS_MAP_BANK_STRIDE(0x18000) |
| 3318 | |
3328 | 3319 | MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801rs) |
3329 | 3320 | MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801rs) |
3330 | 3321 | |
r253629 | r253630 | |
3345 | 3336 | MCFG_PALETTE_INIT_OWNER(pc9801_state,pc9801) |
3346 | 3337 | MACHINE_CONFIG_END |
3347 | 3338 | |
| 3339 | static MACHINE_CONFIG_DERIVED( pc9801vm, pc9801rs ) |
| 3340 | MCFG_CPU_REPLACE("maincpu",V30,10000000) |
| 3341 | MCFG_CPU_PROGRAM_MAP(pc9801ux_map) |
| 3342 | MCFG_CPU_IO_MAP(pc9801ux_io) |
| 3343 | MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, vrtc_irq) |
| 3344 | |
| 3345 | MCFG_DEVICE_MODIFY(RAM_TAG) |
| 3346 | MCFG_RAM_DEFAULT_SIZE("640K") |
| 3347 | MCFG_RAM_EXTRA_OPTIONS("640K") |
| 3348 | |
| 3349 | MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801_common) |
| 3350 | MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801_common) |
| 3351 | MACHINE_CONFIG_END |
| 3352 | |
3348 | 3353 | static MACHINE_CONFIG_DERIVED( pc9801ux, pc9801rs ) |
3349 | 3354 | MCFG_CPU_REPLACE("maincpu",I80286,10000000) |
3350 | 3355 | MCFG_CPU_PROGRAM_MAP(pc9801ux_map) |
r253629 | r253630 | |
3468 | 3473 | */ |
3469 | 3474 | |
3470 | 3475 | ROM_START( pc9801ux ) |
3471 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3472 | | ROM_LOAD( "itf_ux.rom", 0x18000, 0x08000, CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) |
3473 | | ROM_LOAD( "bios_ux.rom", 0x28000, 0x18000, BAD_DUMP CRC(97375ca2) SHA1(bfe458f671d90692104d0640730972ca8dc0a100) ) |
| 3476 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3477 | ROM_LOAD( "itf_ux.rom", 0x10000, 0x08000, CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) |
| 3478 | ROM_LOAD( "bios_ux.rom", 0x18000, 0x18000, BAD_DUMP CRC(97375ca2) SHA1(bfe458f671d90692104d0640730972ca8dc0a100) ) |
3474 | 3479 | |
3475 | 3480 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3476 | 3481 | ROM_LOAD( "sound_ux.rom", 0x0000, 0x4000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) ) |
r253629 | r253630 | |
3489 | 3494 | */ |
3490 | 3495 | |
3491 | 3496 | ROM_START( pc9801rx ) |
3492 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3493 | | ROM_LOAD( "itf_rs.rom", 0x18000, 0x08000, BAD_DUMP CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) |
3494 | | ROM_LOAD( "bios_rx.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3497 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3498 | ROM_LOAD( "itf_rs.rom", 0x10000, 0x08000, BAD_DUMP CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) |
| 3499 | ROM_LOAD( "bios_rx.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
3495 | 3500 | // fix csum |
3496 | | ROM_FILL(0x3fffe, 1, 0x0d) |
| 3501 | ROM_FILL(0x2fffe, 1, 0x0d) |
3497 | 3502 | |
3498 | 3503 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3499 | 3504 | ROM_LOAD( "sound_rx.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) ) |
r253629 | r253630 | |
3512 | 3517 | */ |
3513 | 3518 | |
3514 | 3519 | ROM_START( pc9801rs ) |
3515 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3516 | | ROM_LOAD( "itf_rs.rom", 0x18000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) |
3517 | | ROM_LOAD( "bios_rs.rom", 0x28000, 0x18000, BAD_DUMP CRC(315d2703) SHA1(4f208d1dbb68373080d23bff5636bb6b71eb7565) ) |
| 3520 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3521 | ROM_LOAD( "itf_rs.rom", 0x10000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) |
| 3522 | ROM_LOAD( "bios_rs.rom", 0x18000, 0x18000, BAD_DUMP CRC(315d2703) SHA1(4f208d1dbb68373080d23bff5636bb6b71eb7565) ) |
3518 | 3523 | |
3519 | 3524 | /* following is an emulator memory dump, should be checked and nuked */ |
3520 | 3525 | ROM_REGION( 0x100000, "memory", 0 ) |
r253629 | r253630 | |
3544 | 3549 | */ |
3545 | 3550 | |
3546 | 3551 | ROM_START( pc9801bx2 ) |
3547 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
| 3552 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
3548 | 3553 | ROM_LOAD( "pc98bank0.bin", 0x00000, 0x08000, BAD_DUMP CRC(bfd100cc) SHA1(cf8e6a5679cca7761481abef0ba4b35ead39efdb) ) |
3549 | 3554 | ROM_LOAD( "pc98bank1.bin", 0x00000, 0x08000, BAD_DUMP CRC(d0562af8) SHA1(2c4fd27eb598f4b8a00f3e86941ba27007d58e47) ) |
3550 | 3555 | ROM_LOAD( "pc98bank2.bin", 0x00000, 0x08000, BAD_DUMP CRC(12818a14) SHA1(9c31e8ac85d78fa779d6bbc2095557065294ec09) ) |
3551 | 3556 | ROM_LOAD( "pc98bank3.bin", 0x00000, 0x08000, BAD_DUMP CRC(d0bda44e) SHA1(c1022a3b2be4d2a1e43914df9e4605254e5f99d5) ) |
3552 | | ROM_LOAD( "pc98bank4.bin", 0x18000, 0x08000, BAD_DUMP CRC(be8092f4) SHA1(12c8a166b8c6ebbef85568b67e1f098562883365) ) |
| 3557 | ROM_LOAD( "pc98bank4.bin", 0x10000, 0x08000, BAD_DUMP CRC(be8092f4) SHA1(12c8a166b8c6ebbef85568b67e1f098562883365) ) |
3553 | 3558 | ROM_LOAD( "pc98bank5.bin", 0x00000, 0x08000, BAD_DUMP CRC(4e32081e) SHA1(e23571273b7cad01aa116cb7414c5115a1093f85) ) |
3554 | 3559 | ROM_LOAD( "pc98bank6.bin", 0x00000, 0x08000, BAD_DUMP CRC(f878c160) SHA1(cad47f09075ffe4f7b51bb937c9f716c709d4596) ) |
3555 | 3560 | ROM_LOAD( "pc98bank7.bin", 0x00000, 0x08000, BAD_DUMP CRC(1bd6537b) SHA1(ff9ee1c976a12b87851635ce8991ac4ad607675b) ) |
r253629 | r253630 | |
3571 | 3576 | */ |
3572 | 3577 | |
3573 | 3578 | ROM_START( pc9801vm ) |
3574 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3575 | | ROM_LOAD( "itf_ux.rom", 0x18000, 0x08000, BAD_DUMP CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) |
3576 | | ROM_LOAD( "bios_vm.rom", 0x28000, 0x018000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) ) |
| 3579 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3580 | ROM_LOAD( "itf_ux.rom", 0x10000, 0x08000, BAD_DUMP CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) |
| 3581 | ROM_LOAD( "bios_vm.rom", 0x18000, 0x18000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) ) |
3577 | 3582 | |
3578 | 3583 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3579 | 3584 | ROM_LOAD( "sound_vm.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) ) |
r253629 | r253630 | |
3592 | 3597 | */ |
3593 | 3598 | |
3594 | 3599 | ROM_START( pc9821 ) |
3595 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3596 | | ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
3597 | | ROM_LOAD( "bios.rom", 0x28000, 0x18000, BAD_DUMP CRC(34a19a59) SHA1(2e92346727b0355bc1ec9a7ded1b444a4917f2b9) ) |
3598 | | ROM_FILL(0x34c40, 4, 0) // hide the _32_ marker until we have a 32-bit clean IDE bios otherwise windows tries to |
| 3600 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3601 | ROM_LOAD( "itf.rom", 0x10000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3602 | ROM_LOAD( "bios.rom", 0x18000, 0x18000, BAD_DUMP CRC(34a19a59) SHA1(2e92346727b0355bc1ec9a7ded1b444a4917f2b9) ) |
| 3603 | ROM_FILL(0x24c40, 4, 0) // hide the _32_ marker until we have a 32-bit clean IDE bios otherwise windows tries to |
3599 | 3604 | // make a 32-bit call into 16-bit code |
3600 | | ROM_FILL(0x37ffe, 1, 0x92) |
3601 | | ROM_FILL(0x37fff, 1, 0xd7) |
| 3605 | ROM_FILL(0x27ffe, 1, 0x92) |
| 3606 | ROM_FILL(0x27fff, 1, 0xd7) |
3602 | 3607 | |
3603 | 3608 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3604 | 3609 | ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) |
r253629 | r253630 | |
3615 | 3620 | */ |
3616 | 3621 | |
3617 | 3622 | ROM_START( pc9821as ) |
3618 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3619 | | ROM_LOAD( "itf.rom", 0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
3620 | | ROM_LOAD( "bios_as.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3623 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3624 | ROM_LOAD( "itf.rom", 0x10000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3625 | ROM_LOAD( "bios_as.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
3621 | 3626 | |
3622 | 3627 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3623 | 3628 | ROM_LOAD( "sound_as.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) ) |
r253629 | r253630 | |
3647 | 3652 | ROM_SYSTEM_BIOS(1, "phd0102", "PHD0102") |
3648 | 3653 | ROMX_LOAD( "phd0102.rom", 0x000000, 0x80000, CRC(3036774c) SHA1(59856a348f156adf5eca06326f967aca54ff871c), ROM_BIOS(2) ) |
3649 | 3654 | |
3650 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) // TODO: identify ROM banks |
3651 | | ROM_COPY( "biosrom", 0x20000, 0x18000, 0x08000 ) |
3652 | | ROM_COPY( "biosrom", 0x30000, 0x28000, 0x18000 ) |
| 3655 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) // TODO: identify ROM banks |
| 3656 | ROM_COPY( "biosrom", 0x20000, 0x10000, 0x08000 ) |
| 3657 | ROM_COPY( "biosrom", 0x30000, 0x18000, 0x18000 ) |
3653 | 3658 | |
3654 | 3659 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3655 | 3660 | ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) |
r253629 | r253630 | |
3667 | 3672 | */ |
3668 | 3673 | |
3669 | 3674 | ROM_START( pc9821ne ) |
3670 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3671 | | ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
3672 | | ROM_LOAD( "bios_ne.rom", 0x28000, 0x18000, BAD_DUMP CRC(2ae070c4) SHA1(d7963942042bfd84ed5fc9b7ba8f1c327c094172) ) |
| 3675 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3676 | ROM_LOAD( "itf.rom", 0x10000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3677 | ROM_LOAD( "bios_ne.rom", 0x18000, 0x18000, BAD_DUMP CRC(2ae070c4) SHA1(d7963942042bfd84ed5fc9b7ba8f1c327c094172) ) |
3673 | 3678 | |
3674 | 3679 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3675 | 3680 | ROM_LOAD( "sound_ne.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) |
r253629 | r253630 | |
3686 | 3691 | */ |
3687 | 3692 | |
3688 | 3693 | ROM_START( pc486mu ) |
3689 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3690 | | ROM_LOAD( "bios_486mu.rom", 0x08000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24)) |
3691 | | ROM_RELOAD( 0x28000, 0x18000 ) // missing rom? |
| 3694 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3695 | ROM_LOAD( "bios_486mu.rom", 0x00000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24)) |
| 3696 | ROM_RELOAD( 0x18000, 0x18000 ) // missing rom? |
3692 | 3697 | |
3693 | 3698 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3694 | 3699 | ROM_LOAD( "sound_486mu.rom", 0x0000, 0x4000, CRC(6cdfa793) SHA1(4b8250f9b9db66548b79f961d61010558d6d6e1c)) |
r253629 | r253630 | |
3705 | 3710 | */ |
3706 | 3711 | |
3707 | 3712 | ROM_START( pc9821ce2 ) |
3708 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3709 | | ROM_LOAD( "itf_ce2.rom", 0x18000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) ) |
3710 | | ROM_LOAD( "bios_ce2.rom", 0x28000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) ) |
| 3713 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3714 | ROM_LOAD( "itf_ce2.rom", 0x10000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) ) |
| 3715 | ROM_LOAD( "bios_ce2.rom", 0x18000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) ) |
3711 | 3716 | |
3712 | 3717 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3713 | 3718 | ROM_LOAD( "sound_ce2.rom", 0x000000, 0x004000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) |
r253629 | r253630 | |
3724 | 3729 | */ |
3725 | 3730 | |
3726 | 3731 | ROM_START( pc9821xs ) |
3727 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3728 | | ROM_LOAD( "itf.rom", 0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
3729 | | ROM_LOAD( "bios_xs.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3732 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3733 | ROM_LOAD( "itf.rom", 0x10000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3734 | ROM_LOAD( "bios_xs.rom", 0x18000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
3730 | 3735 | |
3731 | 3736 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3732 | 3737 | ROM_LOAD( "sound_xs.rom", 0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) ) |
r253629 | r253630 | |
3744 | 3749 | */ |
3745 | 3750 | |
3746 | 3751 | ROM_START( pc9821v13 ) |
3747 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3748 | | ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
3749 | | ROM_LOAD( "bios_v13.rom", 0x28000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
| 3752 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3753 | ROM_LOAD( "itf.rom", 0x10000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) |
| 3754 | ROM_LOAD( "bios_v13.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) |
3750 | 3755 | |
3751 | 3756 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3752 | 3757 | ROM_LOAD( "sound_v13.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) |
r253629 | r253630 | |
3763 | 3768 | */ |
3764 | 3769 | |
3765 | 3770 | ROM_START( pc9821v20 ) |
3766 | | ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) |
3767 | | ROM_LOAD( "itf_v20.rom", 0x38000, 0x08000, CRC(10e52302) SHA1(f95b8648e3f5a23e507a9fbda8ab2e317d8e5151) ) |
3768 | | ROM_LOAD( "bios_v20.rom", 0x08000, 0x018000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) ) |
| 3771 | ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) |
| 3772 | ROM_LOAD( "itf_v20.rom", 0x10000, 0x08000, CRC(10e52302) SHA1(f95b8648e3f5a23e507a9fbda8ab2e317d8e5151) ) |
| 3773 | ROM_LOAD( "bios_v20.rom", 0x18000, 0x18000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) ) |
3769 | 3774 | |
3770 | 3775 | ROM_REGION( 0x10000, "sound_bios", 0 ) |
3771 | 3776 | ROM_LOAD( "sound_v20.rom", 0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) ) |