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:
19
tools/asm-11/lib/defs_kwl.mac
Normal file
19
tools/asm-11/lib/defs_kwl.mac
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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]]
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user