(MESS) cmdhd: Added SCSI bus. (nw)

This commit is contained in:
Curt Coder 2012-12-07 15:49:52 +00:00
parent db18011bd8
commit 6f7fbddba8
2 changed files with 48 additions and 8 deletions

View File

@ -19,6 +19,8 @@
#define M6522_1_TAG "m6522_1"
#define M6522_2_TAG "m6522_2"
#define I8255A_TAG "i8255a"
#define RTC72421A_TAG "rtc"
#define SCSIBUS_TAG "scsi"
@ -36,6 +38,11 @@ const device_type CMD_HD = &device_creator<cmd_hd_device>;
ROM_START( cmd_hd )
ROM_REGION( 0x8000, M6502_TAG, 0 )
ROM_LOAD( "cmd_hd_bootrom_v280.bin", 0x0000, 0x8000, CRC(da68435d) SHA1(defd8bc04a52904b8a3560f11c82126619513a10) )
ROM_REGION( 0x104, "plds", 0 )
ROM_LOAD( "pal16l8_1", 0x000, 0x001, NO_DUMP )
ROM_LOAD( "pal16l8_2", 0x000, 0x001, NO_DUMP )
ROM_LOAD( "pal16l8_3", 0x000, 0x001, NO_DUMP )
ROM_END
@ -56,8 +63,11 @@ const rom_entry *cmd_hd_device::device_rom_region() const
static ADDRESS_MAP_START( cmd_hd_mem, AS_PROGRAM, 8, cmd_hd_device )
AM_RANGE(0x0000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
//AM_RANGE() AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
//AM_RANGE() AM_DEVREADWRITE(M6522_2_TAG, via6522_device, read, write)
AM_RANGE(0x8000, 0x800f) AM_MIRROR(0x1f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
AM_RANGE(0x8400, 0x840f) AM_MIRROR(0x1f0) AM_DEVREADWRITE(M6522_2_TAG, via6522_device, read, write)
AM_RANGE(0x8800, 0x8803) AM_MIRROR(0x1fc) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write)
AM_RANGE(0x8c00, 0x8c0f) AM_MIRROR(0x1f0) //AM_DEVREADWRITE(RTC72421A_TAG, rtc72421a_device, read, write)
AM_RANGE(0x8f00, 0x8f00) AM_MIRROR(0xff) AM_WRITE(led_w)
ADDRESS_MAP_END
@ -135,8 +145,11 @@ static MACHINE_CONFIG_FRAGMENT( cmd_hd )
MCFG_VIA6522_ADD(M6522_1_TAG, 2000000, via1_intf)
MCFG_VIA6522_ADD(M6522_2_TAG, 2000000, via2_intf)
MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
//MCFG_RTC72421A_ADD(RTC72421A_TAG)
MCFG_HARDDISK_ADD("harddisk0")
MCFG_SCSIBUS_ADD(SCSIBUS_TAG)
MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)
MCFG_SCSICB_ADD(SCSIBUS_TAG ":host")
MACHINE_CONFIG_END
@ -163,7 +176,8 @@ machine_config_constructor cmd_hd_device::device_mconfig_additions() const
cmd_hd_device::cmd_hd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, CMD_HD, "HD", tag, owner, clock),
device_cbm_iec_interface(mconfig, *this),
m_maincpu(*this, M6502_TAG)
m_maincpu(*this, M6502_TAG),
m_scsibus(*this, SCSIBUS_TAG":host")
{
}
@ -224,3 +238,26 @@ void cmd_hd_device::cbm_iec_reset(int state)
device_reset();
}
}
//-------------------------------------------------
// led_w -
//-------------------------------------------------
WRITE8_MEMBER( cmd_hd_device::led_w )
{
/*
bit description
0
1
2
3
4
5
6
7
*/
}

View File

@ -12,14 +12,15 @@
#ifndef __CMD_HD__
#define __CMD_HD__
#define ADDRESS_MAP_MODERN
#include "emu.h"
#include "cpu/m6502/m6502.h"
#include "imagedev/harddriv.h"
#include "machine/6522via.h"
#include "machine/cbmiec.h"
#include "machine/i8255.h"
#include "machine/scsibus.h"
#include "machine/scsicb.h"
#include "machine/scsihd.h"
@ -40,7 +41,6 @@
class cmd_hd_device : public device_t,
public device_cbm_iec_interface
{
public:
// construction/destruction
cmd_hd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
@ -49,11 +49,13 @@ public:
virtual const rom_entry *device_rom_region() const;
virtual machine_config_constructor device_mconfig_additions() const;
DECLARE_WRITE8_MEMBER( led_w );
protected:
// device-level overrides
virtual void device_config_complete() { m_shortname = "cmdhd"; }
virtual void device_start();
virtual void device_reset();
virtual void device_config_complete() { m_shortname = "cmdhd"; }
// device_cbm_iec_interface overrides
void cbm_iec_srq(int state);
@ -62,6 +64,7 @@ protected:
void cbm_iec_reset(int state);
required_device<cpu_device> m_maincpu;
required_device<scsicb_device> m_scsibus;
};