Line 1... |
Line 1... |
// $Id: Rw11Cpu.hpp 504 2013-04-13 15:37:24Z mueller $
|
// $Id: Rw11Cpu.hpp 506 2013-04-14 21:54:03Z mueller $
|
//
|
//
|
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
//
|
//
|
// This program is free software; you may redistribute and/or modify it under
|
// This program is free software; you may redistribute and/or modify it under
|
// the terms of the GNU General Public License as published by the Free
|
// the terms of the GNU General Public License as published by the Free
|
Line 11... |
Line 11... |
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// for complete details.
|
// for complete details.
|
//
|
//
|
// Revision History:
|
// Revision History:
|
// Date Rev Version Comment
|
// Date Rev Version Comment
|
|
// 2013-04-14 506 1.0.1 add AddLalh(),AddRMem(),AddWMem()
|
// 2013-04-12 504 1.0 Initial version
|
// 2013-04-12 504 1.0 Initial version
|
// 2013-01-27 478 0.1 First draft
|
// 2013-01-27 478 0.1 First draft
|
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
|
|
|
|
/*!
|
/*!
|
\file
|
\file
|
\version $Id: Rw11Cpu.hpp 504 2013-04-13 15:37:24Z mueller $
|
\version $Id: Rw11Cpu.hpp 506 2013-04-14 21:54:03Z mueller $
|
\brief Declaration of class Rw11Cpu.
|
\brief Declaration of class Rw11Cpu.
|
*/
|
*/
|
|
|
#ifndef included_Retro_Rw11Cpu
|
#ifndef included_Retro_Rw11Cpu
|
#define included_Retro_Rw11Cpu 1
|
#define included_Retro_Rw11Cpu 1
|
Line 53... |
Line 54... |
typedef std::map<std::string, boost::shared_ptr<Rw11Cntl>> cmap_t;
|
typedef std::map<std::string, boost::shared_ptr<Rw11Cntl>> cmap_t;
|
typedef cmap_t::iterator cmap_it_t;
|
typedef cmap_t::iterator cmap_it_t;
|
typedef cmap_t::const_iterator cmap_cit_t;
|
typedef cmap_t::const_iterator cmap_cit_t;
|
typedef cmap_t::value_type cmap_val_t;
|
typedef cmap_t::value_type cmap_val_t;
|
|
|
|
|
explicit Rw11Cpu(const std::string& type);
|
explicit Rw11Cpu(const std::string& type);
|
virtual ~Rw11Cpu();
|
virtual ~Rw11Cpu();
|
|
|
void Setup(Rw11* pw11);
|
void Setup(Rw11* pw11);
|
Rw11& W11() const;
|
Rw11& W11() const;
|
Line 80... |
Line 82... |
int AddIbrb(RlinkCommandList& clist, uint16_t ibaddr);
|
int AddIbrb(RlinkCommandList& clist, uint16_t ibaddr);
|
int AddRibr(RlinkCommandList& clist, uint16_t ibaddr);
|
int AddRibr(RlinkCommandList& clist, uint16_t ibaddr);
|
int AddWibr(RlinkCommandList& clist, uint16_t ibaddr,
|
int AddWibr(RlinkCommandList& clist, uint16_t ibaddr,
|
uint16_t data);
|
uint16_t data);
|
|
|
|
int AddLalh(RlinkCommandList& clist, uint32_t addr,
|
|
uint16_t mode=kCp_ah_m_22bit);
|
|
int AddRMem(RlinkCommandList& clist, uint32_t addr,
|
|
uint16_t* buf, size_t size,
|
|
uint16_t mode=kCp_ah_m_22bit);
|
|
int AddWMem(RlinkCommandList& clist, uint32_t addr,
|
|
const uint16_t* buf, size_t size,
|
|
uint16_t mode=kCp_ah_m_22bit);
|
|
|
bool MemRead(uint16_t addr, std::vector<uint16_t>& data,
|
bool MemRead(uint16_t addr, std::vector<uint16_t>& data,
|
size_t nword, RerrMsg& emsg);
|
size_t nword, RerrMsg& emsg);
|
bool MemWrite(uint16_t addr, const std::vector<uint16_t>& data,
|
bool MemWrite(uint16_t addr, const std::vector<uint16_t>& data,
|
RerrMsg& emsg);
|
RerrMsg& emsg);
|
|
|
Line 143... |
Line 154... |
static const uint16_t kCp_cpurust_vecfet = 0x8; //!< vector fetch halt
|
static const uint16_t kCp_cpurust_vecfet = 0x8; //!< vector fetch halt
|
static const uint16_t kCp_cpurust_recrsv = 0x9; //!< rec red-stack halt
|
static const uint16_t kCp_cpurust_recrsv = 0x9; //!< rec red-stack halt
|
static const uint16_t kCp_cpurust_sfail = 0xa; //!< sequencer failure
|
static const uint16_t kCp_cpurust_sfail = 0xa; //!< sequencer failure
|
static const uint16_t kCp_cpurust_vfail = 0xb; //!< vmbox failure
|
static const uint16_t kCp_cpurust_vfail = 0xb; //!< vmbox failure
|
|
|
|
static const uint16_t kCp_ah_m_addr = 0x003f; //!<
|
|
static const uint16_t kCp_ah_m_22bit = kWBit06; //!<
|
|
static const uint16_t kCp_ah_m_ubmap = kWBit07; //!<
|
|
|
private:
|
private:
|
Rw11Cpu() {} //!< default ctor blocker
|
Rw11Cpu() {} //!< default ctor blocker
|
|
|
protected:
|
protected:
|
Rw11* fpW11;
|
Rw11* fpW11;
|