mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
add license info for some things i worked on, some small cleanups
This commit is contained in:
parent
a404a47337
commit
f503c9a88c
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Intel 8089 I/O Processor
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "i8089.h"
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Intel 8089 I/O Processor
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Intel 8089 I/O Processor
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
I/O channel
|
||||
|
||||
***************************************************************************/
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Intel 8089 I/O Processor
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
I/O channel
|
||||
|
||||
***************************************************************************/
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Intel 8089 I/O Processor
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
Disassembler
|
||||
|
||||
Note: Incomplete
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Intel 8089 I/O Processor
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
Opcode implementations
|
||||
|
||||
***************************************************************************/
|
||||
|
@ -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
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
TTL74145
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
BCD-to-Decimal decoder
|
||||
|
||||
***************************************************************************/
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Centronics printer interface
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Centronics printer interface
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef __CTRONICS_H__
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
_____ _____
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
RAM device
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
Provides a configurable amount of RAM to drivers
|
||||
|
||||
**************************************************************************/
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
RAM device
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
Provides a configurable amount of RAM to drivers
|
||||
|
||||
**************************************************************************/
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
***************************************************************************/
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
PC/AT 486 with Chips & Technologies CS4031 chipset
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -1,7 +1,9 @@
|
||||
/******************************************************************************
|
||||
|
||||
Tatung Einstein
|
||||
system driver
|
||||
|
||||
license: MAME
|
||||
copyright-holders: Kevin Thacker, Dirk Best, Phill Harvey-Smith
|
||||
|
||||
|
||||
TMS9129 VDP Graphics
|
||||
|
@ -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"
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Epson LX-800 dot matrix printer
|
||||
|
||||
license: MAME, GPL-2.0+
|
||||
copyright-holders: Dirk Best
|
||||
|
||||
Skeleton driver
|
||||
|
||||
- CPU type uPD7810HG
|
||||
|
@ -1,10 +1,9 @@
|
||||
/***************************************************************************
|
||||
|
||||
mc10.c
|
||||
|
||||
TRS-80 Radio Shack MicroColor Computer
|
||||
|
||||
Nate Woods
|
||||
license: MAME
|
||||
copyright-holders: Nathan Woods, Dirk Best
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -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
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
/*
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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:
|
||||
------
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
|
||||
|
||||
******************************************************************************/
|
||||
|
@ -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
|
@ -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_
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
Memotech MTX 500, MTX 512 and RS 128
|
||||
|
||||
license: MAME
|
||||
copyright-holders: (Original Author?), Dirk Best, Curt Coder
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#ifndef __MTX__
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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_
|
||||
|
@ -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_ */
|
@ -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">
|
||||
|
@ -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">
|
||||
|
@ -1,3 +1,6 @@
|
||||
<!-- license: MAME, GPL-2.0+ -->
|
||||
<!-- copyright-holders: Dirk Best -->
|
||||
|
||||
<mamelayout version="2">
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
|
@ -1,4 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- license: MAME, GPL-2.0+ -->
|
||||
<!-- copyright-holders: Dirk Best -->
|
||||
|
||||
<mamelayout version="2">
|
||||
<element name="background">
|
||||
<rect>
|
||||
|
@ -1,4 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- license: MAME, GPL-2.0+ -->
|
||||
<!-- copyright-holders: Dirk Best -->
|
||||
|
||||
<mamelayout version="2">
|
||||
<element name="background">
|
||||
<rect>
|
||||
|
@ -1,4 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- license: MAME, GPL-2.0+ -->
|
||||
<!-- copyright-holders: Dirk Best -->
|
||||
|
||||
<mamelayout version="2">
|
||||
<element name="background">
|
||||
</element>
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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__
|
||||
|
@ -1,3 +1,12 @@
|
||||
/***************************************************************************
|
||||
|
||||
Tatung Einstein
|
||||
|
||||
license: MAME
|
||||
copyright-holders: Kevin Thacker, Dirk Best, Phill Harvey-Smith
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/einstein.h"
|
||||
|
||||
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -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
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -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();
|
||||
}
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
@ -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
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -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: \
|
||||
|
@ -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
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user