1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-28 12:58:31 +00:00

- added TM11/TU10 tape support

This commit is contained in:
Walter F.J. Mueller
2015-06-05 12:11:41 +00:00
parent 4a032e9436
commit 24fde41c6a
126 changed files with 7036 additions and 1938 deletions

7
tools/tbench/all.dat Normal file
View File

@@ -0,0 +1,7 @@
# $Id: all.dat 683 2015-05-17 21:54:35Z mueller $
#
## steering file for all tests
#
@cpu_all.dat
@dev_all.dat
#

View File

@@ -0,0 +1,10 @@
# $Id: cp_all.dat 683 2015-05-17 21:54:35Z mueller $
#
## steering file for all cp tests
#
test_cp_gpr.tcl
test_cp_psw.tcl
test_cp_membasics.tcl
test_cp_ibrbasics.tcl
test_cp_cpubasics.tcl
#

View File

@@ -1,4 +1,4 @@
# $Id: test_cp_cpubasics.tcl 676 2015-05-09 16:31:54Z mueller $
# $Id: test_cp_cpubasics.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_cp_gpr.tcl 676 2015-05-09 16:31:54Z mueller $
# $Id: test_cp_gpr.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_cp_ibrbasics.tcl 676 2015-05-09 16:31:54Z mueller $
# $Id: test_cp_ibrbasics.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_cp_membasics.tcl 676 2015-05-09 16:31:54Z mueller $
# $Id: test_cp_membasics.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_cp_psw.tcl 676 2015-05-09 16:31:54Z mueller $
# $Id: test_cp_psw.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

7
tools/tbench/cpu_all.dat Normal file
View File

@@ -0,0 +1,7 @@
# $Id: cpu_all.dat 683 2015-05-17 21:54:35Z mueller $
#
## steering file for all cpu tests
#
@cp/cp_all.dat
@w11a/w11a_all.dat
#

7
tools/tbench/dev_all.dat Normal file
View File

@@ -0,0 +1,7 @@
# $Id: dev_all.dat 687 2015-06-05 09:03:34Z mueller $
#
## steering file for all devices tests
#
@rhrp/rhrp_all.dat
@tm11/tm11_all.dat
#

View File

@@ -1,4 +1,4 @@
# $Id: rhrp_all.dat 668 2015-04-25 14:31:19Z mueller $
# $Id: rhrp_all.dat 683 2015-05-17 21:54:35Z mueller $
#
## steering file for all rhrp tests
#

View File

@@ -1,4 +1,4 @@
# $Id: test_rhrp_basics.tcl 667 2015-04-18 20:16:05Z mueller $
# $Id: test_rhrp_basics.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_rhrp_func_reg.tcl 668 2015-04-25 14:31:19Z mueller $
# $Id: test_rhrp_func_reg.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_rhrp_int.tcl 678 2015-05-10 16:23:02Z mueller $
# $Id: test_rhrp_int.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_rhrp_regs.tcl 678 2015-05-10 16:23:02Z mueller $
# $Id: test_rhrp_regs.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -0,0 +1,162 @@
# $Id: test_tm11_int.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
#
# Revision History:
# Date Rev Version Comment
# 2015-05-17 683 1.0 Initial version
#
# Test interrupt response
# A:
# ----------------------------------------------------------------------------
rlc log "test_tm11_int: test interrupt response ------------------------------"
rlc log " setup: all units online"
package require ibd_tm11
ibd_tm11::setup
rlc set statmask $rw11::STAT_DEFMASK
rlc set statvalue 0
# configure drives
set rsronl [regbld ibd_tm11::RRL {onl 1} {bot 1}]
$cpu cp -wibr "tma.cr" [ibd_tm11::rcr_wunit 0] \
-wibr "tma.rl" $rsronl \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 1] \
-wibr "tma.rl" $rsronl \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 2] \
-wibr "tma.rl" $rsronl \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 3] \
-wibr "tma.rl" $rsronl
# load test code
$cpu ldasm -lst lst -sym sym {
.include |lib/defs_cpu.mac|
.include |lib/defs_tm.mac|
;
.include |lib/vec_cpucatch.mac|
;
. = 000224 ; setup TM11 interrupt vector
v..tm: .word vh.tm
.word cp.pr7
;
. = 1000 ; data area
stack:
ibuf: .blkw 3. ; input buffer
obuf: .blkw 5. ; output buffer
fbuf: .blkw 4. ; final buffer
;
. = 2000 ; code area
start: spl 7 ; lock out interrupts
;
mov #obuf,r0 ; clear obuf
clr (r0)+
clr (r0)+
clr (r0)+
clr (r0)+
clr (r0)+
;
mov #ibuf,r0 ; setup regs from ibuf
mov (r0)+,@#tm.bc ; bc
mov (r0)+,@#tm.ba ; ba
mov (r0)+,@#tm.cr ; cr
spl 0 ; allow interrupts
;
poll: tstb @#tm.cr ; check cr
bpl poll ; if rdy=0 keep polling
;
4$: mov #fbuf,r0 ; store final regs in fbuf
mov @#tm.sr,(r0)+ ; sr
mov @#tm.cr,(r0)+ ; cr
mov @#tm.bc,(r0)+ ; bc
mov @#tm.ba,(r0)+ ; ba
halt ; halt if done
stop:
; TM11 interrupt handler
vh.tm: mov #obuf,r0 ; store regs in obuf
mov #1,(r0)+ ; flag
mov @#tm.sr,(r0)+ ; sr
mov @#tm.cr,(r0)+ ; cr
mov @#tm.bc,(r0)+ ; bc
mov @#tm.ba,(r0)+ ; ba
rti ; and return
}
##puts $lst
# define tmpproc for readback checks
proc tmpproc_dotest {cpu symName opts} {
upvar 1 $symName sym
set tout 10.; # FIXME_code: parameter ??
# setup defs hash, first defaults, than write over concrete run values
array set defs { i.cr 0 \
i.bc 0 \
i.ba 0 \
o.sr 0 \
o.cr 0 \
o.bc 0 \
o.ba 0 \
do.lam 0
}
array set defs $opts
# build ibuf
set ibuf [list $defs(i.bc) $defs(i.ba) $defs(i.cr)]
# setup write ibuf, setup stack, and start cpu at start:
$cpu cp -wal $sym(ibuf) \
-bwm $ibuf \
-wsp $sym(stack) \
-stapc $sym(start)
# here do minimal lam handling (harvest + send DONE)
if {$defs(do.lam)} {
rlc wtlam $tout apat
$cpu cp -attn \
-wibr tma.cs [ibd_rhrp::cr_func $ibd_tm11::RFUNC_DONE]
}
$cpu wtcpu -reset $tout
# determine regs after cleanup
$cpu cp -rpc -edata $sym(stop) \
-rsp -edata $sym(stack) \
-wal $sym(obuf) \
-rmi -edata 1 \
-rmi -edata $defs(o.sr) \
-rmi -edata $defs(o.cr) \
-rmi -edata $defs(o.bc) \
-rmi -edata $defs(o.ba) \
-wal $sym(fbuf) \
-rmi -edata $defs(o.sr) \
-rmi -edata $defs(o.cr) \
-rmi -edata $defs(o.bc) \
-rmi -edata $defs(o.ba)
return ""
}
# discard pending attn to be on save side
rlc wtlam 0.
rlc exec -attn
# -- Section A ---------------------------------------------------------------
rlc log " A1.1 set cr.ie=1 -> software interrupt -------------"
set opts [list \
i.cr [regbld ibd_tm11::CR ie] \
i.bc 0xff00 \
i.ba 0x8800 \
o.sr [regbld ibd_tm11::SR onl bot tur] \
o.cr [regbld ibd_tm11::CR rdy ie] \
o.bc 0xff00 \
o.ba 0x8800
]
tmpproc_dotest $cpu sym $opts

View File

@@ -0,0 +1,175 @@
# $Id: test_tm11_regs.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
#
# Revision History:
# Date Rev Version Comment
# 2015-05-17 683 1.0 Initial version
#
# Test register response
# A: register basics
# ----------------------------------------------------------------------------
rlc log "test_tm11_regs: test register response ------------------------------"
package require ibd_tm11
ibd_tm11::setup
rlc set statmask $rw11::STAT_DEFMASK
rlc set statvalue 0
# -- Section A ---------------------------------------------------------------
rlc log " A1: test read ---------------------------------------------"
rlc log " A1.1: loc read sr,...,rl ---------------------------"
$cpu cp -rma tma.sr \
-rma tma.cr \
-rma tma.bc \
-rma tma.ba \
-rma tma.db \
-rma tma.rl
rlc log " A1.2: rem read sr,...,rl ---------------------------"
$cpu cp -ribr tma.sr \
-ribr tma.cr \
-ribr tma.bc \
-ribr tma.ba \
-ribr tma.db \
-ribr tma.rl
rlc log " A1.3: test that rl+2,+4 gives no ack (loc) ---------"
set iaddr2 [expr {[cpu0 imap tma.rl] + 2}]
set iaddr4 [expr {[cpu0 imap tma.rl] + 4}]
$cpu cp -ribr $iaddr2 -estaterr \
-ribr $iaddr4 -estaterr
# -- Section B ---------------------------------------------------------------
rlc log " B1: test sr setup -------------------------------------------------"
rlc log " B1.1: rem write via rl -----------------------------"
# setup units with eof=!u1 eot=!u0 onl=1 bot=u0 wrl=u1
set rsr0 [regbld ibd_tm11::RRL {eof 1} {eot 1} {onl 1} {bot 0} {wrl 0} {unit 0}]
set rsr1 [regbld ibd_tm11::RRL {eof 1} {eot 0} {onl 1} {bot 1} {wrl 0} {unit 1}]
set rsr2 [regbld ibd_tm11::RRL {eof 0} {eot 1} {onl 1} {bot 0} {wrl 1} {unit 2}]
set rsr3 [regbld ibd_tm11::RRL {eof 0} {eot 0} {onl 1} {bot 1} {wrl 1} {unit 3}]
# on readback SR has tur=1
set sr0 [regbld ibd_tm11::SR {eof 1} {eot 1} {onl 1} {bot 0} {wrl 0} {tur 1}]
set sr1 [regbld ibd_tm11::SR {eof 1} {eot 0} {onl 1} {bot 1} {wrl 0} {tur 1}]
set sr2 [regbld ibd_tm11::SR {eof 0} {eot 1} {onl 1} {bot 0} {wrl 1} {tur 1}]
set sr3 [regbld ibd_tm11::SR {eof 0} {eot 0} {onl 1} {bot 1} {wrl 1} {tur 1}]
set sr7 [regbld ibd_tm11::SR {tur 1}]
$cpu cp -wibr "tma.cr" [ibd_tm11::rcr_wunit 0] \
-wibr "tma.rl" $rsr0 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 1] \
-wibr "tma.rl" $rsr1 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 2] \
-wibr "tma.rl" $rsr2 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 3] \
-wibr "tma.rl" $rsr3
rlc log " B1.2: rem read via rl ------------------------------"
$cpu cp -wibr "tma.cr" [ibd_tm11::rcr_wunit 0] \
-ribr "tma.rl" -edata $rsr0 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 1] \
-ribr "tma.rl" -edata $rsr1 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 2] \
-ribr "tma.rl" -edata $rsr2 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 3] \
-ribr "tma.rl" -edata $rsr3
rlc log " B1.3: loc read via sr ------------------------------"
$cpu cp -wma "tma.cr" [regbld ibd_tm11::CR {unit 0}]\
-rma "tma.sr" -edata $sr0 \
-wma "tma.cr" [regbld ibd_tm11::CR {unit 1}]\
-rma "tma.sr" -edata $sr1 \
-wma "tma.cr" [regbld ibd_tm11::CR {unit 2}]\
-rma "tma.sr" -edata $sr2 \
-wma "tma.cr" [regbld ibd_tm11::CR {unit 3}]\
-rma "tma.sr" -edata $sr3
rlc log " B1.4: ensure unit 4,..,7 signal offline ------------"
$cpu cp -wma "tma.cr" [regbld ibd_tm11::CR {unit 4}]\
-rma "tma.sr" -edata $sr7 \
-wma "tma.cr" [regbld ibd_tm11::CR {unit 5}]\
-rma "tma.sr" -edata $sr7 \
-wma "tma.cr" [regbld ibd_tm11::CR {unit 6}]\
-rma "tma.sr" -edata $sr7 \
-wma "tma.cr" [regbld ibd_tm11::CR {unit 7}]\
-rma "tma.sr" -edata $sr7
rlc log " B1.5: setup unit 0:3 as onl=1 bot=1 ----------------"
# use use ONL=1 BOT=1 for all units -> no error flags
set rsr0 [regbld ibd_tm11::RRL {onl 1} {bot 1} {unit 0}]
set rsr1 [regbld ibd_tm11::RRL {onl 1} {bot 1} {unit 1}]
set rsr2 [regbld ibd_tm11::RRL {onl 1} {bot 1} {unit 2}]
set rsr3 [regbld ibd_tm11::RRL {onl 1} {bot 1} {unit 3}]
# on readback SR has tur=1
set sr0 [regbld ibd_tm11::SR {onl 1} {bot 1} {tur 1}]
set sr1 [regbld ibd_tm11::SR {onl 1} {bot 1} {tur 1}]
set sr2 [regbld ibd_tm11::SR {onl 1} {bot 1} {tur 1}]
set sr3 [regbld ibd_tm11::SR {onl 1} {bot 1} {tur 1}]
$cpu cp -wibr "tma.cr" [ibd_tm11::rcr_wunit 0] \
-wibr "tma.rl" $rsr0 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 1] \
-wibr "tma.rl" $rsr1 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 2] \
-wibr "tma.rl" $rsr2 \
-wibr "tma.cr" [ibd_tm11::rcr_wunit 3] \
-wibr "tma.rl" $rsr3
rlc log " B2.1: loc write loc/rem read of cr -----------------"
# test all cr fields except ie and go (no interrupts and functions yet)
set crlist [list \
[regbld ibd_tm11::CR {den 0} {pevn 0} {unit 0} {ea 0} {func 0}] \
[regbld ibd_tm11::CR {den 3} {pevn 0} {unit 0} {ea 0} {func 0}] \
[regbld ibd_tm11::CR {den 3} {pevn 1} {unit 0} {ea 0} {func 0}] \
[regbld ibd_tm11::CR {den 3} {pevn 1} {unit 7} {ea 0} {func 0}] \
[regbld ibd_tm11::CR {den 3} {pevn 1} {unit 3} {ea 3} {func 0}] \
[regbld ibd_tm11::CR {den 3} {pevn 1} {unit 3} {ea 3} {func 7}] \
]
foreach cr $crlist {
# on cr read here always rdy=1
set crread [expr {$cr | [regbld ibd_tm11::CR {rdy 1}] } ]
$cpu cp -wma "tma.cr" $cr \
-rma "tma.cr" -edata $crread \
-ribr "tma.cr" -edata $crread
}
rlc log " B3.1: loc write loc/rem read for bc,ba -------------"
# Note: ba ignores bit 0, only word addresses
$cpu cp -wma "tma.bc" 0x0010 \
-wma "tma.ba" 0x0020 \
-rma "tma.bc" -edata 0x0010 \
-rma "tma.ba" -edata 0x0020 \
-ribr "tma.bc" -edata 0x0010 \
-ribr "tma.ba" -edata 0x0020
$cpu cp -wma "tma.bc" 0x8888 \
-wma "tma.ba" 0x7777 \
-rma "tma.bc" -edata 0x8888 \
-rma "tma.ba" -edata 0x7776 \
-ribr "tma.bc" -edata 0x8888 \
-ribr "tma.ba" -edata 0x7776
rlc log " B3.2: rem write loc/rem read for bc,ba -------------"
$cpu cp -wibr "tma.bc" 0x1234 \
-wibr "tma.ba" 0x4321 \
-rma "tma.bc" -edata 0x1234 \
-rma "tma.ba" -edata 0x4320 \
-ribr "tma.bc" -edata 0x1234 \
-ribr "tma.ba" -edata 0x4320
$cpu cp -wibr "tma.bc" 0x0000 \
-wibr "tma.ba" 0x0000 \
-rma "tma.bc" -edata 0x0000 \
-rma "tma.ba" -edata 0x0000 \
-ribr "tma.bc" -edata 0x0000 \
-ribr "tma.ba" -edata 0x0000

