Search

Saturday, November 27, 2021

Hacking TOPS-10 for 4 Lines of DUP11


DEC DUP-11 communications card

Jotting this down, "recipe" thanks to kind souls (initials of RLA and RV probably show up in the recipe execution) ... to be wrapped up over time ...



#####
# We bump up the number of DUP lines on TWONKY
# dup0 = DECNET
# dup1 - dup3 = ANF10
#
# We do 4 lines because SimH allows 4 lines
#
# NOTE: We can have 8 DUP lines on TWONKY but running it under
# SimH's support of max 4 lines causes numerous problems
# So stick to 4 DUP lines
#
# I have simply followed instructions from gurus at HECnet
# For more information on patching TOPS-10 7.04 NET on KS10 processor
# please reach out to HECnet: http://www.update.uu.se/~bqt/hecnet.html
#####
localuser@myhostname:~/simh.run/twonky/bin$ screen -r twonky
BOOT>[1,5]SYSTEM
[Loading from DSKA:SYSTEM.EXE[1,5]]
SIMH KS10 TWONKY 7.04NET 15-Nov-21
Why reload: SCHED
Date:
Time:
Startup option: GO
[Rebuilding the system search list from the HOM blocks]
[Rebuilding the active swapping list from the HOM blocks]
[Rebuilding the system dump list from the HOM blocks]
SIMH KS10 TWONKY 7.04NET 00:09:12 CTY system 4998
Connected to Node TWONKY(37) Line # 32
.LOGIN 1,2
.R OPR
[CCPWFD Waiting for file daemon to start]
%% Node VENTI(20) up at :09:18
%%TTY STOMPER - Not starting
%FRCLIN INITIA - Logging out
%% Node HUGIN(2) up at :09:20
%% Node MUNIN(3) up at :09:23
OPR>
0:09:25 -- Message from the Accounting System --
Account validation is not required
0:09:27 -- Network topology --
Nodes on-line:
BALDER (4) ODEN (1) MUNIN (3) HUGIN (2) VENTI (20)
0:09:27 -- Begin auto take file --
File: SYS:SYSTEM.CMD[1,4]
0:09:27 -- End auto take file --
36 lines processed
OPR>
0:09:28 Reader 0 -- Started --
OPR>
0:09:29 FAL-Stream 0 -- Started --
OPR>
0:09:35 FAL-Stream 1 -- Started --
OPR>enter ncp
NCP>take nodnam.cmd
0:10:04 NCP
Request # 9; Set Node Completed
0:10:04 NCP
....
....
Request # 926; Set Node Completed
0:10:26 NCP
Request # 927; Set Node Completed
0:10:26 NCP
Request # 928; Set Node Completed
NCP>return
OPR>exit
.net
[ANF10 network: connected to TWONKY(37), located at TWONKY(37), 6 nodes]
Node ODEN (1) Oden Tops10 7.04 12-Nov-21
Node HUGIN (2) HUGIN Tops10 7.04 12-Nov-21
Node MUNIN (3) MUNIN Tops10 7.04 12-Nov-21
Node BALDER (4) BALDER Tops10 7.04 12-Nov-21
Node VENTI (20) SIMH KS10 VENTI 7.04 NET 18-Nov-21
Node TWONKY (37) SIMH KS10 TWONKY 7.04NET 15-Nov-21
[DECnet network: local node TWONKY, 51 reachable nodes in area 31]
(31.153) AHIMSA CAIR CGOING CLOUDY CSHORE FEDACH FOMFOR IBM390
IMPRTR
IMPVAX JUICHI KARMA KETURA LV MACOS7 MACOS9 MOKSHA MOSHML NANAJU
NJEVX1 NJEVX2 NOFAR OSTARA PIPY PYDNET PYRTR QCOCAL RAPTOR RST101
SEACOW SEAHAG SEAPIG SHAKTI TOWEL TRAINS TRU64 TSTVAX TSVMSA TSVMST
TSVMSZ TWENEX TWONKY VAXSTN W2000S WEXPEE WFW311 WXPEE2 XL XLIV
XLVII
.
.; ADD SOME NODES TO SYSTEM.CMD
.
.
.TYPE [1,4]SYSTEM.CMD
; Startup file for TWONKY - RLA [13-NOV-2021] ...
; General system configuration ...
CONFIG ADD MEMORY 512K 1024K
DISABLE OUTPUT-DISPLAY ALL-MESSAGES /JOB
ENABLE VOLUME-RECOGNITION TAPE-DRIVES
; Start up the printer ...
SET PRINTER 0 PAGE-LIMIT 2000
START PRINTER 0
; Start up the batch queues ...
SET BATCH-STREAM 0 TIME-LIMIT 0:10 ;TIME: 0 TO 10 MINUTES
SET BATCH-STREAM 1 TIME-LIMIT 0:60 ;TIME: 0 TO 1 HOUR
SET BATCH-STREAM 2 TIME-LIMIT 10:100000 ; FOR LONG STREAMS
START BATCH-STREAM 0:2
; Start the card reader ...
START READER 0
; Start the DECnet network ...
; Sampsa, you can add your own node names here. TOPS-10 has no permanent
; node name database ...
ENTER NCP
SET NODE 1.13 NAME MIM
SET NODE 2.1023 NAME A2RTR
SET NODE 2.1 NAME LEGATO
SET NODE 2.20 NAME VENTI
SET CIRCUIT KDP-0-0 STATE ON
RETURN
; Start up FAL for DECNET ...
SET FAL-STREAM 0 NETWORK DECNET
SET FAL-STREAM 1 NETWORK DECNET
START FAL-STREAM 0
START FAL-STREAM 1
.
.TECO [1,4]SYSTEM.CMD
[2K Core]
*AAAA$$
*SVENTI$$
*I
SET NODE 31.1 NAME IMPVAX
SET NODE 31.2 NAME KARMA
SET NODE 31.3 NAME PYRTR
SET NODE 31.10 NAME QCOCAL
SET NODE 31.37 NAME TWONKYYKNOWT EMAN 7340 NAME TWONK2
SET NODE 31.1020 NAME MOKSHA
SET NODE 31.1021 NAME PYDNET
SET NODE 31.1022 NAME AHIMSA
SET NODE 31.1023 NAME IMPRTR$$
*EX$$
.TYPE [1,4]SYSTEM.CMD
; Startup file for TWONKY - RLA [13-NOV-2021] ...
; General system configuration ...
CONFIG ADD MEMORY 512K 1024K
DISABLE OUTPUT-DISPLAY ALL-MESSAGES /JOB
ENABLE VOLUME-RECOGNITION TAPE-DRIVES
; Start up the printer ...
SET PRINTER 0 PAGE-LIMIT 2000
START PRINTER 0
; Start up the batch queues ...
SET BATCH-STREAM 0 TIME-LIMIT 0:10 ;TIME: 0 TO 10 MINUTES
SET BATCH-STREAM 1 TIME-LIMIT 0:60 ;TIME: 0 TO 1 HOUR
SET BATCH-STREAM 2 TIME-LIMIT 10:100000 ; FOR LONG STREAMS
START BATCH-STREAM 0:2
; Start the card reader ...
START READER 0
; Start the DECnet network ...
; Sampsa, you can add your own node names here. TOPS-10 has no permanent
; node name database ...
ENTER NCP
SET NODE 1.13 NAME MIM
SET NODE 2.1023 NAME A2RTR
SET NODE 2.1 NAME LEGATO
SET NODE 2.20 NAME VENTI
SET NODE 31.1 NAME IMPVAX
SET NODE 31.2 NAME KARMA
SET NODE 31.3 NAME PYRTR
SET NODE 31.10 NAME QCOCAL
SET NODE 31.40 NAME TWONK2
SET NODE 31.1020 NAME MOKSHA
SET NODE 31.1021 NAME PYDNET
SET NODE 31.1022 NAME AHIMSA
SET NODE 31.1023 NAME IMPRTR
SET CIRCUIT KDP-0-0 STATE ON
RETURN
; Start up FAL for DECNET ...
SET FAL-STREAM 0 NETWORK DECNET
SET FAL-STREAM 1 NETWORK DECNET
START FAL-STREAM 0
START FAL-STREAM 1
.
.; Lets also add PIPY to the list of nodes in SYSTEM.CMD ...
.TECO [1,4]SYSTEM.CMD
[2K Core]
*SQCOCAL$$
*I
SET NODE 31.32 NAME PIPY$$
*EX$$
.
.
.
.TYPE [1,4]SYSTEM.CMD
; Startup file for TWONKY - RLA [13-NOV-2021] ...
; General system configuration ...
CONFIG ADD MEMORY 512K 1024K
DISABLE OUTPUT-DISPLAY ALL-MESSAGES /JOB
ENABLE VOLUME-RECOGNITION TAPE-DRIVES
; Start up the printer ...
SET PRINTER 0 PAGE-LIMIT 2000
START PRINTER 0
; Start up the batch queues ...
SET BATCH-STREAM 0 TIME-LIMIT 0:10 ;TIME: 0 TO 10 MINUTES
SET BATCH-STREAM 1 TIME-LIMIT 0:60 ;TIME: 0 TO 1 HOUR
SET BATCH-STREAM 2 TIME-LIMIT 10:100000 ; FOR LONG STREAMS
START BATCH-STREAM 0:2
; Start the card reader ...
START READER 0
; Start the DECnet network ...
; Sampsa, you can add your own node names here. TOPS-10 has no permanent
; node name database ...
ENTER NCP
SET NODE 1.13 NAME MIM
SET NODE 2.1023 NAME A2RTR
SET NODE 2.1 NAME LEGATO
SET NODE 2.20 NAME VENTI
SET NODE 31.1 NAME IMPVAX
SET NODE 31.2 NAME KARMA
SET NODE 31.3 NAME PYRTR
SET NODE 31.10 NAME QCOCAL
SET NODE 31.32 NAME PIPY
SET NODE 31.40 NAME TWONK2
SET NODE 31.1020 NAME MOKSHA
SET NODE 31.1021 NAME PYDNET
SET NODE 31.1022 NAME AHIMSA
SET NODE 31.1023 NAME IMPRTR
SET CIRCUIT KDP-0-0 STATE ON
RETURN
; Start up FAL for DECNET ...
SET FAL-STREAM 0 NETWORK DECNET
SET FAL-STREAM 1 NETWORK DECNET
START FAL-STREAM 0
START FAL-STREAM 1
.
.
.; NOW ADD A WELCOME MESSAGE
.
.MAKE SYS:NOTICE.TXT
*I ___ _ _ ___ ___ _ _ _ _
/ __| /_\ | \| \ \ / /_\ | | _ _ ___| |_ | | __ _ |__ ___
\__ \/ _ \| .` |\ V / _ \| |__| ' \/ -_) _| | |__/ _` | '_ (_-<
|___/_/ \_\_\|_| |/_/ \_\____|_||_\___|\__| |____\__,_|_.__/__/
WELCOME TO TOPS-10 VERSION 7.04 ON A DEC PDP-01 KS1 PROCESSOR$$
*EX
$$
.TYPE SYS:NOTICE.TXT
___ _ _ ___ ___ _ _ _ _
/ __| /_\ | \| \ \ / /_\ | | _ _ ___| |_ | | __ _| |__ ___
\__ \/ _ \| .` |\ V / _ \| |__| ' \/ -_) _| | |__/ _` | '_ (_-<
|___/_/ \_\_|\_| |_/_/ \_\____|_||_\___|\__| |____\__,_|_.__/__/
WELCOME TO TOPS-10 VERSION 7.04 ON A DEC PDP-10 KS10 PROCESSOR
.
.; GOOD
.
.
.
Monitor SIMH KS10 TWONKY 7.04NET
System uptime :50:47
Current date/time Saturday 27-Nov-121 1:00:00
.
.
.; Fix permissions for notice.txt, there probably is a
.; easier command on TOP-10 ...
.
.
.copy sys:notice.txt<055>=sys:notice.txt
.dir sys:notice.txt
NOTICE TXT 1 <055> 27-Nov-21 DSKA: [1,4]
.kjob
[LGNJSP Other jobs same PPN]
Job 2 User OPR [1,2]
Logged-off CTY at 1:22:47 on 27-Nov-121
Runtime: 0:08:23, KCS:4074, Connect time: 1:13:35
Disk Reads:945, Writes:52, Blocks saved:0
.login guest
Job 2 SIMH KS10 TWONKY 7.04NET CTY
[LGNLAS Last access to [14,14] succeeded on 16-Nov-121:17:10:43]
01:22 27-Nov-121 Saturday
___ _ _ ___ ___ _ _ _ _
/ __| /_\ | \| \ \ / /_\ | | _ _ ___| |_ | | __ _| |__ ___
\__ \/ _ \| .` |\ V / _ \| |__| ' \/ -_) _| | |__/ _` | '_ (_-<
|___/_/ \_\_|\_| |_/_/ \_\____|_||_\___|\__| |____\__,_|_.__/__/
WELCOME TO TOPS-10 VERSION 7.04 ON A DEC PDP-10 KS10 PROCESSOR
.
.kjob
Job 2 User GUEST [14,14]
Logged-off CTY at 1:23:19 on 27-Nov-121
Runtime: 0:00:00, KCS:1, Connect time: 0:00:27
Disk Reads:43, Writes:8, Blocks saved:0
.login 1,2
Job 2 SIMH KS10 TWONKY 7.04NET CTY
[LGNJSP Other jobs same PPN]
%LGNSVM Set maximum virtual and physical limits failed
[LGNLAS Last access to [1,2] succeeded on 16-Nov-121:04:51:01]
01:23 27-Nov-121 Saturday
.; NOTICE.TXT works :)
.
.; START OF RECIPE FOR 8 LINES OF DUP11
.
.
.R SETSRC
*CP [10,7,MON]
*^C
.DIR NETPRM.MAC
NETPRM MAC 75 <155> 29-Feb-88 DSKB: [10,7,MON]
.
.COPY NETPRM.ORG=NETPRM.MAC
.TECO NETPRM.MAC
[2K Core]
*AAAAAAAA$$
[3K Core]
[4K Core]
[5K Core]
*AAAAAAAA$$
[6K Core]
[7K Core]
*AAAAAAAA$$
[8K Core]
[9K Core]
*SMXNDUP$$
*0TT$$
MXNDUP==^D2 ;MAXIMUM NUMBER OF DUP-11'S ON THE KMC-11
*3C$$
*T$$
D2 ;MAXIMUM NUMBER OF DUP-11'S ON THE KMC-11
*2D$$
*ID8$$
*0TT$$
MXNDUP==^D8 ;MAXIMUM NUMBER OF DUP-11'S ON THE KMC-11
*EX$$
.
.
.; REASSEMBLE NETPRM.MAC
.COMPIL/COMPIL NETPRM
MACRO: NETPRM
EXIT
.
.
.DIR [10,7,MON,KS]NETPRM.*
%WLDNSF No such files as [10,7,MON,KS]NETPRM.*
.DIR REL:NETPRM.*
%WLDNSF No such files as REL:NETPRM.*
.; SO NO NEED TO COPY NETPRM.REL
.
.
.
.; NOW TACKLE D8KINT, KDPSER, and KDPINT
.
.COMPIL/COMPIL D8KINT
MACRO: D8KINT
KDPSER
KDPINT
EXIT
.
.DIR D8KINT*
D8KINT MAC 231 <155> 16-Feb-88 DSKB: [10,7,MON]
D8KINT REL 37 <057> 27-Nov-21
Total of 268 blocks in 2 files on DSKB: [10,7,MON]
.
.DIR [10,7,MON,KS]TOPS10.REL
TOPS10 REL 2300 <057> 4-Nov-21 DSKB: [10,7,MON,KS]
.COPY [10,7,MON,KS]TOPS10.ORG=[10,7,MON,KS]TOPS10.REL
.
.
.DIR REL:TOPS10.REL
TOPS10 REL 2300 <055> 4-Nov-21 DSKA: [5,11]
.COPY REL:TOPS10.ORG=REL:TOPS10.REL
.
.
.; NOW WE REPLACE D8KINT, KDPSER AND KDPINT IN BOTH COPIES OF TOPS10.REL IN [10,
7,MON,KS] AND REL:
.
.; WE TEMPORARILY USE X.REL AND THEN COPY X.REL TO TOPS10.REL IN PROPER PLACES..
.
.
.COPY REL:X.REL=REL:TOPS10.REL
.R MAKLIB
*REL:X.REL=REL:TOPS10.REL/MASTER:D8KINT,[10,7,MON]D8KINT.REL/REPLACE:D8KINT
?WLDLKE Non-existent SFD file REL:D8KINT.REL[10,7,MON]
?MKLTFR all TRANSACTION files rejected by conditions
*^C
.; THAT DIDN'T WORK; COPY D8KINT.REL TO REL: TO MAKE IT EASIER AND RETRY ...
.COPY REL:D8KINT.REL=D8KINT.REL
.R MAKLIB
*REL:X.REL=REL:TOPS10.REL/MASTER:D8KINT,REL:D8KINT.REL/REPLACE:D8KINT
%MKLNIO OUTPUT file REL:X.REL will not be INDEXed
*REL:X.REL=REL:X.REL/MASTER:KDPSER,REL:D8KINT.REL/REPLACE:KDPSER
*REL:X.REL=REL:X.REL/MASTER:KDPINT,REL:D8KINT.REL/REPLACE:KDPINT
*
*; LOOKS LIKE REPLACEMENT WORKED, GET A LIST OF MODULES IN X.REL ...
*
*TTY:=REL:X.REL/LIST
Listing of Modules
Produced by MAKLIB Version 2C(132) on 27-Nov-121 at 1:50:43
**************************
REL:X.REL[5,11] Created on 27-Nov-121 at 1:49:00
VJBDAT 000000 000021
APRSER 000023 000021
D36COM 000112 000021
DNADLL 000026 000021
LLINKS 000066 000021
NRTSER 000253 000021
NTMAN 000022 000021
ROUTER 000072 000021
SCLINK 000035 000021
SCMUUO 000024 000021
D8RINT 000000 000021
DMRSER 000045
DMRINT 000000
KASER 000000 000021
PPSSER 000257 000021
PRSSER 000177 000021
RX2SER 000000 000021
AUTCON 000207 000021
CD2SER 000000 000113
CLOCK1 000003 000021
COMCON 000115 000021
CORE1 000000 000021
CTXSER 000015 000021
D60SER 000000 000021
D8KINT 000000 000021
KDPSER 000045
KDPINT 000000
DATMAN 000000 000021
DZINT 000003 000021
ERRCON 000012 000021
FILFND 000000 000021
FILIO 000011 000021
FILUUO 000005 000021
IPCSER 000000 000021
LATSER 000137 000021
LOKCON 000000 000021
LP2SER 000000 000551
MONBTS 000003 000021
MONPFH 000000 000021
MPXSER 000033 000032
NETDEV 000000 000021
NETCDR 000000
NETDDP 000000
NETLPT 000000
NETMCR 000001
NETPLT 000000
NETRDX 000000
NETTSK 000001
NETVTM 000000
NETSER 000173 000021
NULFEK 000000 000021
ONCMOD 000000 000021
PSISER 000000 000021
PTYSER 000024 000024
QUESER 000036 000021
REFSTR 000000 000021
RHXKON 000000 000142
SCHED1 000124 000021
SCNSER 000217 000132
SEGCON 000003 000021
SWPSER 000001 000021
SYSINI 000000 000021
TAPSER 000000 000021
TAPUUO 000042 000041
TM2KON 000000 000145
TMPUUO 000000 000021
UUOCON 000242 000021
VMSER 000000 000021
PATCH 000500 000021
EDDT 022317 000077
USRONC 000000 000021
MONEND 000000
*
*;LOOKS GOOD
*
*^Z
.COPY REL:TOPS10.REL=REL:X.REL
.COPY [10,7,MON,KS]TOPS10.REL=REL:X.REL
.
.DIR REL:TOPS10*
TOPS10 REL 2296 <055> 27-Nov-21 DSKA: [5,11]
TOPS10 ORG 2300 <057> 27-Nov-21
Total of 4596 blocks in 2 files on DSKA: [5,11]
.DIR [10,7,MON,KS]TOPS10*
TOPS10 ORG 2300 <155> 27-Nov-21 DSKB: [10,7,MON,KS]
TOPS10 REL 2296 <057> 27-Nov-21
Total of 4596 blocks in 2 files on DSKB: [10,7,MON,KS]
.
.;OK, DONE TOPS10.REL REPLACEMENTS
.; NEXT STEP
.; NOTE: SYSCNF.MAC hack is not needed as we are going to hack MONGEN.MAC
.; which handles SYSCNF.MAC automatically
.
.
.; HACK MONGEN AFTER TAKING BACKUP
.
.COPY MONGEN.ORG=MONGEN.MAC
.TECO MONGEN.MAC
[2K Core]
*AAAAAAAA$$
[3K Core]
[4K Core]
[5K Core]
*AAAAAAAA$$
[6K Core]
[7K Core]
*AAAAAAAA$$
[8K Core]
[9K Core]
*AAAAAAAA$$
[10K Core]
[11K Core]
*SSM.KDUP$$
*0TT$$
SM.KDUP==^D2 ;MAXIMUM NUMBER OF DUP-11S ON A KMC-11
*C4$$
*T$$
=^D2 ;MAXIMUM NUMBER OF DUP-11S ON A KMC-11
*3C$$
*T$$
2 ;MAXIMUM NUMBER OF DUP-11S ON A KMC-11
*D$$
*I8$$
*0TT$$
SM.KDUP==^D8 ;MAXIMUM NUMBER OF DUP-11S ON A KMC-11
*EX$$
.
.; REBUILD MONGEN
.
.COMPIL/COMPIL MONGEN
MACRO: MONGEN
EXIT
.; ACTUALLY MONGEN.MAC HAS THIS INSTRUCTION:
.
.
.COMPIL MONGEN
.LOAD MONGEN
LINK: Loading
EXIT
.; SAVE THE NEW MONGEN.EXE AND ALSO COPY TO FINAL LOCATION
.
.SAVE MONGEN.EXE
MONGEN saved
.
.COPY [1,4]MONGEN.ORG=[1,4]MONGEN.EXE
.COPY [1,4]MONGEN.EXE=MONGEN.EXE
.
.
.; PROCEED TO REBUILD THE MONITOR WITH THE HACK NOW
.; RUN THE FULL MONGEN PROCEDURE
.; ------------------------
.; ------------------------
.;
.; EXECUTE THIS NOW:
.;
.; https://gist.github.com/tuklusan/d53505f3f9859eca048e253159c75bc8
.;
.; ------------------------
.; ------------------------
.; PROCEED TO REBUILD THE MONITOR WITH THE HACK NOW
.;
.COMPIL/COMPIL F,S
MACRO: F
MACRO: S
EXIT
.COMPIL/COMPIL devprm,dteprm,netprm,d36par,syscnf+<common,comdev,commod>
MACRO: DEVPRM
MACRO: DTEPRM
MACRO: NETPRM
MACRO: D36PAR
MACRO: COMMON
MACRO: COMDEV
MACRO: COMMOD
EXIT
.
.; WE WILL CALL THE NEW MONITOR 4XDUP ...
.
.R LINK
*4XDUP/save/noinitial/hash:13k = /locals -
#common,comdev,commod,tops10[10,7,mon,ks]/search-
#/patch:200/counters/go
[LNKRLC Reloc. ctr. initial value current value limit value
.LOW. 0 110371 344000
.HIGH. 344000 704175 720000
.INIT. 740000 764735 771000
.TWIC. 771000 772401 1000000
Absolute code loaded]
EXIT
.
.DIR 4X*
4XDUP EXE 1680 <057> 27-Nov-21 704(33461) DSKB: [10,7,MON]
.
.
.COPY NEW:4XDUP.EXE=4XDUP.EXE
.DIR NEW:4XDUP.EXE
4XDUP EXE 1680 <057> 27-Nov-21 704(33461) DSKA: [1,5]
.
.; DONE - NOW WE BOOT INTO 4XDUP.EXE MONITOR AND HOPE TO SEE 4 DUP LINES
.
.R OPR
OPR>SET KSYS NOW
OPR>
2:24:12 -- Event KSYS queued, request #11 --
2:24:12 -- gTimesharing is over --
Wait for "KSYS processing complete" message before SHUTDOWN
2:24:12 -- Waiting for BATCON to start for KSYS logouts --
OPR>
g;;SYSTEM: - Timesharing is over!
2:24:13 -- KSYS processing completed --
OPR>EXIT
.KJOB
[LGNJSP Other jobs same PPN]
Job 2 User OPERATOR [1,2]
Logged-off CTY at 2:24:18 on 27-Nov-121
Runtime: 0:16:51, KCS:115125, Connect time: 1:00:56
Disk Reads:37726, Writes:29667, Blocks saved:0
.
Simulation stopped, PC: 000001 (SOJG 6,1)
Winding down
BOOT>Thanks for playing
Goodbye
Log file closed

