summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/arachnid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/arachnid.cpp')
-rw-r--r--src/mame/drivers/arachnid.cpp481
1 files changed, 0 insertions, 481 deletions
diff --git a/src/mame/drivers/arachnid.cpp b/src/mame/drivers/arachnid.cpp
deleted file mode 100644
index fc63ada443a..00000000000
--- a/src/mame/drivers/arachnid.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Jim Stolis
-/*
- Arachnid - English Mark Darts
-
- Driver by Jim Stolis.
-
- --- Technical Notes ---
- Name: English Mark Darts
- Company: Arachnid, Inc.
- Year: 1987/88/89/90
-
- --- Hardware ---
- A 6809 CPU (U3) is clocked by a 556 (U2) circuit with 3 Pin addressing decoding via a 74LS138 (U14)
- (this information seems incorrect: CPU clock is almost certainly sourced from the VDP's CPUCLK output)
- Program ROM is a 27256 (U15)
- Two 6821 PIAs (U4/U17) are used for I/O
- Video is processed via a TMS9118 (U11) with two TMS4416 (U12/U13) as RAM
- Main RAM is a 2K 6116 (U23) chip
- Sound is generated via a PTM 6840 (U16) directly to an amplified speaker
-
- --- Target Interface Board ---
- The target interface board is used to combine 33 conductors from the switch matrix
- into 16 conductors. The middle 13 pin connector is common to all switches.
-
- 3 connectors and their labels
- EFBHDACGH NMPLMNJOMIKOP EBACFDCEAHB
-
- Switch Matrix Table
- Score Single Double Triple
- 1 DN EN FN
- 2 AL BL CL
- 3 AN BN CN
- 4 DL EL FL
- 5 AP BP CP
- 6 GL HL GP
- 7 DO EO FO
- 8 GI HI GM
- 9 AO BO CO
- 10 AI BI CI
- 11 AK BK CK
- 12 DP EP FP
- 13 AM BM CM
- 14 GK HK GO
- 15 GJ HJ GN
- 16 AJ BJ CJ
- 17 DM EM FM
- 18 DI EI FI
- 19 DJ EJ FJ
- 20 DK EK FK
- Bull -- HM --
-
-
- TODO:
- - Dip Switches (Controls credits per coin), Currently 2 coins per credit
- - Test Mode Won't Activate
- - Layout with Lamps
- - Default monitor is yellow/amber, no colour (board does have an extra
- composite-out connector though, allowing a standard tv)
-*/
-
-#include "emu.h"
-#include "cpu/m6809/m6809.h"
-#include "machine/6821pia.h"
-#include "machine/6840ptm.h"
-#include "machine/nvram.h"
-#include "sound/spkrdev.h"
-#include "video/tms9928a.h"
-#include "speaker.h"
-
-#define SCREEN_TAG "screen"
-#define M6809_TAG "u3"
-#define TMS9118_TAG "u11"
-#define PIA6821_U4_TAG "u4"
-#define PIA6821_U17_TAG "u17"
-#define PTM6840_TAG "u16"
-#define SPEAKER_TAG "speaker"
-
-class arachnid_state : public driver_device
-{
-public:
- arachnid_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, M6809_TAG),
- m_pia_u4(*this, PIA6821_U4_TAG),
- m_pia_u17(*this, PIA6821_U17_TAG),
- m_speaker(*this, SPEAKER_TAG)
- { }
-
- void arachnid(machine_config &config);
-
-private:
- required_device<cpu_device> m_maincpu;
- required_device<pia6821_device> m_pia_u4;
- required_device<pia6821_device> m_pia_u17;
- required_device<speaker_sound_device> m_speaker;
-
- virtual void machine_start() override;
- DECLARE_READ8_MEMBER( pia_u4_pa_r );
- DECLARE_READ8_MEMBER( pia_u4_pb_r );
- DECLARE_READ_LINE_MEMBER( pia_u4_pca_r );
- DECLARE_READ_LINE_MEMBER( pia_u4_pcb_r );
- DECLARE_WRITE8_MEMBER( pia_u4_pa_w );
- DECLARE_WRITE8_MEMBER( pia_u4_pb_w );
- DECLARE_WRITE_LINE_MEMBER( pia_u4_pca_w );
- DECLARE_WRITE_LINE_MEMBER( pia_u4_pcb_w );
-
- DECLARE_READ8_MEMBER( pia_u17_pa_r );
- DECLARE_READ_LINE_MEMBER( pia_u17_pca_r );
- DECLARE_WRITE8_MEMBER( pia_u17_pb_w );
- DECLARE_WRITE_LINE_MEMBER( pia_u17_pcb_w );
-
- DECLARE_WRITE_LINE_MEMBER(ptm_o1_callback);
-
- uint8_t read_keyboard(int pa);
- void arachnid_map(address_map &map);
-};
-
-/***************************************************************************
- MEMORY MAPS
-***************************************************************************/
-
-/*-------------------------------------------------
- ADDRESS_MAP( arachnid_map )
--------------------------------------------------*/
-
-void arachnid_state::arachnid_map(address_map &map)
-{
- map(0x0000, 0x07ff).ram().share("nvram");
- map(0x2000, 0x2007).rw(PTM6840_TAG, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write));
- map(0x4004, 0x4007).rw(m_pia_u4, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
- map(0x4008, 0x400b).rw(m_pia_u17, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
- map(0x6000, 0x6000).w(TMS9118_TAG, FUNC(tms9928a_device::vram_write));
- map(0x6002, 0x6002).w(TMS9118_TAG, FUNC(tms9928a_device::register_write));
- map(0x8000, 0xffff).rom().region(M6809_TAG, 0);
-}
-
-/***************************************************************************
- INPUT PORTS
-***************************************************************************/
-
-/*-------------------------------------------------
- INPUT_PORTS( arachnid )
--------------------------------------------------*/
-
-static INPUT_PORTS_START( arachnid )
- PORT_START("PA0-0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') // SELECT
- PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-1")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W') // PLAYER
- PORT_BIT( 0xfd, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) // COIN
- PORT_BIT( 0xfb, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-3")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T') // TEST
- PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-4")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-5")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-6")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA0-7")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("SW1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_TOGGLE
- PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("SW2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_TOGGLE
- PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
-
- // Matrix Switch Part I
- PORT_START("PA1-0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
- PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-1")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H')
- PORT_BIT( 0xfd, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
- PORT_BIT( 0xfb, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-3")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
- PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-4")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
- PORT_BIT( 0xef, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-5")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
- PORT_BIT( 0xdf, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-6")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
- PORT_BIT( 0xbf, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PA1-7")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
- PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED )
-
- // Matrix Switch Part II
- PORT_START("PB1-0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
- PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-1")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I')
- PORT_BIT( 0xfd, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
- PORT_BIT( 0xfb, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-3")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
- PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-4")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
- PORT_BIT( 0xef, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-5")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
- PORT_BIT( 0xdf, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-6")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
- PORT_BIT( 0xbf, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("PB1-7")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
- PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
-
-/***************************************************************************
- DEVICE CONFIGURATION
-***************************************************************************/
-
-/*-------------------------------------------------
- ptm6840_interface ptm_intf
--------------------------------------------------*/
-
-WRITE_LINE_MEMBER(arachnid_state::ptm_o1_callback)
-{
- m_speaker->level_w(state);
-}
-
-uint8_t arachnid_state::read_keyboard(int pa)
-{
- int i;
- uint8_t value;
- static const char *const keynames[3][8] =
- {
- { "PA0-0", "PA0-1", "PA0-2", "PA0-3", "PA0-4", "PA0-5", "PA0-6", "PA0-7" },
- { "PA1-0", "PA1-1", "PA1-2", "PA1-3", "PA1-4", "PA1-5", "PA1-6", "PA1-7" },
- { "PB1-0", "PB1-1", "PB1-2", "PB1-3", "PB1-4", "PB1-5", "PB1-6", "PB1-7" }
- };
-
- for (i = 0; i < 8; i++)
- {
- value = ioport(keynames[pa][i])->read();
-
- if (value != 0xff)
- {
- if (value == 0xff - (1 << i))
- return value;
- else
- return value - (1 << i);
- }
- }
-
- return 0xff;
-}
-
-READ8_MEMBER( arachnid_state::pia_u4_pa_r )
-{
- // Pulses from Switch Matrix Part I
- // PA0 - G
- // PA1 - H
- // PA2 - E
- // PA3 - F
- // PA4 - C
- // PA5 - D
- // PA6 - A
- // PA7 - B
-
- uint8_t data = 0xff;
- data &= read_keyboard(1);
-
- return data;
-}
-
-READ8_MEMBER( arachnid_state::pia_u4_pb_r )
-{
- // Pulses from Switch Matrix Part II
- // PB0 - J
- // PB1 - I
- // PB2 - L
- // PB3 - K
- // PB4 - N
- // PB5 - M
- // PB6 - P
- // PB7 - O
-
- uint8_t data = 0xff;
- data &= read_keyboard(2);
-
- return data;
-}
-
-READ_LINE_MEMBER( arachnid_state::pia_u4_pca_r )
-{
- // CA1 - SW1 Coin In (Coin Door)
-
- uint8_t data = 1;
- data &= ioport("SW1")->read();
-
- return data;
-}
-
-READ_LINE_MEMBER( arachnid_state::pia_u4_pcb_r )
-{
- // CB1 - SW2 Test Mode (Coin Door)
-
- uint8_t data = 1;
- data &= ioport("SW2")->read();
-
- return data;
-}
-
-READ8_MEMBER( arachnid_state::pia_u17_pa_r )
-{
- // PA0 - Select
- // PA1 - Player Change
- // PA2 - Coin
- // PA3 - Test
- // PA4 thru PA7 - DIP SW1
-
- uint8_t data = 0xff;
- data &= read_keyboard(0);
-
- return data;
-}
-
-READ_LINE_MEMBER( arachnid_state::pia_u17_pca_r )
-{
- // CA1 - 1000 HZ Input
-
- uint8_t data = 1;
-
- return data;
-}
-
-WRITE8_MEMBER( arachnid_state::pia_u4_pa_w )
-{
- // PA0 thru PA7 Pulses to Switch Matrix Part I
-}
-
-WRITE8_MEMBER( arachnid_state::pia_u4_pb_w )
-{
- // PA0 thru PA7 Pulses to Switch Matrix Part II
-}
-
-WRITE_LINE_MEMBER( arachnid_state::pia_u4_pca_w )
-{
- // CA1 - Remove Darts Lamp
-}
-
-WRITE_LINE_MEMBER( arachnid_state::pia_u4_pcb_w )
-{
- // CB2 - Throw Darts Lamp
-}
-
-WRITE8_MEMBER( arachnid_state::pia_u17_pb_w )
-{
- // PB0 - Select Lamp
- // PB1 - Player Change Lamp
- // PB2 - Not Used
- // PB3 - Not Used
- // PB4 - Not Used
- // PB5 - Not Used
- // PB6 - Not Used
- // PB7 - N/C
-}
-
-WRITE_LINE_MEMBER( arachnid_state::pia_u17_pcb_w )
-{
- // CB2 - Target Lamp
-}
-
-/***************************************************************************
- MACHINE INITIALIZATION
-***************************************************************************/
-
-/*-------------------------------------------------
- MACHINE_START( arachnid )
--------------------------------------------------*/
-
-void arachnid_state::machine_start()
-{
-}
-
-/***************************************************************************
- MACHINE DRIVERS
-***************************************************************************/
-
-/*-------------------------------------------------
- machine_config( arachnid )
--------------------------------------------------*/
-
-void arachnid_state::arachnid(machine_config &config)
-{
- // basic machine hardware
- MC6809(config, m_maincpu, 10.738635_MHz_XTAL / 3);
- m_maincpu->set_addrmap(AS_PROGRAM, &arachnid_state::arachnid_map);
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // MK48Z02 (or DS1220Y)
-
- // devices
- PIA6821(config, m_pia_u4, 0);
- m_pia_u4->readpa_handler().set(FUNC(arachnid_state::pia_u4_pa_r));
- m_pia_u4->readpb_handler().set(FUNC(arachnid_state::pia_u4_pb_r));
- m_pia_u4->readca1_handler().set(FUNC(arachnid_state::pia_u4_pca_r));
- m_pia_u4->readcb1_handler().set(FUNC(arachnid_state::pia_u4_pcb_r));
- m_pia_u4->writepa_handler().set(FUNC(arachnid_state::pia_u4_pa_w));
- m_pia_u4->writepb_handler().set(FUNC(arachnid_state::pia_u4_pb_w));
- m_pia_u4->ca2_handler().set(FUNC(arachnid_state::pia_u4_pca_w));
- m_pia_u4->cb2_handler().set(FUNC(arachnid_state::pia_u4_pcb_w));
-
- PIA6821(config, m_pia_u17, 0);
- m_pia_u17->readpa_handler().set(FUNC(arachnid_state::pia_u17_pa_r));
- m_pia_u17->readca1_handler().set(FUNC(arachnid_state::pia_u17_pca_r));
- m_pia_u17->writepb_handler().set(FUNC(arachnid_state::pia_u17_pb_w));
- m_pia_u17->cb2_handler().set(FUNC(arachnid_state::pia_u17_pcb_w));
-
- // video hardware
- tms9118_device &vdp(TMS9118(config, TMS9118_TAG, 10.738635_MHz_XTAL));
- vdp.set_screen("screen");
- vdp.set_vram_size(0x4000);
- vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- SCREEN(config, "screen", SCREEN_TYPE_RASTER);
-
- // sound hardware
- SPEAKER(config, "mono").front_center();
- SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.0);
-
- ptm6840_device &ptm(PTM6840(config, PTM6840_TAG, 10.738635_MHz_XTAL / 3 / 4));
- ptm.set_external_clocks(0, 0, 0);
- ptm.o1_callback().set(FUNC(arachnid_state::ptm_o1_callback));
-}
-
-/***************************************************************************
- ROMS
-***************************************************************************/
-
-ROM_START( arac6000 )
- ROM_REGION( 0x8000, M6809_TAG, 0 )
- ROM_LOAD( "01-0140-6300-v2.7-19910208.u15", 0x0000, 0x8000, CRC(f1c4412d) SHA1(6ff9a8f25f315c2df5c0785043521d036ec0964e) )
-ROM_END
-
-/***************************************************************************
- SYSTEM DRIVERS
-***************************************************************************/
-
-/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME */
-GAME( 1990, arac6000, 0, arachnid, arachnid, arachnid_state, empty_init, ROT0, "Arachnid", "Super Six Plus II English Mark Darts", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )