trunk/src/mame/drivers/namcos23.c
| r18695 | r18696 | |
| 1452 | 1452 | DECLARE_WRITE8_MEMBER(s23_iob_mcu_w); |
| 1453 | 1453 | DECLARE_READ8_MEMBER(s23_iob_p4_r); |
| 1454 | 1454 | DECLARE_WRITE8_MEMBER(s23_iob_p4_w); |
| 1455 | DECLARE_READ8_MEMBER(s23_iob_p6_r); |
| 1456 | DECLARE_WRITE8_MEMBER(s23_iob_p6_w); |
| 1455 | 1457 | DECLARE_READ8_MEMBER(s23_gun_r); |
| 1456 | 1458 | DECLARE_READ8_MEMBER(iob_r); |
| 1457 | 1459 | DECLARE_DRIVER_INIT(ss23); |
| r18695 | r18696 | |
| 1832 | 1834 | if (c361.scanline != 0x1ff) |
| 1833 | 1835 | { |
| 1834 | 1836 | // need to do a partial update here, but doesn't work properly yet |
| 1837 | //machine().primary_screen->update_partial(machine().primary_screen->vpos()); |
| 1835 | 1838 | update_main_interrupts(m_main_irqcause | MAIN_C361_IRQ); |
| 1836 | 1839 | |
| 1837 | 1840 | // TC2 indicates it's probably one-shot since it resets it each VBL... |
| r18695 | r18696 | |
| 2801 | 2804 | } |
| 2802 | 2805 | |
| 2803 | 2806 | static INPUT_PORTS_START( gorgon ) |
| 2804 | | PORT_START("H8PORT") |
| 2805 | | |
| 2806 | 2807 | // No idea if start is actually there, but we need buttons to pass error screens |
| 2807 | 2808 | PORT_START("P1") |
| 2808 | 2809 | PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_START1 ) |
| r18695 | r18696 | |
| 2812 | 2813 | PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_START2 ) |
| 2813 | 2814 | PORT_BIT( 0xffe, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2814 | 2815 | |
| 2815 | | PORT_START("RRP0") |
| 2816 | PORT_START("IN0") |
| 2816 | 2817 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1 ) |
| 2817 | 2818 | PORT_BIT(0xef, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2818 | 2819 | |
| 2819 | | PORT_START("RRP1") |
| 2820 | PORT_START("IN1") |
| 2820 | 2821 | PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2821 | 2822 | |
| 2822 | | PORT_START("RRP2") |
| 2823 | PORT_START("IN2") |
| 2823 | 2824 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2824 | 2825 | PORT_BIT(0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2825 | 2826 | |
| 2826 | | PORT_START("RRP3") |
| 2827 | PORT_START("IN3") |
| 2827 | 2828 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2828 | 2829 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 2829 | 2830 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) |
| 2830 | 2831 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) |
| 2831 | 2832 | PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2832 | 2833 | |
| 2834 | PORT_START("SERVICE") |
| 2835 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 2836 | |
| 2833 | 2837 | PORT_START("DSW") |
| 2834 | 2838 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) |
| 2835 | 2839 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| r18695 | r18696 | |
| 2858 | 2862 | INPUT_PORTS_END |
| 2859 | 2863 | |
| 2860 | 2864 | static INPUT_PORTS_START( rapidrvrp ) |
| 2861 | | PORT_START("H8PORT") |
| 2862 | | |
| 2863 | | // To get into test mode, enable both Service Mode dipswitches, and then tap [Dev A] + [Dev B] |
| 2864 | | // (or hold [Dev B] and then tap [Dev A]). Some of the developer menus require you to |
| 2865 | | // navigate with the Dev keys, but usually the User keys work fine too. |
| 2865 | // To fully use test mode, both Service Mode dipswitches need to be enabled. |
| 2866 | // Some of the developer menus require you to navigate with the Dev keys, |
| 2867 | // but usually the User keys work fine too. |
| 2866 | 2868 | PORT_START("P1") |
| 2867 | 2869 | PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2868 | 2870 | PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I/O Unknown Status |
| r18695 | r18696 | |
| 2880 | 2882 | PORT_START("P2") |
| 2881 | 2883 | PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2882 | 2884 | |
| 2883 | | PORT_START("RRP0") |
| 2885 | PORT_START("IN0") |
| 2884 | 2886 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) |
| 2885 | 2887 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("User Up") |
| 2886 | 2888 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("User Down") |
| r18695 | r18696 | |
| 2890 | 2892 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2891 | 2893 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2892 | 2894 | |
| 2893 | | PORT_START("RRP1") |
| 2895 | PORT_START("IN1") |
| 2894 | 2896 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2895 | 2897 | |
| 2896 | | PORT_START("RRP2") |
| 2898 | PORT_START("IN2") |
| 2897 | 2899 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2898 | 2900 | PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2899 | 2901 | |
| 2900 | | PORT_START("RRP3") |
| 2902 | PORT_START("IN3") |
| 2901 | 2903 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2902 | 2904 | |
| 2905 | PORT_START("SERVICE") |
| 2906 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 2907 | |
| 2903 | 2908 | PORT_START("DSW") |
| 2904 | 2909 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") |
| 2905 | 2910 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| r18695 | r18696 | |
| 2928 | 2933 | INPUT_PORTS_END |
| 2929 | 2934 | |
| 2930 | 2935 | static INPUT_PORTS_START( s23 ) |
| 2931 | | PORT_START("H8PORT") |
| 2932 | | |
| 2933 | 2936 | // No idea if start is actually there, but we need buttons to pass error screens |
| 2934 | 2937 | // You can go to the pcb test mode by pressing start, and it doesn't crash anymore somehow |
| 2935 | 2938 | // Use start1 to select, start1+start2 to exit, up/down to navigate |
| r18695 | r18696 | |
| 2943 | 2946 | PORT_START("P2") |
| 2944 | 2947 | PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 0x100 = freeze? |
| 2945 | 2948 | |
| 2946 | | PORT_START("TC2P0") |
| 2949 | PORT_START("IN0") |
| 2947 | 2950 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2948 | 2951 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2949 | 2952 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // this is the "coin acceptor connected" signal |
| r18695 | r18696 | |
| 2953 | 2956 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) |
| 2954 | 2957 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) |
| 2955 | 2958 | |
| 2956 | | PORT_START("TC2P1") |
| 2959 | PORT_START("IN1") |
| 2957 | 2960 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // gun trigger |
| 2958 | 2961 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) // foot pedal |
| 2959 | 2962 | PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2960 | 2963 | |
| 2964 | PORT_START("IN2") |
| 2965 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2966 | |
| 2967 | PORT_START("IN3") |
| 2968 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2969 | |
| 2970 | PORT_START("SERVICE") |
| 2971 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 2972 | |
| 2961 | 2973 | PORT_START("DSW") |
| 2962 | 2974 | PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) |
| 2963 | 2975 | PORT_DIPNAME( 0x02, 0x02, "Skip POST" ) |
| r18695 | r18696 | |
| 2993 | 3005 | INPUT_PORTS_END |
| 2994 | 3006 | |
| 2995 | 3007 | static INPUT_PORTS_START( ss23 ) |
| 2996 | | PORT_START("H8PORT") |
| 2997 | | |
| 2998 | 3008 | // No idea if start is actually there, but we need buttons to pass error screens |
| 2999 | 3009 | // You can go to the pcb test mode by pressing start, and it doesn't crash anymore somehow |
| 3000 | 3010 | // Use start1 to select, start1+start2 to exit, up/down to navigate |
| r18695 | r18696 | |
| 3008 | 3018 | PORT_START("P2") |
| 3009 | 3019 | PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3010 | 3020 | |
| 3011 | | PORT_START("TC2P0") |
| 3021 | PORT_START("IN0") |
| 3012 | 3022 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 3013 | 3023 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3014 | 3024 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // this is the "coin acceptor connected" signal |
| r18695 | r18696 | |
| 3018 | 3028 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) |
| 3019 | 3029 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) |
| 3020 | 3030 | |
| 3021 | | PORT_START("TC2P1") |
| 3031 | PORT_START("IN1") |
| 3022 | 3032 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // gun trigger |
| 3023 | 3033 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) // foot pedal |
| 3024 | 3034 | PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3025 | 3035 | |
| 3036 | PORT_START("IN2") |
| 3037 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3038 | |
| 3039 | PORT_START("IN3") |
| 3040 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3041 | |
| 3042 | PORT_START("SERVICE") |
| 3043 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 3044 | |
| 3026 | 3045 | PORT_START("DSW") |
| 3027 | 3046 | PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) |
| 3028 | 3047 | PORT_DIPNAME( 0x02, 0x02, "Skip POST" ) |
| r18695 | r18696 | |
| 3052 | 3071 | READ8_MEMBER(namcos23_state::s23_mcu_p6_r) |
| 3053 | 3072 | { |
| 3054 | 3073 | // bit 1 = JVS cable present sense (1 = I/O board plugged in) |
| 3055 | | return (m_jvssense << 1) | 0xfd; |
| 3074 | return (m_jvssense << 1) | 0xfd; |
| 3056 | 3075 | } |
| 3057 | 3076 | |
| 3058 | 3077 | WRITE8_MEMBER(namcos23_state::s23_mcu_p6_w) |
| 3059 | 3078 | { |
| 3060 | | // printf("%02x to port 6\n", data); |
| 3079 | //printf("%02x to port 6\n", data); |
| 3061 | 3080 | } |
| 3062 | 3081 | |
| 3063 | 3082 | static ADDRESS_MAP_START( s23h8iomap, AS_IO, 8, namcos23_state ) |
| 3064 | 3083 | AM_RANGE(H8_PORT_6, H8_PORT_6) AM_READWRITE(s23_mcu_p6_r, s23_mcu_p6_w ) |
| 3065 | | AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT( "H8PORT" ) |
| 3066 | 3084 | AM_RANGE(H8_PORT_8, H8_PORT_8) AM_READ(s23_mcu_p8_r ) AM_WRITENOP |
| 3067 | 3085 | AM_RANGE(H8_PORT_9, H8_PORT_9) AM_NOP // read on Gorgon, purpose unknown |
| 3068 | 3086 | AM_RANGE(H8_PORT_A, H8_PORT_A) AM_READWRITE(s23_mcu_pa_r, s23_mcu_pa_w ) |
| r18695 | r18696 | |
| 3078 | 3096 | // version without serial hookup to I/O board for games where the PIC isn't dumped |
| 3079 | 3097 | static ADDRESS_MAP_START( s23h8noiobmap, AS_IO, 8, namcos23_state ) |
| 3080 | 3098 | AM_RANGE(H8_PORT_6, H8_PORT_6) AM_READWRITE(s23_mcu_p6_r, s23_mcu_p6_w ) |
| 3081 | | AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT( "H8PORT" ) |
| 3082 | 3099 | AM_RANGE(H8_PORT_8, H8_PORT_8) AM_READ(s23_mcu_p8_r ) AM_WRITENOP |
| 3083 | 3100 | AM_RANGE(H8_PORT_A, H8_PORT_A) AM_READWRITE(s23_mcu_pa_r, s23_mcu_pa_w ) |
| 3084 | 3101 | AM_RANGE(H8_PORT_B, H8_PORT_B) AM_READWRITE(s23_mcu_portB_r, s23_mcu_portB_w ) |
| r18695 | r18696 | |
| 3126 | 3143 | m_jvssense = (data & 0x04) ? 0 : 1; |
| 3127 | 3144 | } |
| 3128 | 3145 | |
| 3146 | READ8_MEMBER(namcos23_state::s23_iob_p6_r) |
| 3147 | { |
| 3148 | // d4 is service button |
| 3149 | UINT8 sb = ioport("SERVICE")->read() & 1; |
| 3150 | // other bits: unknown |
| 3151 | |
| 3152 | return sb<<4; |
| 3153 | } |
| 3154 | |
| 3155 | WRITE8_MEMBER(namcos23_state::s23_iob_p6_w) |
| 3156 | { |
| 3157 | //printf("iob %02x to port 6\n", data); |
| 3158 | } |
| 3159 | |
| 3129 | 3160 | READ8_MEMBER(namcos23_state::s23_gun_r) |
| 3130 | 3161 | { |
| 3131 | 3162 | UINT16 xpos = ioport("LIGHTX")->read_safe(0) * 640 / 0xff + 0x80; |
| r18695 | r18696 | |
| 3154 | 3185 | /* H8/3334 (Namco C78) I/O board MCU */ |
| 3155 | 3186 | static ADDRESS_MAP_START( s23iobrdmap, AS_PROGRAM, 8, namcos23_state ) |
| 3156 | 3187 | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0) |
| 3157 | | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0") // 0-1 = coin 0-3 = coin connect, 0-5 = test 0-6 = down select, 0-7 = up select, 0-8 = enter |
| 3158 | | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1") // 1-1 = gun trigger 1-2 = foot pedal |
| 3159 | | AM_RANGE(0x6002, 0x6003) AM_READ(iob_r ) |
| 3188 | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0") |
| 3189 | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("IN1") |
| 3190 | AM_RANGE(0x6002, 0x6002) AM_READ_PORT("IN2") |
| 3191 | AM_RANGE(0x6003, 0x6003) AM_READ_PORT("IN3") |
| 3160 | 3192 | AM_RANGE(0x6004, 0x6005) AM_WRITENOP |
| 3161 | 3193 | AM_RANGE(0x6006, 0x6007) AM_NOP |
| 3162 | 3194 | AM_RANGE(0x7000, 0x700f) AM_READ(iob_r ) |
| r18695 | r18696 | |
| 3165 | 3197 | ADDRESS_MAP_END |
| 3166 | 3198 | |
| 3167 | 3199 | static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 8, namcos23_state ) |
| 3168 | | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0) |
| 3169 | | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0") |
| 3170 | | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1") |
| 3171 | | AM_RANGE(0x6002, 0x6005) AM_WRITENOP |
| 3172 | | AM_RANGE(0x6006, 0x6007) AM_NOP |
| 3173 | 3200 | AM_RANGE(0x7000, 0x700f) AM_READ(s23_gun_r ) |
| 3174 | | |
| 3175 | | AM_RANGE(0xc000, 0xf7ff) AM_RAM |
| 3201 | AM_IMPORT_FROM( s23iobrdmap ) |
| 3176 | 3202 | ADDRESS_MAP_END |
| 3177 | 3203 | |
| 3178 | | static ADDRESS_MAP_START( gorgoniobrdmap, AS_PROGRAM, 8, namcos23_state ) |
| 3179 | | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0) |
| 3180 | | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("RRP0") // 0-5 = start |
| 3181 | | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("RRP1") // |
| 3182 | | AM_RANGE(0x6002, 0x6002) AM_READ_PORT("RRP2") // 0-4 = coin |
| 3183 | | AM_RANGE(0x6003, 0x6003) AM_READ_PORT("RRP3") // 1-1 = button? 1-4 = start? |
| 3184 | | AM_RANGE(0x6004, 0x6005) AM_WRITENOP |
| 3185 | | AM_RANGE(0x6006, 0x6007) AM_NOP |
| 3186 | | AM_RANGE(0x7000, 0x700f) AM_READ(iob_r ) |
| 3187 | | |
| 3188 | | AM_RANGE(0xc000, 0xf7ff) AM_RAM |
| 3189 | | ADDRESS_MAP_END |
| 3190 | | |
| 3191 | 3204 | /* |
| 3192 | 3205 | port 5 bit 2 = LED to indicate transmitting packet to main |
| 3193 | 3206 | port 4 bit 2 = SENSE line back to main (0 = asserted, 1 = dropped) |
| 3194 | 3207 | */ |
| 3195 | 3208 | static ADDRESS_MAP_START( s23iobrdiomap, AS_IO, 8, namcos23_state ) |
| 3196 | | AM_RANGE(H8_PORT_4, H8_PORT_4) AM_READWRITE(s23_iob_p4_r, s23_iob_p4_w ) |
| 3209 | AM_RANGE(H8_PORT_4, H8_PORT_4) AM_READWRITE(s23_iob_p4_r, s23_iob_p4_w) |
| 3197 | 3210 | AM_RANGE(H8_PORT_5, H8_PORT_5) AM_NOP // status LED in bit 2 |
| 3198 | | AM_RANGE(H8_PORT_6, H8_PORT_6) AM_NOP // unknown |
| 3211 | AM_RANGE(H8_PORT_6, H8_PORT_6) AM_READWRITE(s23_iob_p6_r, s23_iob_p6_w) |
| 3199 | 3212 | AM_RANGE(H8_PORT_8, H8_PORT_8) AM_NOP // unknown - used on ASCA-5 only |
| 3200 | 3213 | AM_RANGE(H8_PORT_9, H8_PORT_9) AM_NOP // unknown - used on ASCA-5 only |
| 3201 | | AM_RANGE(H8_SERIAL_0, H8_SERIAL_0) AM_READWRITE(s23_iob_mcu_r, s23_iob_mcu_w ) |
| 3202 | | AM_RANGE(H8_ADC_0_H, H8_ADC_3_L) AM_NOP |
| 3214 | AM_RANGE(H8_SERIAL_0, H8_SERIAL_0) AM_READWRITE(s23_iob_mcu_r, s23_iob_mcu_w) |
| 3215 | AM_RANGE(H8_ADC_0_H, H8_ADC_3_L) AM_NOP // analog input |
| 3203 | 3216 | ADDRESS_MAP_END |
| 3204 | 3217 | |
| 3205 | 3218 | DRIVER_INIT_MEMBER(namcos23_state,ss23) |
| r18695 | r18696 | |
| 3216 | 3229 | |
| 3217 | 3230 | m_mi_rd = m_mi_wr = m_im_rd = m_im_wr = 0; |
| 3218 | 3231 | m_jvssense = 1; |
| 3219 | | m_main_irqcause = ~0; |
| 3232 | m_main_irqcause = 0; |
| 3220 | 3233 | m_ctl_vbl_active = false; |
| 3221 | 3234 | m_s23_lastpB = 0x50; |
| 3222 | 3235 | m_s23_setstate = 0; |
| r18695 | r18696 | |
| 3297 | 3310 | MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos23_state, irq1_line_pulse) |
| 3298 | 3311 | |
| 3299 | 3312 | MCFG_CPU_ADD("iocpu", H83334, S23_H8CLOCK ) |
| 3300 | | MCFG_CPU_PROGRAM_MAP( gorgoniobrdmap ) |
| 3313 | MCFG_CPU_PROGRAM_MAP( s23iobrdmap ) |
| 3301 | 3314 | MCFG_CPU_IO_MAP( s23iobrdiomap ) |
| 3302 | 3315 | |
| 3303 | 3316 | MCFG_QUANTUM_TIME(attotime::from_hz(60000)) |