1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-05 05:51:14 +00:00

add and use Rw11Cpu::kCPAH_M_UBM22

- in all practical cases the unibus map enable should be used together with
  the 22bit addressing enable, so it's prudent to add a new constant.
This commit is contained in:
Walter F.J. Mueller
2017-02-27 20:25:19 +01:00
parent f13b1b4900
commit 92812d76b7
6 changed files with 35 additions and 41 deletions

View File

@@ -1,6 +1,6 @@
// $Id: Rw11CntlRK11.cpp 686 2015-06-04 21:08:08Z mueller $
// $Id: Rw11CntlRK11.cpp 857 2017-02-26 15:27:41Z mueller $
//
// Copyright 2013-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Other credits:
// the boot code is from the simh project and Copyright Robert M Supnik
//
@@ -15,6 +15,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-02-26 857 2.0.3 use kCPAH_M_UBM22
// 2015-06-04 686 2.0.2 check for spurious lams
// 2015-02-17 647 2.0.1 use Nwrd2Nblk(); BUGFIX: revise RdmaPostExecCB()
// 2015-01-04 628 2.0 use Rw11RdmaDisk
@@ -27,7 +28,7 @@
/*!
\file
\version $Id: Rw11CntlRK11.cpp 686 2015-06-04 21:08:08Z mueller $
\version $Id: Rw11CntlRK11.cpp 857 2017-02-26 15:27:41Z mueller $
\brief Implemenation of Rw11CntlRK11.
*/
@@ -436,9 +437,7 @@ int Rw11CntlRK11::AttnHandler(RlinkServer::AttnArgs& args)
if (rker) {
AddErrorExit(clist, rker);
} else {
fRdma.QueueDiskWrite(addr, nwrd,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP,
lba, &unit);
fRdma.QueueDiskWrite(addr, nwrd, Rw11Cpu::kCPAH_M_UBM22, lba, &unit);
}
} else if (fu == kFUNC_READ) { // Read --------------------------
@@ -449,9 +448,7 @@ int Rw11CntlRK11::AttnHandler(RlinkServer::AttnArgs& args)
if (rker) {
AddErrorExit(clist, rker);
} else {
fRdma.QueueDiskRead(addr, nwrd,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP,
lba, &unit);
fRdma.QueueDiskRead(addr, nwrd, Rw11Cpu::kCPAH_M_UBM22, lba, &unit);
}
} else if (fu == kFUNC_WCHK) { // Write Check -------------------
@@ -462,9 +459,7 @@ int Rw11CntlRK11::AttnHandler(RlinkServer::AttnArgs& args)
if (rker) {
AddErrorExit(clist, rker);
} else {
fRdma.QueueDiskWriteCheck(addr, nwrd,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP,
lba, &unit);
fRdma.QueueDiskWriteCheck(addr, nwrd, Rw11Cpu::kCPAH_M_UBM22, lba, &unit);
}
} else if (fu == kFUNC_SEEK) { // Seek --------------------------

View File

@@ -1,6 +1,6 @@
// $Id: Rw11CntlRL11.cpp 686 2015-06-04 21:08:08Z mueller $
// $Id: Rw11CntlRL11.cpp 857 2017-02-26 15:27:41Z mueller $
//
// Copyright 2014-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2014-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Other credits:
// the boot code is from the simh project and Copyright Robert M Supnik
// CalcCrc() is adopted from the simh project and Copyright Robert M Supnik
@@ -16,6 +16,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-02-26 857 1.0.3 use kCPAH_M_UBM22
// 2015-06-04 686 1.0.2 check for spurious lams
// 2015-03-04 655 1.0.1 use original boot code again
// 2015-03-01 653 1.0 Initial version
@@ -24,7 +25,7 @@
/*!
\file
\version $Id: Rw11CntlRL11.cpp 686 2015-06-04 21:08:08Z mueller $
\version $Id: Rw11CntlRL11.cpp 857 2017-02-26 15:27:41Z mueller $
\brief Implemenation of Rw11CntlRL11.
*/
@@ -537,24 +538,18 @@ int Rw11CntlRL11::AttnHandler(RlinkServer::AttnArgs& args)
AddSetStatus(clist, ds, sta | kSTA_M_WGE);
AddErrorExit(clist, kERR_M_DE);
} else {
fRdma.QueueDiskWrite(addr, nwrd,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP,
lba, &unit);
fRdma.QueueDiskWrite(addr, nwrd, Rw11Cpu::kCPAH_M_UBM22, lba, &unit);
}
} else if (fu == kFUNC_WCHK) { // Write Check -------------------
fStats.Inc(kStatNFuncWchk );
fRdma.QueueDiskWriteCheck(addr, nwrd,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP,
lba, &unit);
fRdma.QueueDiskWriteCheck(addr, nwrd, Rw11Cpu::kCPAH_M_UBM22, lba, &unit);
} else if (fu == kFUNC_READ || // Read or
fu == kFUNC_RNHC) { // Read No Header Check ----------
fStats.Inc(fu==kFUNC_READ ? kStatNFuncRead : kStatNFuncRnhc);
fRdma.QueueDiskRead(addr, nwrd,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP,
lba, &unit);
fRdma.QueueDiskRead(addr, nwrd, Rw11Cpu::kCPAH_M_UBM22, lba, &unit);
}
if (clist.Size()) { // if handled directly

View File

@@ -1,6 +1,6 @@
// $Id: Rw11CntlTM11.cpp 690 2015-06-07 18:23:51Z mueller $
// $Id: Rw11CntlTM11.cpp 857 2017-02-26 15:27:41Z mueller $
//
// Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2015-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Other credits:
// the boot code is from the simh project and Copyright Robert M Supnik
//
@@ -15,6 +15,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-02-26 857 1.0.2 use kCPAH_M_UBM22
// 2015-06-06 690 1.0.1 BUGFIX: AddFastExit() check for Virt() defined
// 2015-06-04 686 1.0 Initial version
// 2015-05-17 683 0.1 First draft
@@ -22,7 +23,7 @@
/*!
\file
\version $Id: Rw11CntlTM11.cpp 690 2015-06-07 18:23:51Z mueller $
\version $Id: Rw11CntlTM11.cpp 857 2017-02-26 15:27:41Z mueller $
\brief Implemenation of Rw11CntlTM11.
*/
@@ -402,8 +403,7 @@ int Rw11CntlTM11::AttnHandler(RlinkServer::AttnArgs& args)
AddErrorExit(clist, kTMCR_M_RICMD|kTMSR_M_BTE); // now just bail out !!
} else {
size_t nwdma = ndone/2;
fRdma.QueueWMem(addr, fBuf.data(), nwdma,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP);
fRdma.QueueWMem(addr, fBuf.data(), nwdma, Rw11Cpu::kCPAH_M_UBM22);
}
} else if (fu == kFUNC_WRITE || // Write -------------------------
@@ -414,8 +414,7 @@ int Rw11CntlTM11::AttnHandler(RlinkServer::AttnArgs& args)
if (nbyt&0x1) { // FIXME_code: add odd rlen handling
AddErrorExit(clist, kTMCR_M_RICMD|kTMSR_M_BTE); // now just bail out !!
} else {
fRdma.QueueRMem(addr, fBuf.data(), nwdma,
Rw11Cpu::kCPAH_M_22BIT|Rw11Cpu::kCPAH_M_UBMAP);
fRdma.QueueRMem(addr, fBuf.data(), nwdma, Rw11Cpu::kCPAH_M_UBM22);
}
} else if (fu == kFUNC_WEOF) { // Write Eof ---------------------

View File

@@ -1,4 +1,4 @@
// $Id: Rw11Cpu.cpp 853 2017-02-19 18:54:30Z mueller $
// $Id: Rw11Cpu.cpp 857 2017-02-26 15:27:41Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-02-26 857 1.2.11 add kCPAH_M_UBM22
// 2017-02-19 853 1.2.10 use Rtime
// 2017-02-17 851 1.2.9 probe/setup auxilliary devices: kw11l,kw11p,iist
// 2017-02-10 850 1.2.8 add ModLalh()
@@ -36,7 +37,7 @@
/*!
\file
\version $Id: Rw11Cpu.cpp 853 2017-02-19 18:54:30Z mueller $
\version $Id: Rw11Cpu.cpp 857 2017-02-26 15:27:41Z mueller $
\brief Implemenation of Rw11Cpu.
*/
#include <stdlib.h>
@@ -118,6 +119,7 @@ const uint16_t Rw11Cpu::kCPURUST_VFAIL;
const uint16_t Rw11Cpu::kCPAH_M_ADDR;
const uint16_t Rw11Cpu::kCPAH_M_22BIT;
const uint16_t Rw11Cpu::kCPAH_M_UBMAP;
const uint16_t Rw11Cpu::kCPAH_M_UBM22;
const uint16_t Rw11Cpu::kCPMEMBE_M_STICK;
const uint16_t Rw11Cpu::kCPMEMBE_M_BE;

View File

@@ -1,4 +1,4 @@
// $Id: Rw11Cpu.hpp 853 2017-02-19 18:54:30Z mueller $
// $Id: Rw11Cpu.hpp 857 2017-02-26 15:27:41Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-02-26 857 1.2.9 add kCPAH_M_UBM22
// 2017-02-19 853 1.2.8 use Rtime
// 2017-02-17 851 1.2.7 probe/setup auxilliary devices: kw11l,kw11p,iist
// 2017-02-10 850 1.2.6 add ModLalh()
@@ -32,7 +33,7 @@
/*!
\file
\version $Id: Rw11Cpu.hpp 853 2017-02-19 18:54:30Z mueller $
\version $Id: Rw11Cpu.hpp 857 2017-02-26 15:27:41Z mueller $
\brief Declaration of class Rw11Cpu.
*/
@@ -208,9 +209,10 @@ namespace Retro {
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; //!<
static const uint16_t kCPAH_M_22BIT = kWBit06; //!<
static const uint16_t kCPAH_M_UBMAP = kWBit07; //!<
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; //!<
static const uint16_t kCPMEMBE_M_BE = 0x0003; //!<

View File

@@ -1,4 +1,4 @@
// $Id: RtclRw11Cpu.cpp 853 2017-02-19 18:54:30Z mueller $
// $Id: RtclRw11Cpu.cpp 857 2017-02-26 15:27:41Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-02-26 857 1.2.13 use kCPAH_M_UBM22 for cp -wa -ubm
// 2017-02-19 853 1.2.12 use Rtime
// 2017-02-17 851 1.2.11 probe/setup auxilliary devices: kw11l,kw11p,iist
// 2017-02-04 848 1.2.10 M_default: add 'probe ena on' output
@@ -41,7 +42,7 @@
/*!
\file
\version $Id: RtclRw11Cpu.cpp 853 2017-02-19 18:54:30Z mueller $
\version $Id: RtclRw11Cpu.cpp 857 2017-02-26 15:27:41Z mueller $
\brief Implemenation of RtclRw11Cpu.
*/
@@ -481,7 +482,7 @@ int RtclRw11Cpu::M_cp(RtclArgs& args)
if (subopt == "-p22") { // -p22
ah |= Rw11Cpu::kCPAH_M_22BIT;
} else if (subopt == "-ubm") { // -ubm
ah |= Rw11Cpu::kCPAH_M_UBMAP;
ah |= Rw11Cpu::kCPAH_M_UBM22;
}
}
clist.AddWreg(base + Rw11Cpu::kCPAL, al);