Thursday, November 25, 2021

Running MONGEN for TOPS-10 on PDP-10 KS10

PDP-10 KS10 TOPS-20 with DECnet and ANF-10 networking on DUP11 DUP0 and DUP1 lines
PDP-10 KS10 TOPS-20 with DECnet and ANF-10 networking on DUP11 DUP0 and DUP1 lines

With the help of a kind friend, I managed to change the node-name and DECnet address of a TOPS-10 7.04 (GALAXY version 5.1) SimH-emulated PDP-10 KS10 by running MONGEN. I need to preserve the session for future reference, especially the questions and answers/responses. Hence this post.

I learned from the friend that MONGEN saves responses in [10,7,MON]BUILD.MIC and it is useful to save a copy of this file with the filename <nodename>.MIC for future reference. This makes it very easy to replicate the configuration on other KS10 installations.

I also learned that on TOPS-10 the directory [1,4] is SYS:, [1,5] is NEW: and [1,3] is OLD:. The convention is to put “experimental” programs in [1,5], "production" programs in [1,4] and old versions in [1,3].  Experimental programs in NEW: ([1,5]) should be moved after testing to SYS: ([1,4]). This includes the monitor, which is typically named SYSTEM.EXE. Using "expect" and "send" keywords, the SimH emulator allows selection of the monitor to boot at the "BOOT>" prompt. Examples are:

