diff --git a/Makefile b/Makefile index 2e391b73..d405cead 100644 --- a/Makefile +++ b/Makefile @@ -57,7 +57,7 @@ DSKDMP = bin/ks10/boot/dskdmp.rp06 KLH10=tools/klh10/tmp/bld-ks-its/kn10-ks-its SIMH=tools/simh/BIN/pdp10 KA10=tools/sims/BIN/pdp10-ka -KL10=tools/sims/BIN/pdp10-ka +KL10=tools/sims/BIN/pdp10-kl ITSTAR=tools/itstar/itstar WRITETAPE=tools/tapeutils/tapewrite MAGFRM=tools/dasm/magfrm @@ -240,7 +240,7 @@ $(KA10): $(MAKE) -C tools/sims pdp10-ka $(KL10): - $(MAKE) -C tools/sims pdp10-ka + $(MAKE) -C tools/sims pdp10-kl $(ITSTAR): $(MAKE) -C tools/itstar diff --git a/README.md b/README.md index 5c56ad31..b98b0101 100644 --- a/README.md +++ b/README.md @@ -53,16 +53,19 @@ we'd be delighted to test this on a real KS10. To build ITS with this repository, you need some tools installed: make, C compiler, and expect. For KA10, you also need SDL or SDL2 for the Type 340 display. Ensure all submodules are checked out, and then -type `make EMULATOR=simh`, `make EMULATOR=pdp10-ka`, or `make -EMULATOR=klh10`. This will leave built files in the `out` directory, -one of which is a disk image with ITS installed. +type `make EMULATOR=simh`, `make EMULATOR=pdp10-ka`, `make +EMULATOR=pdp10-kl`, or `make EMULATOR=klh10`. This will leave built +files in the `out` directory, one of which is a disk image with ITS +installed. To start ITS, type `./start`. If you see `KLH10#`, type `go` and -Enter. When you see the `DSKDMP` prompt, type `its`, press Enter, and -then `ESC g`. Eventually, you will see `SYSTEM JOB USING THIS -CONSOLE`. You are now ready to log in, so type Control-Z. See -[doc/DDT.md](doc/DDT.md) for a list of useful commands. When done, -shut down orderly by typing `:lock` and then `5down`. +Enter. If you see the `DSKDMP` prompt, type `its`, press Enter, and +then `ESC g`. If you use the `pdp10-kl` emulator there is no prompt +and you need to type `Esc L ITS`, press Enter, and then `ESC g`. +Eventually, you will see `SYSTEM JOB USING THIS CONSOLE`. You are now +ready to log in, so type Control-Z. See [doc/DDT.md](doc/DDT.md) for +a list of useful commands. When done, shut down orderly by typing +`:lock` and then `5down`. ITS can optionally use some additional peripheral devices. To attach a simulated GT40 graphics terminal, type `./start gt40` when booting @@ -132,9 +135,9 @@ There is a [detailed list of all installed programs](doc/programs.md). ### Network Support Currently, networking is only supported under the KLH10 and SIMH KA10 -emulators. The SIMH KS10 does not have the necessary support. As of -this release, only the ITS monitor, host table tools, and binary host -table are installed. +and KL10 emulators. The SIMH KS10 does not have the necessary +support. As of this release, only the ITS monitor, host table tools, +and binary host table are installed. Currently, basic TCP network support is in the build, in addition to both a TELNET/SUPDUP server, and both TELNET and SUPDUP clients. diff --git a/bin/kl10/_/@.ddt b/bin/kl10/_/@.ddt index c8238abc..9ef9bd16 100644 Binary files a/bin/kl10/_/@.ddt and b/bin/kl10/_/@.ddt differ diff --git a/bin/kl10/_/its.bin b/bin/kl10/_/its.bin index f6fbe36a..806e59d9 100644 Binary files a/bin/kl10/_/its.bin and b/bin/kl10/_/its.bin differ diff --git a/bin/kl10/_/salv.bin b/bin/kl10/_/salv.bin index deeffd91..0312f4a7 100644 Binary files a/bin/kl10/_/salv.bin and b/bin/kl10/_/salv.bin differ diff --git a/bin/kl10/boot/@.ddt b/bin/kl10/boot/@.ddt index c8238abc..9ef9bd16 100644 Binary files a/bin/kl10/boot/@.ddt and b/bin/kl10/boot/@.ddt differ diff --git a/bin/kl10/boot/magdmp.bin b/bin/kl10/boot/magdmp.bin index 6a0b73c5..ba1c64ee 100644 Binary files a/bin/kl10/boot/magdmp.bin and b/bin/kl10/boot/magdmp.bin differ diff --git a/bin/kl10/boot/salv.bin b/bin/kl10/boot/salv.bin index f40ce02a..0312f4a7 100644 Binary files a/bin/kl10/boot/salv.bin and b/bin/kl10/boot/salv.bin differ diff --git a/build/kl10/include.tcl b/build/kl10/include.tcl index 72963bfb..cb9ae771 100644 --- a/build/kl10/include.tcl +++ b/build/kl10/include.tcl @@ -21,7 +21,7 @@ proc mark_packs {} { respond "UNIT #" "0" respond "#0?" "y" respond "NO =" "0\r" - expect -timeout 300 "VERIFY" + expect -timeout 300 "VERIFICATION BEGINS" respond "ALLOC =" "3000\r" respond "PACK ID =" "0\r" @@ -29,7 +29,7 @@ proc mark_packs {} { respond "UNIT #" "1" respond "#1?" "y" respond "NO =" "1\r" - expect -timeout 300 "VERIFY" + expect -timeout 300 "VERIFICATION BEGINS" respond "ALLOC =" "3000\r" respond "PACK ID =" "1\r" @@ -37,7 +37,7 @@ proc mark_packs {} { respond "UNIT #" "2" respond "#2?" "y" respond "NO =" "2\r" - expect -timeout 300 "VERIFY" + expect -timeout 300 "VERIFICATION BEGINS" respond "ALLOC =" "3000\r" respond "PACK ID =" "2\r" } @@ -55,8 +55,8 @@ proc its_switches {} { proc make_ntsddt {} { # KL10 NTSDDT. respond "*" ":midas dsk0:.;@ ddt_system;ddt\r" - respond "cpusw=" "0\r" - respond "ndsk=" "1\r" + respond "cpusw=" "2\r" + respond "ndsk=" "3\r" respond "dsksw=" "3\r" respond "dsktp=" "0\r" respond "1PRSW=" "0\r" @@ -84,7 +84,7 @@ proc make_dskdmp {} { respond "R10R6P=" "N\r" respond "NUDSL=" "500.\r" respond "KS10P=" "N\r" - respond "KL10P=" "N\r" + respond "KL10P=" "Y\r" expect ":KILL" } @@ -129,7 +129,7 @@ proc dump_nits {} { } proc magdmp_switches {} { - respond "KL10P=" "n\r" + respond "KL10P=" "y\r" respond "TM10BP=" "y\r" respond "340P=" "n\r" } @@ -175,12 +175,7 @@ proc patch_lisp {} { } proc translate_diagnostics {} { - respond "*" "\033\024" - respond " " "dsk: maint; part f, part f.old\r" - respond "*" "\033\024" - respond " " "dsk: maint; part g, part g.old\r" - respond "*" "\033\024" - respond " " "dsk: maint; part k, part k.old\r" + # KL10 doesn't need any translations. } proc patch_clib_16 {} { @@ -205,9 +200,9 @@ proc copy_to_klfe {file} { } proc comsat_switches {} { - respond "Limit to KA-10 instructions" "y\r" + respond "Limit to KA-10 instructions" "n\r" } proc dqxdev_switches {} { - respond "Limit to KA-10 instructions" "y\r" + respond "Limit to KA-10 instructions" "n\r" } diff --git a/build/misc.tcl b/build/misc.tcl index fcbd4129..39fe651d 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -1135,7 +1135,7 @@ respond "*" ":midas;324 sys;ts 10run_sysen2; 10run\r" expect ":KILL" respond "*" ":job maint\r" -# KA10 needs the .OLD files. +# KA10 needs the .OLD files. KL10 and KS10 the newer. translate_diagnostics respond "*" ":load maint; part a\r" respond "*" ":start\r" diff --git a/build/pdp10-kl/boot b/build/pdp10-kl/boot index f60d3e64..f5cb6ab3 100644 --- a/build/pdp10-kl/boot +++ b/build/pdp10-kl/boot @@ -1,19 +1,19 @@ set console wru=034 set cpu its -set cpu 512k -set dpa dis -set dpb dis +set cpu 2048k set rpb dis set tua dis -set fha dis -set dpb dis set lpt dis -set cr dis set dc disable -set dtc dis -set dk dis -set pd off +set pd ena +set pd on +set mta type=b at mta0 out/pdp10-kl/minsrc.tape +set rpa0 rp04 +set rpa1 rp04 +set rpa2 rp04 at rpa0 out/pdp10-kl/rp04.0 +at rpa1 out/pdp10-kl/rp04.1 +at rpa2 out/pdp10-kl/rp04.2 load -i bin/kl10/boot/@.ddt go diff --git a/build/pdp10-kl/boot2 b/build/pdp10-kl/boot2 index 58d68aed..91227711 100644 --- a/build/pdp10-kl/boot2 +++ b/build/pdp10-kl/boot2 @@ -1,22 +1,17 @@ set console wru=034 set cpu its -set cpu 512k -set dpa dis -set dpb dis +set cpu 2048k set rpb dis set tua dis -set fha dis -set dpb dis set lpt dis -set cr dis set dc disable -set dtc dis -set dk dis set pd ena set pd on -set mta mpx=7 set mta type=b at mta0 out/pdp10-kl/sources.tape +set rpa0 rp04 +set rpa1 rp04 +set rpa2 rp04 at rpa0 out/pdp10-kl/rp04.0 at rpa1 out/pdp10-kl/rp04.1 at rpa2 out/pdp10-kl/rp04.2 diff --git a/build/pdp10-kl/build.tcl b/build/pdp10-kl/build.tcl index f035e4db..cd46ac3b 100644 --- a/build/pdp10-kl/build.tcl +++ b/build/pdp10-kl/build.tcl @@ -3,7 +3,7 @@ set out "out/$env(EMULATOR)" set emulator_escape "\034" proc start_salv {} { - uplevel #0 {spawn ./tools/sims/BIN/pdp10-ka build/pdp10-kl/init} + uplevel #0 {spawn ./tools/sims/BIN/pdp10-kl build/pdp10-kl/init} setup_timeout respond "MAGDMP\r\n" "l\033ddt\r" respond "\n" "t\033salv bin\r" @@ -17,7 +17,7 @@ proc start_dskdmp args { } { set ini "build/pdp10-kl/boot2" } - set foo "spawn ./tools/sims/BIN/pdp10-ka $ini" + set foo "spawn ./tools/sims/BIN/pdp10-kl $ini" uplevel #0 $foo setup_timeout } diff --git a/build/pdp10-kl/config.202 b/build/pdp10-kl/config.202 index 61641ee5..63981144 100644 --- a/build/pdp10-kl/config.202 +++ b/build/pdp10-kl/config.202 @@ -480,21 +480,19 @@ TERMIN ] ;MC IFE MCOND KL,[ -DEFOPT KA10P==1 +DEFOPT KL10P==1 ;KL IS NOW A KL10 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==3 ;# OF DISK UNITS -DEFOPT NQCHN==50. ;NUMBER 2314 CHNLS -DEFOPT RP04P==1 -DEFOPT RP06P==0 +DEFOPT NQS==3 ;# OF DISK UNITS (3 RP04'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 RP04P==1 ; WITH RP04 DISKS 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 @@ -502,44 +500,40 @@ DEFOPT QRSRVP==1 ;HAS RESERVED DISK PACKS DEFOPT QAUTHP==1 ;KEEPS TRACK OF FILE AUTHORS DEFOPT NMTCS==1 ;NUMBER MAG TAPE UNITS -DEFOPT TM10A==0 ;IO-BUS MAG TAPE -DEFOPT TM10B==1 ;IO-BUS MAG TAPE +DEFOPT TM10B==1 ;DF10-BASED TAPE CONTROLLER -;DEFOPT DL10P==1 ;HAS DL10/DC76 TTY CONTROLLER +DEFOPT DL10P==0 ;HAS NO 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 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==0 ;NO CHAOS NET +DEFOPT MYCHAD==1440 ;CHAOS NET ADDRESS +DEFOPT NINDX==50. ;NUMBER OF INDICES -DEFOPT NOTYS==1 ;# 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 NOTYS==0 ;# KA-10 CONSOLE 0 TTYS +DEFOPT NETYS==16. ;# KL-10 DTE20 TTYS +NEWDTE==1 ;TEMPORARY CONDITIONAL TO ENABLE NEW DTE20 PROTOCOL DEFOPT NSTTYS==25. ;# 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.) +DEFOPT TSYSM==2048. ;TOTAL PDP10 1K MEM BLOCKS +DEFOPT NMMP==7 ;# EXEC PAGES FOR MMP TABLE (# VIR PGS/512.) -DEFSYM PMRCM==1777 ;10 BIT REAL CORE ADR -DEFSYM PMAGEM==16000 ;3 BIT AGE -DEFSYM PMCSHM==0 ;NO CACHE BIT -DEFSYM PMUNSD==160000 ;UNUSED BITS +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] +IRPS ITS,,[MC] BODY TERMIN TERMIN diff --git a/build/pdp10-kl/init b/build/pdp10-kl/init index 6d1c9273..fddac251 100644 --- a/build/pdp10-kl/init +++ b/build/pdp10-kl/init @@ -1,20 +1,16 @@ set console wru=034 set cpu its set cpu 512k -set dpa dis -set dpb dis set rpb dis set tua dis -set fha dis -set dpb dis set lpt dis -set cr dis set dc disable -set dtc dis -set dk dis +set mta type=a at mta0 out/pdp10-kl/kl-magdmp.tap at mta5 out/pdp10-kl/kl-minsys.tape -set rpa rp04 +set rpa0 rp04 +set rpa1 rp04 +set rpa2 rp04 at rpa0 out/pdp10-kl/rp04.0 at rpa1 out/pdp10-kl/rp04.1 at rpa2 out/pdp10-kl/rp04.2 diff --git a/build/pdp10-kl/run b/build/pdp10-kl/run index 580d1074..2b75df8e 100644 --- a/build/pdp10-kl/run +++ b/build/pdp10-kl/run @@ -1,25 +1,22 @@ set console wru=034 set cpu its set cpu idle -set cpu 512k -set dpa dis -set dpb dis +set cpu 2048k set rpb dis set tua dis -set fha dis -set dpb dis set lpt dis -set cr dis set dc disable -set dtc dis -set dk dis +set tty enabled +set tty 8b lines=16 +at tty 10007 set pd ena set pd on -set mta mpx=7 set mta type=b -set rpa rp04 +set rpa0 rp04 +set rpa1 rp04 +set rpa2 rp04 at rpa0 out/pdp10-kl/rp04.0 at rpa1 out/pdp10-kl/rp04.1 at rpa2 out/pdp10-kl/rp04.2 -load -i @.ddt +load -i bin/kl10/boot/@.ddt go diff --git a/build/pdp10-kl/start b/build/pdp10-kl/start index 676ff7bc..c2983eb5 100755 --- a/build/pdp10-kl/start +++ b/build/pdp10-kl/start @@ -17,15 +17,10 @@ stop() { echo "OK" } -gt40() { - (sleep 3; tools/simh/BIN/pdp11 build/pdp10-ka/gt40 >gt40.log 2>&1) & - started GT40 "$!" -} - while test -n "$1"; do "$1" shift done -tools/sims/BIN/pdp10-ka build/pdp10-kl/run +tools/sims/BIN/pdp10-kl build/pdp10-kl/run exit 0 diff --git a/src/system/salv.315 b/src/system/salv.316 similarity index 99% rename from src/system/salv.315 rename to src/system/salv.316 index b106e93a..c9c2e26b 100644 --- a/src/system/salv.315 +++ b/src/system/salv.316 @@ -163,23 +163,23 @@ PRINTX /Which machine? / NUNITS==6 ];MC IFCE MCHN,KL,[ - ;SA==105*2000 ; MC system is big, need to push SALV higher. + SA==105*2000 ; KL system is big, need to push SALV higher. FIRSPK==0 LASTPK==2 NUDSL==500. DC10P==0 RP10P==0 RP04P==1 - RP06P==0 + RP06P==0 RH10P==1 - T300P==0 ;UNIT 3 IS FIRST T-300 UNIT - KL10P==0 + T300P==0 + KL10P==1 OLPTP==0 NLPTP==0 TTLPTP==0 ;NO LPT AT ALL TCMXH==100. ;LA36 - LIGHTS==4 ;KL-UDGE - NDRIVE==3 ;8 DOESN'T FIT IN 128K + LIGHTS==500 ;KL-UDGE + NDRIVE==3 NUNITS==3 ];KL IFCE MCHN,EX,[ diff --git a/src/system/ttytyp.320 b/src/system/ttytyp.321 similarity index 98% rename from src/system/ttytyp.320 rename to src/system/ttytyp.321 index 7efd1e00..d262e897 100644 --- a/src/system/ttytyp.320 +++ b/src/system/ttytyp.321 @@ -327,8 +327,22 @@ MCONDX MC,{ ;;; MC .ENDC ;} MCONDX KL,{ ;;; KL - TTDLA36 0,TT=%TTLCL,HOR=80.,SPEED=110 ;T00 System Console + TTDLA36 0,TT=%TTLCL,HOR=110. ;T00 System Console TTDAAA 1,SPEED=9600 ;T01 + TTDAAA 2,SPEED=9600 ;T02 + TTDAAA 3,SPEED=9600 ;T03 + TTDAAA 4,SPEED=9600 ;T04 + TTDAAA 5,SPEED=9600 ;T05 + TTDAAA 6,SPEED=9600 ;T06 + TTDAAA 7,SPEED=9600 ;T07 + TTDAAA 10,SPEED=9600 ;T10 + TTDAAA 11,SPEED=9600 ;T11 + TTDAAA 12,SPEED=9600 ;T12 + TTDAAA 13,SPEED=9600 ;T13 + TTDAAA 14,SPEED=9600 ;T14 + TTDAAA 15,SPEED=9600 ;T15 + TTDAAA 16,SPEED=9600 ;T16 + TTDAAA 17,SPEED=9600 ;T17 .ENDC ;} REPEAT NSTTYS,[ diff --git a/tools/sims b/tools/sims index 8e10ec9d..eeae1be5 160000 --- a/tools/sims +++ b/tools/sims @@ -1 +1 @@ -Subproject commit 8e10ec9d1ef337f29ed8954af1533ae6df854a04 +Subproject commit eeae1be5f11cd430da68a4f08b8c1380777bb7db