mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
vtech1: small cleanup
This commit is contained in:
parent
983035768e
commit
d6c5237532
@ -40,7 +40,6 @@ Todo:
|
||||
#include "sound/spkrdev.h"
|
||||
#include "video/mc6847.h"
|
||||
|
||||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include "formats/imageutl.h"
|
||||
@ -64,15 +63,16 @@ Todo:
|
||||
class vtech1_state : public driver_device
|
||||
{
|
||||
public:
|
||||
vtech1_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_mc6847(*this, "mc6847"),
|
||||
m_speaker(*this, "speaker"),
|
||||
m_cassette(*this, "cassette"),
|
||||
m_ioexp(*this, "io"),
|
||||
m_memexp(*this, "mem")
|
||||
vtech1_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_vram(*this, "videoram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_crtc(*this, "crtc")
|
||||
, m_speaker(*this, "speaker")
|
||||
, m_cassette(*this, "cassette")
|
||||
, m_io_keyboard(*this, "X%u", 0U)
|
||||
, m_ioexp(*this, "io")
|
||||
, m_memexp(*this, "mem")
|
||||
{
|
||||
}
|
||||
|
||||
@ -85,11 +85,10 @@ public:
|
||||
void init_vtech1h();
|
||||
|
||||
private:
|
||||
uint8_t vtech1_lightpen_r(offs_t offset);
|
||||
uint8_t vtech1_keyboard_r(offs_t offset);
|
||||
void vtech1_latch_w(uint8_t data);
|
||||
|
||||
void vtech1_video_bank_w(uint8_t data);
|
||||
uint8_t lightpen_r(offs_t offset);
|
||||
uint8_t keyboard_r(offs_t offset);
|
||||
void latch_w(uint8_t data);
|
||||
void video_bank_w(uint8_t data);
|
||||
uint8_t mc6847_videoram_r(offs_t offset);
|
||||
|
||||
DECLARE_SNAPSHOT_LOAD_MEMBER(snapshot_cb);
|
||||
@ -103,12 +102,12 @@ private:
|
||||
static const uint8_t VZ_BASIC = 0xf0;
|
||||
static const uint8_t VZ_MCODE = 0xf1;
|
||||
|
||||
required_shared_ptr<uint8_t> m_videoram;
|
||||
|
||||
required_shared_ptr<uint8_t> m_vram;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<mc6847_base_device> m_mc6847;
|
||||
required_device<mc6847_base_device> m_crtc;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
required_device<cassette_image_device> m_cassette;
|
||||
required_ioport_array<8> m_io_keyboard;
|
||||
required_device<vtech_ioexp_slot_device> m_ioexp;
|
||||
required_device<vtech_memexp_slot_device> m_memexp;
|
||||
};
|
||||
@ -191,31 +190,25 @@ SNAPSHOT_LOAD_MEMBER(vtech1_state::snapshot_cb)
|
||||
INPUTS
|
||||
***************************************************************************/
|
||||
|
||||
uint8_t vtech1_state::vtech1_lightpen_r(offs_t offset)
|
||||
uint8_t vtech1_state::lightpen_r(offs_t offset)
|
||||
{
|
||||
logerror("vtech1_lightpen_r(%d)\n", offset);
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
uint8_t vtech1_state::vtech1_keyboard_r(offs_t offset)
|
||||
uint8_t vtech1_state::keyboard_r(offs_t offset)
|
||||
{
|
||||
uint8_t result = 0x3f;
|
||||
|
||||
// bit 0 to 5, keyboard input
|
||||
if (!BIT(offset, 0)) result &= ioport("keyboard_0")->read();
|
||||
if (!BIT(offset, 1)) result &= ioport("keyboard_1")->read();
|
||||
if (!BIT(offset, 2)) result &= ioport("keyboard_2")->read();
|
||||
if (!BIT(offset, 3)) result &= ioport("keyboard_3")->read();
|
||||
if (!BIT(offset, 4)) result &= ioport("keyboard_4")->read();
|
||||
if (!BIT(offset, 5)) result &= ioport("keyboard_5")->read();
|
||||
if (!BIT(offset, 6)) result &= ioport("keyboard_6")->read();
|
||||
if (!BIT(offset, 7)) result &= ioport("keyboard_7")->read();
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
if (!BIT(offset, i)) result &= m_io_keyboard[i]->read();
|
||||
|
||||
// bit 6, cassette input
|
||||
result |= (m_cassette->input() > 0.04) ? 0 : 0x40;
|
||||
|
||||
// bit 7, field sync
|
||||
result |= m_mc6847->fs_r() << 7;
|
||||
result |= m_crtc->fs_r() << 7;
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -225,24 +218,24 @@ uint8_t vtech1_state::vtech1_keyboard_r(offs_t offset)
|
||||
I/O LATCH
|
||||
***************************************************************************/
|
||||
|
||||
void vtech1_state::vtech1_latch_w(uint8_t data)
|
||||
void vtech1_state::latch_w(uint8_t data)
|
||||
{
|
||||
if (LOG_VTECH1_LATCH)
|
||||
logerror("vtech1_latch_w $%02X\n", data);
|
||||
|
||||
// bit 1, SHRG mod (if installed)
|
||||
if (m_videoram.bytes() == 0x2000)
|
||||
if (m_vram.bytes() == 0x2000)
|
||||
{
|
||||
m_mc6847->gm0_w(BIT(data, 1));
|
||||
m_mc6847->gm2_w(BIT(data, 1));
|
||||
m_crtc->gm0_w(BIT(data, 1));
|
||||
m_crtc->gm2_w(BIT(data, 1));
|
||||
}
|
||||
|
||||
// bit 2, cassette out (actually bits 1 and 2 perform this function, so either can be used)
|
||||
m_cassette->output( BIT(data, 2) ? 1.0 : -1.0);
|
||||
|
||||
// bit 3 and 4, vdc mode control lines
|
||||
m_mc6847->ag_w(BIT(data, 3));
|
||||
m_mc6847->css_w(BIT(data, 4));
|
||||
m_crtc->ag_w(BIT(data, 3));
|
||||
m_crtc->css_w(BIT(data, 4));
|
||||
|
||||
// bit 0 and 5, speaker
|
||||
m_speaker->level_w((BIT(data, 5) << 1) | BIT(data, 0));
|
||||
@ -253,7 +246,7 @@ void vtech1_state::vtech1_latch_w(uint8_t data)
|
||||
MEMORY BANKING
|
||||
***************************************************************************/
|
||||
|
||||
void vtech1_state::vtech1_video_bank_w(uint8_t data)
|
||||
void vtech1_state::video_bank_w(uint8_t data)
|
||||
{
|
||||
membank("bank4")->set_entry(data & 0x03);
|
||||
}
|
||||
@ -267,10 +260,10 @@ uint8_t vtech1_state::mc6847_videoram_r(offs_t offset)
|
||||
{
|
||||
if (offset == ~0) return 0xff;
|
||||
|
||||
m_mc6847->inv_w(BIT(m_videoram[offset], 6));
|
||||
m_mc6847->as_w(BIT(m_videoram[offset], 7));
|
||||
m_crtc->inv_w(BIT(m_vram[offset], 6));
|
||||
m_crtc->as_w(BIT(m_vram[offset], 7));
|
||||
|
||||
return m_videoram[offset];
|
||||
return m_vram[offset];
|
||||
}
|
||||
|
||||
|
||||
@ -281,10 +274,10 @@ uint8_t vtech1_state::mc6847_videoram_r(offs_t offset)
|
||||
void vtech1_state::init_vtech1h()
|
||||
{
|
||||
// the SHRG mod replaces the standard videoram chip with an 8k chip
|
||||
m_videoram.allocate(0x2000);
|
||||
m_vram.allocate(0x2000);
|
||||
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x7000, 0x77ff, "bank4");
|
||||
membank("bank4")->configure_entries(0, 4, m_videoram, 0x800);
|
||||
membank("bank4")->configure_entries(0, 4, m_vram, 0x800);
|
||||
membank("bank4")->set_entry(0);
|
||||
}
|
||||
|
||||
@ -296,37 +289,34 @@ void vtech1_state::init_vtech1h()
|
||||
void vtech1_state::laser110_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom(); // basic rom
|
||||
map(0x6800, 0x6fff).rw(FUNC(vtech1_state::vtech1_keyboard_r), FUNC(vtech1_state::vtech1_latch_w));
|
||||
map(0x6800, 0x6fff).rw(FUNC(vtech1_state::keyboard_r), FUNC(vtech1_state::latch_w));
|
||||
map(0x7000, 0x77ff).ram().share("videoram"); // 6847
|
||||
map(0x7800, 0x7fff).ram(); // 2k user ram
|
||||
}
|
||||
|
||||
void vtech1_state::laser210_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom(); // basic rom
|
||||
map(0x6800, 0x6fff).rw(FUNC(vtech1_state::vtech1_keyboard_r), FUNC(vtech1_state::vtech1_latch_w));
|
||||
map(0x7000, 0x77ff).ram().share("videoram"); // 6847
|
||||
laser110_mem(map);
|
||||
map(0x7800, 0x8fff).ram(); // 6k user ram
|
||||
}
|
||||
|
||||
void vtech1_state::laser310_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom(); // basic rom
|
||||
map(0x6800, 0x6fff).rw(FUNC(vtech1_state::vtech1_keyboard_r), FUNC(vtech1_state::vtech1_latch_w));
|
||||
map(0x7000, 0x77ff).ram().share("videoram"); // 6847
|
||||
laser110_mem(map);
|
||||
map(0x7800, 0xb7ff).ram(); // 16k user ram
|
||||
}
|
||||
|
||||
void vtech1_state::vtech1_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x40, 0x4f).r(FUNC(vtech1_state::vtech1_lightpen_r));
|
||||
map(0x40, 0x4f).r(FUNC(vtech1_state::lightpen_r));
|
||||
}
|
||||
|
||||
void vtech1_state::vtech1_shrg_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
vtech1_io(map);
|
||||
map(0xd0, 0xdf).w(FUNC(vtech1_state::vtech1_video_bank_w));
|
||||
map(0xd0, 0xdf).w(FUNC(vtech1_state::video_bank_w));
|
||||
}
|
||||
|
||||
|
||||
@ -335,8 +325,7 @@ void vtech1_state::vtech1_shrg_io(address_map &map)
|
||||
***************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START(vtech1)
|
||||
PORT_START("keyboard_0")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X0")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R RETURN LEFT$") PORT_CODE(KEYCODE_R) PORT_CHAR('R')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q FOR CHR$") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E NEXT LEN(") PORT_CODE(KEYCODE_E) PORT_CHAR('E')
|
||||
@ -344,8 +333,7 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W TO VAL(") PORT_CODE(KEYCODE_W) PORT_CHAR('W')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T THEN MID$") PORT_CODE(KEYCODE_T) PORT_CHAR('T')
|
||||
|
||||
PORT_START("keyboard_1")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X1")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F GOSUB RND(") PORT_CODE(KEYCODE_F) PORT_CHAR('F')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A MODE( ASC(") PORT_CODE(KEYCODE_A) PORT_CHAR('A')
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D DIM RESTORE") PORT_CODE(KEYCODE_D) PORT_CHAR('D')
|
||||
@ -353,8 +341,7 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S STEP STR$(") PORT_CODE(KEYCODE_S) PORT_CHAR('S')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G GOTO STOP") PORT_CODE(KEYCODE_G) PORT_CHAR('G')
|
||||
|
||||
PORT_START("keyboard_2")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X2")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V LPRINT USR") PORT_CODE(KEYCODE_V) PORT_CHAR('V')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z PEEK( INP") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C CONT COPY") PORT_CODE(KEYCODE_C) PORT_CHAR('C')
|
||||
@ -362,8 +349,7 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X POKE OUT") PORT_CODE(KEYCODE_X) PORT_CHAR('X')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B LLIST SOUND") PORT_CODE(KEYCODE_B) PORT_CHAR('B')
|
||||
|
||||
PORT_START("keyboard_3")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X3")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ VERIFY ATN(") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! CSAVE SIN(") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # CRUN TAN(") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
|
||||
@ -371,8 +357,7 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \" CLOAD COS(") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % LIST LOG(") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
|
||||
|
||||
PORT_START("keyboard_4")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X4")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M \\ \xE2\x86\x90") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('\\') PORT_CHAR(UCHAR_MAMEKEY(LEFT))
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE \xE2\x86\x93") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHAR('~') PORT_CHAR(UCHAR_MAMEKEY(DOWN))
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", < \xE2\x86\x92") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
|
||||
@ -380,8 +365,7 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". > \xE2\x86\x91") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_CHAR(UCHAR_MAMEKEY(UP))
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N ^ COLOR USING") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('^')
|
||||
|
||||
PORT_START("keyboard_5")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X5")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 ' END SGN(") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 @ DATA INT(") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('@')
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 ( NEW SQR(") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
|
||||
@ -389,8 +373,7 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ) READ ABS(") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 & RUN EXP(") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
|
||||
|
||||
PORT_START("keyboard_6")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X6")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U IF INKEY$") PORT_CODE(KEYCODE_U) PORT_CHAR('U')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P ] PRINT NOT") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR(']')
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT AND") PORT_CODE(KEYCODE_I) PORT_CHAR('I')
|
||||
@ -398,23 +381,13 @@ static INPUT_PORTS_START(vtech1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O [ LET OR") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('[')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y ELSE RIGHT$(") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
|
||||
|
||||
PORT_START("keyboard_7")
|
||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_START("X7")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J REM RESET") PORT_CODE(KEYCODE_J) PORT_CHAR('J')
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; + [Rubout]") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') PORT_CHAR(UCHAR_MAMEKEY(DEL))
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K / TAB( POINT") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('/')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": * [Inverse]") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') PORT_CHAR(UCHAR_MAMEKEY(HOME))
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L ? [Insert]") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('?') PORT_CHAR(UCHAR_MAMEKEY(INSERT))
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H CLS SET") PORT_CODE(KEYCODE_H) PORT_CHAR('H')
|
||||
|
||||
/* Enhanced options not available on real hardware */
|
||||
PORT_START("CONFIG")
|
||||
PORT_CONFNAME( 0x01, 0x01, "Autorun on Quickload")
|
||||
PORT_CONFSETTING( 0x00, DEF_STR(No))
|
||||
PORT_CONFSETTING( 0x01, DEF_STR(Yes))
|
||||
// PORT_CONFNAME( 0x08, 0x08, "Cassette Speaker")
|
||||
// PORT_CONFSETTING( 0x08, DEF_STR(On))
|
||||
// PORT_CONFSETTING( 0x00, DEF_STR(Off))
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -432,12 +405,12 @@ void vtech1_state::laser110(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_IO, &vtech1_state::vtech1_io);
|
||||
|
||||
// video hardware
|
||||
MC6847_PAL(config, m_mc6847, XTAL(4'433'619));
|
||||
m_mc6847->set_screen("screen");
|
||||
m_mc6847->fsync_wr_callback().set_inputline(m_maincpu, 0).invert();
|
||||
m_mc6847->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r));
|
||||
m_mc6847->set_black_and_white(true);
|
||||
m_mc6847->set_get_fixed_mode(mc6847_pal_device::MODE_GM1);
|
||||
MC6847_PAL(config, m_crtc, XTAL(4'433'619));
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->fsync_wr_callback().set_inputline(m_maincpu, 0).invert();
|
||||
m_crtc->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r));
|
||||
m_crtc->set_black_and_white(true);
|
||||
m_crtc->set_get_fixed_mode(mc6847_pal_device::MODE_GM1);
|
||||
// GM2 = GND, GM0 = GND, INTEXT = GND
|
||||
// other lines not connected
|
||||
|
||||
@ -475,11 +448,11 @@ void vtech1_state::laser110(machine_config &config)
|
||||
void vtech1_state::laser200(machine_config &config)
|
||||
{
|
||||
laser110(config);
|
||||
MC6847_PAL(config.replace(), m_mc6847, XTAL(4'433'619));
|
||||
m_mc6847->set_screen("screen");
|
||||
m_mc6847->fsync_wr_callback().set_inputline(m_maincpu, 0).invert();
|
||||
m_mc6847->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r));
|
||||
m_mc6847->set_get_fixed_mode(mc6847_pal_device::MODE_GM1);
|
||||
MC6847_PAL(config.replace(), m_crtc, XTAL(4'433'619));
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->fsync_wr_callback().set_inputline(m_maincpu, 0).invert();
|
||||
m_crtc->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r));
|
||||
m_crtc->set_get_fixed_mode(mc6847_pal_device::MODE_GM1);
|
||||
// GM2 = GND, GM0 = GND, INTEXT = GND
|
||||
// other lines not connected
|
||||
}
|
||||
@ -503,11 +476,11 @@ void vtech1_state::laser310h(machine_config &config)
|
||||
laser310(config);
|
||||
m_maincpu->set_addrmap(AS_IO, &vtech1_state::vtech1_shrg_io);
|
||||
|
||||
MC6847_PAL(config.replace(), m_mc6847, XTAL(4'433'619));
|
||||
m_mc6847->set_screen("screen");
|
||||
m_mc6847->fsync_wr_callback().set_inputline(m_maincpu, 0).invert();
|
||||
m_mc6847->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r));
|
||||
m_mc6847->set_get_fixed_mode(mc6847_pal_device::MODE_GM1);
|
||||
MC6847_PAL(config.replace(), m_crtc, XTAL(4'433'619));
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->fsync_wr_callback().set_inputline(m_maincpu, 0).invert();
|
||||
m_crtc->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r));
|
||||
m_crtc->set_get_fixed_mode(mc6847_pal_device::MODE_GM1);
|
||||
// INTEXT = GND
|
||||
// other lines not connected
|
||||
}
|
||||
@ -569,13 +542,13 @@ ROM_END
|
||||
***************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 110", 0 )
|
||||
COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 200", 0 )
|
||||
COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING )
|
||||
COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Salora", "Fellow (Finland)", 0 )
|
||||
COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Texet", "TX-8000 (UK)", 0 )
|
||||
COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 210", 0 )
|
||||
COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 )
|
||||
COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 310", 0 )
|
||||
COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 )
|
||||
COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, init_vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL )
|
||||
COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 110", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 200", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Salora", "Fellow (Finland)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Texet", "TX-8000 (UK)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 210", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-200 (Oceania)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 310", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-300 (Oceania)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, init_vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL | MACHINE_SUPPORTS_SAVE )
|
||||
|
Loading…
Reference in New Issue
Block a user