1
0
mirror of https://github.com/wfjm/w11.git synced 2026-01-29 05:21:54 +00:00

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
This commit is contained in:
wfjm
2019-04-21 19:30:16 +02:00
parent 71290b5142
commit afcf56463a
10 changed files with 93 additions and 75 deletions

View File

@@ -0,0 +1,19 @@
; $Id: defs_kwl.mac 1134 2019-04-21 17:18:03Z mueller $
; Copyright 2019- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
; 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

View File

@@ -1,8 +1,8 @@
; $Id: defs_kwp.mac 1122 2019-03-17 08:15:42Z mueller $
; Copyright 2018- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
; $Id: defs_kwp.mac 1134 2019-04-21 17:18:03Z mueller $
; Copyright 2018-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
; 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

View File

@@ -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 <W.F.J.Mueller@gsi.de>
// Copyright 2013-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// 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);

View File

@@ -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 <W.F.J.Mueller@gsi.de>
//
@@ -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;

View File

@@ -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 <W.F.J.Mueller@gsi.de>
# 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

View File

@@ -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 <W.F.J.Mueller@gsi.de>
# 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.ie+kw.rhk+kw.run>,@#kw.csr ; setup: 100 kHz down single
mov #2,@#kp.csb ; load kw11-p counter
mov #<kp.ie+kp.rhk+kp.run>,@#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.ie+kw.mod+kw.rhk+kw.run>,@#kw.csr ; setup: 100 kHz dn rep
mov #1,@#kp.csb ; load kw11-p counter
mov #<kp.ie+kp.rep+kp.rhk+kp.run>,@#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.ie+kw.mod+kw.rex+kw.run>,@#kw.csr ; setup: extevt dn rep
mov #20.,@#kp.csb ; load kw11-p counter
mov #<kp.ie+kp.rep+kp.rex+kp.run>,@#kp.csr ; setup: extevt dn rep
spl 0 ; allow interrupts
mov #70.,r0; ; timeout after 70 instructions
1$: sob r0,1$ ; wait some time

View File

@@ -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 <W.F.J.Mueller@gsi.de>
# 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.ie+kw.mod+kw.rex+kw.run>,@#kw.csr ; setup: extevt dn rep
mov #20.,@#kp.csb ; load kw11-p counter
mov #<kp.ie+kp.rep+kp.rex+kp.run>,@#kp.csr ; setup: extevt dn rep
spl 0 ; allow interrupts
mov #70.,r0; ; timeout after 70 instructions
1$: sob r0,1$ ; wait some time

View File

@@ -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 <W.F.J.Mueller@gsi.de>
#
@@ -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}

View File

@@ -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 <W.F.J.Mueller@gsi.de>
#
@@ -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]]
}
}