46
46
*************************************/
48
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
48
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, subs_state )
49
49
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
50
AM_RANGE(0x0000, 0x0000) AM_DEVWRITE("discrete", subs_noise_reset_w)
50
AM_RANGE(0x0000, 0x0000) AM_DEVWRITE_LEGACY("discrete", subs_noise_reset_w)
51
51
AM_RANGE(0x0000, 0x0007) AM_READ(subs_control_r)
52
52
AM_RANGE(0x0020, 0x0020) AM_WRITE(subs_steer_reset_w)
53
53
AM_RANGE(0x0020, 0x0027) AM_READ(subs_coin_r)
54
// AM_RANGE(0x0040, 0x0040) AM_WRITE(subs_timer_reset_w)
54
// AM_RANGE(0x0040, 0x0040) AM_WRITE_LEGACY(subs_timer_reset_w)
55
55
AM_RANGE(0x0060, 0x0063) AM_READ(subs_options_r)
56
56
AM_RANGE(0x0060, 0x0061) AM_WRITE(subs_lamp1_w)
57
57
AM_RANGE(0x0062, 0x0063) AM_WRITE(subs_lamp2_w)
58
AM_RANGE(0x0064, 0x0065) AM_DEVWRITE("discrete", subs_sonar2_w)
59
AM_RANGE(0x0066, 0x0067) AM_DEVWRITE("discrete", subs_sonar1_w)
58
AM_RANGE(0x0064, 0x0065) AM_DEVWRITE_LEGACY("discrete", subs_sonar2_w)
59
AM_RANGE(0x0066, 0x0067) AM_DEVWRITE_LEGACY("discrete", subs_sonar1_w)
60
60
// Schematics show crash and explode reversed. But this is proper.
61
AM_RANGE(0x0068, 0x0069) AM_DEVWRITE("discrete", subs_explode_w)
62
AM_RANGE(0x006a, 0x006b) AM_DEVWRITE("discrete", subs_crash_w)
61
AM_RANGE(0x0068, 0x0069) AM_DEVWRITE_LEGACY("discrete", subs_explode_w)
62
AM_RANGE(0x006a, 0x006b) AM_DEVWRITE_LEGACY("discrete", subs_crash_w)
63
63
AM_RANGE(0x006c, 0x006d) AM_WRITE(subs_invert1_w)
64
64
AM_RANGE(0x006e, 0x006f) AM_WRITE(subs_invert2_w)
65
AM_RANGE(0x0090, 0x009f) AM_BASE_MEMBER(subs_state, m_spriteram)
65
AM_RANGE(0x0090, 0x009f) AM_SHARE("spriteram")
66
66
AM_RANGE(0x0000, 0x01ff) AM_RAM
67
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_BASE_MEMBER(subs_state, m_videoram)
67
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("videoram")
68
68
AM_RANGE(0x2000, 0x3fff) AM_ROM
114
114
PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_START2 )
115
115
PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
116
116
PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_START1 )
117
PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_VBLANK )
117
PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("lscreen")
118
118
PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
119
119
PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
120
120
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )