Previous 199869 Revisions Next

r19233 Friday 30th November, 2012 at 17:32:45 UTC by Angelo Salese
Part 1 of PC-9801 driver clean-ups
[src/mess/drivers]pc9801.c

trunk/src/mess/drivers/pc9801.c
r19232r19233
279279
280280   required_shared_ptr<UINT8> m_video_ram_1;
281281   required_shared_ptr<UINT8> m_video_ram_2;
282   UINT8 *m_ipl_rom;
283   UINT8 *m_work_ram;
284   UINT8 *m_ext_work_ram;
282285   UINT8 *m_char_rom;
283286   UINT8 *m_kanji_rom;
287   UINT8 *m_pcg_ram;
284288
285289   UINT8 m_portb_tmp;
286290   UINT8 m_dma_offset[4];
r19232r19233
320324   /* PC9821 specific */
321325   UINT8 m_analog256,m_analog256e;
322326   UINT8 m_sdip[24], m_sdip_bank;
323   UINT8 *m_ideram;
327   UINT8 *m_ide_rom;
328   UINT8 *m_ide_ram;
329   UINT8 *m_unk_rom;
324330   UINT8 *m_ext_gvram;
325331   UINT8 *m_vram256;
326332   UINT8 m_pc9821_window_bank;
r19232r19233
440446   UINT8 m_sdip_read(UINT16 port, UINT8 sdip_offset);
441447   void m_sdip_write(UINT16 port, UINT8 sdip_offset,UINT8 data);
442448public:
443   DECLARE_MACHINE_START(pc9801);
449   DECLARE_MACHINE_START(pc9801_common);
450   DECLARE_MACHINE_START(pc9801f);
444451   DECLARE_MACHINE_START(pc9801rs);
445452   DECLARE_MACHINE_START(pc9821);
446453
r19232r19233
842849      if(offset & 4)
843850         printf("Write to undefined port [%02x] <- %02x\n",offset+0x40,data);
844851      else
845         printf("Write to 8251 kbd port [%02x] <- %02x\n",offset+0x40,data);
852      {
853         //printf("Write to 8251 kbd port [%02x] <- %02x\n",offset+0x40,data);
854      }
846855   }
847856}
848857
r19232r19233
10421051      switch((offset & 0xe) + 1)
10431052      {
10441053         case 0x09://cg window font read
1045         {
1046            UINT8 *pcg = memregion("pcg")->base();
1047
1048            return pcg[((m_font_addr & 0x7f7f) << 4) | m_font_lr | (m_font_line & 0x0f)];
1049         }
1054            return m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | (m_font_line & 0x0f)];
10501055      }
10511056
10521057      printf("Read to undefined port [%02x]\n",offset+0xa0);
r19232r19233
11091114            return;
11101115         case 0x09: //cg window font write
11111116         {
1112            UINT8 *pcg = memregion("pcg")->base();
1113
1114            pcg[((m_font_addr & 0x7f7f) << 4) | m_font_lr | m_font_line] = data;
1117            m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | m_font_line] = data;
11151118            return;
11161119         }
11171120      }
r19232r19233
13221325 *
13231326 ************************************/
13241327
1325READ8_MEMBER(pc9801_state::pc9801rs_wram_r)
1326{
1327   UINT8 *WRAM = memregion("wram")->base();
1328READ8_MEMBER(pc9801_state::pc9801rs_wram_r) { return m_work_ram[offset]; }
1329WRITE8_MEMBER(pc9801_state::pc9801rs_wram_w) { m_work_ram[offset] = data; }
13281330
1329   return WRAM[offset];
1330}
1331READ8_MEMBER(pc9801_state::pc9801rs_ex_wram_r) { return m_ext_work_ram[offset]; }
1332WRITE8_MEMBER(pc9801_state::pc9801rs_ex_wram_w) { m_ext_work_ram[offset] = data; }
13311333
1332WRITE8_MEMBER(pc9801_state::pc9801rs_wram_w)
1333{
1334   UINT8 *WRAM = memregion("wram")->base();
1334READ8_MEMBER(pc9801_state::pc9801rs_ipl_r) { return m_ipl_rom[(offset & 0x1ffff)+(m_rom_bank*0x20000)]; }
13351335
1336   WRAM[offset] = data;
1337}
1338
1339READ8_MEMBER(pc9801_state::pc9801rs_ex_wram_r)
1340{
1341   UINT8 *EX_WRAM = memregion("ex_wram")->base();
1342
1343   return EX_WRAM[offset];
1344}
1345
1346WRITE8_MEMBER(pc9801_state::pc9801rs_ex_wram_w)
1347{
1348   UINT8 *EX_WRAM = memregion("ex_wram")->base();
1349
1350   EX_WRAM[offset] = data;
1351}
1352
1353READ8_MEMBER(pc9801_state::pc9801rs_ipl_r)
1354{
1355   UINT8 *ROM = memregion("ipl")->base();
1356
1357   return ROM[(offset & 0x1ffff)+(m_rom_bank*0x20000)];
1358}
1359
13601336/* TODO: it's possible that the offset calculation is actually linear. */
13611337/* TODO: having this non-linear makes the system to boot in BASIC for PC-9821. Perhaps it stores settings? How to change these? */
13621338READ8_MEMBER(pc9801_state::pc9801rs_knjram_r)
13631339{
1364   UINT8 *pcg = memregion("pcg")->base();
1365
1366   return pcg[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)];
1340   return m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)];
13671341}
13681342
13691343WRITE8_MEMBER(pc9801_state::pc9801rs_knjram_w)
13701344{
1371   UINT8 *pcg = memregion("pcg")->base();
1372
1373   pcg[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)] = data;
1345   m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)] = data;
13741346}
13751347
13761348/* FF-based */
13771349WRITE8_MEMBER(pc9801_state::pc9801rs_bank_w)
13781350{
1379
13801351   if(offset == 1)
13811352   {
13821353      if((data & 0xf0) == 0x00 || (data & 0xf0) == 0x10)
r19232r19233
14421413
14431414READ8_MEMBER(pc9801_state::pc9801rs_memory_r)
14441415{
1445
14461416   if(m_gate_a20 == 0)
14471417      offset &= 0xfffff;
14481418
r19232r19233
14611431
14621432WRITE8_MEMBER(pc9801_state::pc9801rs_memory_w)
14631433{
1464
14651434   if(m_gate_a20 == 0)
14661435      offset &= 0xfffff;
14671436
r19232r19233
14721441   else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1) { pc9801rs_ex_wram_w(space,offset-0x00100000,data);    }
14731442   //else
14741443   //  printf("%08x %08x\n",offset,data);
1475
14761444}
14771445
14781446READ8_MEMBER(pc9801_state::pc9810rs_fdc_ctrl_r)
r19232r19233
16661634   AM_RANGE(0x00f0, 0x00ff) AM_READWRITE8(pc9801rs_f0_r,      pc9801rs_f0_w,      0xffffffff)
16671635   AM_RANGE(0x0438, 0x043b) AM_READWRITE8(pc9801rs_access_ctrl_r,pc9801rs_access_ctrl_w,0xffffffff)
16681636   AM_RANGE(0x043c, 0x043f) AM_WRITE8(pc9801rs_bank_w,    0xffffffff) //ROM/RAM bank
1669
16701637ADDRESS_MAP_END
16711638
16721639READ8_MEMBER(pc9801_state::pc980ux_memory_r)
16731640{
1674
16751641   //printf("%08x %d\n",offset,m_gate_a20);
16761642
16771643   //if(m_gate_a20 == 0)
r19232r19233
16911657
16921658WRITE8_MEMBER(pc9801_state::pc9801ux_memory_w)
16931659{
1694
16951660   //if(m_gate_a20 == 0)
16961661   //  offset &= 0xfffff;
16971662
r19232r19233
17021667   else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1) { pc9801rs_ex_wram_w(space,offset-0x00100000,data);    }
17031668   //else
17041669   //  printf("%08x %08x\n",offset,data);
1705
17061670}
17071671
17081672static ADDRESS_MAP_START( pc9801ux_map, AS_PROGRAM, 16, pc9801_state )
r19232r19233
17361700 *
17371701 ************************************/
17381702
1739READ8_MEMBER(pc9801_state::pc9821_ide_r)
1740{
1741   UINT8 *IDE = memregion("ide")->base();
1703READ8_MEMBER(pc9801_state::pc9821_ide_r) { return m_ide_rom[offset]; }
1704READ8_MEMBER(pc9801_state::pc9821_unkrom_r) { return m_unk_rom[offset]; }
17421705
1743   return IDE[offset];
1744}
1706READ8_MEMBER(pc9801_state::pc9821_vram256_r) { return m_vram256[offset]; }
1707WRITE8_MEMBER(pc9801_state::pc9821_vram256_w) {   m_vram256[offset] = data; }
17451708
1746READ8_MEMBER(pc9801_state::pc9821_vram256_r)
1747{
1748   return m_vram256[offset];
1749}
1750
1751WRITE8_MEMBER(pc9801_state::pc9821_vram256_w)
1752{
1753   m_vram256[offset] = data;
1754}
1755
17561709/* Note: not hooking this up causes "MEMORY ERROR" at POST */
1757READ8_MEMBER(pc9801_state::pc9821_ideram_r)
1758{
1759   return m_ideram[offset];
1760}
1710READ8_MEMBER(pc9801_state::pc9821_ideram_r) { return m_ide_ram[offset]; }
1711WRITE8_MEMBER(pc9801_state::pc9821_ideram_w) { m_ide_ram[offset] = data; }
17611712
1762WRITE8_MEMBER(pc9801_state::pc9821_ideram_w)
1763{
1764   m_ideram[offset] = data;
1765}
1713READ8_MEMBER(pc9801_state::pc9821_ext_gvram_r) { return m_ext_gvram[offset]; }
1714WRITE8_MEMBER(pc9801_state::pc9821_ext_gvram_w) { m_ext_gvram[offset] = data; }
17661715
1767READ8_MEMBER(pc9801_state::pc9821_ext_gvram_r)
1768{
1769   return m_ext_gvram[offset];
1770}
17711716
1772WRITE8_MEMBER(pc9801_state::pc9821_ext_gvram_w)
1773{
1774   m_ext_gvram[offset] = data;
1775}
1776
1777READ8_MEMBER(pc9801_state::pc9821_unkrom_r)
1778{
1779   UINT8 *UNKROM = memregion("unkrom")->base();
1780
1781   return UNKROM[offset];
1782}
1783
17841717READ8_MEMBER(pc9801_state::pc9821_memory_r)
17851718{
17861719   if(m_gate_a20 == 0)
r19232r19233
17891722   if(offset >= 0x00080000 && offset <= 0x0009ffff)
17901723      offset = (offset & 0x1ffff) | (m_pc9821_window_bank & 0xfe) * 0x10000;
17911724
1725   /* TODO: window bank at 0xa0000 - 0xbffff */
1726
17921727   if      (                        offset <= 0x0009ffff)                   { return pc9801rs_wram_r(space,offset);               }
17931728//   else if(offset >= 0x00080000 && offset <= 0x0009ffff)               { return pc9821_winram_r(space,offset & 0x1ffff);     }
17941729   else if(offset >= 0x000a0000 && offset <= 0x000a3fff)                   { return pc9801_tvram_r(space,offset-0xa0000);        }
r19232r19233
18161751   if(offset >= 0x00080000 && offset <= 0x0009ffff)
18171752      offset = (offset & 0x1ffff) | (m_pc9821_window_bank & 0xfe) * 0x10000;
18181753
1754   /* TODO: window bank at 0xa0000 - 0xbffff */
1755
18191756   if      (                        offset <= 0x0009ffff)                   { pc9801rs_wram_w(space,offset,data);                  }
18201757//   else if(offset >= 0x00080000 && offset <= 0x0009ffff)               { pc9821_winram_w(space,offset & 0x1ffff,data);        }
18211758   else if(offset >= 0x000a0000 && offset <= 0x000a3fff)                   { pc9801_tvram_w(space,offset-0xa0000,data);           }
r19232r19233
27382675*
27392676****************************************/
27402677
2678//
27412679PALETTE_INIT_MEMBER(pc9801_state,pc9801)
27422680{
27432681   int i;
r19232r19233
27532691   return pic8259_acknowledge( device->machine().device( "pic8259_master" ));
27542692}
27552693
2756MACHINE_START_MEMBER(pc9801_state,pc9801)
2694MACHINE_START_MEMBER(pc9801_state,pc9801_common)
27572695{
27582696   machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
27592697
27602698   m_rtc->cs_w(1);
27612699   m_rtc->oe_w(1);
27622700
2701   m_ipl_rom = memregion("ipl")->base();
2702   m_pcg_ram = auto_alloc_array(machine(), UINT8, 0x80000);
2703
2704   state_save_register_global_pointer(machine(), m_pcg_ram, 0x80000);
2705}
2706
2707MACHINE_START_MEMBER(pc9801_state,pc9801f)
2708{
2709   MACHINE_START_CALL_MEMBER(pc9801_common);
2710
27632711   upd765a_device *fdc;
27642712   fdc = machine().device<upd765a_device>(":upd765_2hd");
27652713   if (fdc)
r19232r19233
27742722      fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2dd_irq), this));
27752723      fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2dd_drq), this));
27762724   }
2725}
27772726
2727MACHINE_START_MEMBER(pc9801_state,pc9801rs)
2728{
2729   MACHINE_START_CALL_MEMBER(pc9801_common);
2730
2731   m_work_ram = auto_alloc_array(machine(), UINT8, 0xa0000);
2732   m_ext_work_ram = auto_alloc_array(machine(), UINT8, 0x700000);
2733   state_save_register_global_pointer(machine(), m_work_ram, 0xa0000);
2734   state_save_register_global_pointer(machine(), m_ext_work_ram, 0x700000);
2735
2736   upd765a_device *fdc;
2737   fdc = machine().device<upd765a_device>(":upd765_2hd");
2738   fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc9801_state::pc9801rs_fdc_irq), this));
2739   fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2hd_drq), this));
27782740}
27792741
2742MACHINE_START_MEMBER(pc9801_state,pc9821)
2743{
2744   MACHINE_START_CALL_MEMBER(pc9801rs);
2745
2746   m_ide_ram = auto_alloc_array(machine(), UINT8, 0x2000);
2747   m_vram256 = auto_alloc_array(machine(), UINT8, 0x8000);
2748   m_ext_gvram = auto_alloc_array(machine(), UINT8, 0xa0000);
2749   m_ide_rom = memregion("ide")->base();
2750   m_unk_rom = memregion("unkrom")->base();
2751
2752   state_save_register_global_pointer(machine(), m_sdip, 24);
2753   state_save_register_global_pointer(machine(), m_ide_ram, 0x2000);
2754   state_save_register_global_pointer(machine(), m_vram256, 0x8000);
2755   state_save_register_global_pointer(machine(), m_ext_gvram, 0xa0000);
2756}
2757
27802758MACHINE_RESET_MEMBER(pc9801_state,pc9801)
27812759{
27822760
r19232r19233
28452823   m_ram_size = machine().device<ram_device>(RAM_TAG)->size() - 0xa0000;
28462824}
28472825
2848MACHINE_START_MEMBER(pc9801_state,pc9801rs)
2849{
2850   machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
2851
2852   m_rtc->cs_w(1);
2853   m_rtc->oe_w(1);
2854
2855   upd765a_device *fdc;
2856   fdc = machine().device<upd765a_device>(":upd765_2hd");
2857   fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc9801_state::pc9801rs_fdc_irq), this));
2858   fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2hd_drq), this));
2859}
2860
2861MACHINE_START_MEMBER(pc9801_state,pc9821)
2862{
2863   MACHINE_START_CALL_MEMBER(pc9801rs);
2864
2865   m_ideram = auto_alloc_array(machine(), UINT8, 0x2000);
2866   m_vram256 = auto_alloc_array(machine(), UINT8, 0x8000);
2867   m_ext_gvram = auto_alloc_array(machine(), UINT8, 0xa0000);
2868
2869   state_save_register_global_pointer(machine(), m_sdip, 24);
2870   state_save_register_global_pointer(machine(), m_ideram, 0x2000);
2871   state_save_register_global_pointer(machine(), m_vram256, 0x8000);
2872   state_save_register_global_pointer(machine(), m_ext_gvram, 0xa0000);
2873}
2874
28752826MACHINE_RESET_MEMBER(pc9801_state,pc9821)
28762827{
28772828   MACHINE_RESET_CALL_MEMBER(pc9801rs);
r19232r19233
28812832
28822833INTERRUPT_GEN_MEMBER(pc9801_state::pc9801_vrtc_irq)
28832834{
2884   #if 0
2885   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
2886   static UINT8 test;
2887
2888   if(machine().input().code_pressed_once(JOYCODE_BUTTON1))
2889      test^=1;
2890
2891   if(test)
2892   {
2893      popmessage("Go hack go");
2894      space.write_word(0x55e,space.machine().rand());
2895   }
2896   #endif
2897
28982835   if(m_vrtc_irq_mask)
28992836   {
29002837      pic8259_ir2_w(machine().device("pic8259_master"), 1);
r19232r19233
29122849   MCFG_CPU_IO_MAP(pc9801_io)
29132850   MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
29142851
2915   MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801)
2852   MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801f)
29162853   MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801f)
29172854
29182855   MCFG_PIT8253_ADD( "pit8253", pit8253_config )
r19232r19233
30923029   MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
30933030MACHINE_CONFIG_END
30943031
3032#define LOAD_IDE_ROM \
3033   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) \
3034   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP ) \
3035   ROM_FILL( 0x0000, 0x2000, 0xcb ) \
3036
3037// pnp?
3038#define LOAD_UNK_ROM \
3039   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) \
3040   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP ) \
3041   ROM_FILL( 0x0000, 0x4000, 0xcb ) \
3042
30953043/*
30963044F - 8086 5
30973045*/
r19232r19233
31303078   ROM_LOAD16_BYTE( "24256c-x02.bin", 0x00001, 0x8000, CRC(90985158) SHA1(78fb106131a3f4eb054e87e00fe4f41193416d65) )
31313079   ROM_LOAD16_BYTE( "24256c-x03.bin", 0x10000, 0x8000, CRC(d4893543) SHA1(eb8c1bee0f694e1e0c145a24152222d4e444e86f) )
31323080   ROM_LOAD16_BYTE( "24256c-x04.bin", 0x10001, 0x8000, CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) )
3133
3134   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
31353081ROM_END
31363082
31373083/*
r19232r19233
31433089   ROM_LOAD( "itf_ux.rom",  0x18000, 0x08000, CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) )
31443090    ROM_LOAD( "bios_ux.rom", 0x28000, 0x18000, BAD_DUMP CRC(97375ca2) SHA1(bfe458f671d90692104d0640730972ca8dc0a100) )
31453091
3146   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3147
3148   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3149
31503092   ROM_REGION( 0x10000, "soundcpu", 0 )
31513093    ROM_LOAD( "sound_ux.rom", 0x0000, 0x4000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )
31523094
r19232r19233
31553097
31563098   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
31573099   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3158
3159   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
3160
31613100ROM_END
31623101
31633102/*
r19232r19233
31673106ROM_START( pc9801rx )
31683107   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
31693108   ROM_LOAD( "itf_rs.rom",  0x18000, 0x08000, BAD_DUMP CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) )
3170    ROM_LOAD( "bios_rx.rom",     0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
3109    ROM_LOAD( "bios_rx.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
31713110
3172   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3173
3174   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3175
31763111   ROM_REGION( 0x10000, "soundcpu", 0 )
31773112    ROM_LOAD( "sound_rx.rom",    0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) )
31783113
r19232r19233
31813116
31823117   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
31833118   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3184
3185   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
3186
31873119ROM_END
31883120
31893121/*
r19232r19233
31973129   ROM_LOAD( "itf_rs.rom",  0x18000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) )
31983130   ROM_LOAD( "bios_rs.rom", 0x28000, 0x18000, BAD_DUMP CRC(315d2703) SHA1(4f208d1dbb68373080d23bff5636bb6b71eb7565) )
31993131
3200   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3201
3202   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3203
32043132   /* following is an emulator memory dump, should be checked and nuked */
32053133   ROM_REGION( 0x100000, "memory", 0 )
32063134   ROM_LOAD( "00000.rom", 0x00000, 0x8000, CRC(6e299128) SHA1(d0e7d016c005cdce53ea5ecac01c6f883b752b80) )
r19232r19233
32203148
32213149   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
32223150   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3223
3224   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
3225
32263151ROM_END
32273152
32283153/*
r19232r19233
32343159ROM_START( pc9801vm )
32353160   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
32363161   ROM_LOAD( "itf_rs.rom",  0x18000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) )
3237    ROM_LOAD( "bios_vm.rom",     0x028000, 0x018000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) )
3162    ROM_LOAD( "bios_vm.rom", 0x28000, 0x018000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) )
32383163
3239   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3240
3241   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3242
32433164   ROM_REGION( 0x10000, "soundcpu", 0 )
32443165    ROM_LOAD( "sound_vm.rom",    0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) )
32453166
r19232r19233
32483169
32493170   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
32503171   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3251
3252   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
32533172ROM_END
32543173
32553174/*
r19232r19233
32633182   ROM_LOAD( "itf.rom",  0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
32643183   ROM_LOAD( "bios.rom", 0x28000, 0x18000, BAD_DUMP CRC(34a19a59) SHA1(2e92346727b0355bc1ec9a7ded1b444a4917f2b9) )
32653184
3266   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3267   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3268   ROM_FILL( 0x0000, 0x2000, 0xcb )
3185   LOAD_IDE_ROM
3186   LOAD_UNK_ROM
32693187
3270   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3271   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3272   ROM_FILL( 0x0000, 0x4000, 0xcb )
3273
3274   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3275
3276   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3277
32783188   ROM_REGION( 0x10000, "soundcpu", 0 )
32793189   ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
32803190
r19232r19233
32863196   ROM_LOAD16_BYTE( "24256c-x02.bin", 0x00001, 0x8000, BAD_DUMP CRC(90985158) SHA1(78fb106131a3f4eb054e87e00fe4f41193416d65) )
32873197   ROM_LOAD16_BYTE( "24256c-x03.bin", 0x10000, 0x8000, BAD_DUMP CRC(d4893543) SHA1(eb8c1bee0f694e1e0c145a24152222d4e444e86f) )
32883198   ROM_LOAD16_BYTE( "24256c-x04.bin", 0x10001, 0x8000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) )
3289
3290   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
32913199ROM_END
32923200
32933201/*
r19232r19233
32963204
32973205ROM_START( pc9821as )
32983206   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
3299   ROM_LOAD( "itf.rom",  0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
3300    ROM_LOAD( "bios_as.rom",     0x028000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
3207   ROM_LOAD( "itf.rom",     0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
3208    ROM_LOAD( "bios_as.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
33013209
3302   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3303   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3304   ROM_FILL( 0x0000, 0x2000, 0xcb )
3210   LOAD_IDE_ROM
3211   LOAD_UNK_ROM
33053212
3306   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3307   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3308   ROM_FILL( 0x0000, 0x4000, 0xcb )
3309
3310   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3311
3312   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3313
33143213   ROM_REGION( 0x10000, "soundcpu", 0 )
33153214    ROM_LOAD( "sound_as.rom",    0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) )
33163215
r19232r19233
33193218
33203219   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
33213220   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3322
3323   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
33243221ROM_END
33253222
33263223
r19232r19233
33303227
33313228ROM_START( pc9821ne )
33323229   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
3333   ROM_LOAD( "itf.rom",  0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
3230   ROM_LOAD( "itf.rom",     0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
33343231   ROM_LOAD( "bios_ne.rom", 0x28000, 0x18000, BAD_DUMP CRC(2ae070c4) SHA1(d7963942042bfd84ed5fc9b7ba8f1c327c094172) )
33353232
3336   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3337   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3338   ROM_FILL( 0x0000, 0x2000, 0xcb )
3233   LOAD_IDE_ROM
3234   LOAD_UNK_ROM
33393235
3340   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3341   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3342   ROM_FILL( 0x0000, 0x4000, 0xcb )
3343
3344   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3345
3346   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3347
33483236   ROM_REGION( 0x10000, "soundcpu", 0 )
33493237   ROM_LOAD( "sound_ne.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
33503238
r19232r19233
33533241
33543242   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
33553243   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3356
3357   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
33583244ROM_END
33593245
33603246/*
r19232r19233
33663252   ROM_LOAD( "bios_486mu.rom", 0x08000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24))
33673253   ROM_RELOAD(             0x28000, 0x18000 ) // missing rom?
33683254
3369   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3370   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3371   ROM_FILL( 0x0000, 0x2000, 0xcb )
3255   LOAD_IDE_ROM
3256   LOAD_UNK_ROM
33723257
3373   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3374   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3375   ROM_FILL( 0x0000, 0x4000, 0xcb )
3376
3377   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3378
3379   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3380
33813258   ROM_REGION( 0x10000, "soundcpu", 0 )
33823259   ROM_LOAD( "sound_486mu.rom", 0x0000, 0x4000, CRC(6cdfa793) SHA1(4b8250f9b9db66548b79f961d61010558d6d6e1c))
33833260
r19232r19233
33863263
33873264   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
33883265   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3389
3390   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
33913266ROM_END
33923267
33933268/*
r19232r19233
33973272ROM_START( pc9821ce2 )
33983273   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
33993274   ROM_LOAD( "itf_ce2.rom",  0x18000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) )
3400    ROM_LOAD( "bios_ce2.rom",     0x28000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) )
3275    ROM_LOAD( "bios_ce2.rom", 0x28000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) )
34013276
3402   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3403   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3404   ROM_FILL( 0x0000, 0x2000, 0xcb )
3277   LOAD_IDE_ROM
3278   LOAD_UNK_ROM
34053279
3406   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3407   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3408   ROM_FILL( 0x0000, 0x4000, 0xcb )
3409
3410   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3411
3412   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3413
34143280   ROM_REGION( 0x10000, "soundcpu", 0 )
34153281    ROM_LOAD( "sound_ce2.rom",    0x000000, 0x004000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
34163282
r19232r19233
34193285
34203286   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
34213287   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3422
3423   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
34243288ROM_END
34253289
34263290/*
r19232r19233
34323296   ROM_LOAD( "itf.rom",  0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
34333297    ROM_LOAD( "bios_xs.rom",     0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
34343298
3435   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3436   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3437   ROM_FILL( 0x0000, 0x2000, 0xcb )
3299   LOAD_IDE_ROM
3300   LOAD_UNK_ROM
34383301
3439   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3440   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3441   ROM_FILL( 0x0000, 0x4000, 0xcb )
3442
3443   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3444
3445   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3446
34473302   ROM_REGION( 0x10000, "soundcpu", 0 )
34483303    ROM_LOAD( "sound_xs.rom",    0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )
34493304
r19232r19233
34523307
34533308   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
34543309   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3455
3456   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
34573310ROM_END
34583311
34593312
r19232r19233
34633316
34643317ROM_START( pc9821v13 )
34653318   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
3466   ROM_LOAD( "itf.rom",  0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
3319   ROM_LOAD( "itf.rom",      0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
34673320   ROM_LOAD( "bios_v13.rom", 0x28000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
34683321
3469   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3470   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3471   ROM_FILL( 0x0000, 0x2000, 0xcb )
3322   LOAD_IDE_ROM
3323   LOAD_UNK_ROM
34723324
3473   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3474   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3475   ROM_FILL( 0x0000, 0x4000, 0xcb )
3476
3477   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3478
3479   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3480
34813325   ROM_REGION( 0x10000, "soundcpu", 0 )
34823326   ROM_LOAD( "sound_v13.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
34833327
r19232r19233
34863330
34873331   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
34883332   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3489
3490   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
34913333ROM_END
34923334
34933335/*
r19232r19233
34973339ROM_START( pc9821v20 )
34983340   ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF )
34993341   ROM_LOAD( "itf_v20.rom",  0x18000, 0x08000, CRC(10e52302) SHA1(f95b8648e3f5a23e507a9fbda8ab2e317d8e5151) )
3500   ROM_LOAD( "bios_v20.rom",     0x28000, 0x018000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) )
3342   ROM_LOAD( "bios_v20.rom", 0x28000, 0x018000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) )
35013343
3502   ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF )
3503   ROM_LOAD( "ide.rom",  0x00000, 0x02000, NO_DUMP )
3504   ROM_FILL( 0x0000, 0x2000, 0xcb )
3344   LOAD_IDE_ROM
3345   LOAD_UNK_ROM
35053346
3506   ROM_REGION( 0x4000, "unkrom", ROMREGION_ERASEFF ) // pnp?
3507   ROM_LOAD( "unk.rom",  0x00000, 0x04000, NO_DUMP )
3508   ROM_FILL( 0x0000, 0x4000, 0xcb )
3509
3510   ROM_REGION( 0x0a0000, "wram", ROMREGION_ERASE00 )
3511
3512   ROM_REGION( 0x700000, "ex_wram", ROMREGION_ERASE00 )
3513
35143347   ROM_REGION( 0x10000, "soundcpu", 0 )
35153348    ROM_LOAD( "sound_v20.rom",    0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )
35163349
r19232r19233
35193352
35203353   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
35213354   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3522
3523   ROM_REGION( 0x80000, "pcg", ROMREGION_ERASEFF )
35243355ROM_END
35253356
35263357/* Genuine dumps */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team