add license info for some things i worked on, some small cleanups

This commit is contained in:
Dirk Best 2013-10-17 14:26:24 +00:00
parent a404a47337
commit f503c9a88c
65 changed files with 541 additions and 578 deletions

3
.gitattributes vendored
View File

@ -6720,7 +6720,6 @@ src/mess/includes/ace.h svneol=native#text/plain
src/mess/includes/adam.h svneol=native#text/plain
src/mess/includes/advision.h svneol=native#text/plain
src/mess/includes/aim65.h svneol=native#text/plain
src/mess/includes/aim65_40.h svneol=native#text/plain
src/mess/includes/alesis.h svneol=native#text/plain
src/mess/includes/amstr_pc.h svneol=native#text/plain
src/mess/includes/amstrad.h svneol=native#text/plain
@ -6892,7 +6891,6 @@ src/mess/includes/super80.h svneol=native#text/plain
src/mess/includes/superslave.h svneol=native#text/plain
src/mess/includes/svi318.h svneol=native#text/plain
src/mess/includes/svision.h svneol=native#text/plain
src/mess/includes/sym1.h svneol=native#text/plain
src/mess/includes/tandy1t.h svneol=native#text/plain
src/mess/includes/tandy2k.h svneol=native#text/plain
src/mess/includes/tdv2324.h svneol=native#text/plain
@ -8045,7 +8043,6 @@ src/mess/machine/superpet.h svneol=native#text/plain
src/mess/machine/svi318.c svneol=native#text/plain
src/mess/machine/swim.c svneol=native#text/plain
src/mess/machine/swim.h svneol=native#text/plain
src/mess/machine/sym1.c svneol=native#text/plain
src/mess/machine/tandy1t.c svneol=native#text/plain
src/mess/machine/tandy2kb.c svneol=native#text/plain
src/mess/machine/tandy2kb.h svneol=native#text/plain

View File

@ -1,3 +1,4 @@
MAME: see docs/license.txt
LGPL-2.1+: http://spdx.org/licenses/LGPL-2.1+
BSD-3-Clause: http://spdx.org/licenses/BSD-3-Clause
GPL-2.0+: http://spdx.org/licenses/GPL-2.0+
LGPL-2.1+: http://spdx.org/licenses/LGPL-2.1+
MAME: see docs/license.txt

View File

@ -2,6 +2,9 @@
Intel 8089 I/O Processor
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#include "i8089.h"

View File

@ -2,6 +2,9 @@
Intel 8089 I/O Processor
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#pragma once

View File

@ -2,6 +2,9 @@
Intel 8089 I/O Processor
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
I/O channel
***************************************************************************/

View File

@ -2,6 +2,9 @@
Intel 8089 I/O Processor
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
I/O channel
***************************************************************************/

View File

@ -2,6 +2,9 @@
Intel 8089 I/O Processor
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Disassembler
Note: Incomplete

View File

@ -2,6 +2,9 @@
Intel 8089 I/O Processor
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Opcode implementations
***************************************************************************/

View File

@ -1,8 +1,11 @@
/*****************************************************************************
*
* machine/74145.c
* TTL74145
*
* BCD-to-Decimal decoder
* license: MAME, GPL-2.0+
* copyright-holders: Dirk Best
*
* BCD-to-Decimal decoder
*
* __ __
* 0-| v |-VCC

View File

@ -2,6 +2,9 @@
TTL74145
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
BCD-to-Decimal decoder
***************************************************************************/

View File

@ -2,6 +2,9 @@
Centronics printer interface
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#include "emu.h"

View File

@ -2,6 +2,9 @@
Centronics printer interface
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#ifndef __CTRONICS_H__

View File

@ -2,8 +2,10 @@
National Semiconductor INS8154
N-Channel 128-by-8 Bit RAM Input/Output (RAM I/O)
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
N-Channel 128-by-8 Bit RAM Input/Output (RAM I/O)
TODO: Strobed modes

View File

@ -2,6 +2,9 @@
National Semiconductor INS8154
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
N-Channel 128-by-8 Bit RAM Input/Output (RAM I/O)
_____ _____

View File

@ -2,6 +2,9 @@
RAM device
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Provides a configurable amount of RAM to drivers
**************************************************************************/

View File

@ -2,6 +2,9 @@
RAM device
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Provides a configurable amount of RAM to drivers
**************************************************************************/

View File

@ -1,8 +1,9 @@
/*****************************************************************************
*
* video/dl1416.c
* DL1416
*
* DL1416
* license: MAME, GPL-2.0+
* copyright-holders: Dirk Best
*
* 4-Digit 16-Segment Alphanumeric Intelligent Display
* with Memory/Decoder/Driver

View File

@ -1,8 +1,9 @@
/*****************************************************************************
*
* video/dl1416.h
* DL1416
*
* DL1416
* license: MAME, GPL-2.0+
* copyright-holders: Dirk Best
*
* 4-Digit 16-Segment Alphanumeric Intelligent Display
* with Memory/Decoder/Driver

View File

@ -45,12 +45,41 @@ The source code there implies that *maybe* ff7e and ff7f are also open bus.
*/
#include "emu.h"
#include "includes/aim65_40.h"
#include "cpu/m6502/m6502.h"
#include "machine/6522via.h"
#include "machine/mos6551.h"
#include "aim65_40.lh"
//**************************************************************************
// MACROS/CONSTANTS
//**************************************************************************
#define M6502_TAG "m6502"
#define M6522_0_TAG "m6522_0"
#define M6522_1_TAG "m6522_1"
#define M6522_2_TAG "m6522_2"
#define M6551_TAG "m6551"
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
class aim65_40_state : public driver_device
{
public:
aim65_40_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
// devices
device_t *m_via0;
device_t *m_via1;
device_t *m_via2;
device_t *m_speaker;
};
/***************************************************************************
ADDRESS MAPS
***************************************************************************/

View File

@ -2,6 +2,9 @@
ACT Apricot PC/Xi
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
- Error 29 (timer failed)
- Dump of the keyboard MCU ROM needed (can be dumped using test mode)

