mirror of
https://github.com/holub/mame
synced 2025-10-04 08:28:39 +03:00
New working software list additions
----------------------------------- dragon_cart: AMTOR/AX25 [David Linsley]
This commit is contained in:
parent
f1eb546264
commit
7e74ffcde1
@ -25,6 +25,19 @@ Compiled by K1W1 and Cowering (from GoodCoCo)
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
|
<software name="amtor" supported="no">
|
||||||
|
<description>AMTOR/AX25</description>
|
||||||
|
<year>1990</year>
|
||||||
|
<publisher>Grosvenor Software</publisher>
|
||||||
|
<info name="usage" value="EXEC 49152" />
|
||||||
|
<part name="cart" interface="coco_cart">
|
||||||
|
<feature name="slot" value="amtor" />
|
||||||
|
<dataarea name="rom" size="32768">
|
||||||
|
<rom name="ax25-amtor (1990) (grosvenor).rom" size="32768" crc="81ba0d4a" sha1="6ad86b5faa5ba07ad42256e96f1c798cd3f0ea5e"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
<software name="doodlbug">
|
<software name="doodlbug">
|
||||||
<description>Doodle Bug</description>
|
<description>Doodle Bug</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
|
@ -3019,6 +3019,8 @@ if (BUSES["COCO"]~=null) then
|
|||||||
MAME_DIR .. "src/devices/bus/coco/coco_dwsock.h",
|
MAME_DIR .. "src/devices/bus/coco/coco_dwsock.h",
|
||||||
MAME_DIR .. "src/devices/bus/coco/coco_t4426.cpp",
|
MAME_DIR .. "src/devices/bus/coco/coco_t4426.cpp",
|
||||||
MAME_DIR .. "src/devices/bus/coco/coco_t4426.h",
|
MAME_DIR .. "src/devices/bus/coco/coco_t4426.h",
|
||||||
|
MAME_DIR .. "src/devices/bus/coco/dragon_amtor.cpp",
|
||||||
|
MAME_DIR .. "src/devices/bus/coco/dragon_amtor.h",
|
||||||
MAME_DIR .. "src/devices/bus/coco/dragon_fdc.cpp",
|
MAME_DIR .. "src/devices/bus/coco/dragon_fdc.cpp",
|
||||||
MAME_DIR .. "src/devices/bus/coco/dragon_fdc.h",
|
MAME_DIR .. "src/devices/bus/coco/dragon_fdc.h",
|
||||||
MAME_DIR .. "src/devices/bus/coco/dragon_jcbsnd.cpp",
|
MAME_DIR .. "src/devices/bus/coco/dragon_jcbsnd.cpp",
|
||||||
|
119
src/devices/bus/coco/dragon_amtor.cpp
Normal file
119
src/devices/bus/coco/dragon_amtor.cpp
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Nigel Barnes
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
BMKAX25/AMTOR for G6WHK
|
||||||
|
|
||||||
|
(c) 1990 Grosvenor Software
|
||||||
|
|
||||||
|
Left: AX25 EXEC 49152
|
||||||
|
Right: AMTOR EXEC 49152
|
||||||
|
|
||||||
|
Cartridge contains a single 32K ROM and a switch to select either AX25
|
||||||
|
or AMTOR, each taking 16K.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "dragon_amtor.h"
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// ROM( amtor )
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
ROM_START( amtor )
|
||||||
|
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
||||||
|
// this region is filled by cococart_slot_device::call_load()
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// GLOBAL VARIABLES
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
DEFINE_DEVICE_TYPE(DRAGON_AMTOR, dragon_amtor_device, "dragon_amtor", "Dragon Amtor Cartridge")
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// INPUT_PORTS( amtor )
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( amtor )
|
||||||
|
PORT_START("SWITCH")
|
||||||
|
PORT_CONFNAME( 0x01, 0x00, "Switch" )
|
||||||
|
PORT_CONFSETTING( 0x00, "AMTOR")
|
||||||
|
PORT_CONFSETTING( 0x01, "AX25")
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// LIVE DEVICE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// dragon_amtor_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
dragon_amtor_device::dragon_amtor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
|
: device_t(mconfig, DRAGON_AMTOR, tag, owner, clock)
|
||||||
|
, device_cococart_interface(mconfig, *this)
|
||||||
|
, m_eprom(*this, "eprom")
|
||||||
|
, m_switch(*this, "SWITCH")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void dragon_amtor_device::device_start()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// input_ports - device-specific input ports
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
ioport_constructor dragon_amtor_device::device_input_ports() const
|
||||||
|
{
|
||||||
|
return INPUT_PORTS_NAME( amtor );
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// rom_region - device-specific ROM region
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
const tiny_rom_entry *dragon_amtor_device::device_rom_region() const
|
||||||
|
{
|
||||||
|
return ROM_NAME( amtor );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// dragon_amtor_device::get_cart_base
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
uint8_t* dragon_amtor_device::get_cart_base()
|
||||||
|
{
|
||||||
|
return m_eprom->base();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// dragon_amtor_device::get_cart_memregion
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
memory_region* dragon_amtor_device::get_cart_memregion()
|
||||||
|
{
|
||||||
|
return m_eprom;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// cts_read
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
READ8_MEMBER(dragon_amtor_device::cts_read)
|
||||||
|
{
|
||||||
|
offset = bitswap<16>(offset, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1);
|
||||||
|
|
||||||
|
return bitswap<8>(m_eprom->base()[(m_switch->read() << 14) | offset], 3, 2, 1, 0, 7, 6, 5, 4 );
|
||||||
|
}
|
45
src/devices/bus/coco/dragon_amtor.h
Normal file
45
src/devices/bus/coco/dragon_amtor.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Nigel Barnes
|
||||||
|
#ifndef MAME_BUS_COCO_DRAGON_AMTOR_H
|
||||||
|
#define MAME_BUS_COCO_DRAGON_AMTOR_H
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "cococart.h"
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
// ======================> dragon_amtor_device
|
||||||
|
|
||||||
|
class dragon_amtor_device :
|
||||||
|
public device_t,
|
||||||
|
public device_cococart_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
dragon_amtor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
// optional information overrides
|
||||||
|
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||||
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start() override;
|
||||||
|
virtual uint8_t* get_cart_base() override;
|
||||||
|
virtual memory_region* get_cart_memregion() override;
|
||||||
|
|
||||||
|
virtual DECLARE_READ8_MEMBER(cts_read) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
required_memory_region m_eprom;
|
||||||
|
required_ioport m_switch;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// device type definitions
|
||||||
|
DECLARE_DEVICE_TYPE(DRAGON_AMTOR, dragon_amtor_device)
|
||||||
|
|
||||||
|
#endif // MAME_BUS_COCO_DRAGON_AMTOR_H
|
@ -20,6 +20,7 @@
|
|||||||
#include "formats/sdf_dsk.h"
|
#include "formats/sdf_dsk.h"
|
||||||
#include "imagedev/floppy.h"
|
#include "imagedev/floppy.h"
|
||||||
|
|
||||||
|
#include "bus/coco/dragon_amtor.h"
|
||||||
#include "bus/coco/dragon_fdc.h"
|
#include "bus/coco/dragon_fdc.h"
|
||||||
#include "bus/coco/dragon_jcbsnd.h"
|
#include "bus/coco/dragon_jcbsnd.h"
|
||||||
#include "bus/coco/dragon_sprites.h"
|
#include "bus/coco/dragon_sprites.h"
|
||||||
@ -176,6 +177,7 @@ void dragon_cart(device_slot_interface &device)
|
|||||||
device.option_add("orch90", COCO_ORCH90);
|
device.option_add("orch90", COCO_ORCH90);
|
||||||
device.option_add("gmc", COCO_PAK_GMC);
|
device.option_add("gmc", COCO_PAK_GMC);
|
||||||
device.option_add("pak", COCO_PAK);
|
device.option_add("pak", COCO_PAK);
|
||||||
|
device.option_add_internal("amtor", DRAGON_AMTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
|
FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
|
||||||
|
Loading…
Reference in New Issue
Block a user