trunk/src/mess/machine/tandy1t.c
r19913 | r19914 | |
355 | 355 | PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Print") /* 37 B7 */ |
356 | 356 | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Alt") PORT_CODE(KEYCODE_LALT) /* Left Alt 38 B8 */ |
357 | 357 | PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) /* Space 39 B9 */ |
358 | | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Caps") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE/* Caps Lock 3A BA */ |
| 358 | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Caps") PORT_CODE(KEYCODE_CAPSLOCK) /* Caps Lock 3A BA */ |
359 | 359 | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) /* F1 3B BB */ |
360 | 360 | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) /* F2 3C BC */ |
361 | 361 | PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) /* F3 3D BD */ |
r19913 | r19914 | |
368 | 368 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) /* F8 42 C2 */ |
369 | 369 | PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) /* F9 43 C3 */ |
370 | 370 | PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) /* F10 44 C4 */ |
371 | | PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NumLock") PORT_CODE(KEYCODE_NUMLOCK) PORT_TOGGLE/* Num Lock 45 C5 */ |
| 371 | PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NumLock") PORT_CODE(KEYCODE_NUMLOCK) /* Num Lock 45 C5 */ |
372 | 372 | PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Hold") PORT_CODE(KEYCODE_SCRLOCK) /* 46 C6 */ |
373 | 373 | PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KP 7 \\") PORT_CODE(KEYCODE_7_PAD) /* Keypad 7 47 C7 */ |
374 | 374 | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KP 8 ~") PORT_CODE(KEYCODE_8_PAD) /* Keypad 8 48 C8 */ |
trunk/src/mess/machine/pc.c
r19913 | r19914 | |
527 | 527 | |
528 | 528 | WRITE8_MEMBER(pc_state::pc_nmi_enable_w) |
529 | 529 | { |
530 | | logerror( "%08X: changing NMI state to %s\n", space.device().safe_pc(), data & 0x80 ? "enabled" : "disabled" ); |
| 530 | //logerror( "%08X: changing NMI state to %s\n", space.device().safe_pc(), data & 0x80 ? "enabled" : "disabled" ); // this is clogging up the log |
531 | 531 | |
532 | 532 | nmi_enabled = data & 0x80; |
533 | 533 | } |
r19913 | r19914 | |
582 | 582 | READ8_MEMBER(pc_state::pcjr_nmi_enable_r) |
583 | 583 | { |
584 | 584 | pcjr_keyb.latch = 0; |
585 | | |
| 585 | machine().firstcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); |
586 | 586 | return nmi_enabled; |
587 | 587 | } |
588 | 588 | |
r19913 | r19914 | |
602 | 602 | |
603 | 603 | static void pcjr_set_keyb_int(running_machine &machine, int state) |
604 | 604 | { |
605 | | pc_state *st = machine.driver_data<pc_state>(); |
606 | 605 | if ( state ) |
607 | 606 | { |
608 | 607 | UINT8 data = pc_keyb_read(); |
r19913 | r19914 | |
634 | 633 | /* Set timer */ |
635 | 634 | pcjr_keyb.keyb_signal_timer->adjust( attotime::from_usec(220), 0, attotime::from_usec(220) ); |
636 | 635 | |
637 | | /* Trigger NMI */ |
638 | | if ( ! pcjr_keyb.latch ) |
639 | | { |
640 | | pcjr_keyb.latch = 1; |
641 | | if ( nmi_enabled & 0x80 ) |
642 | | { |
643 | | st->m_pit8253->machine().firstcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE ); |
644 | | } |
645 | | } |
| 636 | pcjr_keyb.latch = 1; |
646 | 637 | } |
| 638 | machine.firstcpu->set_input_line(INPUT_LINE_NMI, pcjr_keyb.latch && nmi_enabled); |
647 | 639 | } |
648 | 640 | |
649 | 641 | |
r19913 | r19914 | |
1181 | 1173 | logerror("fdc: dor = %02x\n", data); |
1182 | 1174 | UINT8 pdor = m_pcjr_dor; |
1183 | 1175 | upd765a_device *fdc = machine().device<upd765a_device>("upd765"); |
1184 | | floppy_image_device *floppy = machine().device<floppy_connector>("upd765:0")->get_device(); |
| 1176 | floppy_image_device *floppy0 = fdc->subdevice<floppy_connector>("0")->get_device(); |
| 1177 | floppy_image_device *floppy1 = NULL; |
| 1178 | |
| 1179 | if(fdc->subdevice("1")) |
| 1180 | floppy1 = fdc->subdevice<floppy_connector>("1")->get_device(); |
1185 | 1181 | m_pcjr_dor = data; |
1186 | 1182 | |
1187 | | if(floppy) |
1188 | | floppy->mon_w(!(m_pcjr_dor & 1)); |
| 1183 | if(floppy0) |
| 1184 | floppy0->mon_w(!(m_pcjr_dor & 1)); |
| 1185 | if(floppy1) |
| 1186 | floppy1->mon_w(!(m_pcjr_dor & 2)); |
1189 | 1187 | |
1190 | 1188 | if(m_pcjr_dor & 1) |
1191 | | fdc->set_floppy(floppy); |
| 1189 | fdc->set_floppy(floppy0); |
| 1190 | else if(m_pcjr_dor & 2) |
| 1191 | fdc->set_floppy(floppy1); |
1192 | 1192 | else |
1193 | 1193 | fdc->set_floppy(NULL); |
1194 | 1194 | |
r19913 | r19914 | |
1204 | 1204 | } |
1205 | 1205 | } |
1206 | 1206 | |
| 1207 | // pcjx port 0x1ff, some info from Toshiya Takeda |
| 1208 | |
| 1209 | void pc_state::pcjx_set_bank(int unk1, int unk2, int unk3) |
| 1210 | { |
| 1211 | logerror("pcjx: 0x1ff 0:%02x 1:%02x 2:%02x\n", unk1, unk2, unk3); |
| 1212 | } |
| 1213 | |
| 1214 | WRITE8_MEMBER(pc_state::pcjx_port_1ff_w) |
| 1215 | { |
| 1216 | switch(m_pcjx_1ff_count) { |
| 1217 | case 0: |
| 1218 | m_pcjx_1ff_bankval = data; |
| 1219 | m_pcjx_1ff_count++; |
| 1220 | break; |
| 1221 | case 1: |
| 1222 | m_pcjx_1ff_bank[m_pcjx_1ff_bankval & 0x1f][0] = data; |
| 1223 | m_pcjx_1ff_count++; |
| 1224 | break; |
| 1225 | case 2: |
| 1226 | m_pcjx_1ff_bank[m_pcjx_1ff_bankval & 0x1f][1] = data; |
| 1227 | m_pcjx_1ff_count = 0; |
| 1228 | pcjx_set_bank(m_pcjx_1ff_bankval, m_pcjx_1ff_bank[m_pcjx_1ff_bankval & 0x1f][0], data); |
| 1229 | break; |
| 1230 | } |
| 1231 | } |
| 1232 | |
| 1233 | |
| 1234 | READ8_MEMBER(pc_state::pcjx_port_1ff_r) |
| 1235 | { |
| 1236 | if(m_pcjx_1ff_count == 2) |
| 1237 | pcjx_set_bank(m_pcjx_1ff_bankval, m_pcjx_1ff_bank[m_pcjx_1ff_bankval & 0x1f][0], m_pcjx_1ff_bank[m_pcjx_1ff_bankval & 0x1f][1]); |
| 1238 | |
| 1239 | m_pcjx_1ff_count = 0; |
| 1240 | return 0x60; // expansion? |
| 1241 | } |
| 1242 | |
1207 | 1243 | /* |
1208 | 1244 | * MC1502 uses a FD1793 clone instead of uPD765 |
1209 | 1245 | */ |
r19913 | r19914 | |
1475 | 1511 | m_pit8253 = machine().device("pit8253"); |
1476 | 1512 | } |
1477 | 1513 | |
1478 | | |
1479 | 1514 | MACHINE_RESET_MEMBER(pc_state,pcjr) |
1480 | 1515 | { |
1481 | 1516 | device_t *speaker = machine().device(SPEAKER_TAG); |
r19913 | r19914 | |
1498 | 1533 | m_pcjr_dor = 0; |
1499 | 1534 | speaker_level_w( speaker, 0 ); |
1500 | 1535 | |
| 1536 | m_pcjx_1ff_count = 0; |
| 1537 | m_pcjx_1ff_val = 0; |
| 1538 | m_pcjx_1ff_bankval = 0; |
| 1539 | memset(m_pcjx_1ff_bank, 0, sizeof(m_pcjx_1ff_bank)); |
| 1540 | |
1501 | 1541 | pcjr_keyb_init(machine()); |
1502 | 1542 | } |
1503 | 1543 | |
trunk/src/mess/video/pc_t1t.c
r19913 | r19914 | |
148 | 148 | UINT8 display_enable; |
149 | 149 | UINT8 vsync; |
150 | 150 | UINT8 palette_base; |
| 151 | UINT8 *jxkanji; |
151 | 152 | } pcjr = { 0 }; |
152 | 153 | |
153 | 154 | |
r19913 | r19914 | |
225 | 226 | } |
226 | 227 | } |
227 | 228 | |
| 229 | static MC6845_UPDATE_ROW( pcjx_text_update_row ) |
| 230 | { |
| 231 | const rgb_t *palette = palette_entry_list_raw(bitmap.palette()); |
| 232 | UINT32 *p = &bitmap.pix32(y); |
| 233 | int i; |
228 | 234 | |
| 235 | for ( i = 0; i < x_count; i++ ) |
| 236 | { |
| 237 | UINT16 offset = ( ( ma + i ) << 1 ) & 0x3fff; |
| 238 | UINT8 chr = pcjr.displayram[ offset ]; |
| 239 | UINT8 attr = pcjr.displayram[ offset +1 ]; |
| 240 | UINT16 fg = pcjr.palette_base + ( attr & 0x07 ); |
| 241 | UINT16 bg = pcjr.palette_base + ( ( attr >> 4 ) & 0x07 ); |
| 242 | UINT16 code = chr & 0x1f; |
| 243 | if((attr & 0x88) == 0x88) |
| 244 | { |
| 245 | code = pcjr.displayram[ offset - 2 ] & 0x1f; |
| 246 | code = (code << 8) + chr; |
| 247 | } |
| 248 | else if(attr & 0x80) |
| 249 | code = (code << 8) + pcjr.displayram[ offset + 2 ]; |
| 250 | else |
| 251 | code = chr; |
| 252 | |
| 253 | UINT8 data; |
| 254 | if(ra < 16) |
| 255 | data = pcjr.jxkanji[code * 16 * 2 + (ra * 2) + ((attr & 8)?1:0)]; |
| 256 | else |
| 257 | data = ((i == cursor_x) && (pcjr.pc_framecnt & 8)) ? 0xff: 0; |
| 258 | |
| 259 | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
| 260 | *p = palette[( data & 0x40 ) ? fg : bg]; p++; |
| 261 | *p = palette[( data & 0x20 ) ? fg : bg]; p++; |
| 262 | *p = palette[( data & 0x10 ) ? fg : bg]; p++; |
| 263 | *p = palette[( data & 0x08 ) ? fg : bg]; p++; |
| 264 | *p = palette[( data & 0x04 ) ? fg : bg]; p++; |
| 265 | *p = palette[( data & 0x02 ) ? fg : bg]; p++; |
| 266 | *p = palette[( data & 0x01 ) ? fg : bg]; p++; |
| 267 | } |
| 268 | } |
| 269 | |
229 | 270 | static MC6845_UPDATE_ROW( t1000_gfx_4bpp_update_row ) |
230 | 271 | { |
231 | 272 | const rgb_t *palette = palette_entry_list_raw(bitmap.palette()); |
r19913 | r19914 | |
359 | 400 | data = vid[ offset + 1 ]; |
360 | 401 | |
361 | 402 | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
362 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
363 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
364 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
365 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
366 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
367 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
368 | | *p = palette[( data & 0x80 ) ? fg : bg]; p++; |
| 403 | *p = palette[( data & 0x40 ) ? fg : bg]; p++; |
| 404 | *p = palette[( data & 0x20 ) ? fg : bg]; p++; |
| 405 | *p = palette[( data & 0x10 ) ? fg : bg]; p++; |
| 406 | *p = palette[( data & 0x08 ) ? fg : bg]; p++; |
| 407 | *p = palette[( data & 0x04 ) ? fg : bg]; p++; |
| 408 | *p = palette[( data & 0x02 ) ? fg : bg]; p++; |
| 409 | *p = palette[( data & 0x01 ) ? fg : bg]; p++; |
369 | 410 | } |
370 | 411 | } |
371 | 412 | |
r19913 | r19914 | |
474 | 515 | switch( pcjr.reg.data[0] & 0x1A ) |
475 | 516 | { |
476 | 517 | case 0x08: /* 01x0x */ |
| 518 | if(pcjr.jxkanji) |
| 519 | { |
| 520 | pcjr.update_row = pcjx_text_update_row; |
| 521 | break; |
| 522 | } |
477 | 523 | if ( pcjr.reg.data[3] & 0x02 ) |
478 | 524 | { |
479 | 525 | pcjr.update_row = t1000_text_blink_update_row; |
r19913 | r19914 | |
751 | 797 | } |
752 | 798 | } |
753 | 799 | |
| 800 | static void pc_pcjx_bank_w(running_machine &machine, int data) |
| 801 | { |
| 802 | if (pcjr.bank != data) |
| 803 | { |
| 804 | int dram, vram; |
| 805 | pcjr.bank = data; |
| 806 | /* this probably isn't right, but otherwise the memory test stomps on the vram */ |
| 807 | if ((data&0xc0)==0xc0) /* needed for lemmings */ |
| 808 | { |
| 809 | dram = 0x80000 + ((data & 0x06) << 14); |
| 810 | vram = 0x80000 + ((data & 0x30) << (14-3)); |
| 811 | } |
| 812 | else |
| 813 | { |
| 814 | dram = 0x80000 + ((data & 0x07) << 14); |
| 815 | vram = 0x80000 + ((data & 0x38) << (14-3)); |
| 816 | } |
| 817 | machine.root_device().membank( "bank14" )->set_base( machine.device<ram_device>(RAM_TAG)->pointer() + vram ); |
| 818 | pcjr.displayram = machine.device<ram_device>(RAM_TAG)->pointer() + dram; |
| 819 | pc_pcjr_mode_switch(machine); |
| 820 | } |
| 821 | } |
754 | 822 | |
755 | 823 | static int pc_t1t_bank_r(void) |
756 | 824 | { |
r19913 | r19914 | |
835 | 903 | case 12: |
836 | 904 | break; |
837 | 905 | case 15: |
838 | | pc_pcjr_bank_w(space.machine(), data); |
| 906 | if(pcjr.jxkanji) |
| 907 | pc_pcjx_bank_w(space.machine(), data); |
| 908 | else |
| 909 | pc_pcjr_bank_w(space.machine(), data); |
839 | 910 | break; |
840 | 911 | |
841 | 912 | default: |
r19913 | r19914 | |
844 | 915 | } |
845 | 916 | |
846 | 917 | |
847 | | READ8_HANDLER ( pc_T1T_r ) |
| 918 | READ8_HANDLER ( pc_T1T_r ) |
848 | 919 | { |
849 | 920 | mc6845_device *mc6845; |
850 | 921 | int data = 0xff; |
r19913 | r19914 | |
960 | 1031 | pcjr.bank = 0; |
961 | 1032 | pcjr.mode_control = 0x08; |
962 | 1033 | pcjr.chr_size = 8; |
| 1034 | if(!strncmp(machine.system().name, "ibmpcjx", 7)) |
| 1035 | pcjr.jxkanji = machine.root_device().memregion("kanji")->base(); |
| 1036 | else |
| 1037 | pcjr.jxkanji = NULL; |
963 | 1038 | |
964 | 1039 | buswidth = machine.firstcpu->space_config(AS_PROGRAM)->m_databus_width; |
965 | 1040 | switch(buswidth) |
trunk/src/mess/drivers/pc.c
r19913 | r19914 | |
466 | 466 | ADDRESS_MAP_END |
467 | 467 | |
468 | 468 | static ADDRESS_MAP_START(ibmpcjx_map, AS_PROGRAM, 8, pc_state ) |
469 | | AM_RANGE(0x80000, 0x9ffff) AM_ROM AM_REGION("kanji",0) |
| 469 | AM_RANGE(0x80000, 0xb7fff) AM_ROM AM_REGION("kanji",0) |
470 | 470 | AM_IMPORT_FROM( ibmpcjr_map ) |
471 | 471 | ADDRESS_MAP_END |
472 | 472 | |
473 | 473 | static ADDRESS_MAP_START(ibmpcjx_io, AS_IO, 8, pc_state ) |
| 474 | AM_RANGE(0x01ff, 0x01ff) AM_READWRITE(pcjx_port_1ff_r, pcjx_port_1ff_w) |
474 | 475 | AM_IMPORT_FROM( ibmpcjr_io ) |
475 | 476 | ADDRESS_MAP_END |
476 | 477 | |
r19913 | r19914 | |
858 | 859 | DEVCB_CPU_INPUT_LINE("maincpu", 0) |
859 | 860 | }; |
860 | 861 | |
| 862 | static const floppy_interface mc1502_floppy_interface = |
| 863 | { |
| 864 | DEVCB_NULL, |
| 865 | DEVCB_NULL, |
| 866 | DEVCB_NULL, |
| 867 | DEVCB_NULL, |
| 868 | DEVCB_NULL, |
| 869 | FLOPPY_STANDARD_5_25_DSHD, |
| 870 | LEGACY_FLOPPY_OPTIONS_NAME(pc), |
| 871 | "floppy_5_25", |
| 872 | NULL |
| 873 | }; |
| 874 | |
861 | 875 | FLOPPY_FORMATS_MEMBER( pc_state::floppy_formats ) |
862 | 876 | FLOPPY_PC_FORMAT |
863 | 877 | FLOPPY_FORMATS_END |
864 | 878 | |
865 | 879 | static SLOT_INTERFACE_START( ibmpc_floppies ) |
866 | 880 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 881 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
867 | 882 | SLOT_INTERFACE_END |
868 | 883 | |
869 | 884 | SLOT_INTERFACE_START(ibm5150_com) |
r19913 | r19914 | |
1333 | 1348 | MCFG_CPU_PROGRAM_MAP(ibmpcjx_map) |
1334 | 1349 | MCFG_CPU_IO_MAP(ibmpcjx_io) |
1335 | 1350 | |
| 1351 | MCFG_DEVICE_REMOVE("upd765:0"); |
| 1352 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", ibmpc_floppies, "35dd", 0, pc_state::floppy_formats) |
| 1353 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", ibmpc_floppies, "35dd", 0, pc_state::floppy_formats) |
| 1354 | |
1336 | 1355 | MCFG_GFXDECODE(ibmpcjx) |
1337 | 1356 | MACHINE_CONFIG_END |
1338 | 1357 | |
r19913 | r19914 | |
1373 | 1392 | MCFG_CASSETTE_ADD( CASSETTE_TAG, mc1502_cassette_interface ) // has no motor control |
1374 | 1393 | |
1375 | 1394 | MCFG_FD1793_ADD( "vg93", default_wd17xx_interface_2_drives ) |
1376 | | MCFG_FLOPPY_DRIVE_ADD(FLOPPY_0, ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) |
| 1395 | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(mc1502_floppy_interface) |
1377 | 1396 | |
1378 | 1397 | /* internal ram */ |
1379 | 1398 | MCFG_RAM_ADD(RAM_TAG) |
r19913 | r19914 | |
1863 | 1882 | |
1864 | 1883 | ROM_START( ibmpcjx ) |
1865 | 1884 | ROM_REGION(0x100000,"maincpu", ROMREGION_ERASEFF) |
| 1885 | ROM_DEFAULT_BIOS("unk") |
1866 | 1886 | ROM_SYSTEM_BIOS( 0, "5601jda", "5601jda" ) |
1867 | 1887 | ROMX_LOAD("5601jda.bin", 0xf0000, 0x10000, CRC(b1e12366) SHA1(751feb16b985aa4f1ec1437493ff77e2ebd5e6a6), ROM_BIOS(1)) |
1868 | 1888 | ROMX_LOAD("basicjx.rom", 0xe8000, 0x08000, NO_DUMP, ROM_BIOS(1)) // boot fails due of this. |
1869 | 1889 | ROM_SYSTEM_BIOS( 1, "unk", "unk" ) |
1870 | 1890 | ROMX_LOAD("ipljx.rom", 0xe0000, 0x20000, CRC(36a7b2de) SHA1(777db50c617725e149bca9b18cf51ce78f6dc548), ROM_BIOS(2)) |
| 1891 | ROM_FILL(0xff195, 1, 0x20) // the bios has a bug that causes an interrupt |
| 1892 | ROM_FILL(0xff196, 1, 0x06) // to arrive before a flag is set causing the boot to hang |
| 1893 | ROM_FILL(0xff197, 1, 0x84) // technically this should be fixed in the PIC by delaying |
| 1894 | ROM_FILL(0xff198, 1, 0x04) // sending an irq after the mask is changed but there is |
| 1895 | ROM_FILL(0xff199, 1, 0xe6) // a strong possiblility that will cause problems with later |
| 1896 | ROM_FILL(0xff19a, 1, 0x21) // faster x86 machines. |
1871 | 1897 | |
1872 | 1898 | ROM_REGION(0x08100,"gfx1", 0) //TODO: needs a different charset |
1873 | 1899 | ROM_LOAD("cga.chr", 0x00000, 0x01000, BAD_DUMP CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) // from an unknown clone cga card |
1874 | 1900 | |
1875 | | ROM_REGION(0x20000,"kanji", 0) |
1876 | | ROM_LOAD("kanji.rom", 0x00000, 0x20000, BAD_DUMP CRC(a313f241) SHA1(c2a4ea7eb38c5ad51e6482abca8f836a2c06e17a)) // hand-made rom |
| 1901 | ROM_REGION(0x38000,"kanji", 0) |
| 1902 | ROM_LOAD("kanji.rom", 0x00000, 0x38000, BAD_DUMP CRC(eaa6e3c3) SHA1(35554587d02d947fae8446964b1886fff5c9d67f)) // hand-made rom |
1877 | 1903 | ROM_END |
1878 | 1904 | |
1879 | 1905 | #ifdef UNUSED_DEFINITION |