Closed bjorend closed 1 year ago
Here is fine. Thanks Bjoren, that looks like a good fix. The DH-11 manual says clearly this register is byte writable, so this seems like an omission in the original code. It describes one of the others as only word-writable, and it doesn't say about most of the rest.
On the 300 baud thing, yes, another issue would be good. Please show what the code is trying to do and what the resulting registers are.
Judging from a quick test and comparing against a DHU line, it seems that the emulated speed of the DH line is 1200 baud, give or take -- and it doesn't change when I change the speed in the device CSR.
Fixed by PR 204.
Context
I found this problem when trying to run Unix v7. Its DH-11 driver does do byte-wide access to the "CSR" or "SCR" register (from [https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/sys/dev/dh.c]):
the output of "sim> SHOW VERSION" while running the simulator which is having the issue
The "uncommitted changes" include my bugfix for this issue (see below).
how you built the simulator or that you're using prebuilt binaries
I built simh from github code on my Mac M1 running macOS 13.2.1
the simulator configuration file (or commands) which were used when the problem occurred.
;attach tu0 /Users/bkd/projects/2023/bhtapes/bh1/img/bh1_read5_rev_25ips_fixed.tap ;attach tu0 /Users/bkd/projects/2023/bhtapes/bh2/ex/bh2_bh3_unified.tap ;attach tu0 /Users/bkd/projects/2023/bhtapes/bh2/img/bh2_read2.tap ;attach tu0 /Users/bkd/projects/2023/bhtapes/bh3/img/bh3_read2.tap echo echo At the sim> prompt, type 'boot rp0' echo Then into the empty space type 'go' echo echo And then before timesharing starts, type ^E echo and issue the following commands to echo set the clock (assuming you booted echo /unix): echo ! ./time_deposit_cmds.sh echo
bkd@titus simh % git diff PDP11/pdp11_dh.c | dos2unix diff --git a/PDP11/pdp11_dh.c b/PDP11/pdp11_dh.c index 030255cc..a0866d14 100644 --- a/PDP11/pdp11_dh.c +++ b/PDP11/pdp11_dh.c @@ -191,6 +191,17 @@ dh_wr(int32 data, int32 PA, int32 access) switch (PA & 017) { case 000: sim_debug (DBG_IO, &dh_dev, "WRITE DHSCR %06o\n", data);
you may also need to provide specific pointers to data files that may be necessary to demonstrate the problem
A couple of other points, if I may: