autoc15: Added RAM disc device.
daisy: Corrected ROM SHA1 (nw)
This commit is contained in:
parent
7104687b70
commit
d4df190a68
@ -433,6 +433,8 @@ if (BUSES["BBC_EXP"]~=null) then
|
|||||||
files {
|
files {
|
||||||
MAME_DIR .. "src/devices/bus/bbc/exp/exp.cpp",
|
MAME_DIR .. "src/devices/bus/bbc/exp/exp.cpp",
|
||||||
MAME_DIR .. "src/devices/bus/bbc/exp/exp.h",
|
MAME_DIR .. "src/devices/bus/bbc/exp/exp.h",
|
||||||
|
MAME_DIR .. "src/devices/bus/bbc/exp/autocue.cpp",
|
||||||
|
MAME_DIR .. "src/devices/bus/bbc/exp/autocue.h",
|
||||||
MAME_DIR .. "src/devices/bus/bbc/exp/mertec.cpp",
|
MAME_DIR .. "src/devices/bus/bbc/exp/mertec.cpp",
|
||||||
MAME_DIR .. "src/devices/bus/bbc/exp/mertec.h",
|
MAME_DIR .. "src/devices/bus/bbc/exp/mertec.h",
|
||||||
}
|
}
|
||||||
|
100
src/devices/bus/bbc/exp/autocue.cpp
Normal file
100
src/devices/bus/bbc/exp/autocue.cpp
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Nigel Barnes
|
||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Autocue RAM Disc
|
||||||
|
|
||||||
|
The RAM is accessible through JIM (page &FD). One page is visible in JIM at a time.
|
||||||
|
The selected page is controlled by the two paging registers:
|
||||||
|
|
||||||
|
&FCFE Paging register MSB
|
||||||
|
&FCFF Paging register LSB
|
||||||
|
|
||||||
|
256K board has 1024 pages &000 to &3FF
|
||||||
|
512K board has 2048 pages &000 to &7FF
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "autocue.h"
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// DEVICE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
DEFINE_DEVICE_TYPE(BBC_AUTOCUE, bbc_autocue_device, "bbc_autocue", "Autocue RAM Disc");
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_add_mconfig - add device configuration
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void bbc_autocue_device::device_add_mconfig(machine_config &config)
|
||||||
|
{
|
||||||
|
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// LIVE DEVICE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// bbc_autocue_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
bbc_autocue_device::bbc_autocue_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
|
: device_t(mconfig, BBC_AUTOCUE, tag, owner, clock)
|
||||||
|
, device_bbc_exp_interface(mconfig, *this)
|
||||||
|
, m_nvram(*this, "nvram")
|
||||||
|
, m_ram_page(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void bbc_autocue_device::device_start()
|
||||||
|
{
|
||||||
|
/* ram disk - board with 8 x HM62256LFP-12 - 256K expandable to 512K */
|
||||||
|
m_ram = make_unique_clear<uint8_t[]>(0x40000);
|
||||||
|
m_nvram->set_base(m_ram.get(), 0x40000);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// IMPLEMENTATION
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
void bbc_autocue_device::fred_w(offs_t offset, uint8_t data)
|
||||||
|
{
|
||||||
|
switch (offset)
|
||||||
|
{
|
||||||
|
case 0xff: m_ram_page = (m_ram_page & 0x00ff) | (data << 8); break;
|
||||||
|
case 0xfe: m_ram_page = (m_ram_page & 0xff00) | (data << 0); break;
|
||||||
|
}
|
||||||
|
//logerror("Write ram_page=%04x\n", m_ram_page);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t bbc_autocue_device::jim_r(offs_t offset)
|
||||||
|
{
|
||||||
|
uint8_t data = 0xff;
|
||||||
|
|
||||||
|
if (m_ram_page < 0x400)
|
||||||
|
{
|
||||||
|
data = m_ram[(m_ram_page << 8) | offset];
|
||||||
|
}
|
||||||
|
//logerror("Read %04x -> %02x\n", offset | 0xfd00, data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void bbc_autocue_device::jim_w(offs_t offset, uint8_t data)
|
||||||
|
{
|
||||||
|
//logerror("Write %04x <- %02x\n", offset | 0xfd00, data);
|
||||||
|
if (m_ram_page < 0x400)
|
||||||
|
{
|
||||||
|
m_ram[(m_ram_page << 8) | offset] = data;
|
||||||
|
}
|
||||||
|
}
|
51
src/devices/bus/bbc/exp/autocue.h
Normal file
51
src/devices/bus/bbc/exp/autocue.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Nigel Barnes
|
||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Autocue RAM Disc
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef MAME_BUS_BBC_EXP_AUTOCUE_H
|
||||||
|
#define MAME_BUS_BBC_EXP_AUTOCUE_H
|
||||||
|
|
||||||
|
#include "exp.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
class bbc_autocue_device :
|
||||||
|
public device_t,
|
||||||
|
public device_bbc_exp_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
bbc_autocue_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start() override;
|
||||||
|
|
||||||
|
// optional information overrides
|
||||||
|
virtual void device_add_mconfig(machine_config &config) override;
|
||||||
|
|
||||||
|
virtual void fred_w(offs_t offset, uint8_t data) override;
|
||||||
|
virtual uint8_t jim_r(offs_t offset) override;
|
||||||
|
virtual void jim_w(offs_t offset, uint8_t data) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
required_device<nvram_device> m_nvram;
|
||||||
|
std::unique_ptr<uint8_t[]> m_ram;
|
||||||
|
|
||||||
|
uint16_t m_ram_page;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// device type definition
|
||||||
|
DECLARE_DEVICE_TYPE(BBC_AUTOCUE, bbc_autocue_device);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* MAME_BUS_BBC_EXP_AUTOCUE_H */
|
@ -149,12 +149,12 @@ void bbc_exp_slot_device::pb_w(uint8_t data)
|
|||||||
|
|
||||||
|
|
||||||
// slot devices
|
// slot devices
|
||||||
//#include "autocue.h"
|
#include "autocue.h"
|
||||||
#include "mertec.h"
|
#include "mertec.h"
|
||||||
|
|
||||||
|
|
||||||
void bbc_exp_devices(device_slot_interface &device)
|
void bbc_exp_devices(device_slot_interface &device)
|
||||||
{
|
{
|
||||||
//device.option_add("autocue", BBC_AUTOCUE); /* Autocue RAM disk board */
|
device.option_add_internal("autocue", BBC_AUTOCUE); /* Autocue RAM disk board */
|
||||||
device.option_add("mertec", BBC_MERTEC); /* Mertec Compact Companion */
|
device.option_add("mertec", BBC_MERTEC); /* Mertec Compact Companion */
|
||||||
}
|
}
|
||||||
|
@ -1796,8 +1796,8 @@ void bbcm_state::autoc15(machine_config &config)
|
|||||||
m_hd6845->out_vsync_callback().set(FUNC(bbc_state::bbc_vsync_changed));
|
m_hd6845->out_vsync_callback().set(FUNC(bbc_state::bbc_vsync_changed));
|
||||||
|
|
||||||
/* Autocue RAM disc */
|
/* Autocue RAM disc */
|
||||||
//m_exp->set_default_option("autocue");
|
m_exp->set_default_option("autocue");
|
||||||
//m_exp->set_fixed(true);
|
m_exp->set_fixed(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2382,7 +2382,7 @@ ROM_START(daisy)
|
|||||||
/* 38000 rom 14 IC24 View + MOS code */
|
/* 38000 rom 14 IC24 View + MOS code */
|
||||||
/* 3c000 rom 15 IC24 Terminal + Tube host + CFS */
|
/* 3c000 rom 15 IC24 Terminal + Tube host + CFS */
|
||||||
ROM_LOAD("simdist_2_22-2-89_dhrfdsy.rom", 0x10000, 0x8000, CRC(8a9d9c4a) SHA1(278c5c63e06359601cdf972f55e98f5a7442a713))
|
ROM_LOAD("simdist_2_22-2-89_dhrfdsy.rom", 0x10000, 0x8000, CRC(8a9d9c4a) SHA1(278c5c63e06359601cdf972f55e98f5a7442a713))
|
||||||
ROM_LOAD("daisy_irfdsy_vr4_5-1-89.rom", 0x18000, 0x8000, CRC(9662d779) SHA1(99234b55fde57680e4217b72ef4ccb8fc56edeff))
|
ROM_LOAD("daisy_irfdsy_vr4_5-1-89.rom", 0x18000, 0x8000, CRC(9662d779) SHA1(0841c1fd34c152f3f02ace8633f1fa3f5139069e))
|
||||||
ROM_LOAD("hibas03_a063.rom", 0x20000, 0x4000, CRC(6ea7affc) SHA1(99234b55fde57680e4217b72ef4ccb8fc56edeff))
|
ROM_LOAD("hibas03_a063.rom", 0x20000, 0x4000, CRC(6ea7affc) SHA1(99234b55fde57680e4217b72ef4ccb8fc56edeff))
|
||||||
|
|
||||||
ROM_REGION(0x4000, "mos", 0)
|
ROM_REGION(0x4000, "mos", 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user