View File

@ -1,8 +1,9 @@
/****************************************************************************
Bally Astrocade consumer hardware
driver by Nicola Salmoria, Mike Coates, Frank Palazzolo, Aaron Giles,
Dirk Best
license: MAME
copyright-holders: Nicola Salmoria, Mike Coates, Frank Palazzolo, Aaron Giles, Dirk Best
****************************************************************************/

View File

@ -2,6 +2,9 @@
PC/AT 486 with Chips & Technologies CS4031 chipset
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#include "emu.h"

View File

@ -1,7 +1,9 @@
/******************************************************************************
Tatung Einstein
system driver
license: MAME
copyright-holders: Kevin Thacker, Dirk Best, Phill Harvey-Smith
TMS9129 VDP Graphics

View File

@ -1,9 +1,10 @@
// license:MAME
// copyright-holders:Dirk Best
/******************************************************************************
Epson EX-800 Dot Matrix printer
Written by Dirk Best, October 2007
Epson EX-800 Dot Matrix printer
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
--
@ -125,7 +126,6 @@ TODO: - The UPD7810 core is missing analog port emulation
- (much later) write an interface so that other drivers can hook
into this one and use to print
******************************************************************************/
#include "emu.h"

View File

@ -2,6 +2,9 @@
Epson LX-800 dot matrix printer
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Skeleton driver
- CPU type uPD7810HG

View File

@ -1,10 +1,9 @@
/***************************************************************************
mc10.c
TRS-80 Radio Shack MicroColor Computer
Nate Woods
license: MAME
copyright-holders: Nathan Woods, Dirk Best
***************************************************************************/

View File

