diff --git a/Makefile b/Makefile index 55135d6e..25471693 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,7 @@ SRC = syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \ decus bsg muds54 hello rrs 2500 minsky danny survey librm3 librm4 \ klotz atlogo clusys cprog r eb cpm mini nova sits nlogo bee gld mprog2 \ cfs libmud librm1 librm2 mprog mprog1 mudbug mudsav _batch combat \ - mits_b + mits_b minits DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \ chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \ xfont maxout ucode moon acount alan channa fonts games graphs humor \ diff --git a/build/misc.tcl b/build/misc.tcl index aaabff3c..43721055 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -1142,6 +1142,10 @@ respond "*" ":midas sysbin;_eak; chahtb\r" expect ":KILL" respond "*" ":link device; chaos hostab, sysbin; chahtb bin\r" +# Chaosnet 11LOAD service for booting MINITS. +respond "*" ":midas device; chaos 11load_minits; 11load\r" +expect ":KILL" + # OBS respond "*" ":midas sys;ts obs_bawden;obs\r" expect ":KILL" diff --git a/build/timestamps.txt b/build/timestamps.txt index db4adfa2..42504e28 100644 --- a/build/timestamps.txt +++ b/build/timestamps.txt @@ -2069,6 +2069,8 @@ mini/gtros.mac 197309171214.52 mini/ifmac.mac 197309171215.22 mini/space.inf 197612031148.30 mini/space.mac 197603291231.31 +minits/11load.18 198905271435.18 +minits/11load.files 198905271446.38 minits/ether-.3 198606230618.02 minits/-how-t.21 198606231622.38 minits/minits.4 198606230648.36 diff --git a/src/minits/11load.18 b/src/minits/11load.18 new file mode 100755 index 00000000..3943dd0e --- /dev/null +++ b/src/minits/11load.18 @@ -0,0 +1,433 @@ +; -*- Midas -*- + +title 11LOAD +; This isn't the original 11LOAD, this source was reconstructed by Alan on +; 5/27/89 from the binary. +; This version now uses DSK:MINITS;11LOAD FILES on all ITS machines. + +a=:1 ? chsr==:1 +b=:2 ? chsx==:2 +c=:3 +d=:4 +e=:5 +vladdr=:6 +binptr=:7 +blkcnt=:10 +pkbcnt=:11 +dski=:12 +t=:13 +tt=:14 +chsrcv=:15 +chsxmt=:16 +p=:17 + +.insrt dsk:syseng;chsdef > + +maxbyt==:100. ; Never sends packets with more than this + ; many bytes of data. + +call=:pushj p, +return=:popj p, + +define syscall name,args + .call [setz ? .1stwd sixbit /name/ ? args(400000)] +termin + +tsint: +loc 42 + -ltsint,,tsint +loc tsint + p + %piioc ? 0 ? -1 ? -1 ? die +ltsint==:.-tsint + +go: .close 1, + move p,[-lpdl,,pdl-1] + .suset [.roption,,t] + tlo t,%opint + .suset [.soption,,t] + .suset [.smask,,[%piioc]] + .suset [.sdf1,,[0]] + tlne t,%opddt + jrst go1 + syscall detach,[movsi 7 ? movei %jself] + call die + setom tplvl + setzm jclflg + .suset [.sjname,,[sixbit /11LOAD/]] + .suset [.ssname,,[sixbit /CHAOS/]] + jrst go2 + +go1: setzm tplvl + tlnn t,%opcmd + skipa + setom jclflg +go2: syscall chaoso,[movei chsrcv ? movei chsxmt ? movei 1] + call die + skipe tplvl + call ackrfc + call getfn + call mapfil + jrst sndfil + +sndfil: movei binptr,buffer +sblklp: call nxtblk + call pkstrt + jumpe blkcnt,sndend +sbytlp: call putbyt + jumpe blkcnt,[ call sndpkt + call endblk + jrst sblklp ] + jumpe pkbcnt,[ call sndpkt + call pkstrt + jrst sbytlp ] + jrst sbytlp + +nxtblk: movei a,1 + came a,(binptr) + aoja binptr,nxtblk + aoj binptr, + skipe (binptr) + aoja binptr,nxtblk + aoj binptr, + move blkcnt,1(binptr) + lsh blkcnt,10 + ior blkcnt,0(binptr) + subi blkcnt,6 + move vladdr,3(binptr) + lsh vladdr,10 + ior vladdr,2(binptr) + addi binptr,4 + return + +endblk: aos binptr + return + +pkstrt: movei t,%corfc + dpb t,[$cpkop pktbuf] + move t,ldhost + dpb t,[$cpkda pktbuf] + move t,[.byte 8 ? "L ? "D ? 40 ? 40] + movem t,pktbuf+%cpkdt+0 + move dski,[440800,,pktbuf+%cpkdt+1] + move t,vladdr + idpb t,dski + lsh t,-10 + idpb t,dski + movei pkbcnt,maxbyt-6 + return + +putbyt: move t,(binptr) + aoj binptr, + soj blkcnt, + idpb t,dski + soj pkbcnt, + aoj vladdr, + return + +sndpkt: syscall chaoso,[movei chsr ? movei chsx ? movei 1] + call die + movei t,0 + dpb t,[$cpkfc pktbuf] + dpb t,[$cpksa pktbuf] + dpb t,[$cpksi pktbuf] + movei t,maxbyt + sub t,pkbcnt + dpb t,[$cpknb pktbuf] + syscall pktiot,[movei chsx ? movei pktbuf] + call die + movei t,30.*10. ; 10 seconds + skipe debug + hrloi t,3600. ; Really what DCP wanted? + syscall netblk,[movei chsr ? movei %csrfs ? t ? movem tt] + call die + cain tt,%csrfs + call exit + cain tt,%csinc + call exit + caie tt,%cscls + call die + syscall pktiot,[movei chsr ? movei pktbuf] + call die + ldb t,[$cpkop pktbuf] + caie t,%coans + cain t,%cocls + return + call die + +sndend: call sndpkt + jrst exit + +ackrfc: movei t,%colsn + dpb t,[$cpkop pktbuf] + move t,[.byte 8 ? "1 ? "1 ? "L ? "O] + movem t,pktbuf+4 + move t,[.byte 8 ? "A ? "D] + movem t,pktbuf+5 + movei t,6 + dpb t,[$cpknb pktbuf] + syscall pktiot,[movei chsxmt ? movei pktbuf] + call die + movei a,30.*10. ; 10 seconds + skipe debug + hrloi a,177777 ; A long time + syscall netblk,[movei chsrcv ? movei %cslsn ? a ? movem b] + call die + caie b,%csrfc + jrst die + syscall pktiot,[movei chsrcv ? movei pktbuf] + call die + ldb e,[$cpksa pktbuf] + movem e,ldhost + ldb e,[$cpknb pktbuf] + caie e,6 + jrst chajcl + move e,ldhost + syscall open,[movsi .uai ? movei dski ? [sixbit /DSK/] + [sixbit /11LOAD/] ? [sixbit /FILES/] + [sixbit /MINITS/]] + call die +ctll: .iot dski,a + skipge a + call die + caie a,^L + jrst ctll +fndsa: .iot dski,a + skipge a + call die + caie a,^M + jrst fndsa + .iot dski,a + skipge a + call die + caie a,^J + jrst fndsa + .iot dski,a + skipge a + call die + caie a,"+ + jrst fndsa + setzi b, + movei c,6 +fndsa1: .iot dski,a + lsh b,3 + addi b,-"0(a) + sojg c,fndsa1 + came b,e + jrst fndsa +fndfi1: .iot dski,a + skipge a + call die + caie a,": + jrst fndfi1 +fndfi2: .iot dski,a + skipge a + call die + caie a,": + jrst fndfi2 + move c,[440700,,fnmbuf] +fnloop: .iot dski,a + idpb a,c + caie a,^M + jumpg a,fnloop + .close dski, + move a,ldhost +repeat 6,[ + idivi a,8 + addi b,'0 + push p,b + ] + move b,[440600,,a] +repeat 6,[ + pop p,c + idpb c,b + ] + .rdati b, + syscall mlink,[[sixbit /DSK/] + [sixbit /_11LOAD/] ? a ? [sixbit /KTV/] + c ? b ? [sixbit /KTV/]] + jfcl + return + +chajcl: move c,[440800,,pktbuf+%cpkdt] +repeat 6,[ + ibp c + sos e + ] + move b,[440700,,fnmbuf] +chajc2: ildb a,c + idpb a,b + sojg e,chajc2 + idpb e,b + return + +rfn"$$rfn==:1 +.insrt dsk:syseng;rfn > + +ifn 0,[ ;; Use this instead of the .INSRTed RFN to test that this produces + ;; the same binary as ex assembled from the old source. +.begin rfn + +rfn: push p,b + push p,c + move c,b + push p,1(c) + push p,2(c) + setz e, +rfn0: call ruc +rfn2: call rsixg + jrst rfn1 + call rfnn +rfn1: caie a,72 + cain a,73 + jrst rfn0 + cain a,40 + jrst rfn0 + caie a,30 + cain a,31 + jrst rfnx + sub p,[2,,2] + pop p,c + pop p,b + return +rfnn: cain a,72 + jrst rfnc + cain a,73 + jrst rfns + aoja e,rfnt(e) +rfnt: jrst rfnf1 + jrst rfnf2 + jrst rfnc + jrst rfns + sos e + return +rfns: movem b,3(c) + tlo e,10 + movs b,(c) + tlne e,1 + return + lsh b,-6 + caie b,4151 + cain b,5554 + return + cain b,4455 + return + caie b,6053 + cain b,6053 + return + caie b,4354 + cain b,5257 + return +rfns1: movsi b,446353 +rfnc: movem b,(c) + tlo e,1 + return +rfnf1: movem b,1(c) + tlo e,2 + return +rfnf2: movem b,2(c) + tlo e,4 + return +rfnx: addi a,(p) + move b,-31(a) + call rfnn + jrst rfn0 +ruc: ildb a,d + cail a,140 + subi a,40 + return +rsix: push p,c + move c,[440640,,b] + jrst rsixg1 +rsixg: push p,c + move c,[440600,,b] +rsixg1: setz b, +rsix0: cain a,21 + jrst rsix2 + caie a,177 + caig a,40 + jrst rsix1 + tlne c,40 + jrst rsix3 + caie a,72 + cain a,73 + jrst rsix1 + call rsixtp + jrst rsix3 +rsix1: skipl c + aos -1(p) + pop p,c + return +rsix2: call ruc +rsix3: subi a,40 + tlne c,770000 + idpb a,c + call ruc + jrst rsix0 + +.end rfn +] + +getfn: movei b,loadfn + skipe jclflg + .break 12,[..rjcl,,fnmbuf] + move d,[440700,,fnmbuf] + call rfn"rfn + return + +rsixtp: return + +switch: return + +mapfil: movei b,loadfn + syscall open,[movei dski ? %clbit,,.bii ? 0(b) ? 1(b) ? 2(b) ? 3(b)] + call die + syscall fillen,[movei dski ? movem fillen] + call die + move a,fillen + addi a,1777 + lsh a,-12 + movn a,a + hrl a,a + hrri a,buffer_-12 + setzi b, + syscall corblk,[movei %cbred ? movei %jself ? a ? movei dski ? b] + call die + syscall close,[movei dski] + call die + move a,fillen + move b,buffer-1(a) + sojg a,.-1 ; To page it in? + return + +die: skipe debug + .value +exit: .logou a, + .break 16,160000 + .value + +loadfn: sixbit /DSK/ ; What a crazy filename! + sixbit /PTV1/ + sixbit /BIN/ + sixbit /SYS2/ + +fnmbuf: block 24 + +constants + +junk: 0 +ldhost: 0 +debug: 0 +fillen: 0 +jclflg: 0 +tplvl: 0 + +lpdl==:20 + +pdl: block lpdl + +pktbuf: block %cpmxw + +buffer=:<.+1777>&<-2000> + +end go diff --git a/src/minits/11load.files b/src/minits/11load.files new file mode 100755 index 00000000..ab272a8b --- /dev/null +++ b/src/minits/11load.files @@ -0,0 +1,89 @@ +This file contains the files associated with the various chaos +down-loadable PDP11 systems. The following format MUST be +observed for the PDP-10 side to win: Anything before a control-L +is considered comments. After the control-L, the following +sequence notes the beginning of a CHAOS ADDRESS-BIN FILE pair: + Following are 6 +octal digits, which comprise the 16 bit CHAOS address of the +concentrator then a , then by the site name, another +colon, and finally the filename topped off by a . The end of the site/filename pairs is accomplished by +end-of-file, but it is a good idea to put something there, such +as a control-L to make sure there is a after +the last pair. + + + +--- Official in use systems go here --- +; This can't work because the 11LOAD server wants a BIN (old-style, +; uncompressed PALX output) not a PBIN file: +; +003120: AI Bridge 2 : minits;aibr2 pbin + +; On 5/28/89 Alan commented out the rest of this file when instituting a +; new scheme of MINITS booting. +; +; +000426: AI-11 : .;ioelev aibin +; +000500: PLASMA : chsgtv;mux bin +; +003502: NPLASMA : chsktv;mux 38bldg +; +003601: FUSION : chsktv;mux pfc +; +003641: PFC-V80 : ktv;v80 bin +; +000530: FOOBAR -- this is really EECS bridge : ktv;eebrdg bin +; +000542: EE-NETWORK-11 : ktv;eenet11 bin +; +000406: TOTO (OZ-Network-11) : ktv;oznet11 bin +; +003512: EECS-TEST running MINITS : ktv;eetest bin +; ;+000512: EECS-TEST (Just a temp entry) : cl;ltst bin +; ;+003420: EE Admin Concetrator : ktv;ee11 bin +; +003420: Benji Mouse (11/23) : ktv;benj23 bin +; +012420: Benji Mouse (11/23) : ktv;benj23 bin +; +035077: NE43-2A-HUB : ktv;ne432a bin +; +035112: NE43-2B-HUB : ktv;ne432b bin +; +015113: NE43-4A-HUB : ktv;ne434a bin +; +003116: NE43-7A-HUB : ktv;ne437a bin +; +013014: NE43-7A-HUB : ktv;ne437a bin +; +003115: NE43-7B-HUB : ktv;ne437b bin +; +013015: NE43-7B-HUB : ktv;ne437b bin +; +013012: NE43-7C-HUB : ktv;ne437c bin +; +003106: NE43-7C-HUB : ktv;ne437c bin +; +013013: NE43-8A-HUB : ktv;ne438a bin +; +003056: NE43-8A-HUB : ktv;ne438a bin +; +003144: NE43-8B-HUB : ktv;ne438b bin +; +013066: NE43-8B-HUB : ktv;ne438b bin +; +003145: NE43-8C-HUB : ktv;ne438c bin +; +013067: NE43-8C-HUB : ktv;ne438c bin +; +013025: NE43-8D-HUB : ktv;ne438d bin +; +003117: AI Bridge 1 : ktv;aibr1 bin +; ;+003033: AI TV system: ktv;aitv11 bin +; +013002: ACRMIT-bridge: ktv;acrmit bin +; +000402: Symbolics Microwave Bridge : ktv;symbol bin +; +003037: MIT-PUMA : pgs;puma bin +; +003033: MIT-COUGAR : pgs;puma cougar +; +015405: SPEECH-HUB-1 : ktv;sphub1 bin +; +016220: Speech terminal concentrator : ktv;spterm bin +; +016320: NIAL-HUB : ktv;nialhb bin +; +007740: MTH-HUB : ktv;mathhb bin +; +007700: Mass ave 17-21 bridge : ktv;massav bin +; +017024: PRANCER : ktv;sym1 bin +; +020001: PRANCER : ktv;sym1 bin +; +017036: DANCER Symbolics test system : ktv;sym2 bin +; +003410: FRANKY EE Concentrator : ktv;franky bin +; +012410: FRANKY EE Concentrator : ktv;franky bin +; +016276: ARCMAC 11 : ktv;arcmac bin +; +010601: SIPB office: ktv;sipb11 bin +; ;+010601: SIPB office : chsncp;sipb11 bin +; +035040: MIT-Harris : ktv;mithar bin +; +013077: MIT-NIKKI : ktv;nikki bin +; +015407: MIT-VLSI-HUB : ktv;vlsihb bin +; +016330: COG-SCI-HUB : ktv;cogshb bin +; +; --- Test systems can go here. Just comment out the above --- +; +003502: mouse testing : ktv;mouse bin +; +003502: New Plasma Test : ktv;nplasm bin +; +003621: pfc-test : chsgtv;boot1b bin +; +003621: PFC-TEST running MINITS : ktv;pfctst bin +; +003144: OZ-TIP-2 : chsgtv;boot1b bin +; ;+000510: EECS-TEST yet again : dcp;ctv bin +; ;+000510: EECS-TEST test stuff : cl;ltst bin +; +016300: CCC test system : guest3;pace mbin +; +000001: Testing a 20X fix: .temp.;delete me + +