trunk/src/mess/drivers/esq5505.c
| r19100 | r19101 | |
| 109 | 109 | DECLARE_DRIVER_INIT(eps); |
| 110 | 110 | DECLARE_DRIVER_INIT(common); |
| 111 | 111 | DECLARE_DRIVER_INIT(sq1); |
| 112 | | DECLARE_DRIVER_INIT(sd1); |
| 112 | DECLARE_DRIVER_INIT(denib); |
| 113 | 113 | DECLARE_INPUT_CHANGED_MEMBER(key_stroke); |
| 114 | 114 | }; |
| 115 | 115 | |
| r19100 | r19101 | |
| 327 | 327 | |
| 328 | 328 | if (state->m_bCalibSecondByte) |
| 329 | 329 | { |
| 330 | | // printf("KPC second byte %02x\n", data); |
| 331 | 330 | if (data == 0xfd) // calibration request |
| 332 | 331 | { |
| 333 | 332 | duart68681_rx_data(state->m_duart, 1, (UINT8)(FPTR)0xff); // this is the correct response for "calibration OK" |
| r19100 | r19101 | |
| 539 | 538 | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x48) |
| 540 | 539 | PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x49) |
| 541 | 540 | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4a) |
| 542 | | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('e') PORT_CHAR('E') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4b) |
| 543 | | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('r') PORT_CHAR('R') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4c) |
| 544 | | PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('t') PORT_CHAR('T') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4d) |
| 545 | | PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('y') PORT_CHAR('Y') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4e) |
| 546 | | PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('u') PORT_CHAR('U') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4f) |
| 541 | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4b) |
| 542 | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4c) |
| 543 | PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4d) |
| 544 | PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4e) |
| 545 | PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x4f) |
| 547 | 546 | |
| 548 | 547 | PORT_START("KEY1") |
| 549 | 548 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') PORT_CHANGED_MEMBER(DEVICE_SELF, esq5505_state, key_stroke, 0x0) |
| r19100 | r19101 | |
| 552 | 551 | INPUT_PORTS_END |
| 553 | 552 | |
| 554 | 553 | ROM_START( vfx ) |
| 555 | | ROM_REGION(0x20000, "osrom", 0) |
| 554 | ROM_REGION(0x40000, "osrom", 0) |
| 556 | 555 | ROM_LOAD16_BYTE( "vfx210b-low.bin", 0x000000, 0x010000, CRC(c51b19cd) SHA1(2a125b92ffa02ae9d7fb88118d525491d785e87e) ) |
| 557 | 556 | ROM_LOAD16_BYTE( "vfx210b-high.bin", 0x000001, 0x010000, CRC(59853be8) SHA1(8e07f69d53f80885d15f624e0b912aeaf3212ee4) ) |
| 558 | 557 | |
| r19100 | r19101 | |
| 560 | 559 | ROM_LOAD( "u14.bin", 0x000000, 0x080000, NO_DUMP ) // type 234000 on the schematic |
| 561 | 560 | ROM_LOAD( "u15.bin", 0x080000, 0x080000, NO_DUMP ) |
| 562 | 561 | ROM_LOAD( "u16.bin", 0x100000, 0x080000, NO_DUMP ) |
| 562 | |
| 563 | ROM_REGION(0x80000, "nibbles", ROMREGION_ERASE00) |
| 563 | 564 | ROM_END |
| 564 | 565 | |
| 565 | 566 | ROM_START( vfxsd ) |
| r19100 | r19101 | |
| 568 | 569 | ROM_LOAD16_BYTE( "vfxsd_200_upper.bin", 0x000001, 0x010000, CRC(9a40efa2) SHA1(e38a2a4514519c1573361cb1526139bfcf94e45a) ) |
| 569 | 570 | |
| 570 | 571 | ROM_REGION(0x200000, "waverom", ROMREGION_ERASE00) |
| 571 | | ROM_LOAD( "u54.bin", 0x000000, 0x010000, NO_DUMP ) |
| 572 | | ROM_LOAD( "u55.bin", 0x010000, 0x010000, NO_DUMP ) |
| 573 | | ROM_LOAD( "u56.bin", 0x020000, 0x010000, NO_DUMP ) |
| 574 | | ROM_LOAD( "u57.bin", 0x030000, 0x080000, NO_DUMP ) |
| 575 | | ROM_LOAD( "u58.bin", 0x038000, 0x080000, NO_DUMP ) |
| 576 | | ROM_LOAD( "u59.bin", 0x040000, 0x010000, NO_DUMP ) |
| 577 | | ROM_LOAD( "u60.bin", 0x050000, 0x080000, NO_DUMP ) |
| 572 | ROM_LOAD16_BYTE( "u57.bin", 0x000001, 0x080000, CRC(85592299) SHA1(1aa7cf612f91972baeba15991d9686ccde01599c) ) |
| 573 | ROM_LOAD16_BYTE( "u58.bin", 0x100001, 0x080000, CRC(c0055975) SHA1(5a22f1d5e437c6277eb0cfb1ff1b3f8dcdea1cc6) ) |
| 578 | 574 | |
| 579 | 575 | ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) |
| 576 | |
| 577 | ROM_REGION(0x80000, "nibbles", 0) |
| 578 | ROM_LOAD( "u60.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) ) |
| 580 | 579 | ROM_END |
| 581 | 580 | |
| 582 | 581 | ROM_START( sd1 ) |
| r19100 | r19101 | |
| 591 | 590 | ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) // BS=1 region (16-bit) |
| 592 | 591 | |
| 593 | 592 | ROM_REGION(0x80000, "nibbles", 0) |
| 594 | | ROM_LOAD( "u36.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) ) |
| 593 | ROM_LOAD( "u36.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) ) |
| 595 | 594 | ROM_END |
| 596 | 595 | |
| 597 | 596 | ROM_START( sd132 ) |
| r19100 | r19101 | |
| 606 | 605 | ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) // BS=1 region (16-bit) |
| 607 | 606 | |
| 608 | 607 | ROM_REGION(0x80000, "nibbles", ROMREGION_ERASE00) |
| 609 | | ROM_LOAD( "u36.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) ) |
| 608 | ROM_LOAD( "u36.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) ) |
| 610 | 609 | ROM_END |
| 611 | 610 | |
| 612 | 611 | |
| r19100 | r19101 | |
| 618 | 617 | ROM_REGION(0x200000, "waverom", 0) |
| 619 | 618 | ROM_LOAD16_BYTE( "sq1-u25.bin", 0x000001, 0x080000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) |
| 620 | 619 | ROM_LOAD16_BYTE( "sq1-u26.bin", 0x100001, 0x080000, CRC(2edaa9dc) SHA1(72fead505c4f44e5736ff7d545d72dfa37d613e2) ) |
| 620 | |
| 621 | ROM_REGION(0x80000, "nibbles", ROMREGION_ERASE00) |
| 621 | 622 | ROM_END |
| 622 | 623 | |
| 623 | 624 | ROM_START( eps ) |
| r19100 | r19101 | |
| 626 | 627 | ROM_LOAD16_BYTE( "eps-h.bin", 0x000001, 0x008000, CRC(d8747420) SHA1(460597751386eb5f08465699b61381c4acd78065) ) |
| 627 | 628 | |
| 628 | 629 | ROM_REGION(0x200000, "waverom", ROMREGION_ERASE00) // EPS-16 has no ROM sounds |
| 630 | |
| 631 | ROM_REGION(0x80000, "nibbles", ROMREGION_ERASE00) |
| 629 | 632 | ROM_END |
| 630 | 633 | |
| 631 | 634 | DRIVER_INIT_MEMBER(esq5505_state,common) |
| r19100 | r19101 | |
| 657 | 660 | m_system_type = SQ1; |
| 658 | 661 | } |
| 659 | 662 | |
| 660 | | DRIVER_INIT_MEMBER(esq5505_state,sd1) |
| 663 | DRIVER_INIT_MEMBER(esq5505_state,denib) |
| 661 | 664 | { |
| 662 | 665 | UINT8 *pNibbles = (UINT8 *)machine().root_device().memregion("nibbles")->base(); |
| 663 | 666 | UINT8 *pBS0 = (UINT8 *)machine().root_device().memregion("waverom")->base(); |
| r19100 | r19101 | |
| 675 | 678 | } |
| 676 | 679 | } |
| 677 | 680 | |
| 678 | | CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS", GAME_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs) |
| 679 | | CONS( 1989, vfx, 0, 0, vfx, vfx, esq5505_state, common, "Ensoniq", "VFX", GAME_NOT_WORKING ) // 2x40 VFD |
| 680 | | CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, common, "Ensoniq", "VFX-SD", GAME_NOT_WORKING ) // 2x40 VFD |
| 681 | | CONS( 1990, sd1, 0, 0, vfxsd, vfx, esq5505_state, sd1, "Ensoniq", "SD-1", GAME_NOT_WORKING ) // 2x40 VFD |
| 682 | | CONS( 1990, sd132, sd1, 0, vfx32, vfx, esq5505_state, sd1, "Ensoniq", "SD-1 32", GAME_NOT_WORKING ) // 2x40 VFD |
| 683 | | CONS( 1990, sq1, 0, 0, sq1, vfx, esq5505_state, sq1, "Ensoniq", "SQ-1", GAME_NOT_WORKING ) // LCD of some sort |
| 681 | CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS", GAME_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs) |
| 682 | CONS( 1989, vfx, 0, 0, vfx, vfx, esq5505_state, common, "Ensoniq", "VFX", GAME_NOT_WORKING ) // 2x40 VFD |
| 683 | CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "VFX-SD", GAME_NOT_WORKING ) // 2x40 VFD |
| 684 | CONS( 1990, sd1, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "SD-1", GAME_NOT_WORKING ) // 2x40 VFD |
| 685 | CONS( 1990, sd132, sd1, 0, vfx32, vfx, esq5505_state, denib, "Ensoniq", "SD-1 32", GAME_NOT_WORKING ) // 2x40 VFD |
| 686 | CONS( 1990, sq1, 0, 0, sq1, vfx, esq5505_state, sq1, "Ensoniq", "SQ-1", GAME_NOT_WORKING ) // LCD of some sort |
| 684 | 687 | |