w11 - cpp 0.794
Backend server for Rlink and w11
|
FIXME_docs. More...
#include <Rw11CpuW11a.hpp>
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 | |
Rw11Cpu & | operator= (const Rw11Cpu &)=delete |
void | Setup (Rw11 *pw11) |
FIXME_docs. | |
Rw11 & | W11 () const |
FIXME_docs. | |
RlinkServer & | Server () const |
FIXME_docs. | |
RlinkConnect & | Connect () const |
FIXME_docs. | |
RlogFile & | LogFile () 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. | |
Rw11Cntl & | Cntl (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 RlinkAddrMap & | IAddrMap () 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 RlinkAddrMap & | RAddrMap () const |
FIXME_docs. | |
void | W11AttnHandler () |
FIXME_docs. | |
Rstats & | Stats () |
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 | |
Rw11 * | fpW11 |
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 | |
FIXME_docs.
Definition at line 25 of file Rw11CpuW11a.hpp.
Retro::Rw11CpuW11a::Rw11CpuW11a | ( | ) |
Default constructor.
Definition at line 34 of file Rw11CpuW11a.cpp.
Retro::Rw11CpuW11a::~Rw11CpuW11a | ( | ) |
Destructor.
Definition at line 41 of file Rw11CpuW11a.cpp.
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().
|
virtual |
FIXME_docs.
Reimplemented from Retro::Rw11Cpu.
Definition at line 58 of file Rw11CpuW11a.cpp.
References Retro::Rw11Cpu::Dump().