@ -1,9 +1,10 @@
/*************************************************************************
driver/mtx.c
Memotech MTX 500, MTX 512 and RS 128
license: MAME
copyright-holders: (Original Author?), Dirk Best, Curt Coder
**************************************************************************/
/*

View File

@ -1,9 +1,8 @@
/******************************************************************************
* Sharp MZ700
*
* system driver
*
* Juergen Buchmueller <pullmoll@t-online.de>, Jul 2000
* license: MAME
* copyright-holders: Juergen Buchmueller, Dirk Best
*
* Reference: http://sharpmz.computingmuseum.com
*

View File

@ -1,5 +1,12 @@
/************************************************************************
Nascom Memory map
Nascom 1 and Nascom 2
license: MAME
copyright-holders: (Original Author?), Dirk Best
Memory map
CPU: z80
0000-03ff ROM (Nascom1 Monitor)

View File

@ -2,6 +2,9 @@
Epson PX-4
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Note: We are missing a dump of the slave 7508 CPU that controls
the keyboard and some other things.

View File

@ -1,11 +1,9 @@
/***************************************************************************
SAM Coupe
Miles Gordon Technology, 1989
Driver by Lee Hammerton, Dirk Best
Miles Gordon Technology SAM Coupe
license: MAME
copyright-holders: Lee Hammerton, Dirk Best
Notes:
------

View File

@ -1,57 +1,187 @@
/******************************************************************************
Synertek Systems Corp. SYM-1
/***************************************************************************
Early driver by PeT mess@utanet.at May 2000
Rewritten by Dirk Best October 2007
Synertek Systems Corp. SYM-1
******************************************************************************/
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#include "emu.h"
#include "cpu/m6502/m6502.h"
#include "machine/ram.h"
#include "sound/speaker.h"
#include "includes/sym1.h"
/* Peripheral chips */
#include "machine/6532riot.h"
#include "machine/6522via.h"
#include "machine/74145.h"
/* Layout */
#include "sym1.lh"
#include "machine/ram.h"
//**************************************************************************
// MACROS/CONSTANTS
//**************************************************************************
// SYM-1 main (and only) oscillator Y1
#define SYM1_CLOCK XTAL_1MHz
#define LED_REFRESH_DELAY attotime::from_usec(70)
/* pointers to memory locations */
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
class sym1_state : public driver_device
{
public:
sym1_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_ram_1k(*this, "ram_1k"),
m_ram_2k(*this, "ram_2k"),
m_ram_3k(*this, "ram_3k"),
m_monitor(*this, "monitor"),
m_riot_ram(*this, "riot_ram"),
m_maincpu(*this, "maincpu"),
m_ram(*this, RAM_TAG),
m_ttl74145(*this, "ttl74145"),
m_row0(*this, "ROW-0"),
m_row1(*this, "ROW-1"),
m_row2(*this, "ROW-2"),
m_row3(*this, "ROW-3"),
m_wp(*this, "WP") { }
required_shared_ptr<UINT8> m_ram_1k;
required_shared_ptr<UINT8> m_ram_2k;
required_shared_ptr<UINT8> m_ram_3k;
required_shared_ptr<UINT8> m_monitor;
required_shared_ptr<UINT8> m_riot_ram;
UINT8 m_riot_port_a;
UINT8 m_riot_port_b;
emu_timer *m_led_update;
DECLARE_DRIVER_INIT(sym1);
virtual void machine_reset();
TIMER_CALLBACK_MEMBER(led_refresh);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_0_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_1_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_2_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_3_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_4_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_5_w);
DECLARE_READ8_MEMBER(sym1_riot_a_r);
DECLARE_READ8_MEMBER(sym1_riot_b_r);
DECLARE_WRITE8_MEMBER(sym1_riot_a_w);
DECLARE_WRITE8_MEMBER(sym1_riot_b_w);
DECLARE_WRITE8_MEMBER(sym1_via2_a_w);
protected:
required_device<cpu_device> m_maincpu;
required_device<ram_device> m_ram;
required_device<ttl74145_device> m_ttl74145;
required_ioport m_row0;
required_ioport m_row1;
required_ioport m_row2;
required_ioport m_row3;
required_ioport m_wp;
};
//**************************************************************************
// KEYBOARD INPUT & LED OUTPUT
//**************************************************************************
/******************************************************************************
Memory Maps
******************************************************************************/
WRITE_LINE_MEMBER( sym1_state::sym1_74145_output_0_w ) { if (state) m_led_update->adjust(LED_REFRESH_DELAY, 0); }
WRITE_LINE_MEMBER( sym1_state::sym1_74145_output_1_w ) { if (state) m_led_update->adjust(LED_REFRESH_DELAY, 1); }
WRITE_LINE_MEMBER( sym1_state::sym1_74145_output_2_w ) { if (state) m_led_update->adjust(LED_REFRESH_DELAY, 2); }
WRITE_LINE_MEMBER( sym1_state::sym1_74145_output_3_w ) { if (state) m_led_update->adjust(LED_REFRESH_DELAY, 3); }
WRITE_LINE_MEMBER( sym1_state::sym1_74145_output_4_w ) { if (state) m_led_update->adjust(LED_REFRESH_DELAY, 4); }
WRITE_LINE_MEMBER( sym1_state::sym1_74145_output_5_w ) { if (state) m_led_update->adjust(LED_REFRESH_DELAY, 5); }
TIMER_CALLBACK_MEMBER( sym1_state::led_refresh )
{
output_set_digit_value(param, m_riot_port_a);
}
READ8_MEMBER( sym1_state::sym1_riot_a_r )
{
int data = 0x7f;
// scan keypad rows
if (!(m_riot_port_a & 0x80)) data &= m_row0->read();
if (!(m_riot_port_b & 0x01)) data &= m_row1->read();
if (!(m_riot_port_b & 0x02)) data &= m_row2->read();
if (!(m_riot_port_b & 0x04)) data &= m_row3->read();
// determine column
if ( ((m_riot_port_a ^ 0xff) & (m_row0->read() ^ 0xff)) & 0x7f )
data &= ~0x80;
return data;
}
READ8_MEMBER( sym1_state::sym1_riot_b_r )
{
int data = 0xff;
// determine column
if ( ((m_riot_port_a ^ 0xff) & (m_row1->read() ^ 0xff)) & 0x7f )
data &= ~0x01;
if ( ((m_riot_port_a ^ 0xff) & (m_row2->read() ^ 0xff)) & 0x3f )
data &= ~0x02;
if ( ((m_riot_port_a ^ 0xff) & (m_row3->read() ^ 0xff)) & 0x1f )
data &= ~0x04;
data &= ~0x80; // else hangs 8b02
return data;
}
WRITE8_MEMBER( sym1_state::sym1_riot_a_w )
{
logerror("%x: riot_a_w 0x%02x\n", m_maincpu->pc(), data);
// save for later use
m_riot_port_a = data;
}
WRITE8_MEMBER( sym1_state::sym1_riot_b_w )
{
logerror("%x: riot_b_w 0x%02x\n", m_maincpu->pc(), data);
// save for later use
m_riot_port_b = data;
// first 4 pins are connected to the 74145
m_ttl74145->write(data & 0x0f);
}
const riot6532_interface sym1_r6532_interface =
{
DEVCB_DRIVER_MEMBER(sym1_state, sym1_riot_a_r),
DEVCB_DRIVER_MEMBER(sym1_state, sym1_riot_b_r),
DEVCB_DRIVER_MEMBER(sym1_state, sym1_riot_a_w),
DEVCB_DRIVER_MEMBER(sym1_state, sym1_riot_b_w)
};
const ttl74145_interface sym1_ttl74145_intf =
{
DEVCB_DRIVER_LINE_MEMBER(sym1_state, sym1_74145_output_0_w),
DEVCB_DRIVER_LINE_MEMBER(sym1_state, sym1_74145_output_1_w),
DEVCB_DRIVER_LINE_MEMBER(sym1_state, sym1_74145_output_2_w),
DEVCB_DRIVER_LINE_MEMBER(sym1_state, sym1_74145_output_3_w),
DEVCB_DRIVER_LINE_MEMBER(sym1_state, sym1_74145_output_4_w),
DEVCB_DRIVER_LINE_MEMBER(sym1_state, sym1_74145_output_5_w),
DEVCB_DEVICE_LINE_MEMBER("speaker", speaker_sound_device, level_w),
DEVCB_NULL, // not connected
DEVCB_NULL, // not connected
DEVCB_NULL // not connected
};
static ADDRESS_MAP_START( sym1_map, AS_PROGRAM, 8, sym1_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM /* U12/U13 RAM */
AM_RANGE(0x0400, 0x07ff) AM_RAMBANK("bank2") AM_SHARE("ram_1k")
AM_RANGE(0x0800, 0x0bff) AM_RAMBANK("bank3") AM_SHARE("ram_2k")
AM_RANGE(0x0c00, 0x0fff) AM_RAMBANK("bank4") AM_SHARE("ram_3k")
AM_RANGE(0x8000, 0x8fff) AM_ROM AM_SHARE("monitor") /* U20 Monitor ROM */
AM_RANGE(0xa000, 0xa00f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* U25 VIA #1 */
AM_RANGE(0xa400, 0xa40f) AM_DEVREADWRITE("riot", riot6532_device, read, write) /* U27 RIOT */
AM_RANGE(0xa600, 0xa67f) AM_RAMBANK("bank5") AM_SHARE("riot_ram") /* U27 RIOT RAM */
AM_RANGE(0xa800, 0xa80f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) /* U28 VIA #2 */
AM_RANGE(0xac00, 0xac0f) AM_DEVREADWRITE("via6522_2", via6522_device, read, write) /* U29 VIA #3 */
AM_RANGE(0xb000, 0xefff) AM_ROM
ADDRESS_MAP_END
/******************************************************************************
Input Ports
******************************************************************************/
//**************************************************************************
// INPUT PORTS
//**************************************************************************
static INPUT_PORTS_START( sym1 )
PORT_START("ROW-0")
@ -111,58 +241,187 @@ static INPUT_PORTS_START( sym1 )
INPUT_PORTS_END
//**************************************************************************
// MACHINE EMULATION
//**************************************************************************
/******************************************************************************
Machine Drivers
******************************************************************************/
/*
PA0: Write protect R6532 RAM
PA1: Write protect RAM 0x400-0x7ff
PA2: Write protect RAM 0x800-0xbff
PA3: Write protect RAM 0xc00-0xfff
*/
WRITE8_MEMBER( sym1_state::sym1_via2_a_w )
{
address_space &cpu0space = m_maincpu->space( AS_PROGRAM );
logerror("SYM1 VIA2 W 0x%02x\n", data);
if ((m_wp->read() & 0x01) && !(data & 0x01)) {
cpu0space.nop_write(0xa600, 0xa67f);
} else {
cpu0space.install_write_bank(0xa600, 0xa67f, "bank5");
}
if ((m_wp->read() & 0x02) && !(data & 0x02)) {
cpu0space.nop_write(0x0400, 0x07ff);
} else {
cpu0space.install_write_bank(0x0400, 0x07ff, "bank2");
}
if ((m_wp->read() & 0x04) && !(data & 0x04)) {
cpu0space.nop_write(0x0800, 0x0bff);
} else {
cpu0space.install_write_bank(0x0800, 0x0bff, "bank3");
}
if ((m_wp->read() & 0x08) && !(data & 0x08)) {
cpu0space.nop_write(0x0c00, 0x0fff);
} else {
cpu0space.install_write_bank(0x0c00, 0x0fff, "bank4");
}
}
DRIVER_INIT_MEMBER( sym1_state, sym1 )
{
// wipe expansion memory banks that are not installed
if (m_ram->size() < 4*1024)
{
m_maincpu->space(AS_PROGRAM).nop_readwrite(m_ram->size(), 0x0fff);
}
// allocate a timer to refresh the led display
m_led_update = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sym1_state::led_refresh), this));
}
void sym1_state::machine_reset()
{
// make 0xf800 to 0xffff point to the last half of the monitor ROM
// so that the CPU can find its reset vectors
m_maincpu->space(AS_PROGRAM).install_read_bank(0xf800, 0xffff, "bank1");
m_maincpu->space(AS_PROGRAM).nop_write(0xf800, 0xffff);
membank("bank1")->set_base(m_monitor + 0x800);
m_maincpu->reset();
}
const via6522_interface sym1_via0 =
{
DEVCB_NULL,
DEVCB_UNMAPPED,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_UNMAPPED,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
const via6522_interface sym1_via1 =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
const via6522_interface sym1_via2 =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(sym1_state, sym1_via2_a_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
//**************************************************************************
// ADDRESS MAPS
//**************************************************************************
static ADDRESS_MAP_START( sym1_map, AS_PROGRAM, 8, sym1_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM // U12/U13 RAM
AM_RANGE(0x0400, 0x07ff) AM_RAMBANK("bank2") AM_SHARE("ram_1k")
AM_RANGE(0x0800, 0x0bff) AM_RAMBANK("bank3") AM_SHARE("ram_2k")
AM_RANGE(0x0c00, 0x0fff) AM_RAMBANK("bank4") AM_SHARE("ram_3k")
AM_RANGE(0x8000, 0x8fff) AM_ROM AM_SHARE("monitor") // U20 Monitor ROM
AM_RANGE(0xa000, 0xa00f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) // U25 VIA #1
AM_RANGE(0xa400, 0xa40f) AM_DEVREADWRITE("riot", riot6532_device, read, write) // U27 RIOT
AM_RANGE(0xa600, 0xa67f) AM_RAMBANK("bank5") AM_SHARE("riot_ram") // U27 RIOT RAM
AM_RANGE(0xa800, 0xa80f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) // U28 VIA #2
AM_RANGE(0xac00, 0xac0f) AM_DEVREADWRITE("via6522_2", via6522_device, read, write) // U29 VIA #3
AM_RANGE(0xb000, 0xefff) AM_ROM
ADDRESS_MAP_END
//**************************************************************************
// MACHINE DRIVERS
//**************************************************************************
static MACHINE_CONFIG_START( sym1, sym1_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, SYM1_CLOCK) /* 1 MHz */
// basic machine hardware
MCFG_CPU_ADD("maincpu", M6502, SYM1_CLOCK)
MCFG_CPU_PROGRAM_MAP(sym1_map)
MCFG_DEFAULT_LAYOUT(layout_sym1)
/* sound hardware */
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* devices */
// devices
MCFG_RIOT6532_ADD("riot", SYM1_CLOCK, sym1_r6532_interface)
MCFG_TTL74145_ADD("ttl74145", sym1_ttl74145_intf)
MCFG_VIA6522_ADD("via6522_0", 0, sym1_via0)
MCFG_VIA6522_ADD("via6522_1", 0, sym1_via1)
MCFG_VIA6522_ADD("via6522_2", 0, sym1_via2)
/* internal ram */
// internal ram
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("4K")
MCFG_RAM_EXTRA_OPTIONS("1K,2K,3K")
MACHINE_CONFIG_END
/******************************************************************************
ROM Definitions
******************************************************************************/
//**************************************************************************
// ROM DEFINITIONS
//**************************************************************************
ROM_START( sym1 )
ROM_REGION(0x10000, "maincpu", 0)
ROM_SYSTEM_BIOS(0, "ver10", "Version 1.0")
ROMX_LOAD("symon1_0.bin", 0x8000, 0x1000, CRC(97928583) SHA1(6ac52c54adb7a086d51bc7f6d55dd30ab3a0a331),ROM_BIOS(1))
ROMX_LOAD("symon1_0.bin", 0x8000, 0x1000, CRC(97928583) SHA1(6ac52c54adb7a086d51bc7f6d55dd30ab3a0a331), ROM_BIOS(1))
ROM_SYSTEM_BIOS(1, "ver11", "Version 1.1")
ROMX_LOAD("symon1_1.bin", 0x8000, 0x1000, CRC(7a4b1e12) SHA1(cebdf815105592658cfb7af262f2101d2aeab786),ROM_BIOS(2))
ROMX_LOAD("symon1_1.bin", 0x8000, 0x1000, CRC(7a4b1e12) SHA1(cebdf815105592658cfb7af262f2101d2aeab786), ROM_BIOS(2))
ROM_LOAD("rae_b000", 0xb000, 0x1000, CRC(F6429326) SHA1(6f2f10649b54f54217bb35c8c453b5d05434bd86) )
ROM_LOAD("bas_c000", 0xc000, 0x1000, CRC(C168FE70) SHA1(7447a5e229140cbbde4cf90886966a5d93aa24e1) )
ROM_LOAD("bas_d000", 0xd000, 0x1000, CRC(8375A978) SHA1(240301bf8bb8ddb99b65a585f17895e1ad872631) )
ROM_LOAD("rae_e000", 0xe000, 0x1000, CRC(2255444B) SHA1(c7dd812962c2e2edd2faa7055e9cce4e769c0388) )
ROM_END
/******************************************************************************
Drivers
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1978, sym1, 0, 0, sym1, sym1, sym1_state, sym1, "Synertek Systems Corp.", "SYM-1/SY-VIM-1", 0 )
//**************************************************************************
// GAME DRIVERS
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1978, sym1, 0, 0, sym1, sym1, sym1_state, sym1, "Synertek Systems Corp.", "SYM-1/SY-VIM-1", 0 )

View File

@ -1,7 +1,5 @@
/*****************************************************************************
Video Technology Laser 110-310 computers:
Video Technology Laser 110
Sanyo Laser 110
Video Technology Laser 200
@ -14,21 +12,8 @@ Video Technology Laser 110-310 computers:
Video Technology Laser 310
Dick Smith Electronics VZ-300
System driver:
Juergen Buchmueller <pullmoll@t-online.de>, Dec 1999
- everything
Dirk Best <duke@redump.de>, May 2004
- clean up
- fixed parent/clone relationsips and memory size for the Laser 200
- fixed loading of the DOS ROM
- added BASIC V2.1
- added SHA1 checksums
Dirk Best <duke@redump.de>, March 2006
- 64KB memory expansion (banked)
- cartridge support
license: MAME
copyright-holders: Juergen Buchmueller, Dirk Best
Thanks go to:
@ -102,11 +87,11 @@ Todo:
where not known (currently only a guess)
- Lightpen support
- Rewrite floppy and move to its own file
- Add support for the wordprocessor cartridge
Notes:
- The only known dumped cartridge is the DOS ROM:
CRC(b6ed6084) SHA1(59d1cbcfa6c5e1906a32704fbf0d9670f0d1fd8b)
- DOS ROM: CRC(b6ed6084) SHA1(59d1cbcfa6c5e1906a32704fbf0d9670f0d1fd8b)
******************************************************************************/

View File

@ -1,25 +0,0 @@
#pragma once
#ifndef __AIM65_40__
#define __AIM65_40__
#define M6502_TAG "m6502"
#define M6522_0_TAG "m6522_0"
#define M6522_1_TAG "m6522_1"
#define M6522_2_TAG "m6522_2"
#define M6551_TAG "m6551"
class aim65_40_state : public driver_device
{
public:
aim65_40_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
/* devices */
device_t *m_via0;
device_t *m_via1;
device_t *m_via2;
device_t *m_speaker;
};
#endif

View File

@ -1,8 +1,11 @@
/*****************************************************************************
*
* includes/einstein.h
*
****************************************************************************/
/***************************************************************************
Tatung Einstein
license: MAME
copyright-holders: Kevin Thacker, Dirk Best, Phill Harvey-Smith
***************************************************************************/
#ifndef EINSTEIN_H_
#define EINSTEIN_H_

View File

@ -2,6 +2,9 @@
Memotech MTX 500, MTX 512 and RS 128
license: MAME
copyright-holders: (Original Author?), Dirk Best, Curt Coder
*************************************************************************/
#ifndef __MTX__

View File

@ -1,9 +1,8 @@
/******************************************************************************
* Sharp MZ700
*
* variables and function prototypes
*
* Juergen Buchmueller <pullmoll@t-online.de>, Jul 2000
* license: MAME
* copyright-holders: Juergen Buchmueller, Dirk Best
*
* Reference: http://sharpmz.computingmuseum.com
*

View File

@ -1,8 +1,11 @@
/*****************************************************************************
*
* includes/nascom1.h
*
****************************************************************************/
/***************************************************************************
Nascom 1 and Nascom 2
license: MAME
copyright-holders: (Original Author?), Dirk Best
***************************************************************************/
#ifndef NASCOM1_H_
#define NASCOM1_H_

View File

@ -1,89 +0,0 @@
/*****************************************************************************
*
* includes/sym1.h
*
* Synertek Systems Corp. SYM-1
*
* Early driver by PeT <mess@utanet.at>, May 2000
* Rewritten by Dirk Best, October 2007
*
****************************************************************************/
#ifndef SYM1_H_
#define SYM1_H_
#include "machine/6532riot.h"
#include "machine/6522via.h"
#include "machine/74145.h"
#include "machine/ram.h"
/* SYM-1 main (and only) oscillator Y1 */
#define SYM1_CLOCK XTAL_1MHz
class sym1_state : public driver_device
{
public:
sym1_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_ram_1k(*this, "ram_1k"),
m_ram_2k(*this, "ram_2k"),
m_ram_3k(*this, "ram_3k"),
m_monitor(*this, "monitor"),
m_riot_ram(*this, "riot_ram"),
m_maincpu(*this, "maincpu"),
m_ram(*this, RAM_TAG),
m_ttl74145(*this, "ttl74145"),
m_row0(*this, "ROW-0"),
m_row1(*this, "ROW-1"),
m_row2(*this, "ROW-2"),
m_row3(*this, "ROW-3"),
m_wp(*this, "WP") { }
required_shared_ptr<UINT8> m_ram_1k;
required_shared_ptr<UINT8> m_ram_2k;
required_shared_ptr<UINT8> m_ram_3k;
required_shared_ptr<UINT8> m_monitor;
required_shared_ptr<UINT8> m_riot_ram;
UINT8 m_riot_port_a;
UINT8 m_riot_port_b;
emu_timer *m_led_update;
DECLARE_DRIVER_INIT(sym1);
virtual void machine_reset();
TIMER_CALLBACK_MEMBER(led_refresh);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_0_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_1_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_2_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_3_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_4_w);
DECLARE_WRITE_LINE_MEMBER(sym1_74145_output_5_w);
DECLARE_READ8_MEMBER(sym1_riot_a_r);
DECLARE_READ8_MEMBER(sym1_riot_b_r);
DECLARE_WRITE8_MEMBER(sym1_riot_a_w);
DECLARE_WRITE8_MEMBER(sym1_riot_b_w);
DECLARE_READ8_MEMBER(sym1_via0_b_r);
DECLARE_WRITE8_MEMBER(sym1_via0_b_w);
DECLARE_WRITE8_MEMBER(sym1_via2_a_w);
DECLARE_WRITE_LINE_MEMBER(sym1_irq);
protected:
required_device<cpu_device> m_maincpu;
required_device<ram_device> m_ram;
required_device<ttl74145_device> m_ttl74145;
required_ioport m_row0;
required_ioport m_row1;
required_ioport m_row2;
required_ioport m_row3;
required_ioport m_wp;
};
/*----------- defined in machine/sym1.c -----------*/
extern const riot6532_interface sym1_r6532_interface;
extern const ttl74145_interface sym1_ttl74145_intf;
extern const via6522_interface sym1_via0;
extern const via6522_interface sym1_via1;
extern const via6522_interface sym1_via2;
#endif /* SYM1_H_ */

View File

@ -2,6 +2,9 @@
<!-- 2007-10-21: Initial version. [Dirk Best] -->
<!-- license: MAME, GPL-2.0+ -->
<!-- copyright-holders: Dirk Best -->
<mamelayout version="2">
<element name="digit" defstate="0">

View File

@ -2,6 +2,9 @@
<!-- 2007-07-30: Initial version. [Dirk Best] -->
<!-- license: MAME, GPL-2.0+ -->
<!-- copyright-holders: Dirk Best -->
<mamelayout version="2">
<element name="digit" defstate="0">

View File

@ -1,3 +1,6 @@
<!-- license: MAME, GPL-2.0+ -->
<!-- copyright-holders: Dirk Best -->
<mamelayout version="2">
<element name="digit" defstate="0">

View File

@ -1,4 +1,8 @@
<?xml version="1.0"?>
<!-- license: MAME, GPL-2.0+ -->
<!-- copyright-holders: Dirk Best -->
<mamelayout version="2">
<element name="background">
<rect>

View File

@ -1,4 +1,8 @@
<?xml version="1.0"?>
<!-- license: MAME, GPL-2.0+ -->
<!-- copyright-holders: Dirk Best -->
<mamelayout version="2">
<element name="background">
<rect>

View File

@ -1,4 +1,8 @@
<?xml version="1.0"?>
<!-- license: MAME, GPL-2.0+ -->
<!-- copyright-holders: Dirk Best -->
<mamelayout version="2">
<element name="background">
</element>

View File

@ -2,6 +2,9 @@
Chips & Technologies CS4031 chipset
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Chipset for 486 based PC/AT compatible systems. Consists of two
individual chips:

View File

@ -2,6 +2,9 @@
Chips & Technologies CS4031 chipset
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Chipset for 486 based PC/AT compatible systems. Consists of two
individual chips:

View File

@ -2,6 +2,9 @@
E05A03 Gate Array (used in the Epson LX-800)
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#include "emu.h"

View File

@ -2,6 +2,9 @@
E05A03 Gate Array (used in the Epson LX-800)
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
***************************************************************************/
#ifndef __E05A03_H__

View File

@ -1,3 +1,12 @@
/***************************************************************************
Tatung Einstein
license: MAME
copyright-holders: Kevin Thacker, Dirk Best, Phill Harvey-Smith
***************************************************************************/
#include "emu.h"
#include "includes/einstein.h"

View File

@ -2,8 +2,8 @@
EPSON SIO port emulation
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
**********************************************************************/

View File

@ -2,8 +2,8 @@
EPSON SIO port emulation
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
**********************************************************************/

View File

@ -2,8 +2,8 @@
ISA cards
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
**********************************************************************/

View File

@ -2,8 +2,8 @@
ISA cards
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
**********************************************************************/

View File

@ -1,9 +1,10 @@
/*************************************************************************
machine/mtx.c
Memotech MTX 500, MTX 512 and RS 128
license: MAME
copyright-holders: (Original Author?), Dirk Best, Curt Coder
**************************************************************************/
#include "emu.h"

View File

@ -1,9 +1,8 @@
/******************************************************************************
* Sharp MZ700
*
* machine driver
*
* Juergen Buchmueller <pullmoll@t-online.de>, Jul 2000
* license: MAME
* copyright-holders: Juergen Buchmueller, Dirk Best
*
* Reference: http://sharpmz.computingmuseum.com
*

View File

@ -1,19 +1,17 @@
/**********************************************************************
machine/nascom1.c
Nascom 1 and Nascom 2
license: MAME
copyright-holders: (Original Author?), Dirk Best
**********************************************************************/
/* Core includes */
#include "emu.h"
#include "includes/nascom1.h"
/* Components */
#include "cpu/z80/z80.h"
#include "machine/wd17xx.h"
#include "machine/ay31015.h"
/* Devices */
#include "imagedev/snapquik.h"
#include "imagedev/cassette.h"
#include "imagedev/flopdrv.h"
@ -23,16 +21,6 @@
#define NASCOM1_KEY_INCR 0x01
/*************************************
*
* Global variables
*
*************************************/
/*************************************
*
* Floppy

View File

@ -2,13 +2,13 @@
EPSON PF-10
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Battery operated portable 3.5" floppy drive
Status: Skeleton driver, not doing much.
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
**********************************************************************/
#include "pf10.h"

View File

@ -2,10 +2,10 @@
EPSON PF-10
Battery operated portable 3.5" floppy drive
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
Battery operated portable 3.5" floppy drive
**********************************************************************/

View File

@ -1,6 +1,9 @@
/***************************************************************************
SAM Coupe Driver - Written By Lee Hammerton, Dirk Best
Miles Gordon Technology SAM Coupe
license: MAME
copyright-holders: Lee Hammerton, Dirk Best
***************************************************************************/

View File

@ -1,297 +0,0 @@
/******************************************************************************
Synertek Systems Corp. SYM-1
Early driver by PeT mess@utanet.at May 2000
Rewritten by Dirk Best October 2007
******************************************************************************/
#include "emu.h"
#include "includes/sym1.h"
/* M6502 CPU */
#include "cpu/m6502/m6502.h"
/* Peripheral chips */
#include "machine/6522via.h"
#include "machine/6532riot.h"
#include "machine/74145.h"
#include "sound/speaker.h"
#include "machine/ram.h"
#define LED_REFRESH_DELAY attotime::from_usec(70)
/******************************************************************************
6532 RIOT
******************************************************************************/
WRITE_LINE_MEMBER(sym1_state::sym1_74145_output_0_w)
{
if (state) m_led_update->adjust(LED_REFRESH_DELAY);
}
WRITE_LINE_MEMBER(sym1_state::sym1_74145_output_1_w)
{
if (state) m_led_update->adjust(LED_REFRESH_DELAY, 1);
}
WRITE_LINE_MEMBER(sym1_state::sym1_74145_output_2_w)
{
if (state) m_led_update->adjust(LED_REFRESH_DELAY, 2);
}
WRITE_LINE_MEMBER(sym1_state::sym1_74145_output_3_w)
{
if (state) m_led_update->adjust(LED_REFRESH_DELAY, 3);
}
WRITE_LINE_MEMBER(sym1_state::sym1_74145_output_4_w)
{
if (state) m_led_update->adjust(LED_REFRESH_DELAY, 4);
}
WRITE_LINE_MEMBER(sym1_state::sym1_74145_output_5_w)
{
if (state) m_led_update->adjust(LED_REFRESH_DELAY, 5);
}
TIMER_CALLBACK_MEMBER(sym1_state::led_refresh)
{
output_set_digit_value(param, m_riot_port_a);
}
READ8_MEMBER(sym1_state::sym1_riot_a_r)
{
int data = 0x7f;
/* scan keypad rows */
if (!(m_riot_port_a & 0x80)) data &= m_row0->read();
if (!(m_riot_port_b & 0x01)) data &= m_row1->read();
if (!(m_riot_port_b & 0x02)) data &= m_row2->read();
if (!(m_riot_port_b & 0x04)) data &= m_row3->read();
/* determine column */
if ( ((m_riot_port_a ^ 0xff) & (m_row0->read() ^ 0xff)) & 0x7f )
data &= ~0x80;
return data;
}
READ8_MEMBER(sym1_state::sym1_riot_b_r)
{
int data = 0xff;
/* determine column */
if ( ((m_riot_port_a ^ 0xff) & (m_row1->read() ^ 0xff)) & 0x7f )
data &= ~0x01;
if ( ((m_riot_port_a ^ 0xff) & (m_row2->read() ^ 0xff)) & 0x3f )
data &= ~0x02;
if ( ((m_riot_port_a ^ 0xff) & (m_row3->read() ^ 0xff)) & 0x1f )
data &= ~0x04;
data &= ~0x80; // else hangs 8b02
return data;
}
WRITE8_MEMBER(sym1_state::sym1_riot_a_w)
{
logerror("%x: riot_a_w 0x%02x\n", m_maincpu->pc(), data);
/* save for later use */
m_riot_port_a = data;
}
WRITE8_MEMBER(sym1_state::sym1_riot_b_w)
{
logerror("%x: riot_b_w 0x%02x\n", m_maincpu->pc(), data);
/* save for later use */
m_riot_port_b = data;
/* first 4 pins are connected to the 74145 */
m_ttl74145->write(data & 0x0f);
}
const riot6532_interface sym1_r6532_interface =
{
DEVCB_DRIVER_MEMBER(sym1_state,sym1_riot_a_r),
DEVCB_DRIVER_MEMBER(sym1_state,sym1_riot_b_r),
DEVCB_DRIVER_MEMBER(sym1_state,sym1_riot_a_w),
DEVCB_DRIVER_MEMBER(sym1_state,sym1_riot_b_w)
};
const ttl74145_interface sym1_ttl74145_intf =
{
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_74145_output_0_w), /* connected to DS0 */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_74145_output_1_w), /* connected to DS1 */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_74145_output_2_w), /* connected to DS2 */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_74145_output_3_w), /* connected to DS3 */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_74145_output_4_w), /* connected to DS4 */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_74145_output_5_w), /* connected to DS5 */
DEVCB_DEVICE_LINE_MEMBER("speaker", speaker_sound_device, level_w),
DEVCB_NULL, /* not connected */
DEVCB_NULL, /* not connected */
DEVCB_NULL /* not connected */
};
/******************************************************************************
6522 VIA
******************************************************************************/
WRITE_LINE_MEMBER(sym1_state::sym1_irq)
{
m_maincpu->set_input_line(M6502_IRQ_LINE, state);
}
READ8_MEMBER(sym1_state::sym1_via0_b_r)
{
return 0xff;
}
WRITE8_MEMBER(sym1_state::sym1_via0_b_w)
{
logerror("%s: via0_b_w 0x%02x\n", machine().describe_context(), data);
}
/* PA0: Write protect R6532 RAM
* PA1: Write protect RAM 0x400-0x7ff
* PA2: Write protect RAM 0x800-0xbff
* PA3: Write protect RAM 0xc00-0xfff
*/
WRITE8_MEMBER(sym1_state::sym1_via2_a_w)
{
address_space &cpu0space = m_maincpu->space( AS_PROGRAM );
logerror("SYM1 VIA2 W 0x%02x\n", data);
if ((m_wp->read() & 0x01) && !(data & 0x01)) {
cpu0space.nop_write(0xa600, 0xa67f);
} else {
cpu0space.install_write_bank(0xa600, 0xa67f, "bank5");
}
if ((m_wp->read() & 0x02) && !(data & 0x02)) {
cpu0space.nop_write(0x0400, 0x07ff);
} else {
cpu0space.install_write_bank(0x0400, 0x07ff, "bank2");
}
if ((m_wp->read() & 0x04) && !(data & 0x04)) {
cpu0space.nop_write(0x0800, 0x0bff);
} else {
cpu0space.install_write_bank(0x0800, 0x0bff, "bank3");
}
if ((m_wp->read() & 0x08) && !(data & 0x08)) {
cpu0space.nop_write(0x0c00, 0x0fff);
} else {
cpu0space.install_write_bank(0x0c00, 0x0fff, "bank4");
}
}
const via6522_interface sym1_via0 =
{
DEVCB_NULL, /* VIA Port A Input */
DEVCB_DRIVER_MEMBER(sym1_state,sym1_via0_b_r), /* VIA Port B Input */
DEVCB_NULL, /* VIA Port CA1 Input */
DEVCB_NULL, /* VIA Port CB1 Input */
DEVCB_NULL, /* VIA Port CA2 Input */
DEVCB_NULL, /* VIA Port CB2 Input */
DEVCB_NULL, /* VIA Port A Output */
DEVCB_DRIVER_MEMBER(sym1_state,sym1_via0_b_w), /* VIA Port B Output */
DEVCB_NULL, /* VIA Port CA1 Output */
DEVCB_NULL, /* VIA Port CB1 Output */
DEVCB_NULL, /* VIA Port CA2 Output */
DEVCB_NULL, /* VIA Port CB2 Output */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_irq) /* VIA IRQ Callback */
};
const via6522_interface sym1_via1 =
{
DEVCB_NULL, /* VIA Port A Input */
DEVCB_NULL, /* VIA Port B Input */
DEVCB_NULL, /* VIA Port CA1 Input */
DEVCB_NULL, /* VIA Port CB1 Input */
DEVCB_NULL, /* VIA Port CA2 Input */
DEVCB_NULL, /* VIA Port CB2 Input */
DEVCB_NULL, /* VIA Port A Output */
DEVCB_NULL, /* VIA Port B Output */
DEVCB_NULL, /* VIA Port CA1 Output */
DEVCB_NULL, /* VIA Port CB1 Output */
DEVCB_NULL, /* VIA Port CA2 Output */
DEVCB_NULL, /* VIA Port CB2 Output */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_irq) /* VIA IRQ Callback */
};
const via6522_interface sym1_via2 =
{
DEVCB_NULL, /* VIA Port A Input */
DEVCB_NULL, /* VIA Port B Input */
DEVCB_NULL, /* VIA Port CA1 Input */
DEVCB_NULL, /* VIA Port CB1 Input */
DEVCB_NULL, /* VIA Port CA2 Input */
DEVCB_NULL, /* VIA Port CB2 Input */
DEVCB_DRIVER_MEMBER(sym1_state,sym1_via2_a_w), /* VIA Port A Output */
DEVCB_NULL, /* VIA Port B Output */
DEVCB_NULL, /* VIA Port CA1 Output */
DEVCB_NULL, /* VIA Port CB1 Output */
DEVCB_NULL, /* VIA Port CA2 Output */
DEVCB_NULL, /* VIA Port CB2 Output */
DEVCB_DRIVER_LINE_MEMBER(sym1_state,sym1_irq) /* VIA IRQ Callback */
};
/******************************************************************************
Driver init and reset
******************************************************************************/
DRIVER_INIT_MEMBER(sym1_state,sym1)
{
/* wipe expansion memory banks that are not installed */
if (m_ram->size() < 4*1024)
{
m_maincpu->space(AS_PROGRAM).nop_readwrite(m_ram->size(), 0x0fff);
}
/* allocate a timer to refresh the led display */
m_led_update = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sym1_state::led_refresh),this));
}
void sym1_state::machine_reset()
{
/* make 0xf800 to 0xffff point to the last half of the monitor ROM
so that the CPU can find its reset vectors */
m_maincpu->space( AS_PROGRAM ).install_read_bank(0xf800, 0xffff, "bank1");
m_maincpu->space( AS_PROGRAM ).nop_write(0xf800, 0xffff);
membank("bank1")->set_base(m_monitor + 0x800);
m_maincpu->reset();
}

View File

@ -2,13 +2,13 @@
EPSON TF-20
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Dual 5.25" floppy drive with HX-20 factory option
Status: Issues with new uPD765, missing uPD7201 emulation.
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
http://fjkraan.home.xs4all.nl/comp/tf20/index.html
**********************************************************************/

View File

@ -2,10 +2,10 @@
EPSON TF-20
Dual 5.25" floppy drive with HX-20 factory option
license: MAME, GPL-2.0+
copyright-holders: Dirk Best
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
Dual 5.25" floppy drive with HX-20 factory option
**********************************************************************/

View File

@ -2076,7 +2076,6 @@ $(MESSOBJ)/svision.a: \
$(MESS_AUDIO)/svision.o \
$(MESSOBJ)/synertec.a: \
$(MESS_MACHINE)/sym1.o \
$(MESS_DRIVERS)/sym1.o \
$(MESSOBJ)/tandberg.a: \

View File

@ -1,8 +1,9 @@
/***************************************************************************
SAM Coupe
Miles Gordon Technology SAM Coupe
Functions to emulate the video hardware
license: MAME
copyright-holders: Lee Hammerton, Dirk Best
***************************************************************************/