diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f216d66..689753d4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04] - emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks] + emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks, simhv3] steps: - uses: actions/checkout@v4 - name: Install dependencies diff --git a/Makefile b/Makefile index 25471693..40e34339 100644 --- a/Makefile +++ b/Makefile @@ -83,6 +83,7 @@ SIMH=tools/simh/BIN/pdp10 KA10=tools/sims/BIN/pdp10-ka KL10=tools/sims/BIN/pdp10-kl KS10=tools/sims/BIN/pdp10-ks +SIMHV3=tools/simhv3/BIN/pdp10 ITSTAR=tools/itstar/itstar WRITETAPE=tools/tapeutils/tapewrite MAGFRM=tools/dasm/magfrm @@ -163,8 +164,16 @@ out/pdp10-ks/stamp/emulators: $(GT40) $(VT52) $(MKDIR) $(OUT)/stamp $(TOUCH) $@ +out/simhv3/stamp/its: $(OUT)/rp0.dsk + $(MKDIR) $(OUT)/stamp + $(TOUCH) $@ + +out/simhv3/stamp/emulators: $(GT40) $(VT52) + $(MKDIR) $(OUT)/stamp + $(TOUCH) $@ + $(OUT)/rp0.dsk: build/simh/init $(OUT)/minsys.tape $(OUT)/minsrc.tape $(OUT)/salv.tape $(OUT)/dskdmp.tape build/build.tcl $(OUT)/sources.tape $(OUT)/stamp/pdp10 - PATH="$(CURDIR)/tools/simh/BIN:$$PATH" expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW) + PATH="$(CURDIR)/tools/$(EMULATOR)/BIN:$$PATH" expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW) $(OUT)/rp03.2 $(OUT)/rp03.3: $(OUT)/ka-minsys.tape $(OUT)/minsrc.tape $(OUT)/magdmp.tap $(OUT)/sources.tape $(EXPECT) -f build/$(EMULATOR)/build.tcl $(IP) $(GW) @@ -256,6 +265,8 @@ out/pdp10-kl/stamp/test: out/pdp10-ks/stamp/test: +out/simhv3/stamp/test: + start: build/$(EMULATOR)/start $(LN) -s $< $* @@ -279,6 +290,10 @@ out/pdp10-ks/stamp/pdp10: $(KS10) start $(MKDIR) $(OUT)/stamp $(TOUCH) $@ +out/simhv3/stamp/pdp10: $(SIMHV3) start + $(MKDIR) $(OUT)/stamp + $(TOUCH) $@ + out/klh10/system: $(MKDIR) $(OUT)/system x=`echo $(IP) | tr . ,`; \ @@ -301,6 +316,10 @@ out/pdp10-ks/system: $(MKDIR) $(OUT)/system cp build/pdp10-ks/config.* $(OUT)/system +out/simhv3/system: + $(MKDIR) $(OUT)/system + cp build/simhv3/config.* $(OUT)/system + out/klh10/dskdmp.ini: build/mchn/$(MCHN)/dskdmp.txt Makefile $(MKDIR) $(OUT)/stamp $(SED) -e 's/%IP%/$(IP)/' \ @@ -343,6 +362,16 @@ $(KL10): $(KS10): $(MAKE) -C tools/sims pdp10-ks +$(SIMHV3): tools/simhv3 + $(MAKE) -C tools/simhv3 pdp10 + +tools/simhv3: simhv312-4.zip + unzip $< + mv sim $@ + +simhv312-4.zip: + $(WGET) http://simh.trailing-edge.com/sources/$@ + $(ITSTAR): $(MAKE) -C tools/itstar diff --git a/build/dependencies.sh b/build/dependencies.sh index 01c705c9..7de3480a 100644 --- a/build/dependencies.sh +++ b/build/dependencies.sh @@ -10,7 +10,7 @@ install_linux() { # For GitLab CI sudo apt-get install -my git make gcc libncurses-dev autoconf case "$EMULATOR" in - simh) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-dev + simh*) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-dev sudo apt-get install -y libsdl2-dev;; pdp10-k?) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-dev sudo apt-get install -y libx11-dev libxt-dev libsdl2-dev @@ -33,7 +33,7 @@ install_freebsd() { install_osx() { brew update case "$EMULATOR" in - simh) brew install sdl2;; + simh*) brew install sdl2;; pdp10-*) brew install sdl2;; klh10) brew install automake;; esac diff --git a/build/simhv3/boot b/build/simhv3/boot new file mode 100644 index 00000000..187ac282 --- /dev/null +++ b/build/simhv3/boot @@ -0,0 +1,19 @@ +set console wru=034 +set cpu its +set cpu idle +set tim y2k +set ch enabled +set ch node=177002 +set ch peer=localhost:44041 +att ch 44042 +set dz 8b lines=8 +at -u dz0 10004 +# VT52 +at -u dz0 line=7,10018 +# GT40 +at -u dz0 line=6,10019 +# Dial-up +at -u dz0 line=5,10015 +set rp0 rp06 +at rp0 out/simhv3/rp0.dsk +b rp0 diff --git a/build/simhv3/build.tcl b/build/simhv3/build.tcl new file mode 100644 index 00000000..1eb44e55 --- /dev/null +++ b/build/simhv3/build.tcl @@ -0,0 +1,64 @@ +set build [pwd]/build +set out "out/$env(EMULATOR)" +set emulator_escape "\034" + +proc start_salv {} { + uplevel #0 {spawn pdp10 build/simhv3/init} + setup_timeout + + respond "sim>" "show ver\r" + respond "sim>" "b tu1\r" + expect "MTBOOT" +} + +proc restart_nsalv {} { + respond "sim>" "b tu1\r" + expect "MTBOOT" +} + +proc start_dskdmp args { + global out + set tape "" + if {[llength $args] == 1} { + set tape [lindex $args 0] + } { + set tape "$out/sources.tape" + } + respond "sim>" "at tu0 $tape\r" + respond "sim>" "at tu2 $out/dskdmp.tape\r" + respond "sim>" "b tu2\r" + respond "MTBOOT" "\033g" +} + +proc start_its {} { + uplevel #0 {spawn pdp10 build/simhv3/boot} + setup_timeout +} + +proc mount_tape {file} { + respond "sim>" "at tu0 $file\r" + respond "sim>" "c\r" +} + +proc create_tape {file} { + respond "sim>" "at tu0 $file\r" + respond "sim>" "c\r" +} + +proc quit_emulator {} { + respond "sim>" "q\r" + expect eof +} + +proc initialize_comsat {} { + # commented out because you cannot run COMSAT initialization without network + # support + #respond "*" ":job comsat\r" + #respond "*" ":load .mail.;comsat launch\r" + #respond "*" "debug/-1\r" + #type "mfinit\033g" +} + +source build/ks10/include.tcl +source build/mchn/$mchn/mchn.tcl +source build/build.tcl diff --git a/build/simhv3/config.202 b/build/simhv3/config.202 new file mode 100644 index 00000000..282bd61e --- /dev/null +++ b/build/simhv3/config.202 @@ -0,0 +1,1177 @@ +;;; Copyright (c) 1999 Massachusetts Institute of Technology +;;; See the COPYING file at the top-level directory of this project. + +.AUXIL + +;;; "INSTALLATION" RELATED SWITCHES + +IFNDEF DEFSYM,[ ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES. + ;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK. +DEFINE DEFSYM X/ +IRPS Z,,[X] +IFNDEF Z,X +.ELSE [ + $$TEM1==Z + X + IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/` +] +.ISTOP +TERMIN TERMIN + +IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1. +.MLLIT==1 +$$TEMP==1 +] +.ELSE $$TEMP==0 + +IFNDEF DEFOPT,[ ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES. + ;BUT NORMALLY, DEFOPT FOO==BAR DOES IT UNLESS FOO ALREADY DEFINED +DEFINE DEFOPT X/ +IRPS Z,,[X] +IFNDEF Z, X +.ISTOP +TERMIN TERMIN + +IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1. +.MLLIT==1 +$$TEM2==1 +] +.ELSE $$TEM2==0 + +IFNDEF IPADDR,[ ; Helpful auxiliary for configuring net addrs +DEFINE IPADDR A,B,C,D +.RADIX 10.,<<<<+B>_8>+C>_8>+D,!TERMIN +] +IFNDEF IPMASK,[ ; Build default netmask for network, using class A/B/C +DEFINE IPMASK N +IFE &<1_31.>,[377_24.] .ELSE [IFE &<1_30.>,[177777_16.] .ELSE [77777777_8.]] TERMIN +] + +IFE MCOND AIKA,[ +DEFOPT KA10P==1 ;AI-KA HAS KA10 PROCESSOR +DEFOPT MAXJ==85. ;MAX NUMBER OF JOBS ALLOWED +DEFOPT SWBLK==1 ;1=> SWAP BLOCKING, 0=> PRIVILEGED USER +DEFOPT SWPWSP==0 ;NO WORKING-SET SWAP SCHEDULER +DEFOPT PAGPRE==1 ;PAGE-IN PREEMPTION +DEFOPT SCHBLN==10. ;NUMBER OF RUNNABLE JOBS TO REMEMBER + +DEFOPT NQS==8. ;# 2314 UNITS +DEFOPT NTUTBL==2 ;TUTS ARE 2 BLOCKS LONG (THIS DEFN BETTER AGREE WITH DC10 DEFS) +DEFSYM NUDSL==440. ;# USER DIRECTORIES ON DISK. NOTE: JUST CHANGING THIS + ; IS NOT SUFFICIENT!! +DEFOPT NQCHN==40. ;NUMBER 2314 CHNLS +DEFOPT DC10P==1 ;HAS SYSTEMS CONCEPTS DISK CONTROL +DEFOPT DMDSK==0 ;DOES NOT USE DM DSK FORMAT (I.E. HAS EXTRA WORDS) +DEFOPT QRSRVP==1 ;HAS RESERVED DISK PACKS (SECONDARY PACK) +DEFOPT QAUTHP==1 ;KEEPS TRACK OF FILE AUTHORS + +DEFOPT C1MXP==1 ;CHNL 1 MPX FEATURE +DEFOPT NMTCS==1 ;NUMBER MAG TAPE UNITS +DEFOPT TM10A==1 ;IO-BUS MAG TAPE +DEFOPT PTRP==1 ;HAS PAPER TAPE +DEFOPT PTPP==0 ; But punch doesn't work! +DEFOPT PDCLKP==1 ;"DeCoriolis" CLOCK +DEFOPT DPKPP==1 ;DATA POINT KLUDGE (TTY mux) + +DEFOPT NETP==1 ; Connected to a network +DEFOPT IMPP==1 ; Has IMP interface +DEFOPT KAIMP==1 +DEFOPT IMPUS==206 ; ARPA net host number +DEFOPT IMPUS3== ; Internet host number +DEFOPT NCPP==1 ; Include NCP code +DEFOPT NNETCH==30. ; # NCP network channels +DEFOPT INETP==1 ; Include Internet code +DEFOPT TCPP==1 ; Include TCP code +DEFOPT XBL==20. ; # TCP network channels + +DEFOPT TK10P==1 ;HAS TK10 TTY SCANNER (NO MORE, BUT LEAVE IT SO TTY#S DON'T CHANGE) +DEFOPT NOTYS==1 ;# KA-10 CONSOLE 0 TTYS +DEFOPT NNTYS==16. ;# TTYS ON KNIGHT KLUDGE +DEFOPT NDPTYS==9. ;# TTYS ON DATAPOINT KLUDGE +DEFOPT NSTTYS==16. ;# OF STY'S (PSEUDO-TTY'S) +DEFOPT APL==10 ;AP TTY # (really?) + +DEFOPT CODP==1 ; Has Morse code output device (no antenna though) + +; The following AI-KA stuff is broken since the 10-11 interface doesn't work, +; but is retained in case it gets fixed. +DEFOPT TEN11P==0 ; Rubin 10-11 interface +IFN TEN11P,[ + DEFOPT XGP==1 ; Has XGP + DEFOPT CHAOSP==1 ; Has CHAOS net + DEFOPT MYCHAD==2026 ; CHAOS net address + DEFOPT NINDX==50. ; Number of Chaosnet indices + DEFOPT T11CHP==1 ; CHAOS net goes through TEN-11 interface + DEFOPT CH11NM==7 ; # of 10-11 PDP11 handling CHAOS net. + DEFOPT TT11NM==0 ; # of 10-11 PDP11 that handles TV TTYs. + DEFOPT N11TYS==16. ; # PDP11 TV TTYS + DEFOPT MXVBN==40 ; Max video bfr # for assignment purposes. +] ;TEN11P ; These actually correspond to video switch inputs. + + +; The following stuff used to be on AI-KA and is unlikely to ever +; come back. +;DEFOPT PDP6P==0 ;HAS PDP6 (ALAS, NO MORE) +;DEFOPT 340P==0 ;HAS 340 DISPLAY (ALAS, NO MORE) +;DEFOPT TABP==0 ;DOESN'T HAVE SYLVANIA TABLET ANY MORE +;DEFOPT DSDP==0 ;HAS DESELECTION DEVICE (ALAS, NO MORE) +;DEFOPT NEWDTP==0 ;HAD OLD DECTAPE CONTROLLER +;DEFOPT RBTCP==0 ;ROBOT CONSOLE +;DEFOPT HCLKP==0 ;HOLLOWAY CLOCK (ALAS, NO MORE) +;DEFOPT ARMP==0 ;HAS NO ARM (AMF MOSTLY) (R.I.P.) +;DEFOPT OMXP==0 ;HAS OMX (OUTPUT MULTIPLEXOR) (ALAS, NO MORE) +;DEFOPT IMXP==0 ;HAS IMX (INPUT MULTIPLEXOR) (ALAS, NO MORE) +;DEFOPT VIDP==0 ;HAD VIDI (R.I.P.) +;DEFOPT CCLKP==0 ;NO CHESS TOURN CLOCK STUFF +;DEFOPT NDAP==0 ;NEW D/A CONVERTERS (ALAS, NO MORE) + +; Physical memory variables + +DEFOPT TSYSM==768. ;TOTAL PDP10 1K MEM BLOCKS +DEFOPT ECCMEM==1 ;HAS HIC'S ERROR CORRECTING MEMORY +DEFOPT NMMP==4 ;# EXEC PAGES FOR MMP TABLE (# VIR PGS/512.); + +DEFSYM PMRCM==1777 ;CORE ADR FIELD IN PAGE MAP (AI-KA HAS 10 BITS) +DEFSYM PMAGEM==16000 ;AI-KA HAS ONE LESS AGE BITS +DEFSYM PMCSHM==0 ;NO CACHE BIT +DEFSYM PMUNSD==160000 ;UNUSED BITS + +IFDEF TEN11P,IFN TEN11P,DEFSYM T11CPA==3776000 ;ADRS OF TEN-11 CONTROL PAGE +IFDEF PDP6P,IFN PDP6P,DEFSYM PDP6BM==3000000 ;BASE ADR OF PDP6 MEM AS SEEN FROM 10 +IFDEF PDP6P,IFN PDP6P,DEFSYM LPDP6M==16. ;LENGTH OF PDP6 MEM IN PAGES +] ;AIKA + +IFE MCOND MLKA,[ +DEFOPT KA10P==1 ;ML-KA HAS KA PROCESSOR +DEFOPT MAXJ==60. ;MAX NUMBER OF JOBS ALLOWED +DEFOPT SWBLK==1 ;1 => SWAP BLOCKING, 0 => PRIV USER +DEFOPT SWPWSP==0 ;NO WORKING-SET SWAP SCHEDULER +DEFOPT PAGPRE==1 ; Page-in preemption +DEFOPT SCHBLN==10. ;NUMBER OF RUNNABLE JOBS TO REMEMBER + +DEFOPT NQCHN==30. ;NUMBER 2314 CHNLS +DEFOPT NQS==7 ;# DISK UNITS +DEFOPT NTUTBL==1 ;TUTS ARE ONE BLOCK LONG +DEFSYM NUDSL==250. ;# USER DIRECTORIES ON DISK +DEFOPT RP10P==1 ;HAS DEC RP10 DISK CONTROL (RP02) +DEFOPT QRDCMP==1 ;SOFTWARE READ-COMPARE +DEFOPT DMDSK==1 ;USES DM DISK FORMAT +DEFOPT QRSRVP==1 ;HAS RESERVED DISK PACKS (SECONDARY PACK) +DEFOPT QAUTHP==1 ;KEEPS TRACK OF FILE AUTHORS + +DEFOPT C1MXP==1 ;CHANNEL 1 MPX FEATURE +DEFOPT NEWDTP==1 ;HAS NEW DECTAPE CONTROLLER +;DEFOPT NUNITS==4 ; Number of utape units (R.I.P.) +DEFOPT NMTCS==1 ;NUMBER OF MAG TAPE UNITS +DEFOPT TM10A==1 ;IO-BUS MAG TAPE +DEFOPT NLPTP==1 ;HAS NEW LPT (ODEC) +DEFOPT TPLP==1 ;PSEUDO LPT +DEFOPT PTRP==1 ;HAS PAPER TAPE +DEFOPT PTPP==1 ; And punch works. +DEFOPT MTYP==1 ;HAS MORTON MULTIPLEX BOX +DEFOPT PDCLKP==1 ;"DeCoriolis" CLOCK + +DEFOPT NETP==1 ; Has net connection +DEFOPT IMPP==1 ; Has IMP interface +DEFOPT KAIMP==1 +DEFOPT IMPUS==306 ; ARPA net host number +DEFOPT IMPUS3== ; Internet host number +DEFOPT NCPP==0 ; Flush NCP code +DEFOPT NNETCH==20. ; # NCP net channels +DEFOPT INETP==1 ; Include Internet code +DEFOPT TCPP==1 ; Include TCP code +DEFOPT XBL==20. ; # TCP network channels +DEFOPT CHAOSP==1 ;CHAOS NET +DEFOPT MYCHAD==3114 ;CHAOS NET ADDRESS +DEFOPT NINDX==30. ;NUMBER OF INDICES +DEFOPT CH10P==1 ;CHAOS NET VIA PDP-10 I/O BUS, NOT FRONT-END + +DEFOPT NOTYS==1 ;# KA-10 CONSOLE 0 TTYS +;DEFOPT NNVTTS==0 ;# NOVA TTYS (used to have?) +DEFOPT NMTYS==33 ;# TTYS ON MORTON BOX +DEFOPT NSTTYS==8 ;# STY'S (PSEUDO-TTY'S) + +DEFOPT TSYSM==512. ;TOTAL PDP10 1K MEM BLOCKS +DEFOPT NMMP==4 ;# EXEC PAGES FOR MMP TABLE (# VIR PGS/512.) + +DEFSYM PMRCM==777 ;9 BIT REAL CORE ADR +DEFSYM PMAGEM==17000 ;4 BIT AGE +DEFSYM PMCSHM==0 ;NO CACHE BIT +DEFSYM PMUNSD==160000 ;UNUSED BITS +] ;MLKA + +IFE MCOND DM,[ +DEFOPT KA10P==1 ;DM HAS KA10 PROCESSOR +DEFOPT MAXJ==63. ;MAX NUMBER OF JOBS ALLOWED +DEFOPT SWBLK==0 ;1 => SWAP BLOCKING, 0 => PRIVILEGED USER +DEFOPT SWPWSP==0 ;NO WORKING-SET SWAP SCHEDULER +DEFOPT PAGPRE==0 ;NO PAGE-IN PREEMPTION +DEFOPT SCHBLN==10. ;NUMBER OF RUNNABLE JOBS TO REMEMBER + +DEFOPT NQS==6 ;# OF DISK UNITS +DEFOPT NTUTBL==1 ;TUTS ARE ONE BLOCK LONG +DEFSYM NUDSL==200. ;# USER DIRECTORIES ON DISK +DEFOPT NQCHN==30. ;NUMBER 2314 CHNLS +DEFOPT RP10P==1 ;HAS DEC RP10 DISK CONTROL (RP02) +DEFOPT DMDSK==1 ;USES DM DISK FORMAT +DEFOPT QRSRVP==1 ;HAS RESERVED DISK PACKS +DEFOPT QAUTHP==1 ;KEEPS TRACK OF FILE AUTHORS + +DEFOPT C1MXP==1 ;HAS CHANNEL 1 MPX FEATURE +DEFOPT NMTCS==1 ;NUMBER MAG TAPE UNITS +DEFOPT TM10B==1 ;DF10-BASED CONTROLLER +DEFOPT TTLPTP==1 ;LPT IS A TTY (I.E. ON A TTY LINE) VALUE IS LINE #. +DEFOPT PTRP==1 ;HAS PAPER TAPE +DEFOPT PTPP==1 ;PUNCH DOES WORK. +DEFOPT MTYP==1 ;HAS MORTON MULTIPLEX BOX +;DEFOPT CODP==0 ;NO COD DEVICE (used to?) +DEFOPT PDCLKP==1 ;"DeCoriolis" CLOCK + +DEFOPT NETP==1 ; Has net connection +DEFOPT IMPP==1 ; Has IMP interface +DEFOPT DMIMP==1 ; This is a DM IMP interface +DEFOPT IMPUS==106 ; ARPA net host number +DEFOPT IMPUS3== ; Internet host number +DEFOPT NCPP==0 ; Flush NCP code +DEFOPT NNETCH==30. ; # NCP network channels +DEFOPT INETP==1 ; Include Internet code +DEFOPT TCPP==1 ; Include TCP code +DEFOPT XBL==20. ; # TCP network channels + +DEFOPT MSPP==1 ;HAS MESSAGE SLURPER +DEFOPT DEMON==1 ;HAS DEMON ROUTINES +DEFOPT NOTYS==1 ;# KA-10 CONSOLE 0 TTYS +DEFOPT NMTYS==12. ;# TTYS ON MORTON BOX +DEFOPT NSTTYS==16. ;# OF STY'S (PSEUDO-TTY'S) + + +DEFOPT TSYSM==512. ;TOTAL PDP10 1K MEM BLOCKS +DEFOPT NMMP==4 ;# EXEC PAGES FOR MMP TABLE (# VIR PGS/512.) + +DEFSYM PMRCM==777 ;9 BIT REAL CORE ADR +DEFSYM PMAGEM==17000 ;4 BIT AGE +DEFSYM PMCSHM==0 ;NO CACHE BIT +DEFSYM PMUNSD==160000 ;UNUSED BITS +] ;DM + +IFE MCOND MX,[ +DEFOPT KL10P==1 ;MX IS WHAT WE CALL THE KL10 NOW +DEFOPT MAXJ==120. ;MAX NUMBER OF JOBS ALLOWED +DEFOPT SWBLK==1 ;1 => SWAP BLOCKING, 0 => PRIVILEGED USER +DEFOPT SWPWSP==0 ;NO WORKING-SET SWAP SCHEDULER +DEFOPT PAGPRE==1 ;PAGE-IN PREEMPTION +DEFOPT SCHBLN==20. ;NUMBER OF RUNNABLE JOBS TO REMEMBER + +DEFOPT NQS==6 ;# OF DISK UNITS (3 RP04'S AND 3 T-300'S) +DEFOPT NTUTBL==2 ;TUTS ARE TWO BLOCKS LONG +DEFSYM NUDSL==500. ;# USER DIRECTORIES ON DISK +DEFOPT NQCHN==50. ;NUMBER 2314 CHNLS +DEFOPT RH10P==1 ;HAS DEC RH10 DISK CONTROL (RP04) +DEFOPT T300P==3 ;TRIDENT T-300S VIA PDP-11 START AT DRIVE 3 +DEFOPT QRDCMP==0 ;SOFTWARE READ-COMPARE, HARDWARE IS PINING FOR THE + ; FJORDS (But this isn't debugged yet.) +DEFOPT DMDSK==1 ;USES DM DISK FORMAT +DEFOPT QRSRVP==1 ;HAS RESERVED DISK PACKS +DEFOPT QAUTHP==1 ;KEEPS TRACK OF FILE AUTHORS + +DEFOPT NMTCS==1 ;NUMBER MAG TAPE UNITS +DEFOPT TM10B==1 ;DF10-BASED TAPE CONTROLLER + +DEFOPT DL10P==1 ;HAS DL10/DC76 TTY CONTROLLER +DEFOPT PDCLKP==1 ;HAS "DeCoriolis" CLOCK + +DEFOPT NETP==1 ; Has net connection +DEFOPT INETP==1 ; Include Internet IP code +DEFOPT TCPP==1 ; Include Internet TCP code +DEFOPT XBL==25. ; # TCP connections +DEFOPT IMPP==1 ; Has IMP interface +DEFOPT KAIMP==1 +DEFOPT IMPUS==106 ; ARPA net host number +DEFOPT IMPUS3== ; Internet host number +DEFOPT NCPP==0 ; Flush NCP code +DEFOPT NNETCH==30. ; # NCP network channels +DEFOPT CHAOSP==1 ;HAS CHAOS NET +DEFOPT MYCHAD==1440 ;CHAOS NET ADDRESS +DEFOPT NINDX==50. ;NUMBER OF INDICES +DEFOPT DLCP==1 ;CHAOS NET GOES THROUGH DL10 + +DEFOPT NOTYS==0 ;# KA-10 CONSOLE 0 TTYS +DEFOPT NETYS==33. ;# KL-10 DTE20 TTYS +NEWDTE==1 ;TEMPORARY CONDITIONAL TO ENABLE NEW DTE20 PROTOCOL +DEFOPT NDLTYS==4. ;# TTYS ON DL10/DC76 + ;Note: 3d TTY on DL10 is VT52 by console. +DEFOPT NSTTYS==25. ;# OF STY'S (PSEUDO-TTY'S) + +DEFOPT TSYSM==2048. ;TOTAL PDP10 1K MEM BLOCKS +DEFOPT NMMP==7 ;# EXEC PAGES FOR MMP TABLE (# VIR PGS/512.) + +DEFSYM PMRCM==7777 ;12 BIT REAL CORE ADDR +DEFSYM PMCSHM==10000 ;CACHE ENABLE BIT +DEFSYM PMAGEM==160000 ;3 BIT AGE +DEFSYM PMUNSD==0 ;NO UNUSED BITS + +DEFINE ITSIRP BODY +IRPS ITS,,[MX] +BODY +TERMIN +TERMIN +] ;MX + +IFE MCOND AI,[ +DEFOPT KS10P==1 ;The new AI has a KS10 processor. + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==2 ;# of disk drive units +DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with RP06 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RP06P==1 ; with two RP06s + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT NETP==1 ;Has one kind of network anyway +;AI's IMP is gone 5/5/89 +;DEFOPT INETP==1 ; Include Internet code +;DEFOPT TCPP==1 ; Include TCP code +;DEFOPT XBL==30. ; # TCP network channels +;DEFOPT IMPP==1 ; Has an IMP interface +;DEFOPT KSIMP==1 ; ACC LH/DH interface on KS unibus +;DEFOPT IMPUS==206 ; ARPA net host number +;DEFOPT IMPUS3== ; Internet host number of IMP +;DEFOPT PKTTRC==-1 ;Packet tracing code enabled +DEFOPT CHAOSP==1 ;Has CHAOS net +DEFOPT MYCHAD==3130 ;CHAOS net address +DEFOPT NINDX==50. ;Number of indices +DEFOPT CH11P==1 ;CHAOS net goes through Unibus + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==8. ;# DZ-11 TTYs +DEFOPT NSTTYS==12. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[AI MC] +BODY +TERMIN +TERMIN +] ;AI + +IFE MCOND MC,[ +DEFOPT KS10P==1 ;MC is now a KS10. + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with RP06 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RP06P==1 ; with one RP06 + +DEFOPT NETP==1 ;Has one kind of network anyway +DEFOPT INETP==1 ; Include Internet code +DEFOPT TCPP==1 ; Include TCP code +DEFOPT XBL==30. ; # TCP network channels +;MC's IMP is gone 5/18/89 +;DEFOPT IMPP==1 ; Has an IMP interface +;DEFOPT KSIMP==1 ; ACC LH/DH interface on KS unibus +;DEFOPT IMPUS==354 ; ARPA net host number +;DEFOPT IMPUS3== ; Internet host number of IMP +DEFOPT IPUNCP==1 ; IP in Chaos UNC is our only Internet address +DEFOPT PKTTRC==-1 ;Packet tracing code enabled +DEFOPT CHAOSP==1 ;Has CHAOS net +DEFOPT MYCHAD==3131 ;CHAOS net address +DEFOPT NINDX==50. ;Number of indices +DEFOPT CH11P==1 ;CHAOS net goes through Unibus + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==6. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[AI MC] +BODY +TERMIN +TERMIN +] ;MC + +IFE MCOND ML,[ +DEFOPT KS10P==1 ;ML is now a KS10. + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with RP06 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RP06P==1 ; with one RP06 + +DEFOPT NETP==1 ;Has one kind of network anyway +DEFOPT CHAOSP==1 ;Has CHAOS net +DEFOPT MYCHAD==3133 ;CHAOS net address +DEFOPT NINDX==50. ;Number of indices +DEFOPT CH11P==1 ;CHAOS net goes through Unibus + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==4 ; 4 of them + DEFSYM DZ0BA=:760010 + DEFSYM DZ1BA=:760020 + DEFSYM DZ2BA=:760030 + DEFSYM DZ3BA=:760040 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==4. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[AI MC ML] +BODY +TERMIN +TERMIN +] ;ML + +; KLH: temporarily hijacking "MD" to help fix programs with hardwired +; tables of ITS names, including MD. +; To restore, change MDKS to MD and flush the virtual KLH10-based MD. +IFE MCOND MDKS,[ + +DEFOPT KS10P==1 ;MD is a KS10. + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==3 ;# 1K blocks in a TUT (better agree with disk DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RM80P==1 ; with one RM80 + +DEFOPT NETP==1 ;Has one kind of network anyway +DEFOPT CHAOSP==1 ;Has CHAOS net +DEFOPT MYCHAD==3132 ;CHAOS net address +DEFOPT NINDX==50. ;Number of indices +DEFOPT CH11P==1 ;CHAOS net goes through Unibus + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==4 ; 4 of them + DEFSYM DZ0BA=:760010 + DEFSYM DZ1BA=:760020 + DEFSYM DZ2BA=:760030 + DEFSYM DZ3BA=:760040 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==4. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[AI MC ML MD] +BODY +TERMIN +TERMIN +] ;MD + +IFE MCOND SI,[ ;Stacken ITS +DEFOPT KS10P==1 ;SI is a KS10 + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with RP06 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RP06P==1 ; with one RP06 + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==2 ; 2 of them + DEFSYM DZ0BA=:760010 + DEFSYM DZ1BA=:760020 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==16. ;# DZ-11 TTYs +DEFOPT NSTTYS==8. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[SI] +BODY +TERMIN +TERMIN +] ;SI + +IFE MCOND FU,[ ;Australian KS10 +DEFOPT KS10P==1 ;FU is a KS10 + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with RP06 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RP06P==1 ; with one RP06 + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==8. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[FU] +BODY +TERMIN +TERMIN +] ;FU + +IFE MCOND PM,[ ;MRC's KS10 (PandaMonium) +DEFOPT KS10P==1 ;PM is a KS10 + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==2 ;# 1K blocks in a TUT (better agree with RM03 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RM03P==1 ; with one RM03 + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==5. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[PM] +BODY +TERMIN +TERMIN +] ;PM + +IFE MCOND DXKS,[ ;Digex's real hardware KS10 (formerly DX) +DEFOPT KS10P==1 ;DX-KS is a KS10 + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +DEFOPT NTUTBL==2 ;# 1K blocks in a TUT (better agree with RM03 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RM03P==1 ; with one RM02/3 + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==8. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[DX] +BODY +TERMIN +TERMIN +] ;DX + +;;; Mostly virtual machines from here on, based on a KLH10 emulating a KS10. +;;; Try to simplify things by combining common definitions; perhaps +;;; this should be moved to an INSRT file instead. + +DEFINE DEFVKS ; Define common virtual KS10 +DEFOPT KS10P==1 ;Using a KS10 processor +DEFOPT KLH10P==1 ;(actually a KLH10) + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units for now +DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with RP06 DEFS) +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +DEFOPT RP06P==1 ; with one (not two) RP06s + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT NETP==1 ;Has one kind of network anyway +DEFOPT INETP==1 ; Include Internet code +DEFOPT TCPP==1 ; Include TCP code +DEFOPT XBL==30. ; # TCP network channels +DEFOPT IMPP==1 ; Has an IMP interface +DEFOPT SSIMP==1 ; Hooked to "Simulated Simple IMP" +;DEFOPT IMPUS==236. ; IMP net host number (old-style) (206 octal) +;DEFOPT IMPUS3== ; IP address +;DEFOPT NM%IMP== ; Subnet mask +;DEFOPT PKTTRC==-1 ;Packet tracing code enabled + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==8. ;# DZ-11 TTYs +DEFOPT NSTTYS==20. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +TERMIN ; end DEFVKS + +IFE MCOND NX,[ ; New-10 (or Non-eXistent) - original virtual system + +DEFVKS ; Now uses standard virtual KS10 config + +DEFOPT IMPUS==236. ; IMP net host number (old-style) (206 octal) +DEFOPT IMPUS3== ; IP address +DEFOPT NM%IMP== ; Subnet mask + +DEFINE ITSIRP BODY ; No local companions +IRPS ITS,,[NX] +BODY +TERMIN +TERMIN +] ;NX + +IFE MCOND KN,[ ; KN for KN10 virtual system (alt to NX) + +DEFVKS ; Now uses standard virtual KS10 config + +DEFOPT IMPUS==134. ; IMP net host number (old-style) (206 octal) +DEFOPT IMPUS3== ; IP address (Arpa,AI,ML,MC) +DEFOPT NM%IMP== ; Subnet mask + +DEFINE ITSIRP BODY ; No local companions +IRPS ITS,,[KN] +BODY +TERMIN +TERMIN +] ;NX + +; KLH: See comment for MDKS above. Borrowing the "MD" name in order +; to help fix programs with hardwired ITS names. +IFE MCOND MD,[ ; Virtual MD + +DEFVKS ; Initially use standard virtual KS10 config + +DEFOPT IMPUS==51. ; IMP net host number (old-style) +DEFOPT IMPUS3== ; IP address +DEFOPT NM%IMP== ; Subnet mask +;DEFOPT PKTTRC==-1 ;Packet tracing code enabled + +DEFINE ITSIRP BODY +IRPS ITS,,[MD] +BODY +TERMIN +TERMIN +] ;MD (virtual) + +IFE MCOND PI,[ ; Public ITS + +DEFVKS ; Initially use standard virtual KS10 config + +DEFOPT IMPUS==51. ; IMP net host number (old-style) +DEFOPT IMPUS3== ; IP address +DEFOPT NM%IMP== ; Subnet mask +;DEFOPT PKTTRC==-1 ;Packet tracing code enabled + +DEFINE ITSIRP BODY ; Has some local friends +IRPS ITS,,[PI DU DX] +BODY +TERMIN +TERMIN +] ;PI + +IFE MCOND DX,[ ; Digex virtual ITS + +DEFVKS ; Initially use standard virtual KS10 config + +DEFOPT IMPUS==52. ; IMP net host number (old-style) +DEFOPT IMPUS3== ; IP address +DEFOPT NM%IMP== ; Subnet mask +;DEFOPT PKTTRC==-1 ;Packet tracing code enabled + +DEFINE ITSIRP BODY ; Has some local friends +IRPS ITS,,[PI DU DX] +BODY +TERMIN +TERMIN +] ;PI + +IFE MCOND DU,[ ; Derivative ITS + +DEFVKS ; Initially use standard virtual KS10 config + +DEFOPT IMPUS==53. ; IMP net host number (old-style) +DEFOPT IMPUS3== ; IP address +DEFOPT NM%IMP== ; Subnet mask +;DEFOPT PKTTRC==-1 ;Packet tracing code enabled + +DEFINE ITSIRP BODY ; Has some local friends +IRPS ITS,,[PI DU DX] +BODY +TERMIN +TERMIN +] ;DU + +IFE MCOND DB,[ ;DistriBution world +DEFOPT KS10P==1 ;DB is a KS10 + +IF1,[ +PRINTX /Configuration? (RP06, RP07, RM03 or RM80) / +.TTYMAC CNFG +DBRP06==0 ? DBRP07==0 ? DBRM03==0 ? DBRM80==0 +DB!CNFG==1 +IFE DBRP06\DBRP07\DBRM03\DBRM80, .ERR "CNFG" unknown. +TERMIN +] + +DEFOPT MAXJ==60. ;Max number of jobs allowed +DEFOPT NQCHN==30. ;Max number of user disk channels open in system +DEFOPT SCHBLN==10. ;Number of runnable jobs to remember +DEFOPT SWBLK==1 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==1 ;1= Use page-in preemption + +DEFOPT DMDSK==1 ;1= Use DM DSK format +DEFOPT QRSRVP==1 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==1 ;1= Keep track of file authors + +DEFOPT NQS==1 ;# of disk drive units +IFN DBRP06, DEFOPT NTUTBL==4 ;# 1K blocks in a TUT (better agree with +IFN DBRP07, DEFOPT NTUTBL==9 ; RP06 DEFS, RP07 DEFS, +IFN DBRM03, DEFOPT NTUTBL==2 ; RM03 DEFS or RM80 DEFS) +IFN DBRM80, DEFOPT NTUTBL==3 + +DEFSYM NUDSL==500. ;# directories in file system (better agree with + ; SALV and DSKDMP) +DEFOPT RH11P==1 ; Has RH11 controller +IFN DBRP06, DEFOPT RP06P==1 ; with one RP06 +IFN DBRP07, DEFOPT RP07P==1 ; with one RP07 +IFN DBRM03, DEFOPT RM03P==1 ; with one RM02/3 +IFN DBRM80, DEFOPT RM80P==1 ; with one RM80 + +DEFOPT NMTCS==1 ;Number of magtape units (so why not NMTUS?) +DEFOPT TM03S==1 ;TM03/RH11 Unibus tape controller + +DEFOPT MSPP==1 ;HAS MESSAGE SLURPER +DEFOPT DEMON==1 ;HAS DEMON ROUTINES + +DEFOPT DZ11P==1 ;Has DZ11 TTY controllers + DEFOPT DZ11NB==1 ; 1 of them + DEFSYM DZ0BA=:760010 + +DEFOPT NKSTYS==1 ;# KS-10 8080 console 0 TTYs +DEFOPT NDZTYS==8. ;# DZ-11 TTYs +DEFOPT NSTTYS==4. ;# of STY's (Pseudo-TTY's) + +DEFOPT TSYSM==512. ;Total PDP10 1K memory blocks +DEFOPT NMMP==4 ;# exec pages for MMP table (# vir pgs/512.) + +;;; Next four better agree with SYSTEM;KSDEFS: +DEFSYM PMAGEM==020000 ;2.5 Age bit +DEFSYM PMCSHM==010000 ;2.4 Cache enable bit +DEFSYM PMRCM==001777 ;2.1 - 1.1 Physical page number + ; (The page table supports 20 bit physical + ; addresses.) +DEFSYM PMUNSD==146000 ;Unused bits + +DEFINE ITSIRP BODY +IRPS ITS,,[DB] +BODY +TERMIN +TERMIN +] ;DB + +; Default settings for all configuration-dependent assembly parameters. +; If a system definition has already set a value for a parameter, the +; default here will NOT be used. + +DEFOPT KL10P==0 ;1= KL10 processor +DEFOPT KS10P==0 ;1= KS10 processor +DEFOPT KA10P==0 ;1= KA10 processor +DEFOPT KLH10P==0 ;1= KLH10 + +IFE KL10P\KS10P\KA10P, .ERR Processor type required - KL10P, KS10P or KA10P + +IFN KS10P, DEFOPT KSFREQ==4100000./60. ; KS-ticks per PD-tick. + +DEFOPT C1MXP==0 ;1= Has PI channel 1 MPX feature + +DEFOPT MAXJ==63. ; Max number of jobs allowed +DEFOPT NQCHN==30. ; Max number of user disk channels open in system +DEFOPT SCHBLN==10. ; Number of runnable jobs to remember +DEFOPT SWBLK==0 ;1= 1=> swap blocking, 0=> privileged user +DEFOPT SWPWSP==0 ;1= Use working-set swap scheduler +DEFOPT PAGPRE==0 ;1= Use page-in preemption + +; Disk parameters + +IFNDEF NQS, .ERR NQS required - # of disk drive units +IFNDEF NTUTBL,.ERR NTUTBL required - # 1K blocks in a TUT + ; (This defn better agree with DC/RP/RH/T3 defs) +IFNDEF NUDSL, .ERR NUDSL required - # directories in file system + ; Just changing this will not work!! +DEFOPT DC10P==0 ;1= Has Systems Concepts disk control +DEFOPT RP10P==0 ;1= DEC RP10 disk control (RP02) +DEFOPT RH10P==0 ;1= DEC RH10 disk control (RP04) +DEFOPT RH11P==0 ;1= DEC RH11 disk control +DEFOPT RP06P==0 ;1= RH11 with RP06's +DEFOPT RM03P==0 ;1= RH11 with RM03's +DEFOPT RM80P==0 ;1= RH11 with RM80's +DEFOPT T300P==0 ;1= Trident T-300 via PDP-11 +DEFOPT QRDCMP==0 ;1= Software read-compare +DEFOPT DMDSK==0 ;1= Use DM DSK format +DEFOPT QRSRVP==0 ;1= Has reserved disk packs (Secondary pack) +DEFOPT QAUTHP==0 ;1= Keep track of file authors + + +; Magtape parameters +DEFOPT NMTCS==0 ; # Mag tape units +DEFOPT TM10A==0 ;1= IO-bus TM10 Mag tape +DEFOPT TM10B==0 ;1= DF10/TM10 Magtape +DEFOPT TM03S==0 ;1= TM03/RH11 KS Magtape +IFN NMTCS,IFE TM10A\TM10B\TM03S,.ERR No Magtape Controller type specified? + + +; Network parameters +DEFOPT NETP==0 ;1= Connected to some network, include net code. +DEFOPT CHAOSP==0 ;1= Has CHAOS net (Must have some interface def'd) +DEFOPT NCPP==0 ;1= Include NCP code (must have IMPP) +DEFOPT INETP==0 ;1= Include Internet Protocol code +DEFOPT TCPP==0 ;1= Include TCP code (must have INETP) +DEFOPT IPUNCP==0 ;1= IP in Chaos UNC is our only Internet address + +;NCP-specific parameters +DEFOPT NNETCH==30. ; # of NCP network channels system supports + +;IP-specific paramters +IFN INETP,[ +IFE IPUNCP,IFNDEF IMPUS3,.ERR IMPUS3 must be defined as Internet host addr +IFN IPUNCP,IFE CHAOSP,.ERR Chaosnet must exist for IP encapsulation scheme +] + +;Chaos-specific parameters +IFN CHAOSP,IFNDEF MYCHAD, .ERR MYCHAD must be defined as CHAOSnet host addr +IFN CHAOSP,DEFOPT IMPUS4==<+MYCHAD> ; MIT Chaosnet IP addr +IFN CHAOSP,DEFOPT NM%CHA== ; Set default netmask for it +DEFOPT NINDX==0 ; Number of indices for CHAOS connections +DEFOPT CH10P==0 ;1= CHAOS net via PDP-10 I/O bus +DEFOPT CH11P==0 ;1= CHAOS net via Unibus Chaos board on KS10 +DEFOPT DLCP==0 ;1= CHAOS net via DL10 +DEFOPT T11CHP==0 ;1= CHAOS net via Rubin 10-11 interface +IFN T11CHP,DEFOPT CH11NM==7 ; CHAOS net is on PDP-11 #7 of 10-11 interface + +;IMP interface specific parameters +DEFOPT IMPP==0 ;1= Has IMP interface to ARPAnet +IFN IMPP,IFNDEF IMPUS, .ERR IMPUS must be defined as ARPAnet host # +IFN IMPP,IFNDEF IMPUS3,.ERR IMPUS3 must be defined as ARPAnet host # +;IFN IMPP,DEFOPT NM%IMP== ; Define default netmask +DEFOPT DMIMP==0 ;1= Has DM IMP interface +DEFOPT KAIMP==0 ;1= Has AI-KA/ML-KA/MX-KL IMP interface +DEFOPT KSIMP==0 ;1= Has KS10 UNIBUS ACC LH-DH IMP interface +DEFOPT SSIMP==0 ;1= Has "Simulated Simple IMP", similar to KSIMP +IFN IMPP,IFE DMIMP+KAIMP+KSIMP+SSIMP,.ERR IMPP requires an interface type +IFN IMPP,IFN IPUNCP,.ERR IPUNCP and IMPP are incompatible + +; Generic network interface parameters +DEFOPT NNIFS== ; # of network interfaces + + +; TTY line parameters +DEFOPT MTYP==0 ;1= Has Morton box multiplexor +DEFOPT DL10P==0 ;1= Has DL10/DC76 TTY controller +DEFOPT TK10P==0 ;1= Has TK10 TTY scanner +DEFOPT DPKPP==0 ;1= Has Datapoint kludge TTY mpxr +DEFOPT DZ11P==0 ;1= Has DZ11 Multiplexors + +IFN DZ11P, IFNDEF DZ11NB, .ERR DZ11P requires a value for DZ11NB +IFE DZ11P, DEFSYM DZ11NB==0 ; # DZ11s + +DEFOPT NOTYS==0 ; # KA-10 console 0 TTYs +DEFOPT NETYS==0 ; # KL-10 DTE20 console 0 TTYs +DEFOPT NKSTYS==0 ; # KS-10 8080 console 0 TTYs +DEFOPT NNVTTS==0 ; # Nova TTYs +DEFOPT NNTYS==0 ; # TTYs on Knight kludge +DEFOPT NDZTYS==0 ; # TTYs on DZ11s +DEFOPT NDPTYS==0 ; # TTYs on Datapoint kludge +DEFOPT NMTYS==0 ; # TTYs on Morton box +DEFOPT NDLTYS==0 ; # TTYs on DL10/DC76 +DEFOPT NSTTYS==0 ; # of STY's (Pseudo-TTY's) +DEFOPT N11TYS==0 ; # PDP11 TV TTYs (formerly 16. of them) +IFN N11TYS,[ + DEFOPT TT11NM==0 ; # of PDP11 that handles TTYs. + DEFOPT MXVBN==40 ; Max video buffer # for assignment purposes. +] ; These actually correspond to video switch inputs. +DEFOPT NF2741==0 ; First 2741 console # +DEFOPT N2741==0 ; # 2741's (formerly 3; flushed 3/21/76) +DEFOPT SYSCON==0 ; TTY # of system job console +DEFOPT APL==0 ; AP TTY # + +; Miscellaneous devices + +DEFOPT TEN11P==0 ;1= Rubin 10-11 interface (late of AI-KA) +DEFOPT XGP==0 ;1= Has XGP +DEFOPT NEWDTP==0 ;1= Has new dectape controller +DEFOPT NUNITS==0 ; # Utape (DECtape) units +DEFOPT OLPTP==0 ;1= Has old LPT (Data Products) +DEFOPT NLPTP==0 ;1= Has new LPT (ODEC) +DEFOPT GLPTP==0 ;1= Has Gould LPT +DEFOPT TTLPTP==0 ;1= LPT is on a TTY line (value = line #) +DEFOPT PTRP==0 ;1= Has paper tape reader/punch +DEFOPT PTPP==0 ;1= Paper tape punch works +DEFOPT PDCLKP==0 ;1= Has "DeCoriolis" clock +DEFOPT HCLKP==0 ;1= Has Holloway clock (device 710, 714) +DEFOPT CCLKP==0 ;1= Hack chess tournament clock stuff (device 374) +DEFOPT 340P==0 ;1= Has 340 display +DEFOPT TABP==0 ;1= Has Sylvania tablet +DEFOPT PLTP==0 ;1= Has Calcomp plotter +DEFOPT DSDP==0 ;1= Has deselection device +DEFOPT ARMP==0 ;1= Has arm (AMF mostly) (R.I.P.) +DEFOPT IMXP==0 ;1= Has IMX (input A/D multiplexor) (alas, no more) +DEFOPT OMXP==0 ;1= Has OMX (output D/A multiplexor) (alas, no more) +DEFOPT VIDP==0 ;1= Has VIDI (R.I.P.) +DEFOPT NTYP==0 ;1= Has DM kludge for talking to 11 +DEFOPT CODP==0 ;1= Has Morse code F1 92Mhz broadcast output device +DEFOPT PDP6P==0 ;1= Has PDP-6 (alas, no more) + ; (turning this on probably won't work) +DEFOPT RBTCP==0 ;1= Has Robot console +DEFOPT NDAP==0 ;1= Has "new" D/A converters (alas, no more) +DEFOPT STKP==0 ;1= Has Stanford keyboard (not any more) +DEFOPT E.SP==0 ;1= Has E&S LDS-1 display + +; Some software options + +DEFOPT MSPP==0 ;1= Want message slurper +DEFOPT DEMON==0 ;1= Want crufty DM demon facility +DEFOPT TPLP==0 ;1= Want pseudo LPT + + +; Physical memory parameters + +DEFOPT ECCMEM==0 ;1= Has HIC's error correcting memory +DEFOPT NMMP==4 ; # exec pages for MMP table (# vir pgs/512.) +IFNDEF TSYSM, .ERR TSYSM required - Total PDP10 1K mem blocks + +IFNDEF PMRCM, .ERR PMRCM required - Mem addr field in page map +IFNDEF PMAGEM,.ERR PMAGEM required - Age bits in page map +IFNDEF PMCSHM,.ERR PMCSHM required - Cache bit +IFNDEF PMUNSD,.ERR PMUNSD required - Unused bits + +IFNDEF ITSIRP,.ERR ITSIRP required - Names of local ITS machines + +; Any parameter conflict checks can be made here. + +IFN DZ11P,[ +IFG NDZTYS-, .ERR More DZ11 TTYs than controllers? +REPEAT DZ11NB,[ +IFNDEF CONC DZ,\.RPCNT,BA, .ERR DZ11 bus address not specified. +] +] +IFN $$TEMP,EXPUNGE DEFSYM +IFN $$TEM2,EXPUNGE DEFOPT diff --git a/build/simhv3/init b/build/simhv3/init new file mode 100644 index 00000000..f35274cf --- /dev/null +++ b/build/simhv3/init @@ -0,0 +1,9 @@ +set console wru=034 +set cpu its +set tim y2k +set ch enabled +set ch node=177002 +at tu0 out/simhv3/minsys.tape +at tu1 out/simhv3/salv.tape +set rp0 rp06 +at rp0 out/simhv3/rp0.dsk diff --git a/build/simhv3/start b/build/simhv3/start new file mode 100755 index 00000000..8b994f9b --- /dev/null +++ b/build/simhv3/start @@ -0,0 +1,60 @@ +#!/bin/sh + +#Defaults. +VT52=${VT52:--B -b 9600} + +EXIT=: +trap "" QUIT INT TERM + +started() { + EXIT="$EXIT;stop $1 $2" + trap "$EXIT" EXIT + echo "$1 started, pid $2" +} + +stop() { + echo -n "Stopping $1... " + kill "$2" 2> /dev/null + sleep 2 + kill -9 "$2" 2> /dev/null + echo "OK" +} + +gt40() { + (sleep 3; tools/simh/BIN/pdp11 build/simh/gt40 >gt40.log 2>&1) & + started GT40 "$!" +} + +vt52() { + (sleep 2; tools/vt05/vt52 $VT52 telnet localhost 10018 >vt52.log 2>&1) & + started "VT52" "$!" +} + +chaosnet() { + (sleep 2; tools/cbridge/cbridge -c build/cbridge.conf >cbridge.log 2>&1) & + started "Chaosnet bridge" "$!" +} + +help() { + cat <