diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index 57cb7b8b..9de095aa 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -2,6 +2,7 @@ ### Table of contents - Current [HEAD](#user-content-head) +- Release [w11a_V0.791](#user-content-w11a_v0.791) - Release [w11a_V0.79](#user-content-w11a_v0.79) - Release [w11a_V0.78](#user-content-w11a_v0.78) - Release [w11a_V0.77](#user-content-w11a_v0.77) @@ -24,6 +25,14 @@ The HEAD version shows the current development. No guarantees that software or firmware builds or that the documentation is consistent. The full set of tests is only run for tagged releases. +### Summary +### New features +### Changes +### Bug Fixes + + +--- +## 2022-04-24: [w11a_V0.791](https://github.com/wfjm/w11/releases/tag/w11a_V0.791) - rev 1229(wfjm) ### Summary - drop Travis (now defunct) - add preliminary GitHub Actions support diff --git a/doc/w11a_os_guide.md b/doc/w11a_os_guide.md index d5f40d80..048b8b12 100644 --- a/doc/w11a_os_guide.md +++ b/doc/w11a_os_guide.md @@ -18,9 +18,9 @@ process. The communication between the FPGA board and backend server can be via - Serial port - via an integrated USB-UART bridge - - on Arty A7, Basys3, Cmod A7 and Nexys4, and Nexys A7 with a `FT2232HQ`, + - on Arty A7, Basys3, Cmod A7 and Nexys4, and Nexys A7 with an `FT2232HQ`, allows up to 12M Baud - - on Nexys3 with a `FT232R`, allows up to 2M Baud + - on Nexys3 with an `FT232R`, allows up to 2M Baud - for all FTDI USB-UART it is essential to set them to `low latency` mode. That was the default for Linux kernels 2.6.32 to 4.4.52. Since about March 2017, one gets kernels with 16 ms default latency again, thanks to @@ -212,7 +212,7 @@ SimH to reflect the w11a setup as close as possible: - processor: 4 Mbyte memory (as on Nexys2, Nexys3,...) - periphery: in addition DZ11, RL11/RL02, RK70/RP06, TM11/TU10 -Startup scripts are provided with each oskit. They call the w11a_max +Startup scripts are provided with each oskit. They call the `w11a_max` configuration, so will show in the emulator what w11a can do when finished. @@ -223,7 +223,7 @@ All examples below use the same basic setup console_starter -s -d DL0 & console_starter -s -d DL1 & - **Note**: the -s ensures that the port numbers used by SimH are taken! + **Note**: the `-s` ensures that the port numbers used by SimH are taken! - start the simulator diff --git a/tools/bin/console_starter b/tools/bin/console_starter index 48c360c3..35645659 100755 --- a/tools/bin/console_starter +++ b/tools/bin/console_starter @@ -1,10 +1,11 @@ #!/usr/bin/perl -w -# $Id: console_starter 1189 2019-07-13 16:41:07Z mueller $ +# $Id: console_starter 1200 2019-08-04 16:17:20Z mueller $ # SPDX-License-Identifier: GPL-3.0-or-later # Copyright 2009-2019 by Walter F.J. Mueller # # Revision History: # Date Rev Vers Comment +# 2019-08-04 1200 1.2 change simh port handling # 2019-07-13 1189 1.1.1 drop superfluous exists for $opts # 2014-08-10 581 1.1 rename to console_starter # 2010-07-04 312 1.0.3 correct telnet_wrapper path @@ -63,13 +64,13 @@ if (exists $opts{d}) { } if ($opts{s}) { # simh ports - $port = 5670 if ($dev eq "DL"); - $port = 5671 if ($dev eq "DZ"); - $title = sprintf "\"%s %s\"", $dev, $term; + $port = 5670+$line if ($dev eq "DL"); # telnet cons + 1 line DL mux + $port = 5672 if ($dev eq "DZ"); # 8 line DZ mux + $title = sprintf "\"%s%d %s (%4d)\"", $dev, $line, $term, $port; } else { # rri ports $port = 8000+$line if ($dev eq "DL"); $port = 8002+$line if ($dev eq "DZ"); - $title = sprintf "\"%s%d %s\"", $dev, $line, $term; + $title = sprintf "\"%s%d %s (%4d)\"", $dev, $line, $term, $port; } my $geo_w = 80; diff --git a/tools/dox/w11_cpp.Doxyfile b/tools/dox/w11_cpp.Doxyfile index 6b0a3c66..7376c776 100644 --- a/tools/dox/w11_cpp.Doxyfile +++ b/tools/dox/w11_cpp.Doxyfile @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = "w11 - cpp" -PROJECT_NUMBER = 0.79 +PROJECT_NUMBER = 0.791 PROJECT_BRIEF = "Backend server for Rlink and w11" PROJECT_LOGO = OUTPUT_DIRECTORY = $(RETRODOXY)/w11/cpp diff --git a/tools/dox/w11_tcl.Doxyfile b/tools/dox/w11_tcl.Doxyfile index 5e75b309..33c451aa 100644 --- a/tools/dox/w11_tcl.Doxyfile +++ b/tools/dox/w11_tcl.Doxyfile @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = "w11 - tcl" -PROJECT_NUMBER = 0.79 +PROJECT_NUMBER = 0.791 PROJECT_BRIEF = "Backend server for Rlink and w11" PROJECT_LOGO = OUTPUT_DIRECTORY = $(RETRODOXY)/w11/tcl diff --git a/tools/dox/w11_vhd_all.Doxyfile b/tools/dox/w11_vhd_all.Doxyfile index 9c6535a9..4d87cd2b 100644 --- a/tools/dox/w11_vhd_all.Doxyfile +++ b/tools/dox/w11_vhd_all.Doxyfile @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = "w11 - vhd" -PROJECT_NUMBER = 0.79 +PROJECT_NUMBER = 0.791 PROJECT_BRIEF = "W11 CPU core and support modules" PROJECT_LOGO = OUTPUT_DIRECTORY = $(RETRODOXY)/w11/vhd diff --git a/tools/simh/setup_w11a_max.scmd b/tools/simh/setup_w11a_max.scmd index 8c9cce82..f0a5564d 100644 --- a/tools/simh/setup_w11a_max.scmd +++ b/tools/simh/setup_w11a_max.scmd @@ -1,6 +1,6 @@ -; $Id: setup_w11a_max.scmd 1194 2019-07-20 07:43:21Z mueller $ +; $Id: setup_w11a_max.scmd 1200 2019-08-04 16:17:20Z mueller $ ; SPDX-License-Identifier: GPL-3.0-or-later -; Copyright 2008-2014 by Walter F.J. Mueller +; Copyright 2008-2019 by Walter F.J. Mueller ; ; Setup file for 'maximal' w11a configuration under simh 3.8 and above ; @@ -30,6 +30,11 @@ set cpu idle ; set clk 50hz ; +; setup pdp11 console via telnet (default is mixed with simh console) +; +set cons telnet=5670 +set cons telnet=buffered +; ; terminal interface options ; the default tti time=0 setting gives 50 chars/sec, slow ; setting time=50000 (means 1 char every 50000 instructions) is much @@ -45,18 +50,18 @@ set tto 8b ; set dli enabled set dli lines=1 -att dli 5670 +att dli 5671 set dlo0 log=simh_dl1.log set dlo0 8b ; set dz enabled set dz lines=8 set dz vector=310 -att dz -m 5671 +att dz -m 5672 set dz log=0=simh_dz0.log set dz log=1=simh_dz1.log set dz log=2=simh_dz2.log -; dz log file names must be quoted, otherwise they'll be uppercased ! +set dz log=3=simh_dz3.log ; ; line printer ; diff --git a/tools/simh/setup_w11a_min.scmd b/tools/simh/setup_w11a_min.scmd index 90fc92f2..76eabe1b 100644 --- a/tools/simh/setup_w11a_min.scmd +++ b/tools/simh/setup_w11a_min.scmd @@ -1,6 +1,6 @@ -; $Id: setup_w11a_min.scmd 1194 2019-07-20 07:43:21Z mueller $ +; $Id: setup_w11a_min.scmd 1200 2019-08-04 16:17:20Z mueller $ ; SPDX-License-Identifier: GPL-3.0-or-later -; Copyright 2009-2014 by Walter F.J. Mueller +; Copyright 2009-2019 by Walter F.J. Mueller ; ; Setup file for 'minimal' w11a configuration under simh 3.8 and above ; @@ -30,6 +30,11 @@ set cpu idle ; set clk 50hz ; +; setup pdp11 console via telnet (default is mixed with simh console) +; +set cons telnet=5670 +set cons telnet=buffered +; ; terminal interface options ; the default tti time=0 setting gives 50 chars/sec, slow ; setting time=50000 (means 1 char every 50000 instructions) is much @@ -45,7 +50,7 @@ set tto 8b ; set dli enabled set dli lines=1 -att dli 5670 +att dli 5671 set dlo0 log=simh_dl1.log set dlo0 8b ; diff --git a/tools/tcl/exptest/util.tcl b/tools/tcl/exptest/util.tcl index 1e425945..aa5e5e27 100644 --- a/tools/tcl/exptest/util.tcl +++ b/tools/tcl/exptest/util.tcl @@ -1,9 +1,10 @@ -# $Id: util.tcl 1196 2019-07-20 18:18:16Z mueller $ +# $Id: util.tcl 1209 2021-08-22 13:17:33Z mueller $ # SPDX-License-Identifier: GPL-3.0-or-later # Copyright 2019- by Walter F.J. Mueller # # Revision History: # Date Rev Version Comment +# 2019-08-04 1200 1.1 add proc et_tstline{0,1}; add et_exp el sub command # 2019-07-20 1196 1.0.1 et_tenv_cleanup: use test namespaces # 2019-06-29 1174 1.0 Initial version # 2019-06-10 1162 0.1 First draft @@ -34,6 +35,11 @@ array set genv { set et_args {} set et_tests {} +set et_tline0 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#\$%^&*()" +set et_tline1 \ +"abcdefghijklmnopqrstuvwxyz`~!@#$%^&*()-_=+\[{\]}\\|;:'\",<.>/?ABCDEFGHIJKLMNOPQRSTUVWXYZ" +set et_tline1d "${et_tline1}${et_tline1}" + # # -------------------------------------------------------------------- # @@ -285,7 +291,7 @@ proc et_exp {args} { switch -glob -- $cmd { i { set ::spawn_id $val } t { set ::timeout $val } - s { send $val } + s { send -- $val } e { if {$val eq "eof"} { expect { eof { } @@ -299,6 +305,19 @@ proc et_exp {args} { } } } + el { if {$val eq "eof"} { + expect { + eof { } + timeout { error "FAIL: missed 'eof'" } + } + } else { + expect { + -ex "$val" { } + eof { error "FAIL: unexpected 'eof' seen" } + timeout { error "FAIL: missed '$val'" } + } + } + } ct[0-9] { set slot [string range $cmd 2 2] set ::tenv(c_$val) $expect_out($slot,string) } cg[0-9] { set slot [string range $cmd 2 2] @@ -354,3 +373,23 @@ proc et_tenv_cleanup {} { unset ::tenv } } + +# +# -------------------------------------------------------------------- +# +proc et_tstline0 {lnum} { + return [format "%04d: %s" [expr {$lnum%10000}] $::et_tline0] +} + +# +# -------------------------------------------------------------------- +# +proc et_tstline1 {lnum {cnum 0}} { + set len [string length $::et_tline1] + set beg [expr {$lnum%$len}] + set end [expr {$beg+67}] + return [format "%02d-%06d: %s" \ + [expr {$cnum%100}] \ + [expr {$lnum%1000000}] \ + [string range $::et_tline1d $beg $end]] +}