To boot the default monitor [1,4]SYSTEM.EXE:
expect "BOOT>" send "\r"

Or, we can specify the monitor and the location to boot, as in these examples:

expect "BOOT>" send "[1,4]SYSTEM\r"

expect "BOOT>" send "[1,5]SYS2\r"

expect "BOOT>" send "[1,5]SYSTEM\r"

The manual for running MONGEN on KL and KS TOPS-10 systems is on bitsavers (TOPS-10 Software Installation Guide AA-PS12C-TB).  It "provides the site administrator, system manager, system programmer, or software specialist with the information required to Install the TOPS-10 software on KL and KS processors."

Here is part of the session log from when I built a new monitor with the updated DECnet node name and address. This monitor supports two DUP lines on DUP11. DUP0 connects to DECnet network and DUP1 connects to ANF-10 network.


.login 1,2
Job 2 SIMH KS10 TWONKY 7.04NET CTY
[LGNJSP Other jobs same PPN]
%LGNSVM Set maximum virtual and physical limits failed
[LGNLAS Last access to [1,2] succeeded on 16-Nov-121:04:51:01]
16:01 24-Nov-121 Wednesday
.
.r setsrc
*cp [10,7,mon]
*^Z
EXIT
.dir *.mic
TWONKY MIC 6 <057> 15-Nov-21 DSKB: [10,7,MON]
MONGEN MIC 6 <057> 24-Nov-21
BUILD MIC 6 <057> 24-Nov-21
Total of 18 blocks in 3 files on DSKB: [10,7,MON]
.
.del build.mic
Files deleted:
DSKB:BUILD.MIC
06 Blocks freed
.
.dir *.mic
TWONKY MIC 6 <057> 15-Nov-21 DSKB: [10,7,MON]
MONGEN MIC 6 <057> 24-Nov-21
Total of 12 blocks in 2 files on DSKB: [10,7,MON]
.
.del mongen.mic
Files deleted:
DSKB:MONGEN.MIC
06 Blocks freed
.
.dir *.mic
TWONKY MIC 6 <057> 15-Nov-21 DSKB: [10,7,MON]
.
.
.
.run mongen
Write MONGEN.MIC (YES,NO) : YES
MONGEN for 704 monitors
MONGEN will generate any known TOPS-10 configuration. For information
about which configurations are supported, please refer to the SPD.
/HELP (PROMPT,SHORT,LONG) ]: prompt
Which GEN (SYS,F) : SYS
Output(DSK:SYSCNF.MAC):
DECsystem10 (KL,KS) : KS
System name : TWONK2 TOPS10
CPU0 serial number (1-10000) : 4998
Exclude monitor overhead from user run time (YES,NO) : YES
Account verification (YES,NO) : NO
Autoconfigured device options:
Include Ethernet service (NO,YES,PROMPT): NO
Prompt for RP0x/RM0x Massbus disks (NO,YES): NO
Include TM02/TM03 magtapes (NO,YES,PROMPT): YES
Include UNIBUS/LP20 printers (NO,YES,PROMPT): YES
Include UNIBUS/CD20 card readers (NO,YES,PROMPT): YES
Local terminal configuration:
DZ-11 TTY lines (0-32) : 8
OPR octal line number (CTY,0-7) : CTY
Data set lines
0-7
Number of Jobs (1-511) : 128
Maximum pages of core for each job (0,0-16384) :
Total amount of system core in K (512-4096) : 1024
Clock ticks per second (60,50) : 60
Allow jobs to be locked in core (YES,NO) :
Guaranteed number of pages for unlocked jobs (0,0-16384) :
Number of pages reserved for locking jobs in Exec Virtual Memory (10,0-?) : 12
Number of high priority interrupt queues (0,0-15): 15
Meter (NO,YES) : NO
KASER (NO,YES) : YES
MPXSER (YES,NO) : NO
PSISER (YES,NO) : YES
IPCF (YES,NO) : YES
ENQ/DEQ (YES,NO) : YES
Disk sets (ALL) :
Configure non-autoconfigured hardware (NO,YES) : YES
Number of RX211s (0,0-2) : 1
Number of units on RXA (1-2): 2
Number of KMC/DUP Lines (0,0-2) : 2
Type of line for KDP0 (ANF10,DECNET,USER,IBM) : DECNET
Type of line for KDP1 (ANF10,DECNET,USER,IBM) : ANF10
Number of DMR11 Lines (0,0-8) :
Number of PTYs (20,1-500) : 20
Network software (YES,NO) : YES
Node name : TWONK2
Number of remote TTYs (480,0-480) : 16
ANF-10 software (YES,NO) : YES
Node name (TWONK2) :
Node number of central site (1,1-77) : 40
Remote terminals (YES,NO) : YES
Virtual terminals (YES,NO) : YES
Remote card readers (YES,NO) : NO
Remote line printers (YES,NO) : NO
Remote paper tape punches (NO,YES) : NO
Remote paper tape readers (NO,YES) : NO
Remote plotters (NO,YES) : NO
Remote DN8x DDCMP devices (YES,NO) : YES
Remote data entry terminals (YES,NO) : NO
Remote task-to-task (YES,NO) : YES
Number of connects (256,1-512) :
DECnet software (YES,NO) : YES
Node name (TWONK2) :
Area number of central site (1,1-63) : 31
Node number of central site (1,1-1023) : 40
Router type (ROUTING,NONROUTING) : ROUTING
Transmit password (DECNET20) :
Remote terminals (YES,NO) : YES
Decimal "symbol,value"
Octal "symbol,value"
M.EDIT,1
SIXBIT "symbol,value"
Type "device-mnemonic,PI-channel" for special devices
Type "device-mnemonic,PI-channel,no.-of-devices"
Type "device-mnemonic,PI-channel,highest-ac-to-save"
Type "ersatz-device,P,Pn,search-list-type"
RLA,13,730,SYS
BCL,5,24,SYS
PAS,5,63,SYS
Type "command-name,dispatch,flags,unique-bits,PRVTAB-name"
Terminal class :
Additional terminals for classes:
Class to extend :
System default terminal type (TTY) :
File DSK:SYSCNF.MAC Closed
Which GEN (SYS,F) : F
Output(DSK:F.MAC):
Feature set (KL10,KS10) : KS10
Standard settings (YES,NO) : YES
File DSK:F.MAC Closed
Which GEN (SYS,F) : ^Z
DSK:MONGEN.MIC written
EXIT
.
.COPY TWONK2.MIC=MONGEN.MIC
.
.
.
.TYPE MONGEN.MIC
.RUN DSKB:MONGEN[10,7,MON]
;Write MONGEN.MIC (YES,NO)
*Y
;MONGEN for 704 monitors
;
;MONGEN will generate any known TOPS-10 configuration. For information
;about which configurations are supported, please refer to the SPD.
;
;/HELP (PROMPT,SHORT,LONG)
*prompt
;Which GEN (SYS,F)
*SYS
;Output(DSK:SYSCNF.MAC)
*
;DECsystem10 (KL,KS)
*KS
;System name
*TWONK2 TOPS10
;CPU0 serial number (1-10000)
*4998
;Exclude monitor overhead from user run time (YES,NO)
*YES
;Account verification (YES,NO)
*NO
;Autoconfigured device options:
; Include Ethernet service (NO,YES,PROMPT)
*NO
; Prompt for RP0x/RM0x Massbus disks (NO,YES)
*NO
; Include TM02/TM03 magtapes (NO,YES,PROMPT)
*YES
; Include UNIBUS/LP20 printers (NO,YES,PROMPT)
*YES
; Include UNIBUS/CD20 card readers (NO,YES,PROMPT)
*YES
; DZ-11 TTY lines (0-32)
*8
;
; OPR octal line number (CTY,0-7)
*CTY
; Data set lines
*0-7
*
;
;Number of Jobs (1-511)
*128
;Maximum pages of core for each job (0,0-16384)
*
;Total amount of system core in K (512-4096)
*1024
;Clock ticks per second (60,50)
*60
;Allow jobs to be locked in core (YES,NO)
*
;Guaranteed number of pages for unlocked jobs (0,0-16384)
*
;Number of pages reserved for locking jobs in Exec Virtual Memory (10,0-?)
*12
;Number of high priority interrupt queues (0,0-15)
*15
;Meter (NO,YES)
*NO
;KASER (NO,YES)
*YES
;MPXSER (YES,NO)
*NO
;PSISER (YES,NO)
*YES
;IPCF (YES,NO)
*YES
;ENQ/DEQ (YES,NO)
*YES
;Disk sets (ALL)
*
;Configure non-autoconfigured hardware (NO,YES)
*YES
;Number of RX211s (0,0-2)
*1
; Number of units on RXA (1-2)
*2
;Number of KMC/DUP Lines (0,0-2)
*2
;Type of line for KDP0 (ANF10,DECNET,USER,IBM)
*DECNET
;Type of line for KDP1 (ANF10,DECNET,USER,IBM)
*ANF10
;Number of DMR11 Lines (0,0-8)
*
;Number of PTYs (20,1-500)
*20
;Network software (YES,NO)
*YES
;Node name
*TWONK2
;Number of remote TTYs (480,0-480)
*16
;ANF-10 software (YES,NO)
*YES
; Node name (TWONK2)
*
; Node number of central site (1,1-77)
*40
; Remote terminals (YES,NO)
*YES
; Virtual terminals (YES,NO)
*YES
; Remote card readers (YES,NO)
*NO
; Remote line printers (YES,NO)
*NO
; Remote paper tape punches (NO,YES)
*NO
; Remote paper tape readers (NO,YES)
*NO
; Remote plotters (NO,YES)
*NO
; Remote DN8x DDCMP devices (YES,NO)
*YES
; Remote data entry terminals (YES,NO)
*NO
; Remote task-to-task (YES,NO)
*YES
; Number of connects (256,1-512)
*
;DECnet software (YES,NO)
*YES
; Node name (TWONK2)
*
; Area number of central site (1,1-63)
*31
; Node number of central site (1,1-1023)
*40
; Router type (ROUTING,NONROUTING)
*ROUTING
; Transmit password (DECNET20)
*
; Remote terminals (YES,NO)
*YES
;Decimal "symbol,value"
*
;Octal "symbol,value"
*M.EDIT,1
*
;SIXBIT "symbol,value"
*
;Type "device-mnemonic,PI-channel" for special devices
*
;Type "device-mnemonic,PI-channel,no.-of-devices"
*
;Type "device-mnemonic,PI-channel,highest-ac-to-save"
*
;Type "ersatz-device,P,Pn,search-list-type"
*RLA,13,730,SYS
*BCL,5,24,SYS
*PAS,5,63,SYS
*
;Type "command-name,dispatch,flags,unique-bits,PRVTAB-name"
*
;Terminal class
*
;Additional terminals for classes:
;Class to extend
*
;System default terminal type (TTY)
*
;Which GEN (SYS,F)
*F
;Output(DSK:F.MAC)
*
;Feature set (KL10,KS10)
*KS10
;Standard settings (YES,NO)
*YES
;Which GEN (SYS,F)
=^Z
.
.
.
.compile/compile f,s
MACRO: F
MACRO: S
EXIT
.compile/compile devprm,dteprm,netprm,d36par,syscnf+<common,comdev,commod>
MACRO: DEVPRM
MACRO: DTEPRM
MACRO: NETPRM
MACRO: D36PAR
MACRO: COMMON
MACRO: COMDEV
MACRO: COMMOD
EXIT
.r link
*system/save/noinitial/hash:13k = /locals -
#common,comdev,commod,tops10[10,7,mon,ks]/search-
#/patch:200/counters/go
[LNKRLC Reloc. ctr. initial value current value limit value
.LOW. 0 74237 344000
.HIGH. 344000 704175 720000
.INIT. 740000 764735 771000
.TWIC. 771000 772401 1000000
Absolute code loaded]
EXIT
.
.
.dir system*
SYSTEM EXE 1656 <057> 24-Nov-21 704(33461) DSKB: [10,7,MON]
.dir *.mic
TWONKY MIC 6 <057> 15-Nov-21 DSKB: [10,7,MON]
MONGEN MIC 6 <057> 24-Nov-21
TWONK2 MIC 6 <057> 24-Nov-21
Total of 18 blocks in 3 files on DSKB: [10,7,MON]
.copy build.mic=twonk2.mic
.
.dir *.mic
TWONKY MIC 6 <057> 15-Nov-21 DSKB: [10,7,MON]
MONGEN MIC 6 <057> 24-Nov-21
TWONK2 MIC 6 <057> 24-Nov-21
BUILD MIC 6 <057> 24-Nov-21
Total of 24 blocks in 4 files on DSKB: [10,7,MON]
.
.r opr
OPR>set ksys now
OPR>
16:19:52 -- Event KSYS queued, request #12 --
OPR>
16:19:52 -- Tim Wuff ---- Wuff!! 16:19:52 -- Tim esharing is over --
Wait for "KSYS processing complete" message before SHUTDOWN
16:19:53 -- Waiting for BATCON to start for KSYS logouts --
OPR>
;;S Wuff ---- Wuff!! ;;S ;;SYSTEM: - Timesharing is over!
16:19:53 -- KSYS processing completed --
OPR>exit
.
.copy new:system.exe=system.exe
.dir new:
SYSTEM EXE 1656 <057> 24-Nov-21 704(33461) DSKA: [1,5]
.kjob
[LGNJSP Other jobs same PPN]
Job 2 User OPERATOR [1,2]
Logged-off CTY at 16:20:54 on 24-Nov-121
Runtime: 0:00:07, KCS:652, Connect time: 0:19:46
Disk Reads:11821, Writes:7630, Blocks saved:0
.
Simulation stopped, PC: 000001 (SOJG 6,1)
Winding down
BOOT>Thanks for playing
Goodbye
Log file closed
view raw TWONK2.MIC hosted with ❤ by GitHub

Tuesday, November 23, 2021

SIMH VAX and PDP Emulators: Getting the maximum performance out of SET CPU IDLE and SET THROTTLE

Netdata - gigabyte-h410m.sanyalnet.lan
Netdata - gigabyte-h410m.sanyalnet.lan

I have been maintaining a zoo of emulated classic computers in my home lab (affectionately called SANYALnet Labs) for well over a decade now. Till last year everything was running on two mid-2000s Xeon-based Dell PowerEdge blade servers which I sold and replaced with a single home-built PC consisting of a 10th-generation Intel core i7 8-core 16-thread processor on a Gigabyte H410M motherboard. I then consolidated all of my SimH-emulated VAX and PDP machines onto a MX-Linux virtual machine running on top of Ubuntu 20.04 on this new PC, allocating 8 cores and 4 GB of memory to the MX-Linux virtual machine. After running many experiments with SET CPU IDLE and SET THROTTLE configuration parameters of SimH, I reached a point of satisfactory resource usage by the 20 SimH VAX and PDP machines. 

Digital Equipment Corporation DEC VAXstation-II running OpenVMS/VAX 7.3 under SIMH VAX emulator
VAXstation-II running OpenVMS/VAX 7.3 under SIMH VAX emulator

Digital Equipment Corporation DEC MicroVAX-3100/M38 running SMALLTALK on VAX/VMS 5.5-2H4 under SIMH VAX emulator
MicroVAX-3100/M38 running SMALLTALK-80 on VAX/VMS 5.5-2H4 under SIMH VAX emulator. Thanks to Mark Wickens for this awesome SIMH machine (more here)


This includes two VAX machines with graphical desktops running in Xephyr virtual X-server displays (a VAXstation-3800/m38 and a VAXstation-II).


DEC VAX servers, PDP-10 and PDP-11 mainframes emulated on MX-Linux
MX-Linux VirtualBox machine running 20 SimH VAX and PDP machines

What strikes me as remarkable after all the tweaking is that in a quiescent state of the 20 SimH VAX and PDP machines, they along with an instance of DECnet/Python  and many other Ubuntu-launched processes collectively take up just one core of the i7. Here is a typical top dump flittered on SimH machines:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

 2964 localuser   30  10  239960 133480   2720 S  12.5   3.3 237:33.90 ./31.10_QCOCAL

21894 localuser   30  10  141516  38940   2884 S  12.5   1.0 125:40.63 ./31.15_OSTARA

24430 localuser   30  10  997148  61204  13744 S  12.5   1.5 132:22.28 ./31.38_lv_vaxstation3100m38 31.38_LV.ini

25426 localuser   30  10   61432  13452   3552 S  12.5   0.3   2:10.75 ./31.37_twonky_pdp10 31.37_TWONKY.ini

 1676 localuser   30  10  147996  19656   6632 S   6.2   0.5  63:52.29 ./31.12_juichi_pdp11 31.12_JUICHI.ini

 5104 localuser   30  10   34940   6928   2508 S   6.2   0.2 274:54.07 ./0.0_VAXVMS3.0

 5212 localuser   30  10  158236  21696   6648 S   6.2   0.5  60:15.30 ./31.28_rst101_pdp11 31.28_RST101.ini

 6536 localuser   30  10  339040  13880   4208 S   6.2   0.3  82:47.40 ./10.42.2.29_43bsd_vax 10.42.2.29_43BSD_VAX.ini

17984 localuser   30  10  306932  73160   4208 S   6.2   1.8 115:51.55 ./10.42.2.28_openbsd_vax 10.42.2.28_OPENBSD_VAX.ini

21718 localuser   30  10  180388  45232   4188 S   6.2   1.1  19:03.34 ./31.36_njevx2_vax780 31.36_NJEVX2.ini

22451 localuser   30  10   18108   2664   2232 S   6.2   0.1 294:17.77 ./0.0_VAXVMS1.0

24658 localuser   30  10 1022468  51356  13800 S   6.2   1.3  28:05.32 ./31.30_vaxstn_microvax2 31.30_VAXSTN.ini

 4218 localuser   30  10   18108   4752   2276 S   0.0   0.1 252:08.74 ./0.0_VAXVMS1.5

10312 localuser   30  10  298716  79472   4360 S   0.0   2.0  96:38.62 ./10.42.2.24_netbsd_vax 10.42.2.24_NETBSD_VAX.ini

12979 localuser   30  10  155760  45328   4132 S   0.0   1.1   8:36.88 ./31.31_xliv_vax780 31.31_XLIV.ini

14559 localuser   30  10  180060  77632   4132 S   0.0   1.9   8:50.49 ./31.33_xl_vax780 31.33_XL.ini

15270 localuser   30  10  158236  21468   6644 S   0.0   0.5  52:30.82 ./31.34_nanaju_pdp11 31.34_NANAJU.ini

19596 localuser   30  10  254140  44076   2820 S   0.0   1.1  28:15.56 ./31.11_cloudy_vax780 31.11_CLOUDY.ini

20922 localuser   30  10  180384  47036   4256 S   0.0   1.2  14:45.57 ./31.35_njevx1_vax780 31.35_NJEVX1.ini

24460 localuser   30  10  254124  46476   4168 S   0.0   1.2  13:40.34 ./31.23_xlvii_vax8600 31.23_XLVII.ini


The following is a table of the current idle/throttle settings of the VAXen and PDP SimH machines. Overall, PDP-10 and PDP-11 emulators do better with throttle, especially in terms of dreaded DECnet thrashing. The VAXen do fine with idle. The following table is probably difficult to read, so here is the google docs sheet.


simh machineo/sset throttle - factor; value; SIMH host core usage (% of one 10th-gen core i10)set cpu idle; SIMH host core usage (% of one 10th-gen core i10)Throttle or Idle?simh version - New (4.x) or Legacy (3.9)?DECnet addressIP Address
vax780vax/vms 1.04x; throttle=2m; 17%idle=vms; 7%IL  
vax780vax/vms 1.54x; throttle=2m; 17%idle=vms; 7%IL  
vax780vax/vms 3.04x; throttle=2m; 17%idle=vms; 7%IL  
microvax3900netbsd/vax 8.01x; throttle=1900k; 14%idle=netbsd; 3%IN 10.42.2.24
microvax3900openbsd/vax 5.81x; throttle=1900k; 11%idle=openbsd; 3%IN 10.42.2.28
microvax390043bsd/vax quasijarus1x; throttle=1900k; 9%idle=quasijarus; 3%IN 10.42.2.29
microvax3900openvms/vax 7.31x; throttle=1900k; 17%idle=vms; 7%IL31.110.42.2.4
microvax3900openvms/vax 7.31x; throttle=1900k; 17%idle=vms; 7%IL31.1010.42.2.5
vax780openvms/vax 7.31x; throttle=500k; 4%idle=vms; 2%IN31.1110.42.2.33
pdp11 - pdp11/84rsx 11m plus1x; throttle=1560k; 4%idle; 3%TN31.12 
microvax3900ultrix 4.0/vax1x; throttle=1900k; 11%idle=ultrix; 7%IL31.1510.42.2.9
vax8600 model 8650vax/vms 4.71x; throttle=13300k; 47%idle=vms; 2%IN31.2310.42.2.27
pdp11 - pdp11/73rsts/e 10.11x; throttle=1460k; 4%idle; 3%TN31.28 
microvax2 - vaxstation IIopenvms/vax 7.31x; throttle=450k; 6% TN31.3010.42.2.30
vax780vax/vms 4.41x; throttle=500k; 4%idle=vms; 2%IN31.31 
vax780vax/vms 4.01x; throttle=500k; 4%idle=vms; 2%IN31.33 
pdp11 - pdp11/70rsx 11m plus1x; throttle=1360k; 4%idle; 3%TN31.34 
vax780openvms/vax 7.31x; throttle=500k; 4%idle=vms; 2%IN31.3510.42.2.31
vax780openvms/vax 7.31x; throttle=500k; 4%idle=vms; 2%IN31.3610.42.2.32
pdp10 - ks10tops-10 7.04net3x; throttle=5400k; 9%idle; 7%IN31.37 
microvax 3100 M38vax/vms 5.5-2h41x; throttle=1900k; 13%idle=vms; 29%TN31.38



Recommended Products from Amazon