mirror of
https://github.com/holub/mame
synced 2025-04-29 19:37:17 +03:00
(nw) more small tidyups of my drivers
This commit is contained in:
parent
16603f32b8
commit
5c401ae23f
@ -40,34 +40,33 @@ class bbcbc_state : public driver_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bbcbc_state(const machine_config &mconfig, device_type type, const char *tag)
|
bbcbc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag)
|
||||||
m_maincpu(*this, "maincpu"),
|
, m_maincpu(*this, "maincpu")
|
||||||
m_buttons(*this, "BUTTONS.%u", 0)
|
, m_buttons(*this, "BUTTONS.%u", 0)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
required_ioport_array<3> m_buttons;
|
|
||||||
|
|
||||||
uint8_t m_input_select;
|
|
||||||
|
|
||||||
virtual void machine_start() override;
|
|
||||||
virtual void machine_reset() override;
|
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER(input_r);
|
DECLARE_READ8_MEMBER(input_r);
|
||||||
DECLARE_WRITE8_MEMBER(input_select_w);
|
DECLARE_WRITE8_MEMBER(input_select_w);
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint8_t m_input_select;
|
||||||
|
virtual void machine_start() override;
|
||||||
|
virtual void machine_reset() override;
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_ioport_array<3> m_buttons;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define MAIN_CLOCK XTAL_4_433619MHz
|
#define MAIN_CLOCK XTAL_4_433619MHz
|
||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( bbcbc_prg, AS_PROGRAM, 8, bbcbc_state )
|
static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, bbcbc_state )
|
||||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||||
AM_RANGE(0x4000, 0xbfff) AM_DEVREAD("cartslot", generic_slot_device, read_rom)
|
AM_RANGE(0x4000, 0xbfff) AM_DEVREAD("cartslot", generic_slot_device, read_rom)
|
||||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM
|
AM_RANGE(0xe000, 0xe7ff) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( bbcbc_io, AS_IO, 8, bbcbc_state )
|
static ADDRESS_MAP_START( io_map, AS_IO, 8, bbcbc_state )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
AM_RANGE(0x00, 0x7f) AM_DEVREADWRITE_MOD("z80pio", z80pio_device, read, write, rshift<5>)
|
AM_RANGE(0x00, 0x7f) AM_DEVREADWRITE_MOD("z80pio", z80pio_device, read, write, rshift<5>)
|
||||||
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("tms9129", tms9129_device, vram_read, vram_write)
|
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("tms9129", tms9129_device, vram_read, vram_write)
|
||||||
@ -108,8 +107,8 @@ static const z80_daisy_config bbcbc_daisy_chain[] =
|
|||||||
|
|
||||||
static MACHINE_CONFIG_START( bbcbc )
|
static MACHINE_CONFIG_START( bbcbc )
|
||||||
MCFG_CPU_ADD( "maincpu", Z80, MAIN_CLOCK / 8 )
|
MCFG_CPU_ADD( "maincpu", Z80, MAIN_CLOCK / 8 )
|
||||||
MCFG_CPU_PROGRAM_MAP(bbcbc_prg)
|
MCFG_CPU_PROGRAM_MAP(mem_map)
|
||||||
MCFG_CPU_IO_MAP(bbcbc_io)
|
MCFG_CPU_IO_MAP(io_map)
|
||||||
MCFG_Z80_DAISY_CHAIN(bbcbc_daisy_chain)
|
MCFG_Z80_DAISY_CHAIN(bbcbc_daisy_chain)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("z80pio", Z80PIO, MAIN_CLOCK/8)
|
MCFG_DEVICE_ADD("z80pio", Z80PIO, MAIN_CLOCK/8)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// license:BSD-3-Clause
|
// license:BSD-3-Clause
|
||||||
// copyright-holders:Robbbert, Sergey Svishchev
|
// copyright-holders:Sergey Svishchev
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
IBM 6580 Displaywriter.
|
IBM 6580 Displaywriter.
|
||||||
|
@ -34,15 +34,14 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( rd100_mem, AS_PROGRAM, 8, rd100_state )
|
static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, rd100_state )
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
AM_RANGE(0x0000, 0x87ff) AM_RAM
|
AM_RANGE(0x0000, 0x7fff) AM_RAM
|
||||||
|
//AM_RANGE(0x8640, 0x8643) // device
|
||||||
|
//AM_RANGE(0x8700, 0x8700) // device
|
||||||
AM_RANGE(0x8800, 0xffff) AM_ROM AM_REGION("roms", 0x800)
|
AM_RANGE(0x8800, 0xffff) AM_ROM AM_REGION("roms", 0x800)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( rd100_io, AS_IO, 8, rd100_state )
|
|
||||||
ADDRESS_MAP_END
|
|
||||||
|
|
||||||
/* Input ports */
|
/* Input ports */
|
||||||
static INPUT_PORTS_START( rd100 )
|
static INPUT_PORTS_START( rd100 )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
@ -89,8 +88,7 @@ MACHINE_RESET_MEMBER( rd100_state, rd100 )
|
|||||||
static MACHINE_CONFIG_START( rd100 )
|
static MACHINE_CONFIG_START( rd100 )
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) // freq unknown
|
MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) // freq unknown
|
||||||
MCFG_CPU_PROGRAM_MAP(rd100_mem)
|
MCFG_CPU_PROGRAM_MAP(mem_map)
|
||||||
MCFG_CPU_IO_MAP(rd100_io)
|
|
||||||
|
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(rd100_state, rd100)
|
MCFG_MACHINE_RESET_OVERRIDE(rd100_state, rd100)
|
||||||
|
|
||||||
|
@ -38,28 +38,27 @@ Other input will either result in '!' message, or halt.
|
|||||||
#include "cpu/i8008/i8008.h"
|
#include "cpu/i8008/i8008.h"
|
||||||
#include "machine/terminal.h"
|
#include "machine/terminal.h"
|
||||||
|
|
||||||
#define TERMINAL_TAG "terminal"
|
|
||||||
|
|
||||||
class sacstate_state : public driver_device
|
class sacstate_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
sacstate_state(const machine_config &mconfig, device_type type, const char *tag)
|
sacstate_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag)
|
||||||
m_maincpu(*this, "maincpu"),
|
, m_maincpu(*this, "maincpu")
|
||||||
m_terminal(*this, TERMINAL_TAG)
|
, m_terminal(*this, "terminal")
|
||||||
{
|
{ }
|
||||||
}
|
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
required_device<generic_terminal_device> m_terminal;
|
|
||||||
DECLARE_READ8_MEMBER(port00_r);
|
DECLARE_READ8_MEMBER(port00_r);
|
||||||
DECLARE_READ8_MEMBER(port01_r);
|
DECLARE_READ8_MEMBER(port01_r);
|
||||||
DECLARE_READ8_MEMBER(port04_r);
|
DECLARE_READ8_MEMBER(port04_r);
|
||||||
DECLARE_WRITE8_MEMBER(port08_w);
|
DECLARE_WRITE8_MEMBER(port08_w);
|
||||||
void kbd_put(u8 data);
|
void kbd_put(u8 data);
|
||||||
|
private:
|
||||||
uint8_t m_term_data;
|
uint8_t m_term_data;
|
||||||
uint8_t m_val;
|
uint8_t m_val;
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<generic_terminal_device> m_terminal;
|
||||||
};
|
};
|
||||||
|
|
||||||
READ8_MEMBER( sacstate_state::port01_r )
|
READ8_MEMBER( sacstate_state::port01_r )
|
||||||
@ -105,7 +104,7 @@ static ADDRESS_MAP_START(sacstate_io, AS_IO, 8, sacstate_state)
|
|||||||
AM_RANGE(0x01,0x01) AM_READ(port01_r)
|
AM_RANGE(0x01,0x01) AM_READ(port01_r)
|
||||||
AM_RANGE(0x04,0x04) AM_READ(port04_r)
|
AM_RANGE(0x04,0x04) AM_READ(port04_r)
|
||||||
AM_RANGE(0x08,0x08) AM_WRITE(port08_w)
|
AM_RANGE(0x08,0x08) AM_WRITE(port08_w)
|
||||||
AM_RANGE(0x16,0x16) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
AM_RANGE(0x16,0x16) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||||
AM_RANGE(0x17,0x1f) AM_WRITENOP
|
AM_RANGE(0x17,0x1f) AM_WRITENOP
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -135,7 +134,7 @@ static MACHINE_CONFIG_START( sacstate )
|
|||||||
MCFG_CPU_IO_MAP(sacstate_io)
|
MCFG_CPU_IO_MAP(sacstate_io)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(sacstate_state, kbd_put))
|
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(sacstate_state, kbd_put))
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -60,19 +60,20 @@ class slc1_state : public driver_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slc1_state(const machine_config &mconfig, device_type type, const char *tag)
|
slc1_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag)
|
||||||
m_maincpu(*this, "maincpu"),
|
, m_maincpu(*this, "maincpu")
|
||||||
m_speaker(*this, "speaker")
|
, m_speaker(*this, "speaker")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
required_device<speaker_sound_device> m_speaker;
|
|
||||||
DECLARE_READ8_MEMBER( io_r );
|
DECLARE_READ8_MEMBER( io_r );
|
||||||
DECLARE_WRITE8_MEMBER( io_w );
|
DECLARE_WRITE8_MEMBER( io_w );
|
||||||
|
private:
|
||||||
uint8_t m_digit;
|
uint8_t m_digit;
|
||||||
bool m_kbd_type;
|
bool m_kbd_type;
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<speaker_sound_device> m_speaker;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -180,14 +181,14 @@ void slc1_state::machine_reset()
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
static ADDRESS_MAP_START( slc1_map, AS_PROGRAM, 8, slc1_state )
|
static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, slc1_state )
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0x4fff)
|
ADDRESS_MAP_GLOBAL_MASK(0x4fff)
|
||||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||||
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_MIRROR(0xc00)
|
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_MIRROR(0xc00)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( slc1_io, AS_IO, 8, slc1_state )
|
static ADDRESS_MAP_START( io_map, AS_IO, 8, slc1_state )
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
AM_RANGE(0x0000, 0xffff) AM_READWRITE(io_r,io_w)
|
AM_RANGE(0x0000, 0xffff) AM_READWRITE(io_r,io_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -255,8 +256,8 @@ INPUT_PORTS_END
|
|||||||
static MACHINE_CONFIG_START( slc1 )
|
static MACHINE_CONFIG_START( slc1 )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", Z80, 2500000)
|
MCFG_CPU_ADD("maincpu", Z80, 2500000)
|
||||||
MCFG_CPU_PROGRAM_MAP(slc1_map)
|
MCFG_CPU_PROGRAM_MAP(mem_map)
|
||||||
MCFG_CPU_IO_MAP(slc1_io)
|
MCFG_CPU_IO_MAP(io_map)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_DEFAULT_LAYOUT(layout_slc1)
|
MCFG_DEFAULT_LAYOUT(layout_slc1)
|
||||||
|
@ -12,16 +12,11 @@
|
|||||||
bios 1 (MIKBUG) is made for a ACIA (serial) interface at the same address.
|
bios 1 (MIKBUG) is made for a ACIA (serial) interface at the same address.
|
||||||
MIKBUG will actually read the bits as they arrive and assemble a byte.
|
MIKBUG will actually read the bits as they arrive and assemble a byte.
|
||||||
|
|
||||||
Since the interface is optional, it is not on the schematics, so I've
|
|
||||||
looked at the code and come up with something horrible that works.
|
|
||||||
|
|
||||||
Note: All commands must be in uppercase. See the SWTBUG manual.
|
Note: All commands must be in uppercase. See the SWTBUG manual.
|
||||||
|
|
||||||
ToDo:
|
ToDo:
|
||||||
- Add PIA and work out the best way to hook up the keyboard. As can be
|
- Split into 2 systems each with different hardware.
|
||||||
seen from the code below, it might be tricky.
|
|
||||||
|
|
||||||
- Finish conversion to modern.
|
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
B Breakpoint
|
B Breakpoint
|
||||||
@ -42,59 +37,28 @@ Z Goto Prom (0xC000)
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6800/m6800.h"
|
#include "cpu/m6800/m6800.h"
|
||||||
#include "machine/terminal.h"
|
#include "machine/6850acia.h"
|
||||||
|
#include "machine/clock.h"
|
||||||
#define TERMINAL_TAG "terminal"
|
#include "bus/rs232/rs232.h"
|
||||||
|
|
||||||
class swtpc_state : public driver_device
|
class swtpc_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
swtpc_state(const machine_config &mconfig, device_type type, const char *tag)
|
swtpc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag)
|
||||||
m_maincpu(*this, "maincpu"),
|
, m_maincpu(*this, "maincpu")
|
||||||
m_terminal(*this, TERMINAL_TAG)
|
{ }
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER(swtpc_status_r);
|
|
||||||
DECLARE_READ8_MEMBER(swtpc_terminal_r);
|
|
||||||
DECLARE_READ8_MEMBER(swtpc_tricky_r);
|
|
||||||
void kbd_put(u8 data);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void machine_reset() override;
|
|
||||||
|
|
||||||
|
private:
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<generic_terminal_device> m_terminal;
|
|
||||||
uint8_t m_term_data;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// bit 0 - ready to receive a character; bit 1 - ready to send a character to the terminal
|
static ADDRESS_MAP_START(mem_map, AS_PROGRAM, 8, swtpc_state)
|
||||||
READ8_MEMBER( swtpc_state::swtpc_status_r )
|
|
||||||
{
|
|
||||||
return (m_term_data) ? 3 : 0x82;
|
|
||||||
}
|
|
||||||
|
|
||||||
READ8_MEMBER( swtpc_state::swtpc_terminal_r )
|
|
||||||
{
|
|
||||||
uint8_t ret = m_term_data;
|
|
||||||
m_term_data = 0;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
READ8_MEMBER( swtpc_state::swtpc_tricky_r )
|
|
||||||
{
|
|
||||||
uint8_t ret = m_term_data;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START(swtpc_mem, AS_PROGRAM, 8, swtpc_state)
|
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
AM_RANGE( 0x8004, 0x8004 ) AM_READ(swtpc_status_r)
|
AM_RANGE(0x8004, 0x8004) AM_MIRROR(2) AM_DEVREADWRITE("uart", acia6850_device, status_r, control_w)
|
||||||
AM_RANGE( 0x8005, 0x8005 ) AM_READ(swtpc_terminal_r) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
AM_RANGE(0x8005, 0x8005) AM_MIRROR(2) AM_DEVREADWRITE("uart", acia6850_device, data_r, data_w)
|
||||||
AM_RANGE( 0x8007, 0x8007 ) AM_READ(swtpc_tricky_r)
|
AM_RANGE(0xa000, 0xa07f) AM_RAM
|
||||||
AM_RANGE( 0xa000, 0xa07f ) AM_RAM
|
AM_RANGE(0xe000, 0xe3ff) AM_MIRROR(0x1c00) AM_ROM
|
||||||
AM_RANGE( 0xe000, 0xe3ff ) AM_MIRROR(0x1c00) AM_ROM
|
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
/* Input ports */
|
/* Input ports */
|
||||||
@ -102,24 +66,23 @@ static INPUT_PORTS_START( swtpc )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
void swtpc_state::machine_reset()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void swtpc_state::kbd_put(u8 data)
|
|
||||||
{
|
|
||||||
m_term_data = data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( swtpc )
|
static MACHINE_CONFIG_START( swtpc )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", M6800, XTAL_1MHz)
|
MCFG_CPU_ADD("maincpu", M6800, XTAL_1MHz)
|
||||||
MCFG_CPU_PROGRAM_MAP(swtpc_mem)
|
MCFG_CPU_PROGRAM_MAP(mem_map)
|
||||||
|
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
MCFG_DEVICE_ADD("uart_clock", CLOCK, 153600)
|
||||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(swtpc_state, kbd_put))
|
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("uart", acia6850_device, write_txc))
|
||||||
|
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("uart", acia6850_device, write_rxc))
|
||||||
|
|
||||||
|
MCFG_DEVICE_ADD("uart", ACIA6850, XTAL_1MHz)
|
||||||
|
MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||||
|
MCFG_ACIA6850_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||||
|
|
||||||
|
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
|
||||||
|
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", acia6850_device, write_rxd))
|
||||||
|
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart", acia6850_device, write_cts))
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
/* ROM definition */
|
/* ROM definition */
|
||||||
@ -134,4 +97,4 @@ ROM_END
|
|||||||
/* Driver */
|
/* Driver */
|
||||||
|
|
||||||
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
||||||
COMP( 1975, swtpc, 0, 0, swtpc, swtpc, swtpc_state, 0, "Southwest Technical Products Corporation", "SWTPC 6800", MACHINE_NO_SOUND)
|
COMP( 1975, swtpc, 0, 0, swtpc, swtpc, swtpc_state, 0, "Southwest Technical Products Corporation", "SWTPC 6800", MACHINE_NO_SOUND_HW )
|
||||||
|
@ -49,13 +49,14 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
sys2900_state(const machine_config &mconfig, device_type type, const char *tag)
|
sys2900_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag) ,
|
: driver_device(mconfig, type, tag)
|
||||||
m_maincpu(*this, "maincpu") { }
|
, m_maincpu(*this, "maincpu") { }
|
||||||
|
|
||||||
DECLARE_DRIVER_INIT(sys2900);
|
DECLARE_DRIVER_INIT(sys2900);
|
||||||
|
uint32_t screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
|
private:
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
virtual void video_start() override;
|
virtual void video_start() override;
|
||||||
uint32_t screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -63,7 +64,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START(sys2900_mem, AS_PROGRAM, 8, sys2900_state)
|
static ADDRESS_MAP_START(mem_map, AS_PROGRAM, 8, sys2900_state)
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
AM_RANGE( 0x0000, 0x07ff ) AM_RAMBANK("boot")
|
AM_RANGE( 0x0000, 0x07ff ) AM_RAMBANK("boot")
|
||||||
AM_RANGE( 0x0800, 0xefff ) AM_RAM
|
AM_RANGE( 0x0800, 0xefff ) AM_RAM
|
||||||
@ -71,7 +72,7 @@ static ADDRESS_MAP_START(sys2900_mem, AS_PROGRAM, 8, sys2900_state)
|
|||||||
AM_RANGE( 0xf800, 0xffff ) AM_RAM
|
AM_RANGE( 0xf800, 0xffff ) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START(sys2900_io, AS_IO, 8, sys2900_state)
|
static ADDRESS_MAP_START(io_map, AS_IO, 8, sys2900_state)
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -118,8 +119,8 @@ uint32_t sys2900_state::screen_update_sys2900(screen_device &screen, bitmap_ind1
|
|||||||
static MACHINE_CONFIG_START( sys2900 )
|
static MACHINE_CONFIG_START( sys2900 )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
|
MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
|
||||||
MCFG_CPU_PROGRAM_MAP(sys2900_mem)
|
MCFG_CPU_PROGRAM_MAP(mem_map)
|
||||||
MCFG_CPU_IO_MAP(sys2900_io)
|
MCFG_CPU_IO_MAP(io_map)
|
||||||
|
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -43,14 +43,14 @@ private:
|
|||||||
required_region_ptr<u8> m_p_chargen;
|
required_region_ptr<u8> m_p_chargen;
|
||||||
};
|
};
|
||||||
|
|
||||||
static ADDRESS_MAP_START(vta2000_mem, AS_PROGRAM, 8, vta2000_state)
|
static ADDRESS_MAP_START(mem_map, AS_PROGRAM, 8, vta2000_state)
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_REGION("roms", 0)
|
AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_REGION("roms", 0)
|
||||||
AM_RANGE( 0x8000, 0xc7ff ) AM_RAM AM_SHARE("videoram")
|
AM_RANGE( 0x8000, 0xc7ff ) AM_RAM AM_SHARE("videoram")
|
||||||
AM_RANGE( 0xc800, 0xc8ff ) AM_ROM AM_REGION("roms", 0x5000)
|
AM_RANGE( 0xc800, 0xc8ff ) AM_ROM AM_REGION("roms", 0x5000)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START(vta2000_io, AS_IO, 8, vta2000_state)
|
static ADDRESS_MAP_START(io_map, AS_IO, 8, vta2000_state)
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -157,8 +157,8 @@ PALETTE_INIT_MEMBER(vta2000_state, vta2000)
|
|||||||
static MACHINE_CONFIG_START( vta2000 )
|
static MACHINE_CONFIG_START( vta2000 )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu",I8080, XTAL_4MHz / 4)
|
MCFG_CPU_ADD("maincpu",I8080, XTAL_4MHz / 4)
|
||||||
MCFG_CPU_PROGRAM_MAP(vta2000_mem)
|
MCFG_CPU_PROGRAM_MAP(mem_map)
|
||||||
MCFG_CPU_IO_MAP(vta2000_io)
|
MCFG_CPU_IO_MAP(io_map)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// license:BSD-3-Clause
|
// license:BSD-3-Clause
|
||||||
// copyright-holders:Robbbert, Barry Rodewald
|
// copyright-holders:Barry Rodewald
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Wicat - various systems.
|
Wicat - various systems.
|
||||||
|
Loading…
Reference in New Issue
Block a user