From 2b7b47e169c1706928649a0a840c707952c28cc5 Mon Sep 17 00:00:00 2001 From: wfjm Date: Sat, 29 Oct 2022 15:01:20 +0200 Subject: [PATCH] minor tcode updates - cpu_mmu.mac: make C2.3 test more robust - tcode.ecmd: use 'set cpu nouwin' to emulate w11 behavior --- doc/w11a_diff_70_unibus_mapping.md | 11 ++++++++++- tools/tcode/cpu_mmu.mac | 10 ++++++---- tools/tcode/tcode.ecmd | 10 +++++++++- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/doc/w11a_diff_70_unibus_mapping.md b/doc/w11a_diff_70_unibus_mapping.md index 0c0bdfc7..7734875d 100644 --- a/doc/w11a_diff_70_unibus_mapping.md +++ b/doc/w11a_diff_70_unibus_mapping.md @@ -8,4 +8,13 @@ allows to access via 17000000:17757777 the memory exactly as a UNIBUS device would see it. The w11a doesn't implement this remapping, an access in the range -17000000:17757777 causes an NXM fault. +17000000:17757777 causes an NXM fault and will set the NXM bit in CPUERR. + +Notes: +- on a 11/70 an access non-existing memory via the UNIBUS map will result + in a UNIBUS timeout and set the ITO bit CPUERR. +- SimH doesn't implement the UNIBUS window, in a 4 MB memory conficuration + the address range 17000000:17757777 will be normal memory. +- e11 implements the UNIBUS window and from V7.4 on access to main memory + via the UNIBUS map. This can be disabled via `set cpu nouwin`. When used + with `set memory 3840` an e11 system will be behave like the w11. diff --git a/tools/tcode/cpu_mmu.mac b/tools/tcode/cpu_mmu.mac index 0c1037d8..d3871d23 100644 --- a/tools/tcode/cpu_mmu.mac +++ b/tools/tcode/cpu_mmu.mac @@ -1,4 +1,4 @@ -; $Id: cpu_mmu.mac 1305 2022-10-23 07:44:21Z mueller $ +; $Id: cpu_mmu.mac 1311 2022-10-29 12:57:38Z mueller $ ; SPDX-License-Identifier: GPL-3.0-or-later ; Copyright 2022- by Walter F.J. Mueller ; @@ -1183,7 +1183,7 @@ tc0203: mov #vhmmua,v..mmu ; 1100$: mfpi (r2) ; 1200$: mfpd (r2) ; -1000$: mov #020100,sp ; set SP into 1st click page 1, non-resident +1000$: mov #020040,sp ; set SP into 1st click page 1, non-resident mov #1010$,vhvmmu mov #1001$,r2 jsr pc,(r2) ; will fail @@ -1231,7 +1231,8 @@ tc0203: mov #vhmmua,v..mmu ; dddddrrrdddddrrr .word ^b0000000000010110 ; mmr1 +2,6 ; -2100$: mov #2110$,vhvmmu +2100$: mov #020040,sp ; set SP into 1st click page 1, non-resident + mov #2110$,vhvmmu mov #1,r2 ; not used mtpi (r2) ; will fail halt @@ -1239,7 +1240,8 @@ tc0203: mov #vhmmua,v..mmu ; dddddrrrdddddrrr .word ^b0000000000010110 ; mmr1 +2,6 ; -2200$: mov #2210$,vhvmmu +2200$: mov #020040,sp ; set SP into 1st click page 1, non-resident + mov #2210$,vhvmmu mov #1,r2 ; not used mtpd (r2) ; will fail halt diff --git a/tools/tcode/tcode.ecmd b/tools/tcode/tcode.ecmd index 853ca6eb..b5dd78d0 100644 --- a/tools/tcode/tcode.ecmd +++ b/tools/tcode/tcode.ecmd @@ -1,13 +1,21 @@ -! $Id: tcode.ecmd 1306 2022-10-23 19:27:25Z mueller $ +! $Id: tcode.ecmd 1311 2022-10-29 12:57:38Z mueller $ ! SPDX-License-Identifier: GPL-3.0-or-later ! Copyright 2022- by Walter F.J. Mueller ! ! setup w11 like processor configuration +! set nouwin to disable UNIBUS window (17000000-17757777) to UNIBUS map +! set memory to 3840 +! this way e11 behaves like w11 and SimH, which simplifies tcodes ! set cpu 70 +set cpu nouwin set memory 3840 set cpu nofpp set idle delay=1 +! set ^E as break character (like in SimH) +set break 005 +! enable PC value logging (inspect with show pclog) +set pclog on ! set sysid, leading '1' indicates simulator, next '2' e11 set cpu SYSID=0120345 !