trunk/src/mame/drivers/ksys573.c
r26356 | r26357 | |
512 | 512 | m_pads(*this, "PADS" ), |
513 | 513 | m_psxirq(*this, ":maincpu:irq" ), |
514 | 514 | m_ata(*this, "ata" ), |
| 515 | m_h8_response(*this, "h8_response"), |
515 | 516 | m_maincpu(*this, "maincpu" ), |
516 | 517 | m_ram(*this, "maincpu:ram" ), |
517 | 518 | m_flashbank(*this, "flashbank" ), |
r26356 | r26357 | |
549 | 550 | DECLARE_DRIVER_INIT( hyperbbc ); |
550 | 551 | DECLARE_DRIVER_INIT( drmn ); |
551 | 552 | DECLARE_MACHINE_RESET( konami573 ); |
| 553 | WRITE_LINE_MEMBER( h8_clk_w ); |
| 554 | DECLARE_READ_LINE_MEMBER( h8_d0_r ); |
| 555 | DECLARE_READ_LINE_MEMBER( h8_d1_r ); |
| 556 | DECLARE_READ_LINE_MEMBER( h8_d2_r ); |
| 557 | DECLARE_READ_LINE_MEMBER( h8_d3_r ); |
552 | 558 | DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b7 ); |
553 | 559 | DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b6 ); |
554 | 560 | DECLARE_WRITE_LINE_MEMBER( gtrfrks_lamps_b5 ); |
r26356 | r26357 | |
613 | 619 | UINT32 m_control; |
614 | 620 | UINT16 m_n_security_control; |
615 | 621 | |
| 622 | required_memory_region m_h8_response; |
| 623 | int m_h8_index; |
| 624 | int m_h8_clk; |
| 625 | |
616 | 626 | UINT8 m_gx700pwbf_output_data[ 4 ]; |
617 | 627 | void ( ksys573_state::*m_gx700pwfbf_output_callback )( address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask ); |
618 | 628 | |
r26356 | r26357 | |
859 | 869 | MACHINE_RESET_MEMBER( ksys573_state,konami573 ) |
860 | 870 | { |
861 | 871 | update_disc(); |
| 872 | |
| 873 | m_h8_index = 0; |
| 874 | m_h8_clk = 0; |
862 | 875 | } |
863 | 876 | |
864 | 877 | void ksys573_state::sys573_vblank( screen_device &screen, bool vblank_state ) |
r26356 | r26357 | |
905 | 918 | } |
906 | 919 | } |
907 | 920 | |
| 921 | // H8 check at startup (JVS related) |
| 922 | |
| 923 | WRITE_LINE_MEMBER( ksys573_state::h8_clk_w ) |
| 924 | { |
| 925 | if( m_h8_clk != state ) |
| 926 | { |
| 927 | if( state ) |
| 928 | { |
| 929 | if( m_h8_index < m_h8_response->bytes() - 1 ) |
| 930 | { |
| 931 | m_h8_index++; |
| 932 | } |
| 933 | printf( "%d\n", m_h8_index ); |
| 934 | } |
| 935 | |
| 936 | m_h8_clk = state; |
| 937 | } |
| 938 | } |
| 939 | |
| 940 | READ_LINE_MEMBER( ksys573_state::h8_d0_r ) |
| 941 | { |
| 942 | return ( m_h8_response->base()[ m_h8_index ] >> 0 ) & 1; |
| 943 | } |
| 944 | |
| 945 | READ_LINE_MEMBER( ksys573_state::h8_d1_r ) |
| 946 | { |
| 947 | return ( m_h8_response->base()[ m_h8_index ] >> 1 ) & 1; |
| 948 | } |
| 949 | |
| 950 | READ_LINE_MEMBER( ksys573_state::h8_d2_r ) |
| 951 | { |
| 952 | return ( m_h8_response->base()[ m_h8_index ] >> 2 ) & 1; |
| 953 | } |
| 954 | |
| 955 | READ_LINE_MEMBER( ksys573_state::h8_d3_r ) |
| 956 | { |
| 957 | return ( m_h8_response->base()[ m_h8_index ] >> 3 ) & 1; |
| 958 | } |
| 959 | |
| 960 | |
908 | 961 | /* |
909 | 962 | GE765-PWB(B)A |
910 | 963 | |
r26356 | r26357 | |
2510 | 2563 | PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, cs_write ) |
2511 | 2564 | PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, clk_write ) |
2512 | 2565 | PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "adc0834", adc083x_device, di_write ) |
| 2566 | PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_clk_w ) |
2513 | 2567 | |
2514 | 2568 | PORT_START( "IN1" ) |
2515 | 2569 | PORT_DIPNAME( 0x00000001, 0x00000001, "Unused 1" ) PORT_DIPLOCATION( "DIP SW:1" ) |
r26356 | r26357 | |
2524 | 2578 | PORT_DIPNAME( 0x00000008, 0x00000000, "Start Up Device" ) PORT_DIPLOCATION( "DIP SW:4" ) |
2525 | 2579 | PORT_DIPSETTING( 0x00000008, "CD-ROM Drive" ) |
2526 | 2580 | PORT_DIPSETTING( 0x00000000, "Flash ROM" ) |
2527 | | PORT_BIT( 0x00000030, IP_ACTIVE_HIGH, IPT_SPECIAL ) |
2528 | | PORT_BIT( 0x000000c0, IP_ACTIVE_LOW, IPT_SPECIAL ) |
| 2581 | PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d0_r ) |
| 2582 | PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d1_r ) |
| 2583 | PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d2_r ) |
| 2584 | PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, ksys573_state, h8_d3_r ) |
2529 | 2585 | PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, read_line_adc083x_do ) |
2530 | 2586 | PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, read_line_adc083x_sars ) |
2531 | 2587 | // PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
r26356 | r26357 | |
2568 | 2624 | PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "cassette", konami573_cassette_slot_device, write_line_zs01_sda ) |
2569 | 2625 | |
2570 | 2626 | PORT_START( "IN2" ) |
2571 | | PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2627 | PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
2572 | 2628 | PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER( 1 ) |
2573 | 2629 | PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER( 1 ) |
2574 | 2630 | PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER( 1 ) |
r26356 | r26357 | |
2963 | 3019 | ROM_SYSTEM_BIOS( 0, "std", "Standard" ) \ |
2964 | 3020 | ROMX_LOAD( "700a01.22g", 0x0000000, 0x080000, CRC(11812ef8) SHA1(e1284add4aaddd5337bd7f4e27614460d52b5b48), ROM_BIOS(1) ) \ |
2965 | 3021 | ROM_SYSTEM_BIOS( 1, "gchgchmp", "Found on Gachagachamp" ) \ |
2966 | | ROMX_LOAD( "700_a01.22g", 0x000000, 0x080000, CRC(39ebb0ca) SHA1(9aab8c637dd2be84d79007e52f108abe92bf29dd), ROM_BIOS(2) ) \ |
| 3022 | ROMX_LOAD( "700a01(gchgchmp).22g", 0x000000, 0x080000, CRC(39ebb0ca) SHA1(9aab8c637dd2be84d79007e52f108abe92bf29dd), ROM_BIOS(2) ) \ |
2967 | 3023 | ROM_SYSTEM_BIOS( 2, "dsem2", "Found on Dancing Stage Euro Mix 2" ) \ |
2968 | | ROMX_LOAD( "700b01.22g", 0x0000000, 0x080000, CRC(6cf852af) NO_DUMP, ROM_BIOS(3) ) |
| 3024 | ROMX_LOAD( "700b01.22g", 0x0000000, 0x080000, CRC(6cf852af) SHA1(a2421d0a494892c0e71003c96995ce8f945064dd), ROM_BIOS(3) ) \ |
| 3025 | ROM_REGION( 0x40, "h8_response", 0 ) \ |
| 3026 | ROMX_LOAD( "h8a01.bin", 0x000000, 0x000040, CRC(131e0359) SHA1(967f66578ebc0cf6b044d71af09b59bce1f4a1d0), ROM_BIOS(1) ) \ |
| 3027 | ROMX_LOAD( "h8a01.bin", 0x000000, 0x000040, CRC(131e0359) SHA1(967f66578ebc0cf6b044d71af09b59bce1f4a1d0), ROM_BIOS(2) ) \ |
| 3028 | ROMX_LOAD( "h8b01.bin", 0x000000, 0x000040, CRC(508b057d) SHA1(779177e6312ef272483eeb64a5e84bbae6e301f2), ROM_BIOS(3) ) |
2969 | 3029 | |
2970 | 3030 | // BIOS |
2971 | 3031 | ROM_START( sys573 ) |