Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Robbbert committed May 16, 2024
2 parents 7bf7128 + ebe764f commit c0ac90b
Show file tree
Hide file tree
Showing 23 changed files with 774 additions and 556 deletions.
2 changes: 2 additions & 0 deletions scripts/src/bus.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3274,6 +3274,8 @@ if (BUSES["RS232"]~=null) then
MAME_DIR .. "src/devices/bus/rs232/sun_kbd.h",
MAME_DIR .. "src/devices/bus/rs232/swtpc8212.cpp",
MAME_DIR .. "src/devices/bus/rs232/swtpc8212.h",
MAME_DIR .. "src/devices/bus/rs232/teletex800.cpp",
MAME_DIR .. "src/devices/bus/rs232/teletex800.h",
MAME_DIR .. "src/devices/bus/rs232/terminal.cpp",
MAME_DIR .. "src/devices/bus/rs232/terminal.h",
MAME_DIR .. "src/devices/bus/rs232/xvd701.cpp",
Expand Down
4 changes: 1 addition & 3 deletions src/devices/bus/mackbd/keyboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@
* M0110 (U.S. - ANSI)
* M0110B (British - ISO)
* M0110F (French - ISO)
* M0110J (Japanese - ANSI)
* M0110T (Italian - ISO)
* M0120 (keypad - English)
* M0120P (keypad - European)
Expand All @@ -198,9 +199,6 @@
Enter and Clear (all variants use icons for command and the cursor
arrows).
Also known to exist:
* Japanese - ANSI (U.S. with different key caps)
TODO:
* Determine whether P00 or P01 actually feeds the keypad watchdog
* Find more model numbers and implement more layouts
Expand Down
103 changes: 103 additions & 0 deletions src/devices/bus/rs232/teletex800.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
// license:BSD-3-Clause
// copyright-holders:Curt Coder

#include "emu.h"
#include "printer.h"
#include "teletex800.h"
#include "cpu/z80/z80.h"
#include "machine/6821pia.h"
#include "machine/6850acia.h"
#include "machine/z80ctc.h"
#include "machine/z80daisy.h"
#include "machine/z80sio.h"

namespace {

ROM_START( teletex800 )
ROM_REGION( 0x1000, "z80", 0 )
ROM_LOAD( "ix44_ver1.1.u57", 0x0000, 0x1000, CRC(5c11b89c) SHA1(4911332709a8dcda12e72bcdf7a0acd58d65cbfd) )
ROM_END

static const z80_daisy_config z80_daisy_chain[] =
{
{ nullptr }
};

static void printer_devices(device_slot_interface &device)
{
device.option_add("printer", SERIAL_PRINTER);
}

static INPUT_PORTS_START( teletex800 )
INPUT_PORTS_END

class teletex_800_device : public device_t, public device_rs232_port_interface
{
public:
teletex_800_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, TELETEX_800, tag, owner, clock),
device_rs232_port_interface(mconfig, *this),
m_maincpu(*this, "z80"),
m_ctc(*this, "ctc"),
m_sio(*this, "sio"),
m_acia(*this, "acia"),
m_pia(*this, "pia"),
m_pia_cp(*this, "pia_cp")
{
}

protected:
virtual const tiny_rom_entry *device_rom_region() const override
{
return ROM_NAME( teletex800 );
}

virtual void device_add_mconfig(machine_config &config) override
{
// main board
Z80(config, m_maincpu, XTAL(4'915'200));
m_maincpu->set_daisy_config(z80_daisy_chain);
m_maincpu->set_addrmap(AS_PROGRAM, &teletex_800_device::program_map);
m_maincpu->set_addrmap(AS_IO, &teletex_800_device::io_map);

Z80CTC(config, m_ctc, XTAL(4'915'200));
Z80SIO(config, m_sio, XTAL(4'915'200));
ACIA6850(config, m_acia);
PIA6821(config, m_pia);

RS232_PORT(config, "printer", printer_devices, "printer");

// control panel
PIA6821(config, m_pia_cp);
}

virtual ioport_constructor device_input_ports() const override
{
return INPUT_PORTS_NAME( teletex800 );
}

virtual void device_start() override
{
}

private:
required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<z80sio_device> m_sio;
required_device<acia6850_device> m_acia;
required_device<pia6821_device> m_pia;
required_device<pia6821_device> m_pia_cp;

void program_map(address_map &map)
{
map(0x0000, 0x0fff).rom().region("z80", 0);
}

void io_map(address_map &map)
{
}
};

} // anonymous namespace

DEFINE_DEVICE_TYPE_PRIVATE(TELETEX_800, device_rs232_port_interface, teletex_800_device, "teletex800", "Luxor Teletex 800")
13 changes: 13 additions & 0 deletions src/devices/bus/rs232/teletex800.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// license:BSD-3-Clause
// copyright-holders:Curt Coder
#ifndef MAME_BUS_RS232_TELETEX800_H
#define MAME_BUS_RS232_TELETEX800_H

#pragma once

#include "rs232.h"


DECLARE_DEVICE_TYPE(TELETEX_800, device_rs232_port_interface)

#endif // MAME_BUS_RS232_TELETEX800_H
58 changes: 48 additions & 10 deletions src/mame/galaxian/galaxian.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2531,21 +2531,18 @@ void monsterz_state::monsterz_map(address_map &map)
/* changes from galaxian map:
galaxian sound removed
$4800-$57ff: contains video and object RAM (normally at $5000-$5fff)
$5800-$5fff: AY-8910 access added
$6002-$6006: graphics banking controls replace coin lockout, coin counter, and lfo
$7002: coin counter (moved from $6003)
$8000-$afff: additional ROM area
$b000-$bfff: protection (T00 custom chip)
*/
void galaxian_state::jumpbug_map(address_map &map)
void galaxian_state::jumpbugbrf_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x3fff).rom();
map(0x4000, 0x47ff).ram();
map(0x4800, 0x4bff).mirror(0x0400).ram().w(FUNC(galaxian_state::galaxian_videoram_w)).share("videoram");
map(0x5000, 0x50ff).mirror(0x0700).ram().w(FUNC(galaxian_state::galaxian_objram_w)).share("spriteram");
map(0x5800, 0x5800).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::data_w));
map(0x5900, 0x5900).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::address_w));
map(0x6000, 0x6000).mirror(0x07ff).portr("IN0");
map(0x6002, 0x6006).mirror(0x07f8).w(FUNC(galaxian_state::galaxian_gfxbank_w));
map(0x6800, 0x6800).mirror(0x07ff).portr("IN1");
Expand All @@ -2559,6 +2556,16 @@ void galaxian_state::jumpbug_map(address_map &map)
map(0xb000, 0xbfff).r(FUNC(galaxian_state::jumpbug_protection_r));
}

/* changes from jumpbugbrf map:
$5800-$5fff: AY-8910 access added
*/
void galaxian_state::jumpbug_map(address_map &map)
{
jumpbugbrf_map(map);
map(0x5800, 0x5800).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::data_w));
map(0x5900, 0x5900).mirror(0x00ff).w("8910.0", FUNC(ay8910_device::address_w));
}


void galaxian_state::frogf_map(address_map &map)
{
Expand Down Expand Up @@ -7482,7 +7489,6 @@ void galaxian_state::sidam_bootleg_base(machine_config &config)
m_screen->set_raw(12_MHz_XTAL, SIDAM_HTOTAL, SIDAM_HBEND, SIDAM_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART);
set_x_scale(SIDAM_XSCALE);
set_h0_start(SIDAM_H0START);

}


Expand Down Expand Up @@ -7913,12 +7919,20 @@ void guttangt_state::guttangts3(machine_config &config)



void galaxian_state::jumpbug(machine_config &config)
void galaxian_state::jumpbugbrf(machine_config &config)
{
galaxian_base(config);

config.device_remove("watchdog");

// basic machine hardware
m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::jumpbugbrf_map);
}

void galaxian_state::jumpbug(machine_config &config)
{
jumpbugbrf(config);

// basic machine hardware
m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::jumpbug_map);

Expand Down Expand Up @@ -13549,6 +13563,29 @@ ROM_START( jumpbugb )
ROM_LOAD( "l06_prom.bin", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
ROM_END

// Recreativos Franco PCB. There is no AY-8910, although the AY-8910 routines are still on the code.
ROM_START( jumpbugbrf )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "bg1-2732.bin", 0x0000, 0x1000, CRC(415aa1b7) SHA1(4f9edd7e9720acf085dd8910849c2f2fac5cb547) )
ROM_LOAD( "bg2-2732.bin", 0x1000, 0x1000, CRC(b1c27510) SHA1(66fbe0b94b6c101cb50d7a3ff78160110415dff9) )
ROM_LOAD( "bg3-2732.bin", 0x2000, 0x1000, CRC(cb8b8a0f) SHA1(9e8591471dda2cb964ba2a866d4a5a3ef65d8707) )
ROM_LOAD( "bg4-2732.bin", 0x3000, 0x1000, CRC(66751d12) SHA1(26c68cfb59596ae164ee9ae4a24ddf8dc7a923a7) )
ROM_LOAD( "bg5-2732.bin", 0x8000, 0x1000, CRC(7553b5e2) SHA1(6439585e713581dd36cea6324414f803d683216f) )
ROM_LOAD( "bg6-2732.bin", 0x9000, 0x1000, CRC(47be9843) SHA1(495d6fc732267bfd19a953b0b70df3f94b3c1e38) )
ROM_LOAD( "bg7-2732.bin", 0xa000, 0x1000, CRC(2c4b37aa) SHA1(14dea66b083a421623e7be8deb9fee8ed5e7ee28) )

ROM_REGION( 0x3000, "gfx1", 0 )
ROM_LOAD( "jbl", 0x0000, 0x0800, BAD_DUMP CRC(9a091b0a) SHA1(19b88f802ee80ff8901ef99e3688f2869f1a69c5) ) // Missing on this PCB, borrowed from 'jumpbugb'
ROM_LOAD( "jbm", 0x0800, 0x0800, BAD_DUMP CRC(8a0fc082) SHA1(58b72a3161950a2fb71cdab3f30bb3abb19c7978) ) // Missing on this PCB, borrowed from 'jumpbugb'
ROM_LOAD( "jbn", 0x1000, 0x0800, BAD_DUMP CRC(155186e0) SHA1(717ddaecc52a4ef03a01fcddb520acdbfb0d722a) ) // Missing on this PCB, borrowed from 'jumpbugb'
ROM_LOAD( "jbi", 0x1800, 0x0800, BAD_DUMP CRC(7749b111) SHA1(55071ce04708bd52177644298f76ae79d23f6ac9) ) // Missing on this PCB, borrowed from 'jumpbugb'
ROM_LOAD( "jbj", 0x2000, 0x0800, BAD_DUMP CRC(06e8d7df) SHA1(d04f1503d9fde5aae92652cb9d2eb16bd6a0fe9c) ) // Missing on this PCB, borrowed from 'jumpbugb'
ROM_LOAD( "jbk", 0x2800, 0x0800, BAD_DUMP CRC(b8dbddf3) SHA1(043de444890a93459789dc99c43ef88ff66b79e4) ) // Missing on this PCB, borrowed from 'jumpbugb'

ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "82s123.bin", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
ROM_END

ROM_START( olibug ) // bootleg on an original Midway Galaxian PCB
ROM_REGION( 0x10000, "maincpu", 0 ) // b6 and b7 differ from jumpbugb
ROM_LOAD( "b1.bin", 0x0000, 0x1000, CRC(415aa1b7) SHA1(4f9edd7e9720acf085dd8910849c2f2fac5cb547) )
Expand Down Expand Up @@ -16647,10 +16684,11 @@ GAME( 198?, fantastc, 0, fantastc, fantastc, galaxian_state, init_
GAME( 198?, timefgtr, 0, timefgtr, timefgtr, galaxian_state, init_timefgtr, ROT90, "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Time Pilot (!) not a clone

// Extra ROMs, protection, and sound hardware replaced with AY8910
GAME( 1981, jumpbug, 0, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "Hoei (Rock-Ola license)", "Jump Bug", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // or by Alpha Denshi Co. under contract from Hoei?
GAME( 1981, jumpbugb, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Jump Bug (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // bootleg of Sega license
GAME( 1982, olibug, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Oli Bug (bootleg of Jump Bug)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) // one bad GFX ROM, uses Galaxian color PROM?
GAME( 1983, levers, 0, jumpbug, levers, galaxian_state, init_jumpbug, ROT90, "Rock-Ola", "Levers", MACHINE_SUPPORTS_SAVE )
GAME( 1981, jumpbug, 0, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "Hoei (Rock-Ola license)", "Jump Bug", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // or by Alpha Denshi Co. under contract from Hoei?
GAME( 1981, jumpbugb, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Jump Bug (bootleg, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // bootleg of Sega license
GAME( 1982, jumpbugbrf, jumpbug, jumpbugbrf, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg (Recreativos Franco)", "Jump Bug (bootleg, set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg from Recreativos Franco, without AY-8910
GAME( 1982, olibug, jumpbug, jumpbug, jumpbug, galaxian_state, init_jumpbug, ROT90, "bootleg", "Oli Bug (bootleg of Jump Bug)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) // one bad GFX ROM, uses Galaxian color PROM?
GAME( 1983, levers, 0, jumpbug, levers, galaxian_state, init_jumpbug, ROT90, "Rock-Ola", "Levers", MACHINE_SUPPORTS_SAVE )

// 2nd CPU driving AY8910 for sound
GAME( 1982, checkman, 0, checkman, checkman, galaxian_state, init_checkman, ROT90, "Zilec-Zenitone", "Check Man", MACHINE_SUPPORTS_SAVE )
Expand Down
2 changes: 2 additions & 0 deletions src/mame/galaxian/galaxian.h
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ class galaxian_state : public driver_device
void turtles(machine_config &config);
void fantastc(machine_config &config);
void jumpbug(machine_config &config);
void jumpbugbrf(machine_config &config);
void checkmaj(machine_config &config);
void pacmanbl(machine_config &config);
void quaak(machine_config &config);
Expand Down Expand Up @@ -367,6 +368,7 @@ class galaxian_state : public driver_device
void galaxian_map_discrete(address_map &map);
void highroll_map(address_map &map);
void jumpbug_map(address_map &map);
void jumpbugbrf_map(address_map &map);
void jungsub_map(address_map &map);
void jungsub_io_map(address_map &map);
void konami_sound_map(address_map &map);
Expand Down
8 changes: 7 additions & 1 deletion src/mame/luxor/abc80x.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2019,6 +2019,12 @@ QUICKLOAD_LOAD_MEMBER(abc800_state::quickload_cb)
return std::make_pair(std::error_condition(), std::string());
}

static void printer_devices(device_slot_interface &device)
{
device.option_add("printer", SERIAL_PRINTER);
device.option_add("teletex800", TELETEX_800);
}



//**************************************************************************
Expand Down Expand Up @@ -2071,7 +2077,7 @@ void abc800_state::common(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
TIMER(config, TIMER_CASSETTE_TAG).configure_periodic(FUNC(abc800_state::cassette_input_tick), attotime::from_hz(44100));

rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr));
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, printer_devices, nullptr));
rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w));
rs232a.dcd_handler().set(m_dart, FUNC(z80dart_device::dcda_w));
rs232a.cts_handler().set(m_dart, FUNC(z80dart_device::ctsa_w));
Expand Down
22 changes: 13 additions & 9 deletions src/mame/luxor/abc80x.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,31 @@

#pragma once

#include "emupal.h"
#include "softlist.h"
#include "speaker.h"
#include "bus/abcbus/abcbus.h"
#include "bus/abckb/abc800kb.h"
#include "bus/abckb/abckb.h"
#include "bus/rs232/printer.h"
#include "bus/rs232/rs232.h"
#include "cpu/z80/z80.h"
#include "machine/z80daisy.h"
#include "bus/rs232/teletex800.h"
#include "cpu/mcs48/mcs48.h"
#include "cpu/z80/z80.h"
#include "imagedev/cassette.h"
#include "imagedev/snapquik.h"
#include "bus/abckb/abckb.h"
#include "bus/abckb/abc800kb.h"
#include "machine/74259.h"
#include "machine/e0516.h"
#include "machine/z80ctc.h"
#include "machine/z80sio.h"
#include "machine/ram.h"
#include "machine/timer.h"
#include "machine/z80ctc.h"
#include "machine/z80daisy.h"
#include "machine/z80sio.h"
#include "sound/discrete.h"
#include "video/mc6845.h"
#include "video/saa5050.h"
#include "emupal.h"
#include "softlist.h"
#include "speaker.h"



//**************************************************************************
// MACROS / CONSTANTS
Expand Down
4 changes: 3 additions & 1 deletion src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -18576,6 +18576,7 @@ guttangts3 //
highroll //
jumpbug // (c) 1981 Rock-ola
jumpbugb // (c) 1981 Sega
jumpbugbrf // bootleg
jungsub // bootleg
kamakazi3 // Video Games (UK) Ltd., hack or bootleg?
kamikazesp // bootleg (Euromatic S.A.)
Expand Down Expand Up @@ -33300,7 +33301,7 @@ sweetlnd //

@source:namco/sweetland4.cpp
sweetld4 //
tairyouda // (c) 2000 Namco
tairyodk // (c) 2000 Namco

@source:namco/tankbatt.cpp
tankbatt // (c) 1980 Namco
Expand Down Expand Up @@ -36751,6 +36752,7 @@ brvteam //
canasta //
corsario //
ind250cc //
indunkgam //
lapbylap //
larana //
mundial //
Expand Down
2 changes: 1 addition & 1 deletion src/mame/midway/midzeus.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ class midzeus_state : public driver_device
optional_memory_bank m_mainbank;

private:
static constexpr XTAL MIDZEUS_VIDEO_CLOCK = XTAL(66'666'700);
static inline constexpr XTAL MIDZEUS_VIDEO_CLOCK = 66.6667_MHz_XTAL;

void exit_handler();
void zeus_pointer_w(uint32_t which, uint32_t data, bool logit);
Expand Down
Loading

0 comments on commit c0ac90b

Please sign in to comment.