w11 - cpp 0.794
Backend server for Rlink and w11
Loading...
Searching...
No Matches
Retro::Rw11CpuW11a Class Reference

FIXME_docs. More...

#include <Rw11CpuW11a.hpp>

Inheritance diagram for Retro::Rw11CpuW11a:
[legend]
Collaboration diagram for Retro::Rw11CpuW11a:
[legend]

Public Member Functions

 Rw11CpuW11a ()
 Default constructor.
 
 ~Rw11CpuW11a ()
 Destructor.
 
void Setup (size_t ind, uint16_t base, uint16_t ibase)
 FIXME_docs.
 
virtual void Dump (std::ostream &os, int ind=0, const char *text=0, int detail=0) const
 FIXME_docs.
 
- Public Member Functions inherited from Retro::Rw11Cpu
 Rw11Cpu (const std::string &type)
 Constructor.
 
virtual ~Rw11Cpu ()
 Destructor.
 
 Rw11Cpu (const Rw11Cpu &)=delete
 
Rw11Cpuoperator= (const Rw11Cpu &)=delete
 
void Setup (Rw11 *pw11)
 FIXME_docs.
 
Rw11W11 () const
 FIXME_docs.
 
RlinkServerServer () const
 FIXME_docs.
 
RlinkConnectConnect () const
 FIXME_docs.
 
RlogFileLogFile () const
 FIXME_docs.
 
const std::string & Type () const
 FIXME_docs.
 
size_t Index () const
 FIXME_docs.
 
uint16_t Base () const
 FIXME_docs.
 
uint16_t IBase () const
 FIXME_docs.
 
uint32_t MemSize () const
 FIXME_docs.
 
bool HasScnt () const
 FIXME_docs.
 
bool HasPcnt () const
 FIXME_docs.
 
bool HasCmon () const
 FIXME_docs.
 
uint16_t HasHbpt () const
 FIXME_docs.
 
bool HasIbmon () const
 FIXME_docs.
 
bool HasIbtst () const
 FIXME_docs.
 
bool HasM9312 () const
 FIXME_docs.
 
bool HasKw11l () const
 FIXME_docs.
 
bool HasKw11p () const
 FIXME_docs.
 
bool HasIist () const
 FIXME_docs.
 
void AddCntl (const std::shared_ptr< Rw11Cntl > &spcntl)
 FIXME_docs.
 
bool TestCntl (const std::string &name) const
 FIXME_docs.
 
void ListCntl (std::vector< std::string > &list) const
 FIXME_docs.
 
Rw11CntlCntl (const std::string &name) const
 FIXME_docs.
 
void Start ()
 FIXME_docs.
 
std::string NextCntlName (const std::string &base) const
 FIXME_docs.
 
int AddMembe (RlinkCommandList &clist, uint16_t be, bool stick=false)
 FIXME_docs.
 
int AddRibr (RlinkCommandList &clist, uint16_t ibaddr)
 FIXME_docs.
 
int AddWibr (RlinkCommandList &clist, uint16_t ibaddr, uint16_t data)
 FIXME_docs.
 
int AddRbibr (RlinkCommandList &clist, uint16_t ibaddr, size_t size)
 FIXME_docs.
 
int AddWbibr (RlinkCommandList &clist, uint16_t ibaddr, const std::vector< uint16_t > &block)
 FIXME_docs.
 
int AddWbibr (RlinkCommandList &clist, uint16_t ibaddr, std::vector< uint16_t > &&block)
 FIXME_docs.
 
int AddLalh (RlinkCommandList &clist, uint32_t addr, uint16_t mode=kCPAH_M_22BIT)
 FIXME_docs.
 
void ModLalh (RlinkCommandList &clist, size_t ind, uint32_t addr, uint16_t mode=kCPAH_M_22BIT)
 FIXME_docs.
 
int AddRMem (RlinkCommandList &clist, uint32_t addr, uint16_t *buf, size_t size, uint16_t mode=kCPAH_M_22BIT, bool singleblk=false)
 FIXME_docs.
 
