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>
|
||||
</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">
|
||||
<description>Doodle Bug</description>
|
||||
<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_t4426.cpp",
|
||||
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.h",
|
||||
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 "imagedev/floppy.h"
|
||||
|
||||
#include "bus/coco/dragon_amtor.h"
|
||||
#include "bus/coco/dragon_fdc.h"
|
||||
#include "bus/coco/dragon_jcbsnd.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("gmc", COCO_PAK_GMC);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add_internal("amtor", DRAGON_AMTOR);
|
||||
}
|
||||
|
||||
FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
|
||||
|
Loading…
Reference in New Issue
Block a user