From 4a7f5612cfa8f92a8746ab0348b280e99f6f011c Mon Sep 17 00:00:00 2001 From: wfjm Date: Mon, 22 Aug 2022 08:50:07 +0200 Subject: [PATCH] sysid: encode system type --- doc/CHANGELOG.md | 19 +++++++++++++------ doc/w11a_known_differences.md | 18 ++++++++++++++++++ rtl/w11a/pdp11_reg70.vhd | 9 +++++---- tools/simh/setup_w11a_max.scmd | 7 ++++++- tools/simh/setup_w11a_mcode.scmd | 7 ++++++- tools/simh/setup_w11a_min.scmd | 7 ++++++- 6 files changed, 54 insertions(+), 13 deletions(-) diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index c3afbbd1..bc5a7c20 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -36,6 +36,7 @@ The full set of tests is only run for tagged releases. - remove Atlys support (only test designs, a w11 design was never done) - cleanup SimH setup files (\*.scmd), use autoconfig, set disk types - cleanup code base, use page,mmr\*,pdr,par instead of segment,ssr\*,sdr,sar +- sysid encodes now system type, allows to distingish w11,SimH,e11 ### New features - new verification codes - tools/tcode: fast cpu verification codes @@ -69,9 +70,15 @@ The full set of tests is only run for tagged releases. - rtl/sys_gen/tst_rlink_cuff/atlys/sys_tst_rlink_cuff_atlys - rtl/sys_gen/tst_snhumanio/atlys/sys_tst_snhumanio_atlys - general changes - - DEC used in early documents 'segment', later on 'page' for the MMU object - - in the w11a code base (\*.vhd,\*.\*pp,\*.tcl,\*.mac) the naming was mixed - - now all changed to page,mmr\*,pdr,par; all segment,ssr\*,sdr,sar removed + - segment -< page rename + - DEC used in early documents 'segment', later on 'page' for the MMU object + - in the w11a code base (\*.vhd,\*.\*pp,\*.tcl,\*.mac) the naming was mixed + - now all changed to page,mmr\*,pdr,par; all segment,ssr\*,sdr,sar removed + - usage of 11/70 sysid + - encodes emulator(15),type(14:12),cpu_number(11:09) and serial number(8:0) + - pdp11_reg70: set sysid to 010123 --> real w11 + - *.scmd: set sysid to 110234 --> emu Simh + - *.ecmd: set sysid to 120345 --> emu e11 ### Bug Fixes - tools/asm-11/lib - tcode_std_start.mac: fix sdreg probe code @@ -375,7 +382,7 @@ The full set of tests is only run for tagged releases. ## 2018-12-29: [w11a_V0.753](https://github.com/wfjm/w11/releases/tag/w11a_V0.753) - rev 1096(wfjm) ### Summary - add continuous integration support via [Travis CI](https://travis-ci.org), - add [project wfjm/w11](https://travis-ci.org/wfjm/w11), and setup + add [project wfjm/w11](https://travis-ci.org/wfjm/w11), and set up a `.travis.yml` ([see blog](https://wfjm.github.io/blogs/w11/2018-09-16-travis-based-ci-cd-workflow.html)). - use static source code analysis [Coverity Scan](https://scan.coverity.com), add [project wfjm/w11](https://scan.coverity.com/projects/wfjm-w11). @@ -438,7 +445,7 @@ The full set of tests is only run for tagged releases. - DM_STAT_SY: removed, now replaced by DM_STAT_CA - DM_STAT_EXP: added, for signals exported by pdp11_sys70 - pdp11_sys70: - - instantiate pdp11_dmpcnt, setup performance counter sigs + - instantiate pdp11_dmpcnt, set up performance counter sigs - drop ITIMER,DM_STAT_DP, use DM_STAT_EXP, add PERFEXT port - pdp11_sequencer: drive DM_STAT_SE.(cpbusy,idec,pcload,itimer), drop ITIMER - pdp11_cache: drop CHIT, add DM_STAT_CA port, add detailed monitoring @@ -679,7 +686,7 @@ The full set of tests is only run for tagged releases. - w11 shell .bs now support ibus register names and ranges - rw11/dmhbpt.tcl: hb_set: use imap_range2addr, allow regnam and range - integrate rbus monitor in w11 shell - - ti_rri: setup rbus monitor if detected + - ti_rri: set up rbus monitor if detected - rw11/shell.tcl: add .rme,.rmd,.rmf,.rml - ibd_ibmon/util.tcl: move out imap_reg2addr - rbmoni/util.tcl: add procs filter,rme,rmf diff --git a/doc/w11a_known_differences.md b/doc/w11a_known_differences.md index 021fbb3a..33bf19b6 100644 --- a/doc/w11a_known_differences.md +++ b/doc/w11a_known_differences.md @@ -10,6 +10,7 @@ The issues of the w11 CPU and systems are listed in a separate document - [Differences in unspecified behavior cases between w11a and KB11-C (11/70)](#user-content-unspec) - [Known limitations](#user-content-lim) +- [Other differences](#user-content-other) ### Known differences between w11a and KB11-C (11/70) @@ -82,3 +83,20 @@ this is considered as acceptable implementation difference. to a timeout, again mostly in test programs. **--> a 'watch dog' mechanism will be added in a future version which suspends the CPU when the server doesn't respond fast enough.** + + +### Other differences + +- usage of 11/70 SYSID register + - in real 11/70's sysid held the individual serial number + - in the w11 project sysid encodes the execution environment + - this allows to distinguish between real w11 and emulation under SimH or e11 + - the SYSID is divided in fields + - bit 15: emulator flag (0=w11,1=emulator) + - bit 14:12: type, encodes w11 or emulator type + - bit 11:09: cpu number on 11/74 systems + - bit 8:0: serial number + - current assignments are + - w11a: 010123 + - SimH: 110234 + - e11: 120345 diff --git a/rtl/w11a/pdp11_reg70.vhd b/rtl/w11a/pdp11_reg70.vhd index 09823713..2796d618 100644 --- a/rtl/w11a/pdp11_reg70.vhd +++ b/rtl/w11a/pdp11_reg70.vhd @@ -1,6 +1,6 @@ --- $Id: pdp11_reg70.vhd 1181 2019-07-08 17:00:50Z mueller $ +-- $Id: pdp11_reg70.vhd 1279 2022-08-14 08:02:21Z mueller $ -- SPDX-License-Identifier: GPL-3.0-or-later --- Copyright 2008-2015 by Walter F.J. Mueller +-- Copyright 2008-2022 by Walter F.J. Mueller -- ------------------------------------------------------------------------------ -- Module Name: pdp11_reg70 - syn @@ -9,10 +9,11 @@ -- Dependencies: - -- Test bench: tb/tb_pdp11_core (implicit) -- Target Devices: generic --- Tool versions: ise 8.2-14.7; viv 2014.4-2016.1; ghdl 0.18-0.33 +-- Tool versions: ise 8.2-14.7; viv 2014.4-2022.1; ghdl 0.18-2.0.0 -- -- Revision History: -- Date Rev Version Comment +-- 2022-08-14 1279 1.1.3 set sysid to 010123 -- 2015-04-30 670 1.1.2 rename sys70 -> reg70 -- 2011-11-18 427 1.1.1 now numeric_std clean -- 2010-10-17 333 1.1 use ibus V2 interface @@ -103,7 +104,7 @@ begin idout(r.mbrk'range) := r.mbrk; end if; if r.ibsel_sysid = '1' then - idout := slv(to_unsigned(8#123456#,16)); + idout := slv(to_unsigned(8#010123#,16)); end if; if r.ibsel_mbrk='1' and ibw0='1' then diff --git a/tools/simh/setup_w11a_max.scmd b/tools/simh/setup_w11a_max.scmd index c641a51e..fddc4fbe 100644 --- a/tools/simh/setup_w11a_max.scmd +++ b/tools/simh/setup_w11a_max.scmd @@ -1,4 +1,4 @@ -; $Id: setup_w11a_max.scmd 1275 2022-08-10 08:10:40Z mueller $ +; $Id: setup_w11a_max.scmd 1280 2022-08-15 09:12:03Z mueller $ ; SPDX-License-Identifier: GPL-3.0-or-later ; Copyright 2008-2022 by Walter F.J. Mueller ; @@ -23,6 +23,7 @@ ; ; Revision History: ; Date Rev Version Comment +; 2922-08-14 1280 1.1.1 set sysid, indicate simulator and SimH ; 2022-07-14 1256 1.1 use autoconfig, cleanups ; 2008-12-28 182 1.0 Initial version ; @@ -34,6 +35,10 @@ set cpu 4m set cpu oct set cpu idle ; +; set sysid, leading '1' indicates simulator, next '1' SimH +; +dep sysid 110234 +; ; clock options ; set clk 50hz diff --git a/tools/simh/setup_w11a_mcode.scmd b/tools/simh/setup_w11a_mcode.scmd index 97f10b93..3457e464 100644 --- a/tools/simh/setup_w11a_mcode.scmd +++ b/tools/simh/setup_w11a_mcode.scmd @@ -1,4 +1,4 @@ -; $Id: setup_w11a_mcode.scmd 1276 2022-08-12 10:25:13Z mueller $ +; $Id: setup_w11a_mcode.scmd 1280 2022-08-15 09:12:03Z mueller $ ; SPDX-License-Identifier: GPL-3.0-or-later ; Copyright 2022- by Walter F.J. Mueller ; @@ -17,6 +17,7 @@ ; ; Revision History: ; Date Rev Version Comment +; 2922-08-14 1280 1.1.1 set sysid, indicate simulator and SimH ; 2022-08-10 1275 1.0 Initial version (derived from setup_w11a_max.scmd) ; ; processor options @@ -28,6 +29,10 @@ set cpu oct set cpu idle set cpu hist=1000 ; +; set sysid, leading '1' indicates simulator, next '1' SimH +; +dep sysid 110234 +; ; clock options ; set clk 50hz diff --git a/tools/simh/setup_w11a_min.scmd b/tools/simh/setup_w11a_min.scmd index b1db7b44..6693be5c 100644 --- a/tools/simh/setup_w11a_min.scmd +++ b/tools/simh/setup_w11a_min.scmd @@ -1,4 +1,4 @@ -; $Id: setup_w11a_min.scmd 1275 2022-08-10 08:10:40Z mueller $ +; $Id: setup_w11a_min.scmd 1280 2022-08-15 09:12:03Z mueller $ ; SPDX-License-Identifier: GPL-3.0-or-later ; Copyright 2009-2022 by Walter F.J. Mueller ; @@ -25,6 +25,7 @@ ; ; Revision History: ; Date Rev Version Comment +; 2922-08-14 1280 1.1.1 set sysid, indicate simulator and SimH ; 2022-07-14 1256 1.1 use autoconfig, cleanups ; 2009-09-13 238 1.0 Initial version ; @@ -36,6 +37,10 @@ set cpu 1m set cpu oct set cpu idle ; +; set sysid, leading '1' indicates simulator, next '1' SimH +; +dep sysid 110234 +; ; clock options ; set clk 50hz