From afcf56463a006ba82fc559042fda07a8e0905e32 Mon Sep 17 00:00:00 2001 From: wfjm Date: Sun, 21 Apr 2019 19:30:16 +0200 Subject: [PATCH] minor updates - ibdr_lp11_buf.vhd: remove fifo clear on BRESET - lib/defs_kwp.mac: use 'kp.' instead of 'kw.' - lib/defs_kwl.mac: added - rw11/shell_egd.tcl: shell_aspec_parse: allow 8,9 in numeric address --- rtl/ibus/ibdr_lp11_buf.vhd | 5 +-- tools/asm-11/lib/defs_kwl.mac | 19 ++++++++++++ tools/asm-11/lib/defs_kwp.mac | 36 +++++++++++----------- tools/src/librw11/Rw11Unit.cpp | 5 +-- tools/src/librw11/Rw11VirtTermTcp.cpp | 20 ++++++------ tools/tbench/test_lp11_all.tcl | 34 ++++---------------- tools/tbench/w11a_kw11p/test_kw11p_int.tcl | 14 ++++----- tools/tbench/w11a_pcnt/test_pcnt_codes.tcl | 6 ++-- tools/tcl/ibd_dl11/util.tcl | 6 ++-- tools/tcl/ibd_pc11/util.tcl | 23 ++++++++++++-- 10 files changed, 93 insertions(+), 75 deletions(-) create mode 100644 tools/asm-11/lib/defs_kwl.mac diff --git a/rtl/ibus/ibdr_lp11_buf.vhd b/rtl/ibus/ibdr_lp11_buf.vhd index 66976577..104ff391 100644 --- a/rtl/ibus/ibdr_lp11_buf.vhd +++ b/rtl/ibus/ibdr_lp11_buf.vhd @@ -1,4 +1,4 @@ --- $Id: ibdr_lp11_buf.vhd 1131 2019-04-14 13:24:25Z mueller $ +-- $Id: ibdr_lp11_buf.vhd 1134 2019-04-21 17:18:03Z mueller $ -- -- Copyright 2019- by Walter F.J. Mueller -- @@ -23,6 +23,7 @@ -- -- Revision History: -- Date Rev Version Comment +-- 2019-04-20 1134 1.0.2 remove fifo clear on BRESET -- 2019-04-14 1131 1.0.1 RLIM_CEV now slv8 -- 2019-03-17 1123 1.0 Initial version -- 2019-03-10 1121 0.1 First draft (derived from ibdr_lp11) @@ -281,7 +282,7 @@ begin N_REGS <= n; - PBUF_RESET <= RESET or BRESET or r.err; + PBUF_RESET <= RESET or r.err; PBUF_CE <= ipbufce; PBUF_WE <= ipbufwe; RLIM_START <= irlimsta; diff --git a/tools/asm-11/lib/defs_kwl.mac b/tools/asm-11/lib/defs_kwl.mac new file mode 100644 index 00000000..debcddcd --- /dev/null +++ b/tools/asm-11/lib/defs_kwl.mac @@ -0,0 +1,19 @@ +; $Id: defs_kwl.mac 1134 2019-04-21 17:18:03Z mueller $ +; Copyright 2019- by Walter F.J. Mueller +; License disclaimer see License.txt in $RETROBASE directory +; +; definitions for KW11-L line clock (as in defs_kwl.das) +; +; vector address/priority definition +; + va.kwl=000100 + vp.kwl=6 +; +; register addresses +; + kl.csr=177546 +; +; symbol definitions for kl.csr +; + kl.don=000200 + kl.ie =000100 diff --git a/tools/asm-11/lib/defs_kwp.mac b/tools/asm-11/lib/defs_kwp.mac index 17fb23de..85aefdf4 100644 --- a/tools/asm-11/lib/defs_kwp.mac +++ b/tools/asm-11/lib/defs_kwp.mac @@ -1,8 +1,8 @@ -; $Id: defs_kwp.mac 1122 2019-03-17 08:15:42Z mueller $ -; Copyright 2018- by Walter F.J. Mueller +; $Id: defs_kwp.mac 1134 2019-04-21 17:18:03Z mueller $ +; Copyright 2018-2019 by Walter F.J. Mueller ; License disclaimer see License.txt in $RETROBASE directory ; -; definitions for KW11-P programmable clock +; definitions for KW11-P programmable clock (as in defs_kwp.das) ; ; vector address/priority definition ; @@ -11,20 +11,20 @@ ; ; register addresses ; - kw.csr=172540 - kw.csb=172542 - kw.ctr=172544 + kp.csr=172540 + kp.csb=172542 + kp.ctr=172544 ; -; symbol definitions for rw.csr +; symbol definitions for kp.csr ; - kw.err=100000 - kw.don=000200 - kw.ie =000100 - kw.fix=000040 - kw.upd=000020 ; 0=down;1=up - kw.mod=000010 ; 0=single;1=repeat - kw.rex=000006 ; rate=ext - kw.rlf=000004 ; rate=line - kw.rtk=000002 ; rate=10 kHz - kw.rhk=000000 ; rate=100 kHz - kw.run=000001 + kp.err=100000 + kp.don=000200 + kp.ie =000100 + kp.fix=000040 + kp.up=000020 ; 0=down;1=up + kp.rep=000010 ; 0=single;1=repeat + kp.rex=000006 ; rate=ext + kp.rlf=000004 ; rate=line + kp.rtk=000002 ; rate=10 kHz + kp.rhk=000000 ; rate=100 kHz + kp.run=000001 diff --git a/tools/src/librw11/Rw11Unit.cpp b/tools/src/librw11/Rw11Unit.cpp index 2ffe4f90..db4371dd 100644 --- a/tools/src/librw11/Rw11Unit.cpp +++ b/tools/src/librw11/Rw11Unit.cpp @@ -1,6 +1,6 @@ -// $Id: Rw11Unit.cpp 1049 2018-09-22 13:56:52Z mueller $ +// $Id: Rw11Unit.cpp 1134 2019-04-21 17:18:03Z mueller $ // -// Copyright 2013-2018 by Walter F.J. Mueller +// Copyright 2013-2019 by Walter F.J. Mueller // // 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 @@ -112,6 +112,7 @@ void Rw11Unit::Dump(std::ostream& os, int ind, const char* text, RosFill bl(ind); os << bl << (text?text:"--") << "Rw11Unit @ " << this << endl; + os << bl << " fpCntlBase: " << fpCntlBase << endl; os << bl << " fIndex: " << fIndex << endl; os << bl << " fAttachOpts: " << fAttachOpts << endl; fStats.Dump(os, ind+2, "fStats: ", detail-1); diff --git a/tools/src/librw11/Rw11VirtTermTcp.cpp b/tools/src/librw11/Rw11VirtTermTcp.cpp index 6734d474..e09aae67 100644 --- a/tools/src/librw11/Rw11VirtTermTcp.cpp +++ b/tools/src/librw11/Rw11VirtTermTcp.cpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTermTcp.cpp 1114 2019-02-23 18:01:55Z mueller $ +// $Id: Rw11VirtTermTcp.cpp 1134 2019-04-21 17:18:03Z mueller $ // // Copyright 2013-2019 by Walter F.J. Mueller // @@ -217,10 +217,11 @@ bool Rw11VirtTermTcp::Snd(const uint8_t* data, size_t count, RerrMsg& /*emsg*/) return true; } - uint8_t obuf[1024]; + const size_t c_bufsiz=1024; + uint8_t obuf[c_bufsiz]; while (pdata < pdataend) { uint8_t* pobuf = obuf; - uint8_t* pobufend = obuf+1024; + uint8_t* pobufend = obuf+sizeof(obuf); while (pdata < pdataend && pobuf < pobufend-1) { if (*pdata == kCode_IAC) *pobuf++ = kCode_IAC; *pobuf++ = *pdata++; @@ -279,7 +280,7 @@ int Rw11VirtTermTcp::ListenPollHandler(const pollfd& pfd) // bail-out and cancel handler if poll returns an error event if (pfd.revents & (~pfd.events)) return -1; - fFd = accept(fFdListen, nullptr, 0); + fFd = ::accept(fFdListen, nullptr, 0); if (fFd < 0) { RlogMsg lmsg(LogFile(),'E'); @@ -314,7 +315,7 @@ int Rw11VirtTermTcp::ListenPollHandler(const pollfd& pfd) msg << "\r\nconnect on port " << fChannelId << " for " << Unit().Name() << "\r\n\r\n"; string str = msg.str(); - if (write(fFd, str.c_str(), str.length()) < 0) nerr += 1; + if (::write(fFd, str.c_str(), str.length()) < 0) nerr += 1; } // send chars buffered while attached but not connected @@ -325,7 +326,7 @@ int Rw11VirtTermTcp::ListenPollHandler(const pollfd& pfd) fSndPreConQue.pop_front(); } string str = msg.str(); - if (write(fFd, str.c_str(), str.length()) < 0) nerr += 1; + if (::write(fFd, str.c_str(), str.length()) < 0) nerr += 1; } if (nerr) { @@ -362,11 +363,12 @@ int Rw11VirtTermTcp::RcvPollHandler(const pollfd& pfd) int irc = -1; if (pfd.revents & POLLIN) { - uint8_t ibuf[1024]; - uint8_t obuf[1024]; + const size_t c_bufsiz=1024; + uint8_t ibuf[c_bufsiz]; + uint8_t obuf[c_bufsiz]; uint8_t* pobuf = obuf; - irc = ::read(fFd, ibuf, 1024); + irc = ::read(fFd, ibuf, sizeof(ibuf)); if (irc < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) return 0; diff --git a/tools/tbench/test_lp11_all.tcl b/tools/tbench/test_lp11_all.tcl index 594143ca..ddb4fe9d 100644 --- a/tools/tbench/test_lp11_all.tcl +++ b/tools/tbench/test_lp11_all.tcl @@ -1,10 +1,11 @@ -# $Id: test_lp11_all.tcl 1130 2019-04-12 14:54:57Z mueller $ +# $Id: test_lp11_all.tcl 1134 2019-04-21 17:18:03Z mueller $ # # Copyright 2019- by Walter F.J. Mueller # License disclaimer see License.txt in $RETROBASE directory # # Revision History: # Date Rev Version Comment +# 2019-04-19 1134 1.0.2 fifo not longer cleared by breset # 2019-04-06 1126 1.0.1 check csr.err and csr.rlim not changed by breset # 2019-03-17 1123 1.0 Initial version # 2019-03-11 1121 0.1 First draft @@ -193,12 +194,14 @@ if {$type == 0} { # unbuffered -------------------------- rlc wtlam 1. rlc exec -attn -edata $attnlp - rlc log " A2.4: loc write, breset clears fifo ----------------" + rlc log " A2.4: loc write, breset does not clear fifo --------" $cpu cp \ -wma lpa.buf 041 \ -wma lpa.buf 042 \ -breset \ - -rbibr lpa.buf 3 -estaterr -edone 0 + -rbibr lpa.buf 3 -estaterr -edata \ + [list [regbldkv ibd_lp11::RBUF val 1 size 2 data 0041] \ + [regbldkv ibd_lp11::RBUF val 1 size 1 data 0042] ] # expect and harvest attn (drop other attn potentially triggered by breset) rlc wtlam 1. rlc exec -attn -edata $attnlp $attnlp @@ -317,31 +320,6 @@ stop: -ribr lpa.buf -edata [regbldkv ibd_lp11::RBUF val 1 size 1 data 066] \ -rma lpa.csr -edata [regbld ibd_lp11::CSR done] \ -ribr lpa.buf -estaterr - - rlc log " A3.7: BRESET on full fifo sets DONE=1 --------------" - # 1 loc wr -> get attn (1 in fifo; DONE=1) - $cpu cp \ - -wma lpa.buf 067 \ - -rma lpa.csr -edata [regbld ibd_lp11::CSR done] - # expect and harvest attn - rlc wtlam 1. - rlc exec -attn -edata $attnlp - - # x loc wr (x in fifo; DONE=0) - rw11::asmrun $cpu sym r0 [$cpu imap lpa.buf] \ - r1 $fs0 \ - r2 067 \ - ps [regbld rw11::PSW {cmode k} {pri 7}] - rw11::asmwait $cpu sym - rw11::asmtreg $cpu r1 0 - - # breset -> DONE=1 - # 1 rem rd -> error - $cpu cp \ - -rma lpa.csr -edata [regbld ibd_lp11::CSR] \ - -breset \ - -rma lpa.csr -edata [regbld ibd_lp11::CSR done] \ - -ribr lpa.buf -estaterr } # harvest triggered attn's diff --git a/tools/tbench/w11a_kw11p/test_kw11p_int.tcl b/tools/tbench/w11a_kw11p/test_kw11p_int.tcl index 84fd40bd..8357a1c8 100644 --- a/tools/tbench/w11a_kw11p/test_kw11p_int.tcl +++ b/tools/tbench/w11a_kw11p/test_kw11p_int.tcl @@ -1,4 +1,4 @@ -# $Id: test_kw11p_int.tcl 1056 2018-10-13 16:01:17Z mueller $ +# $Id: test_kw11p_int.tcl 1134 2019-04-21 17:18:03Z mueller $ # # Copyright 2018- by Walter F.J. Mueller # License disclaimer see License.txt in $RETROBASE directory @@ -41,8 +41,8 @@ stack: . = 2000 ; code area start: spl 7 ; lock out interrupts ; - mov #2,@#kw.csb ; load kw11-p counter - mov #,@#kw.csr ; setup: 100 kHz down single + mov #2,@#kp.csb ; load kw11-p counter + mov #,@#kp.csr ; setup: 100 kHz down single spl 0 ; allow interrupts mov #1000.,r0 1$: sob r0,1$ ; wait some time @@ -81,8 +81,8 @@ start: spl 7 ; lock out interrupts ; mov #3,r1 ; setup interrupt counter - mov #1,@#kw.csb ; load kw11-p counter - mov #,@#kw.csr ; setup: 100 kHz dn rep + mov #1,@#kp.csb ; load kw11-p counter + mov #,@#kp.csr ; setup: 100 kHz dn rep spl 0 ; allow interrupts mov #1500.,r0 1$: sob r0,1$ ; wait some time @@ -129,8 +129,8 @@ start: spl 7 ; lock out interrupts ; mov #3,r1 ; setup interrupt counter - mov #20.,@#kw.csb ; load kw11-p counter - mov #,@#kw.csr ; setup: extevt dn rep + mov #20.,@#kp.csb ; load kw11-p counter + mov #,@#kp.csr ; setup: extevt dn rep spl 0 ; allow interrupts mov #70.,r0; ; timeout after 70 instructions 1$: sob r0,1$ ; wait some time diff --git a/tools/tbench/w11a_pcnt/test_pcnt_codes.tcl b/tools/tbench/w11a_pcnt/test_pcnt_codes.tcl index fe2e4ecc..c4404fa2 100644 --- a/tools/tbench/w11a_pcnt/test_pcnt_codes.tcl +++ b/tools/tbench/w11a_pcnt/test_pcnt_codes.tcl @@ -1,4 +1,4 @@ -# $Id: test_pcnt_codes.tcl 1056 2018-10-13 16:01:17Z mueller $ +# $Id: test_pcnt_codes.tcl 1134 2019-04-21 17:18:03Z mueller $ # # Copyright 2018- by Walter F.J. Mueller # License disclaimer see License.txt in $RETROBASE directory @@ -460,8 +460,8 @@ start: spl 7 ; lock out interrupts ; mov #3,r1 ; setup interrupt counter - mov #20.,@#kw.csb ; load kw11-p counter - mov #,@#kw.csr ; setup: extevt dn rep + mov #20.,@#kp.csb ; load kw11-p counter + mov #,@#kp.csr ; setup: extevt dn rep spl 0 ; allow interrupts mov #70.,r0; ; timeout after 70 instructions 1$: sob r0,1$ ; wait some time diff --git a/tools/tcl/ibd_dl11/util.tcl b/tools/tcl/ibd_dl11/util.tcl index e1261ad2..f248b3d5 100644 --- a/tools/tcl/ibd_dl11/util.tcl +++ b/tools/tcl/ibd_dl11/util.tcl @@ -1,4 +1,4 @@ -# $Id: util.tcl 1126 2019-04-06 17:37:40Z mueller $ +# $Id: util.tcl 1134 2019-04-21 17:18:03Z mueller $ # # Copyright 2015-2019 by Walter F.J. Mueller # @@ -13,7 +13,7 @@ # # Revision History: # Date Rev Version Comment -# 2019-04-06 1126 1.1 updates for buffered dl11 +# 2019-04-21 1134 1.1 updates for buffered dl11 # 2015-12-26 719 1.0 Initial version # @@ -30,7 +30,7 @@ namespace eval ibd_dl11 { regdsc RCSR {done 7} {ie 6} regdsc RRCSR {rlim 14 3} {type 10 3} {done 7} {ie 6} {fclr 5} - regdsc RRBUF {rrdy 15} {size 14 7 "d"} + regdsc RRBUF {rrdy 15} {rsize 14 7 "d"} {tsize 6 7 "d"} regdsc XCSR {done 7} {ie 6} regdsc RXCSR {rlim 14 3} {done 7} {ie 6} diff --git a/tools/tcl/ibd_pc11/util.tcl b/tools/tcl/ibd_pc11/util.tcl index 35a856e2..18e73c7b 100644 --- a/tools/tcl/ibd_pc11/util.tcl +++ b/tools/tcl/ibd_pc11/util.tcl @@ -1,4 +1,4 @@ -# $Id: util.tcl 1131 2019-04-14 13:24:25Z mueller $ +# $Id: util.tcl 1134 2019-04-21 17:18:03Z mueller $ # # Copyright 2015-2019 by Walter F.J. Mueller # @@ -13,7 +13,7 @@ # # Revision History: # Date Rev Version Comment -# 2019-04-12 1131 1.1 updates for buffered pc11 +# 2019-04-21 1134 1.1 updates for buffered pc11 # 2015-12-26 719 1.0 Initial version # @@ -31,7 +31,7 @@ namespace eval ibd_pc11 { regdsc RCSR {err 15} {busy 11} {done 7} {ie 6} {ena 0} regdsc RRCSR {err 15} {rlim 14 3} {busy 11} {type 10 3} \ {done 7} {ie 6} {fclr 5} - regdsc RRBUF {rbusy 15} {size 14 7 "d"} + regdsc RRBUF {rbusy 15} {rsize 14 7 "d"} {psize 6 7 "d"} regdsc PCSR {err 15} {rdy 7} {ie 6} regdsc RPCSR {err 15} {rlim 14 3} {rdy 7} {ie 6} @@ -51,4 +51,21 @@ namespace eval ibd_pc11 { proc setup {{cpu "cpu0"}} { return [rw11::setup_cntl $cpu "pc11" "pca"] } + # + # rdump: register dump - rem view ------------------------------------------ + # + proc rdump {{cpu "cpu0"}} { + set rval {} + $cpu cp -ribr "pca.rcsr" rcsr \ + -ribr "pca.rbuf" rbuf \ + -ribr "pca.pcsr" pcsr + append rval "Controller registers:" + append rval [format "\n rcsr: %6.6o %s" $rcsr \ + [regtxt ibd_pc11::RRCSR $rcsr]] + append rval [format "\n rbuf: %6.6o %s" $rbuf \ + [regtxt ibd_pc11::RRBUF $rbuf]] + append rval [format "\n pcsr: %6.6o %s" $pcsr \ + [regtxt ibd_pc11::RPCSR $pcsr]] + + } }