View File

@@ -0,0 +1,6 @@
# $Id: tm11_all.dat 683 2015-05-17 21:54:35Z mueller $
#
## steering file for all tm11 tests
#
test_tm11_regs.tcl
test_tm11_int.tcl

View File

@@ -1,4 +1,4 @@
# $Id: test_w11a_div.tcl 575 2014-07-27 20:55:41Z mueller $
# $Id: test_w11a_div.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_w11a_dsta_flow.tcl 575 2014-07-27 20:55:41Z mueller $
# $Id: test_w11a_dsta_flow.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_w11a_dstm_word_flow.tcl 575 2014-07-27 20:55:41Z mueller $
# $Id: test_w11a_dstm_word_flow.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_w11a_dstw_word_flow.tcl 575 2014-07-27 20:55:41Z mueller $
# $Id: test_w11a_dstw_word_flow.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_w11a_inst_traps.tcl 575 2014-07-27 20:55:41Z mueller $
# $Id: test_w11a_inst_traps.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,4 +1,4 @@
# $Id: test_w11a_srcr_word_flow.tcl 575 2014-07-27 20:55:41Z mueller $
# $Id: test_w11a_srcr_word_flow.tcl 683 2015-05-17 21:54:35Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory

View File

@@ -1,12 +1,7 @@
# $Id: w11a_all.dat 569 2014-07-13 14:36:32Z mueller $
# $Id: w11a_all.dat 683 2015-05-17 21:54:35Z mueller $
#
## steering file for all w11a tests
#
test_cp_gpr.tcl
test_cp_psw.tcl
test_cp_membasics.tcl
test_cp_ibrbasics.tcl
test_cp_cpubasics.tcl
test_w11a_srcr_word_flow.tcl
test_w11a_dstw_word_flow.tcl
test_w11a_dstm_word_flow.tcl