int AddWMem (RlinkCommandList &clist, uint32_t addr, const uint16_t *buf, size_t size, uint16_t mode=kCPAH_M_22BIT, bool singleblk=false)
 FIXME_docs.
 
void ExecWibr (uint16_t ibaddr0, uint16_t data0, uint16_t ibaddr1=0, uint16_t data1=0, uint16_t ibaddr2=0, uint16_t data2=0)
 FIXME_docs.
 
uint16_t ExecRibr (uint16_t ibaddr)
 FIXME_docs.
 
bool MemRead (uint16_t addr, std::vector< uint16_t > &data, size_t nword, RerrMsg &emsg)
 FIXME_docs.
 
bool MemWrite (uint16_t addr, const std::vector< uint16_t > &data, RerrMsg &emsg)
 FIXME_docs.
 
bool MemWriteByte (uint32_t addr, uint8_t data, RerrMsg &emsg)
 FIXME_docs.
 
bool ProbeCntl (Rw11Probe &dsc)
 FIXME_docs.
 
bool LoadAbs (const std::string &fname, RerrMsg &emsg, uint16_t &start, bool trace=false)
 FIXME_docs.
 
bool Boot (const std::string &uname, RerrMsg &emsg)
 FIXME_docs.
 
void SetCpuActUp ()
 FIXME_docs.
 
void SetCpuActDown (uint16_t stat)
 FIXME_docs.
 
int WaitCpuActDown (const Rtime &tout, Rtime &twait)
 FIXME_docs.
 
bool CpuAct () const
 FIXME_docs.
 
uint16_t CpuStat () const
 FIXME_docs.
 
uint16_t IbusRemoteAddr (uint16_t ibaddr) const
 FIXME_docs.
 
void AllIAddrMapInsert (const std::string &name, uint16_t ibaddr)
 FIXME_docs.
 
void AllRAddrMapInsert (const std::string &name, uint16_t rbaddr)
 FIXME_docs.
 
bool IAddrMapInsert (const std::string &name, uint16_t ibaddr)
 FIXME_docs.
 
bool IAddrMapErase (const std::string &name)
 FIXME_docs.
 
bool IAddrMapErase (uint16_t ibaddr)
 FIXME_docs.
 
void IAddrMapClear ()
 FIXME_docs.
 
const RlinkAddrMapIAddrMap () const
 FIXME_docs.
 
bool RAddrMapInsert (const std::string &name, uint16_t rbaddr)
 FIXME_docs.
 
bool RAddrMapErase (const std::string &name)
 FIXME_docs.
 
bool RAddrMapErase (uint16_t rbaddr)
 FIXME_docs.
 
void RAddrMapClear ()
 FIXME_docs.
 
const RlinkAddrMapRAddrMap () const
 FIXME_docs.
 
void W11AttnHandler ()
 FIXME_docs.
 
RstatsStats ()
 FIXME_docs.
 
virtual void Dump (std::ostream &os, int ind=0, const char *text=0, int detail=0) const
 FIXME_docs.
 

Additional Inherited Members

- Public Types inherited from Retro::Rw11Cpu
typedef std::map< std::string, std::shared_ptr< Rw11Cntl > > cmap_t
 
- Static Public Attributes inherited from Retro::Rw11Cpu
static const uint16_t kCPCONF = 0x0000
 CPCONF reg offset.
 
static const uint16_t kCPCNTL = 0x0001
 CPADDR reg offset.
 
static const uint16_t kCPSTAT = 0x0002
 CPSTAT reg offset.
 
static const uint16_t kCPPSW = 0x0003
 CPPSW reg offset.
 
static const uint16_t kCPAL = 0x0004
 CPAL reg offset.
 
static const uint16_t kCPAH = 0x0005
 CPAH reg offset.
 
static const uint16_t kCPMEM = 0x0006
 CPMEM reg offset.
 
static const uint16_t kCPMEMI = 0x0007
 CPMEMI reg offset.
 
static const uint16_t kCPR0 = 0x0008
 CPR0 reg offset.
 
static const uint16_t kCPPC = 0x000f
 CPPC reg offset.
 
static const uint16_t kCPMEMBE = 0x0010
 CPMEMBE reg offset.
 
static const uint16_t kCPFUNC_NOOP = 0x0000
 NOOP func code.
 
static const uint16_t kCPFUNC_START = 0x0001
 START func code.
 
static const uint16_t kCPFUNC_STOP = 0x0002
 STOP func code.
 
static const uint16_t kCPFUNC_STEP = 0x0003
 STEP func code.
 
static const uint16_t kCPFUNC_CRESET = 0x0004
 CRESET func code.
 
static const uint16_t kCPFUNC_BRESET = 0x0005
 BRESET func code.
 
static const uint16_t kCPFUNC_SUSPEND = 0x0006
 SUSPEND func code.
 
static const uint16_t kCPFUNC_RESUME = 0x0007
 RESUME func code.
 
static const uint16_t kCPSTAT_M_SuspExt = kWBit09
 suspext mask
 
static const uint16_t kCPSTAT_M_SuspInt = kWBit08
 suspint mask
 
static const uint16_t kCPSTAT_M_CpuRust = 0x00f0
 cpurust mask
 
static const uint16_t kCPSTAT_V_CpuRust = 4
 cpurust shift
 
static const uint16_t kCPSTAT_B_CpuRust = 0x000f
 cpurust bit mask
 
static const uint16_t kCPSTAT_M_CpuSusp = kWBit03
 cpususp mask
 
static const uint16_t kCPSTAT_M_CpuGo = kWBit02
 cpugo mask
 
static const uint16_t kCPSTAT_M_CmdMErr = kWBit01
 cmdmerr mask
 
static const uint16_t kCPSTAT_M_CmdErr = kWBit00
 cmderr mask
 
static const uint16_t kCPURUST_INIT = 0x0
 cpu in init state
 
static const uint16_t kCPURUST_HALT = 0x1
 cpu executed HALT
 
static const uint16_t kCPURUST_RESET = 0x2
 cpu was reset
 
static const uint16_t kCPURUST_STOP = 0x3
 cpu was stopped
 
static const uint16_t kCPURUST_STEP = 0x4
 cpu was stepped
 
static const uint16_t kCPURUST_SUSP = 0x5
 cpu was suspended
 
static const uint16_t kCPURUST_HBPT = 0x6
 cpu hardware bpt
 
static const uint16_t kCPURUST_RUNS = 0x7
 cpu running
 
static const uint16_t kCPURUST_VECFET = 0x8
 vector fetch halt
 
static const uint16_t kCPURUST_RECRSV = 0x9
 rec red-stack halt
 
static const uint16_t kCPURUST_SFAIL = 0xa
 sequencer failure
 
static const uint16_t kCPURUST_VFAIL = 0xb
 vmbox failure
 
static const uint16_t kCPAH_M_ADDR = 0x003f
 mask for 6bit msb
 
static const uint16_t kCPAH_M_22BIT = kWBit06
 ena 22bit addressing
 
static const uint16_t kCPAH_M_UBMAP = kWBit07
 ena ubmap
 
static const uint16_t kCPAH_M_UBM22 = kWBit06|kWBit07
 ubmap+22bit
 
static const uint16_t kCPMEMBE_M_STICK = kWBit02
 membe: sticky flag
 
static const uint16_t kCPMEMBE_M_BE = 0x0003
 membe: be field
 
static const uint16_t kCPMEMBE_M_BE0 = 0x0001
 membe: be0 flag
 
static const uint16_t kCPMEMBE_M_BE1 = 0x0002
 membe: be1 flag
 
static const uint8_t kStat_M_CmdErr = kBBit07
 stat: cmderr flag
 
static const uint8_t kStat_M_CmdMErr = kBBit06
 stat: cmdmerr flag
 
static const uint8_t kStat_M_CpuSusp = kBBit05
 stat: cpususp flag
 
static const uint8_t kStat_M_CpuGo = kBBit04
 stat: cpugo flag
 
static const uint16_t kCPUPSW = 0177776
 CPU PSW address.
 
static const uint16_t kCPUSTKLIM = 0177774
 CPU STKLIM address.
 
static const uint16_t kCPUPIRQ = 0177772
 CPU PIRQ address.
 
static const uint16_t kCPUMBRK = 0177770
 CPU MBRK address.
 
static const uint16_t kCPUERR = 0177766
 CPU CPUERR address.
 
static const uint16_t kCPUSYSID = 0177764
 CPU SYSID address.
 
static const uint16_t kCPUSDREG = 0177570
 CPU SDREG address.
 
static const uint16_t kCPUUBMAP = 0170200
 UBMAP base address.
 
static const uint16_t kMEMHISIZE = 0177762
 MEM HISIZE address.
 
static const uint16_t kMEMLOSIZE = 0177760
 MEM LOSIZE address.
 
static const uint16_t kMEMHM = 0177752
 MEM HM address.
 
static const uint16_t kMEMMAINT = 0177750
 MEM MAINT address.
 
static const uint16_t kMEMCNTRL = 0177746
 MEM CNTRL address.
 
static const uint16_t kMEMSYSERR = 0177744
 MEM SYSERR address.
 
static const uint16_t kMEMHIADDR = 0177742
 MEM HIADDR address.
 
static const uint16_t kMEMLOADDR = 0177740
 MEM LOADDR address.
 
static const uint16_t kMMUMMR3 = 0172516
 MMU MMR3 address.
 
static const uint16_t kMMUMMR2 = 0177576
 MMU MMR2 address.
 
static const uint16_t kMMUMMR1 = 0177574
 MMU MMR1 address.
 
static const uint16_t kMMUMMR0 = 0177572
 MMU MMR0 address.
 
static const uint16_t kMMUPDRK = 0172300
 MMU PDRK address.
 
static const uint16_t kMMUPARK = 0172340
 MMU PARK address.
 
static const uint16_t kMMUPDRS = 0172200
 MMU PDRS address.
 
static const uint16_t kMMUPARS = 0172240
 MMU PARS address.
 
static const uint16_t kMMUPDRU = 0177600
 MMU PDRU address.
 
static const uint16_t kMMUPARU = 0177640
 MMU PARU address.
 
static const uint16_t kSCBASE = 0x0040
 DMSCNT reg base offset.
 
static const uint16_t kSCCNTL = 0x0000
 SC.CNTL reg offset.
 
static const uint16_t kSCADDR = 0x0001
 SC.ADDR reg offset.
 
static const uint16_t kSCDATA = 0x0002
 SC.DATA reg offset.
 
static const uint16_t kCMBASE = 0x0048
 DMCMON reg base offset.
 
static const uint16_t kCMCNTL = 0x0000
 CM.CNTL reg offset.
 
static const uint16_t kCMSTAT = 0x0001
 CM.STAT reg offset.
 
static const uint16_t kCMADDR = 0x0002
 CM.ADDR reg offset.
 
static const uint16_t kCMDATA = 0x0003
 CM.DATA reg offset.
 
static const uint16_t kCMIADDR = 0x0004
 CM.IADDR reg offset.
 
static const uint16_t kCMIPC = 0x0005
 CM.IPC reg offset.
 
static const uint16_t kCMIREG = 0x0006
 CM.IREG reg offset.
 
static const uint16_t kCMIMAL = 0x0007
 CM.IMAL reg offset.
 
static const uint16_t kHBBASE = 0x0050
 DMHBPT reg base offset.
 
static const uint16_t kHBSIZE = 0x0004
 DMHBPT unit size.
 
static const uint16_t kHBNMAX = 0x0004
 DMHBPT max number units.
 
static const uint16_t kHBCNTL = 0x0000
 HB.CNTL reg offset.
 
static const uint16_t kHBSTAT = 0x0001
 HB.STAT reg offset.
 
static const uint16_t kHBHILIM = 0x0002
 HB.HILIM reg offset.
 
static const uint16_t kHBLOLIM = 0x0003
 HB.LOLIM reg offset.
 
static const uint16_t kPCBASE = 0x0060
 DMPCNT reg base offset.
 
static const uint16_t kPCCNTL = 0x0000
 PC.CNTL reg offset.
 
static const uint16_t kPCSTAT = 0x0001
 PC.STAT reg offset.
 
static const uint16_t kPCDATA = 0x0002
 PC.DATA reg offset.
 
static const uint16_t kIMBASE = 0160000
 Ibmon ibus address.
 
static const uint16_t kIMCNTL = 0x0000
 IM.CNTL reg offset.
 
static const uint16_t kIMSTAT = 0x0002
 IM.STAT reg offset.
 
static const uint16_t kIMHILIM = 0x0004
 IM.HILIM reg offset.
 
static const uint16_t kIMLOLIM = 0x0006
 IM.LOLIM reg offset.
 
static const uint16_t kIMADDR = 0x0008
 IM.ADDR reg offset.
 
static const uint16_t kIMDATA = 0x000a
 IM.DATA reg offset.
 
static const uint16_t kITBASE = 0170000
 Ibtst ibus address.
 
static const uint16_t kITCNTL = 0x0000
 IT.CNTL reg offset.
 
static const uint16_t kITSTAT = 0x0002
 IT.STAT reg offset.
 
static const uint16_t kITDATA = 0x0004
 IT.DATA reg offset.
 
static const uint16_t kITFIFO = 0x0006
 IT.FIFO reg offset.
 
static const uint16_t kM9BASE = 0165000
 M9312 ibus address.
 
static const uint16_t kKWLBASE = 0177546
 KW11-L ibus address.
 
static const uint16_t kKWPBASE = 0172540
 KW11-P ibus address.
 
static const uint16_t kKWPCSR = 0x0000
 KWP.CSR reg offset.
 
static const uint16_t kKWPCSB = 0x0002
 KWP.CSB reg offset.
 
static const uint16_t kKWPCTR = 0x0004
 KWP.CTR reg offset.
 
static const uint16_t kIISTBASE = 0177500
 IIST ibus address.
 
static const uint16_t kIISTACR = 0x0000
 II.ACR reg offset.
 
static const uint16_t kIISTADR = 0x0002
 II.ADR reg offset.
 
- Static Public Attributes inherited from Retro::Rbits
static const uint8_t kBBit00 = 1u<< 0
 
static const uint8_t kBBit01 = 1u<< 1
 
static const uint8_t kBBit02 = 1u<< 2
 
static const uint8_t kBBit03 = 1u<< 3
 
static const uint8_t kBBit04 = 1u<< 4
 
static const uint8_t kBBit05 = 1u<< 5
 
static const uint8_t kBBit06 = 1u<< 6
 
static const uint8_t kBBit07 = 1u<< 7
 
static const uint16_t kWBit00 = 1u<< 0
 
static const uint16_t kWBit01 = 1u<< 1
 
static const uint16_t kWBit02 = 1u<< 2
 
static const uint16_t kWBit03 = 1u<< 3
 
static const uint16_t kWBit04 = 1u<< 4
 
static const uint16_t kWBit05 = 1u<< 5
 
static const uint16_t kWBit06 = 1u<< 6
 
static const uint16_t kWBit07 = 1u<< 7
 
static const uint16_t kWBit08 = 1u<< 8
 
static const uint16_t kWBit09 = 1u<< 9
 
static const uint16_t kWBit10 = 1u<<10
 
static const uint16_t kWBit11 = 1u<<11
 
static const uint16_t kWBit12 = 1u<<12
 
static const uint16_t kWBit13 = 1u<<13
 
static const uint16_t kWBit14 = 1u<<14
 
static const uint16_t kWBit15 = 1u<<15
 
static const uint32_t kLBit00 = 1u<< 0
 
static const uint32_t kLBit01 = 1u<< 1
 
static const uint32_t kLBit02 = 1u<< 2
 
static const uint32_t kLBit03 = 1u<< 3
 
static const uint32_t kLBit04 = 1u<< 4
 
static const uint32_t kLBit05 = 1u<< 5
 
static const uint32_t kLBit06 = 1u<< 6
 
static const uint32_t kLBit07 = 1u<< 7
 
static const uint32_t kLBit08 = 1u<< 8
 
static const uint32_t kLBit09 = 1u<< 9
 
static const uint32_t kLBit10 = 1u<<10
 
static const uint32_t kLBit11 = 1u<<11
 
static const uint32_t kLBit12 = 1u<<12
 
static const uint32_t kLBit13 = 1u<<13
 
static const uint32_t kLBit14 = 1u<<14
 
static const uint32_t kLBit15 = 1u<<15
 
static const uint32_t kLBit16 = 1u<<16
 
static const uint32_t kLBit17 = 1u<<17
 
static const uint32_t kLBit18 = 1u<<18
 
static const uint32_t kLBit19 = 1u<<19
 
static const uint32_t kLBit20 = 1u<<20
 
static const uint32_t kLBit21 = 1u<<21
 
static const uint32_t kLBit22 = 1u<<22
 
static const uint32_t kLBit23 = 1u<<23
 
static const uint32_t kLBit24 = 1u<<24
 
static const uint32_t kLBit25 = 1u<<25
 
static const uint32_t kLBit26 = 1u<<26
 
static const uint32_t kLBit27 = 1u<<27
 
static const uint32_t kLBit28 = 1u<<28
 
static const uint32_t kLBit29 = 1u<<29
 
static const uint32_t kLBit30 = 1u<<30
 
static const uint32_t kLBit31 = 1u<<31
 
- Protected Member Functions inherited from Retro::Rw11Cpu
void SetupStd ()
 FIXME_docs.
 
void SetupOpt ()
 FIXME_docs.
 
- Protected Attributes inherited from Retro::Rw11Cpu
Rw11fpW11
 
std::string fType
 
size_t fIndex
 
uint16_t fBase
 
uint16_t fIBase
 
uint32_t fMemSize
 memory size in byte
 
bool fHasScnt
 has dmscnt (state counter)
 
bool fHasPcnt
 has dmpcnt (perf counters)
 
bool fHasCmon
 has dmcmon (cpu monitor)
 
uint16_t fHasHbpt
 has dmhbpt (hardware breakpoint)
 
bool fHasIbmon
 has ibmon (ibus monitor)
 
bool fHasIbtst
 has ibtst (ibus tester)
 
bool fHasM9312
 has m9312 (boot rom)
 
bool fHasKw11l
 has kw11-l (line clock)
 
bool fHasKw11p
 has kw11-p (prog clock)
 
bool fHasIist
 has iist (smp comm)
 
bool fCpuAct
 
uint16_t fCpuStat
 
std::mutex fCpuActMutex
 
std::condition_variable fCpuActCond
 
cmap_t fCntlMap
 name->cntl map
 
RlinkAddrMap fIAddrMap
 ibus name<->address mapping
 
RlinkAddrMap fRAddrMap
 rbus name<->address mapping
 
Rstats fStats
 statistics
 

Detailed Description

FIXME_docs.

Definition at line 25 of file Rw11CpuW11a.hpp.

Constructor & Destructor Documentation

◆ Rw11CpuW11a()

Retro::Rw11CpuW11a::Rw11CpuW11a ( )

Default constructor.

Definition at line 34 of file Rw11CpuW11a.cpp.

◆ ~Rw11CpuW11a()

Retro::Rw11CpuW11a::~Rw11CpuW11a ( )

Destructor.

Definition at line 41 of file Rw11CpuW11a.cpp.

Member Function Documentation

◆ Setup()

void Retro::Rw11CpuW11a::Setup ( size_t  ind,
uint16_t  base,
uint16_t  ibase 
)

FIXME_docs.

Definition at line 47 of file Rw11CpuW11a.cpp.

References Retro::Rw11Cpu::fBase, Retro::Rw11Cpu::fIBase, and Retro::Rw11Cpu::fIndex.

Referenced by Retro::RtclRw11::ClassCmdConfig().

◆ Dump()

void Retro::Rw11CpuW11a::Dump ( std::ostream &  os,
int  ind = 0,
const char *  text = 0,
int  detail = 0 
) const
virtual

FIXME_docs.

Reimplemented from Retro::Rw11Cpu.

Definition at line 58 of file Rw11CpuW11a.cpp.

References Retro::Rw11Cpu::Dump().


The documentation for this class was generated from the following files: