diff --git a/src/system/chaos.288 b/src/system/chaos.289 old mode 100755 new mode 100644 similarity index 99% rename from src/system/chaos.288 rename to src/system/chaos.289 index e29d65b5..a3f3defd --- a/src/system/chaos.288 +++ b/src/system/chaos.289 @@ -55,7 +55,8 @@ MXWIND==100 ;MAXIMUM WINDOW SIZE (8K WORDS) .SEE CH11P ;1 MEANS USE UNIBUS CHAOSNET HARDWARE ON KS10 ;Internet address of my Chaosnet Interface -IMPUS4==<.BYTE 4 ? 0 ? .BYTE 8 ? 128. ? 31. ? .BYTE 16. ? MYCHAD> +.SEE IMPUS4 ; Should now be defined in CONFIG > +;IMPUS4==<.BYTE 4 ? 0 ? .BYTE 8 ? 128. ? 31. ? .BYTE 16. ? MYCHAD> ;PER-INDEX VARIABLES diff --git a/src/system/config.196 b/src/system/config.202 old mode 100755 new mode 100644 similarity index 83% rename from src/system/config.196 rename to src/system/config.202 index 352b6558..2c5d1661 --- a/src/system/config.196 +++ b/src/system/config.202 @@ -34,6 +34,15 @@ IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 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 @@ -65,7 +74,7 @@ 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==<1200,,400006> ; Internet 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 @@ -163,7 +172,7 @@ DEFOPT NETP==1 ; Has net connection DEFOPT IMPP==1 ; Has IMP interface DEFOPT KAIMP==1 DEFOPT IMPUS==306 ; ARPA net host number -DEFOPT IMPUS3==<1200,,600006> ; Internet 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 @@ -219,7 +228,7 @@ 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==<1200,,200006> ; Internet 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 @@ -275,7 +284,7 @@ DEFOPT XBL==25. ; # TCP connections DEFOPT IMPP==1 ; Has IMP interface DEFOPT KAIMP==1 DEFOPT IMPUS==106 ; ARPA net host number -DEFOPT IMPUS3==<1200,,200006> ; Internet 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 @@ -337,7 +346,7 @@ DEFOPT NETP==1 ;Has one kind of network anyway ;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==<1200,,400006> ; Internet host number of IMP +;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 @@ -399,7 +408,7 @@ 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==354 ; ARPA net host number -;DEFOPT IMPUS3==<1200,,600054> ; Internet host number of IMP +;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 @@ -489,7 +498,10 @@ TERMIN TERMIN ] ;ML -IFE MCOND MD,[ +; 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. @@ -697,8 +709,8 @@ TERMIN TERMIN ] ;PM -IFE MCOND DX,[ ;Digex's KS10 -DEFOPT KS10P==1 ;DX is a KS10 +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 @@ -747,6 +759,163 @@ 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 + ; 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. @@ -816,6 +985,8 @@ 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 @@ -826,12 +997,19 @@ 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 -IFN IMPP,IFE DMIMP+KAIMP+KSIMP,.ERR IMPP requires an interface type +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 diff --git a/src/system/dskdmp.215 b/src/system/dskdmp.215 old mode 100755 new mode 100644 diff --git a/src/system/imp.365 b/src/system/imp.367 old mode 100755 new mode 100644 similarity index 96% rename from src/system/imp.365 rename to src/system/imp.367 index 30b687e1..32967046 --- a/src/system/imp.365 +++ b/src/system/imp.367 @@ -3,7 +3,7 @@ IMPVRS==.IFNM2 ; Version of IMP code IFN NCPP,.FATAL IMP Code doesn't support NCP any more! -IFE KSIMP,.FATAL Wrong IMP driver file included! +IFE KSIMP\SSIMP,.FATAL Wrong IMP driver file included! OVHMTR IMP ;Charge all this stuff to the IMP @@ -343,15 +343,20 @@ FNDHS5: MOVEM I,IMPHTF ;Free list ; C/ Immediate destination address ; Returns +1, can't send right now, +2, OK to send ; -IMPCTS: MOVE T,C ;Set up for FNDHST +IMPCTS: +IFE SSIMP,[ + MOVE T,C ;Set up for FNDHST AND T,[<377_16.>+377] ;Mask out all but host and IMP field CALL FNDHST ;Get host index in H POPJ P, ;No host entry, don't send JSP T,IMPBLI ;See if OK to send POPJ P, ;IMP wants to block, no send +] ; IFE SSIMP JRST POPJ1 ;Skip return if OK to send. +IFE SSIMP,[ ; Not needed with Simple IMP! + ;;; IMP Blockage avoidance ; The current IMP software will not accept more than 8 active ; messages to a single host; attempting to send a 9th message will block @@ -400,14 +405,19 @@ IMPBLI: AOS Q,IMPHTC(H) SETZM IMPHTT(H) JRST (T) ;Block one last time, next try will win. +] ; IFE SSIMP + ;Decrement block count on receipt of any kind of ACK ; IMPBLD: SOSL Q,IMPHTC(H) JRST IMPBL2 BUG INFO,[IMP: negative RFNM-wait cnt, Hst=],OCT,IMPHTN(H) SETZB Q,IMPHTC(H) -IMPBL2: CAIL Q,%IMPMA-1 ;If we were blocking on this host, +IMPBL2: +IFE SSIMP,[ + CAIL Q,%IMPMA-1 ;If we were blocking on this host, PUSHJ P,IMPIOS ;Ensure IMP output started up so blocked stuff +] JRST (T) ; gets sent promptly. @@ -493,7 +503,8 @@ IMPLDD: SKIPG B,IMPIBC ;Get count of available data MOVEI B,IMPLDS ;Yep, only want leader now MOVS A,IMPIBP ;Copy and reformat leader to IMPILB HRRI A,IMPILB - BLTUB A,IMPILB-1(B) +IFE SSIMP,BLTUB A,IMPILB-1(B) +IFN SSIMP,BLT A,IMPILB-1(B) ; No reformatting needed for SSIMP ADDM B,IMPIBP ;Increment buffer pointer, MOVN C,B ADDM C,IMPIBC ; and decrement count @@ -668,7 +679,8 @@ IMPRM: SKIPG A,IMPIBC ;Get available input word count HRL B,IMPIBP ;Source MOVE C,IMPIBC ;Input words available ADDI C,-1(B) ;Last destination address - BLTUB B,(C) ;Copy and reformat data to IP buffer +IFE SSIMP,BLTUB B,(C) ;Copy and reformat data to IP buffer +IFN SSIMP,BLT B,(C) ; No reformatting needed for SSIMP MOVE B,IMPIBC ;Get word count back to B SETZB C,IMPIBC ;Say zero offset to IP header, and clear count. MOVE J,IMPCSH ;Set idx to host-table entry dgm received from. @@ -797,17 +809,20 @@ IFN 0,[ ;First and third word initialized at assembly time MOVSI B,233_10. ;IP link # in left 8 bits MOVEM B,IMOLDR+2 ;Set up third word ] - AND C,[<377_16.>+377] ;Mask out all but host and IMP field + +IFE SSIMP, AND C,[<377_16.>+377] ;Mask out all but host and IMP field LSH C,4. ;Move net address to correct field MOVEM C,IMOLAD ;set up second word of leader ;Copy leader and datagram to IMPOBF MOVE B,[IMOLDR,,IMPOBF] - BLTBU B,IMPOBF+IMPLDS-1 ;Move IMP leader into place +IFE SSIMP,BLTBU B,IMPOBF+IMPLDS-1 ;Move IMP leader into place +IFN SSIMP,BLT B,IMPOBF+IMPLDS-1 ; No reformatting needed for SSIMP MOVS B,PK.BUF(A) ;SOURCE,,COUNT MOVEI A,IMPLDS(B) ;Size including leader to A HRRI B,IMPOBF+IMPLDS ;Put d'gram immediately after leader. - BLTBU B,IMPOBF-1(A) +IFE SSIMP,BLTBU B,IMPOBF-1(A) +IFN SSIMP,BLT B,IMPOBF-1(A) ; No reformatting needed for SSIMP PUSHJ P,IMPSOH ;Go start hardware MOVEI C,%ISOID ;Remember we are outputting IP leader MOVEM C,IMPOS @@ -828,7 +843,8 @@ IMPOBN: SETOM IMPOAC ;No more output ; IMONOP: MOVEI A,IMPNOS ;Length of NOP message MOVE B,[IMPNOP,,IMPOBF] ;BLT (and reformat) NOP to output buffer - BLTBU B,IMPOBF-1(A) +IFE SSIMP,BLTBU B,IMPOBF-1(A) +IFN SSIMP,BLT B,IMPOBF-1(A) ; No reformatting needed for SSIMP PUSHJ P,IMPSOH ;Start output of (A) words from IMPOBF to IMP MOVEI C,%ISONP ;Set correct output FSM state MOVEM C,IMPOS @@ -909,7 +925,9 @@ REPEAT 0,[ SKIPE IMPUP ;Fake up our status TDZA A,A ;We're down MOVSI A,2000 ;We are up - MOVEI B,IMPUS ;And our host umber +;; KLH: "fixed" 11/1/99 +;; MOVEI B,IMPUS ;And our host umber + MOVE B,NIFIPA ;And our host number JRST POPJ1 diff --git a/src/system/inet.138 b/src/system/inet.139 old mode 100755 new mode 100644 similarity index 90% rename from src/system/inet.138 rename to src/system/inet.139 index 026a7017..560bc4d2 --- a/src/system/inet.138 +++ b/src/system/inet.139 @@ -158,11 +158,15 @@ IPRDGV: CALL IPCKSM ; Compute checksum for IP header JRST [ METER("IP: Ifl bad cksm") AOS IPMCKF ; Bump two meters JRST IPRD90] ; Go flush it forthwith. - MOVE B,IP$DST(W) ; Get destination host, should be us -IFE IPUNCP, CAME B,[IMPUS3_4] - CAMN B,[IMPUS4_4] - JRST IPRD10 - ; Packet is to be forwarded + LDB B,[IP$DST(W)] ; Get destination host, should be us +REPEAT NNIFS,[ + CAMN B,NIFIPA+.RPCNT ; Is it us? + JRST IPRD10 ; Yep! +] + ; Not for us, should we forward packet? + SKIPG IPFORW + JRST [ METER("IP: Packets not forwarded") + JRST IPRD90] METER("IP: Packets forwarded") LDB B,[IP$TTL(W)] ; Decrement time to live SOJLE B,[ METER("IP: Packets expired") @@ -654,14 +658,13 @@ ICMPP2: LDB A,[341000,,1(H)] ; Get pointer into bad IP header ; ICMP type 5 - Redirect ICMRD: MOVEI D,IC$IPH(H) - MOVE A,IP$SRC(D) ; Get source addr of alleged IP header - CAME A,[IMPUS4_4] ; Must be a datagram WE sent. -IFE IPUNCP,[ - CAMN A,[IMPUS3_4] - CAIA - ] - JRST ICMP90 ; Bah, flush. Probably should log it. - LDB A,[IP$DST (D)] ; Get dest addr we used + LDB A,[IP$SRC(D)] ; Get source addr of alleged IP header +REPEAT NNIFS,[ + CAMN A,NIFIPA+.RPCNT ; Is it us? + JRST ICMRD1 ; Yep! +] + JRST ICMP90 ; Bah, flush. Probably should log it. +ICMRD1: LDB A,[IP$DST (D)] ; Get dest addr we used GETNET A ; Derive net number LDB B,[IC$GWA (H)] ; Get gateway addr recommended for this net MOVEI C,NIPGW-1 ; Scan backwards thru gateway table @@ -670,7 +673,7 @@ ICMRD2: CAMN A,IPGWTN(C) JRST [ SKIPN IPGWTG(C) ; Don't change a direct-route entry! JRST ICMP90 JRST ICMRD3 ] - CAIL C,NIPPGW ; Skip if prime gateway, not replaceable + CAIL C,NIPPGW ; Skip if permanent gateway, not replaceable JRST [ SKIPN IPGWTN(C) MOVEI T,(C) ; Save index of last free slot found SKIPL TT @@ -688,16 +691,20 @@ ICMRD2: CAMN A,IPGWTN(C) SUB T,IPGWTM(C) CAIGE T,60.*60.*30. ; Flushing entry less than 1 hour old? BUG INFO,[ICMP: GW table full, net/gw ],OCT,IPGWTN(C),OCT,IPGWTG(C),[=>],OCT,A,OCT,B -ICMRD3: GETNET D,B ; Figure out which interface this gateway is on - MOVEI T,NIPPGW-1 - SKIPN IPGWTG(T) - CAME D,IPGWTN(T) - SOJGE T,.-2 - JUMPL T,ICMP90 ; I can't figure out how to get to this gateway anyway - MOVEM A,IPGWTN(C) ; Set network number + + ; Figure out which interface this gateway is on +ICMRD3: +REPEAT NNIFS,[ ; Check local interfaces + MOVE T,B ; Set up GW address + AND T,NIFIPM+.RPCNT ; Use interface netmask (may be subnetting) + CAMN T,NIFIPN+.RPCNT ; Does it match interface net? + JRST [ MOVE T,NIFIPO+.RPCNT ; Yes! Go use it! + JRST ICMRD4] +] + JRST ICMP90 ; Failed, can't figure out how to get there. +ICMRD4: MOVEM A,IPGWTN(C) ; Set network number MOVEM B,IPGWTG(C) ; and its corresponding gateway addr - MOVE T,IPGWTI(T) ; and its interface - MOVEM T,IPGWTI(C) + MOVEM T,IPGWTI(C) ; and its interface routine MOVE T,TIME ; Pretend it was used so it MOVEM T,IPGWTM(C) ; stays around for a while JRST ICMP90 ; Done! @@ -1111,27 +1118,32 @@ IFN IPUNCP, MOVEI T,488.-40. ; This should be small enough... IF1,.ERR Amazing MIT-Specific crocks near IPMTU... ; IPBSLA - Best Local Address for a given destination +; Scans backward thru interface tables, so as to default to first entry. ; A/ Destination IP Address ; Return A/ Local Address to use +; Clobbers T. IPBSLA: -IFE IPUNCP,[ - GETNET A - CAMN A,NW%CHW - SKIPA A,[IMPUS4] ; Local Address on wrapped-chaos net - MOVE A,[IMPUS3] ; Default local host address to IMP -] ;IFE IPUNCP -IFN IPUNCP, MOVE A,[IMPUS4] - RET +REPEAT NNIFS-1,[ + MOVE T,A + AND T,NIFIPM+ ; Mask to get net # + CAMN T,NIFIPN+ ; Is it the net # for this interface? + JRST [ MOVE A,NIFIPA+ ; Yes, use our IP addr for it! + RET] +] + MOVE A,NIFIPA ; Default - use first interface + RET ; (IMP, if it exists, else CHAOS) + ; IPLCLH - Skip return if address in A is one of us. ; Called with JSP T,IPLCLH IPLCLH: -IFE IPUNCP, CAME A,[IMPUS3] - CAMN A,[IMPUS4] - JRST 1(T) - JRST (T) +REPEAT NNIFS,[ + CAMN A,NIFIPA+.RPCNT + JRST 1(T) ; Yup, won +] + JRST (T) ; Nope, no match ; IPKSND - Invoked by TCP to send off a segment. ; Fills in the IP header fields, checksums, and puts on output queue. @@ -1182,16 +1194,23 @@ IPKSNQ: MOVSI T,(%PKODN) ; Clear the "output-done" flag. ; IPKSNI - Route packet to appropriate gateway and interface ; A/ PE ptr to datagram - PK.BUF must be set up. ; Clobbers A,B,T,Q -IPKSNI: PUSH P,C - SKIPLE C,PK.BUF(A) ; Get the packet buffer from the PE - CAMG C,[2,,0] +IPKSNI: SKIPLE B,PK.BUF(A) ; Get the packet buffer from the PE + CAMG B,[2,,0] BUG HALT,[IP: Null dgm being sent] - LDB C,[IP$DST(C)] ; Get destination address + LDB B,[IP$DST(B)] ; Get destination address - ;; This is where to apply final gateway routing code, based on Internet address in C. - GETNET T,C ; Get network # into T - MOVSI Q,-NIPGW ; Search table of gateways and direct routes - CAME T,IPGWTN(Q) ; Skip if network # matches + ;; This is where to apply final gateway routing code, based on Internet address in B. +REPEAT NNIFS,[ ; Check local interfaces first, quickly. + MOVE T,B + AND T,NIFIPM+.RPCNT ; Use interface netmask (may be subnetting) + CAMN T,NIFIPN+.RPCNT ; Does it match interface net? + JRST [ MOVEM B,PK.DST(A) ; Yes! Go use it now! + CALRET @NIFIPO+.RPCNT] +] + ; Didn't match any interface's network, so look for a gateway. + GETNET T,B ; Get net # in T, using standard class A/B/C + MOVSI Q,-NIPGW ; Search table of gateways + CAME B,IPGWTN(Q) ; Skip if network # matches AOBJN Q,.-1 JUMPL Q,IPSNI1 ; Jump if found entry in table AOS Q,IPGWPG ; No gateway known for this network, so try a @@ -1199,61 +1218,87 @@ IPKSNI: PUSH P,C SETZB Q,IPGWPG ; Try a different prime gateway each time IPSNI1: MOVE T,TIME ; Remember that this gateway entry was used MOVEM T,IPGWTM(Q) - SKIPE IPGWTG(Q) ; Skip if this is a direct route - MOVE C,IPGWTG(Q) ; Get gateway address - MOVEM C,PK.DST(A) ; Save gateway address for interface to use - CALL @IPGWTI(Q) ; Dispatch to interface - POP P,C - RET + MOVE B,IPGWTG(Q) ; Get gateway address + MOVEM B,PK.DST(A) ; Save gateway address for interface to use + CALRET @IPGWTI(Q) ; Dispatch to interface EBLK + +; Network Interface tables. Currently only knows about IMP and CHAOS. + +NIFIPA: ; IP Address for network interface + IFN IMPP, IMPUS3 ; IP address on IMP interface + IFN CHAOSP, IMPUS4 ; IP address on CHAOS interface +IFN .-NIFIPA-NNIFS, .ERR Wrong size table - NIFIPA + +NIFIPM: ; IP Network Mask for network interface + IFN IMPP, NM%IMP ; Netmask for IMP interface + IFN CHAOSP, NM%CHA ; Netmask for CHAOS interface +IFN .-NIFIPM-NNIFS, .ERR Wrong size table - NIFIPM + +NIFIPN: ; IP Network # for network interface + IFN IMPP, & + IFN CHAOSP, & +IFN .-NIFIPN-NNIFS, .ERR Wrong size table - NIFIPN + +NIFIPO: ; IP Output routine for network interface + IFN IMPP, IPKSNA ; Send IP dgm to IMP output + IFN CHAOSP, IPKSNC ; Send IP dgm to Chaos, may fragment +IFN .-NIFIPO-NNIFS, .ERR Wrong size table - NIFIPO + +;NIFNAM: ; Interface name (in case of PEEKing someday?) +; IFN IMPP, SIXBIT /IMP/ +; IFN CHAOSP, SIXBIT /CHA/ +;IFN .-NIFNAM-NNIFS, .ERR Wrong size table - NIFNAM + + +; Gateway routing tables. Currently only routes by network, not by +; specific host. Note that the entries in IPGWTI (interface pointers) had +; better be able to directly send to the corresponding IP addresses in IPGWTG +; (IP addrs of GWs)! This saves another pass through the NIF tables. + +IPFORW: NNIFS-1 ; > 0 to forward IP packets. IPGWPG: 0 ; Index of current prime gateway - ; Network number -IPGWTN: - NW%LCS ; LCS net - NW%AI ; MIT-AI-NET -NIPMGW==<.-IPGWTN> ; Number of prime gateways -IFE IPUNCP, NW%ARP ; ARPA Net - HOSTN 128,31,0,0 ; MIT Chaosnet -NIPPGW==<.-IPGWTN> ; Number of permanent gateways - BLOCK 64. ; Extra stuff to patch in and for redirects -NIPGW==<.-IPGWTN> +IFNDEF NIPGW, NIPGW==:64. ; Max # IP gateway entries -; Internet address of gateway servicing given net number -IPGWTG: +IPGWTN: BLOCK NIPGW ; Network # served by this gateway entry +IPGWTG: BLOCK NIPGW ; IP address of gateway +IPGWTI: BLOCK NIPGW ; Interface routine to use for this IP address +IPGWTM: BLOCK NIPGW ; TIME that entry was last used + +NIPPGW==0 ; # of permanent GWs +DEFINE GWDEF (NET,GW,NIF) ; Store permanent GW defs +%%%GSV==. +LOC IPGWTN+NIPPGW ? NET +LOC IPGWTG+NIPPGW ? GW +LOC IPGWTI+NIPPGW ? NIF +LOC %%%GSV +EXPUNGE %%%GSV +NIPPGW==NIPPGW+1 +TERMIN + + ; Now define the prime & permanent gateways. + ; Someday this really ought to be configurable either in CONFIG + ; at assembly time, or from a file at runtime. +IFE ITSMCH-SIXBIT/NX/,[ + GWDEF 0,,IPKSNA ; NPD cisco router, use for all. + NIPMGW==NIPPGW ; Number of prime gateways +].ELSE [ IFE IPUNCP,[ - HOSTN 10,0,0,77 ; MIT-GW - HOSTN 10,3,0,6 ; MIT-AI-GW + GWDEF NW%LCS,,IPKSNA ; MIT-GW + GWDEF NW%AI, , IPKSNA ; MIT-AI-GW ] ;IFE IPUNCP IFN IPUNCP,[ - HOSTN 128,31,6,1 ; ??? - HOSTN 128,31,6,2 ; ??? + GWDEF NW%LCS,,IPKSNC ; ??? + GWDEF NW%AI, ,IPKSNC ; ??? ] ;IFN IPUNCP -IFE IPUNCP, 0 ; Send direct to Arpanet - 0 ; Send direct to Chaosnet -IFN .-IPGWTG-NIPPGW, .ERR Permanent gateway table at IPGWTG wrong size -LOC IPGWTG+NIPGW - -IPGWTI: -IFE IPUNCP,[ - IPKSNA ; MIT-GW - IPKSNA ; MIT-AI-GW -] ;IFE IPUNCP -IFN IPUNCP,[ - IPKSNC ; ??? - IPKSNC ; ??? -] ;IFN IPUNCP -IFE IPUNCP, IPKSNA ; direct to Arpanet - IPKSNC ; direct to Chaosnet -IFN .-IPGWTI-NIPPGW, .ERR Permanent gateway table at IPGWTI wrong size -REPEAT NIPGW-NIPPGW,IPKSNA - -IPGWTM: BLOCK NIPGW ; TIME entry last used + NIPMGW==NIPPGW ; Number of prime gateways +] ; IF NOT NX BBLK -IFE IPUNCP,[ +IFN IMPP,[ ; Queue packet for Arpanet interface IPKSNA: MOVEI Q,IPOUTQ ; Otherwise use direct IP output queue. @@ -1263,13 +1308,16 @@ IPKSNA: MOVEI Q,IPOUTQ ; Otherwise use direct IP output queue. RET ; Not necessary, queue was not empty IPOGO: CALRET IMPIOS ; Just means kicking IMP for now. -] ;IFE IPUNCP +] ;IFN IMPP + +IFN CHAOSP,[ ; Queue packet for Chaosnet interface ; A has the pe ; PK.DST(A) has the Internet address to send to, 128.31.subnet.host ; The low 16 bits are Chaosnet address to send an UNC to -IPKSNC: PUSH P,H +IPKSNC: PUSH P,C + PUSH P,H PUSH P,J PUSH P,E PUSH P,W @@ -1351,8 +1399,11 @@ IPKSC9: MOVE A,J ; The PE POP P,E POP P,J POP P,H + POP P,C POPJ P, +] ; IFN CHAOSP + IPKSN5: MOVEI Q,IPUQHD+1 ; Put on System Output queue MOVE B,(Q) ; Save prev contents of header CALL PKQPL(PK.IP) diff --git a/src/system/its.1644 b/src/system/its.1647 old mode 100755 new mode 100644 similarity index 99% rename from src/system/its.1644 rename to src/system/its.1647 index a9a0c458..4146a93e --- a/src/system/its.1644 +++ b/src/system/its.1647 @@ -21,6 +21,7 @@ IF1 [ PRINTX \MACHINE NAME = \ ; FU Australian KS10 ; PM PandaMonium KS10 ; DX DigeX KS10 +; NX Non-eXistent KS10 (KLH10) ;THE FILE "CONFIG" HAS ASSEMBLY SWITCHES AS A FUNCTION OF MACHINE. .TTYMAC A @@ -1287,8 +1288,8 @@ SUBTTL LOW CORE IFN KL10P, LOC EPT+1000 ;KL needs a full DEC page for EPT IFN KS10P,[ - IFE KSIMP, LOC EPT+1000 ;KS needs a full DEC page, too, - IFN KSIMP, LOC EPT+2000 ; unless you are losing even worse. + IFE KSIMP\SSIMP, LOC EPT+1000 ;KS needs a full DEC page, too, + IFN KSIMP\SSIMP, LOC EPT+2000 ; unless you are losing even worse. ] PATB=. @@ -1482,7 +1483,7 @@ LOC EPTUUN EPTUUN: MUUOEX EPTUUT: MUUOEX -IFN KSIMP,[ +IFN KSIMP\SSIMP,[ ;Here because with EPT at 0, this is the second half of physical ; page 0, which is uncached, which we want, and otherwise unused. ; @@ -3704,7 +3705,7 @@ SSLCM2: AOBJN I,SSLCM1 ] ;END IFG NMTYS IFN IMPP,[ IFN KAIMP, CONI IMP,IMPCNI ;KEEPS HOST READY ON -IFE KSIMP,[ +IFE KSIMP\SSIMP,[ ;KS doesn't drop interrupts, I hope PUSHJ P,IMPOST ;START UP OUTPUT ] @@ -5185,6 +5186,13 @@ IFN KS10P, SETZM UPQUAN NULJOB: MOVSI (JRST 4,) MOVEI 17,1 ;SET ACS 0 TO 16 TO JRST 4,0 +IFN ,[ + ; If a KLH10 emulator, try going into a true sleep. This CANNOT be + ; used on a real processor -- the IOWRI will cause an IO page fault! + ; Emulator must be configured so HOST device is at 777000. + ; Take advantage of fact that desired arg of 1 is already set up. + IOWRI 17,777000 ; 1 = Sleep until next interrupt +] ; BLT 17,16 ;TO CATCH SPURIOUS TRANFERS TO ACS MOVE 17,[AOJA 17] ;RUNS IN ACS TO FREE MEMORY FOR OTHER PROCESSORS JRST 2,@[%PCUSR,,17] ;RUNS IN USER MODE FOR SAKE OF RANDOMNESS @@ -9782,7 +9790,7 @@ UTRNT1: ] ;KL10P IFN KS10P,[ SPM UPGML(U) - LDB A,[400400,,UPQUAN(U)] ; 3.9 USEC CLOCK + LDB A,[044000,,UPQUAN(U)] ; 3.9 USEC CLOCK ] ;KS10P ADD A,UTRNTM(U) JRST CLKOJ1 @@ -19156,7 +19164,7 @@ BBLK BLT U,UTACS+U-1 MOVE P,UTCPDP CONO PI,020000+200_<-UTCCHN> ;BAG-BITING DEC LOSERS -IFN KSIMP,[ +IFN KSIMP\SSIMP,[ AOSN IMPBZY ;-1 if IMP wants a jump-start PUSHJ P,IMPINT ] @@ -19516,7 +19524,7 @@ UBINT 340+<10*.RPCNT>, CONC JSR DZ,\.RPCNT,RB ; DZ receive UBINT 344+<10*.RPCNT>, CONC JSR DZ,\.RPCNT,XB ; DZ transmit ];REPEAT DZ11NB -IFN KSIMP,[ +IFN KSIMP\SSIMP,[ UBINT %LHVEC, JSR IMPIBK ;IMP Input side break UBINT %LHVEC+4, JSR IMPOBK ;IMP output side break ] @@ -19558,7 +19566,7 @@ IFN TM03S,[ IUTPG==:5 ;Magtape IO page. well, 5 worked last time ] -IFN KSIMP,[ +IFN KSIMP\SSIMP,[ IUIMPG==:6 ;IMP Data transfer page ] diff --git a/src/system/net.32 b/src/system/net.33 old mode 100755 new mode 100644 similarity index 99% rename from src/system/net.32 rename to src/system/net.33 index a8793d9b..c0ed328f --- a/src/system/net.32 +++ b/src/system/net.33 @@ -43,7 +43,7 @@ IFN IMPP,[ ; ARPAnet IMP interface code IFN KAIMP,[ $INSRT IMPOLD ] -IFN KSIMP,[ +IFN KSIMP\SSIMP,[ $INSRT IMP ] ] diff --git a/src/system/time.950 b/src/system/time.951 old mode 100755 new mode 100644 similarity index 99% rename from src/system/time.950 rename to src/system/time.951 index 06e616fc..c00cd75b --- a/src/system/time.950 +++ b/src/system/time.951 @@ -327,13 +327,11 @@ INITM2: PUSHJ P,GLPDTM ;GET LOCALIZED PDTIME CLCQDT: PUSHJ P,RDATE1 ;GET DAY OF MONTH IN C, MONTH IN B SETZM QDATE ;INITIALIZE FOR FOLLOWING - PUSH P,E-1 PUSH P,E - MOVE E-1,FYEAR - IDIVI E-1,100. - DPB E,[330700,,QDATE] ;YEAR + MOVE E,FYEAR + SUBI E,1900. + DPB E,[331000,,QDATE] ;YEAR POP P,E - POP P,E-1 DPB B,[270400,,QDATE] ;MONTH DPB C,[220500,,QDATE] ;DAY MOVE C,QDATE ;THE FIRST TIME QDATE IS SET UP, diff --git a/src/system/tm03s.defs4 b/src/system/tm03s.defs5 old mode 100755 new mode 100644 similarity index 94% rename from src/system/tm03s.defs4 rename to src/system/tm03s.defs5 index 172054fe..da9c2a44 --- a/src/system/tm03s.defs4 +++ b/src/system/tm03s.defs5 @@ -18,9 +18,13 @@ $$TEMP==1 ;;; RH11/TM03 Interrupt vector: -DEFSYM %TMVEC==224 ;(224/4 = 45) Interrupts occur on level 6 - ; (high priority) on UBA #1. -DEFSYM %TMBAS==772400 ;Unibus address of first register +DEFSYM %TMVEC==224 ;(224/4 = 45) Interrupts occur on level 6 + ; (high priority) on UBA #3 + ; (!!NOT!! UBA#1 as prior comments said! --KLH) +DEFSYM %TMBAS==772440 ;Unibus address of first register + +; Some other systems use this? +;DEFSYM %TMBAS==772400 ;Unibus address of first register ;;; RH11/TM03 Unibus register addresses: diff --git a/src/system/ttytyp.314 b/src/system/ttytyp.317 old mode 100755 new mode 100644 similarity index 81% rename from src/system/ttytyp.314 rename to src/system/ttytyp.317 index edca0a6a..c32792ac --- a/src/system/ttytyp.314 +++ b/src/system/ttytyp.317 @@ -301,7 +301,7 @@ MCONDX ML,{ ;;; ML ;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE ;CHARACTERS MAY BE PRESENT IN THEM. -MCONDX MD,{ ;;; MD +MCONDX MDKS,{ ;;; MD TTDLA36 0,SPEED=1200,HOR=132.,TT=%TTLCL ;T00 System Console TTDVT 1,SPEED=9600,TT=%TTLCL ;T01 9th Floor VT52 by MD x6765 TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 @@ -386,7 +386,7 @@ MCONDX PM,{ ;;; PM ;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE ;CHARACTERS MAY BE PRESENT IN THEM. -MCONDX DX,{ ;;; DX +MCONDX DXKS,{ ;;; DXKS TTDLA36 0,SPEED=1200,HOR=132.,TT=%TTLCL ;T00 System Console TTDPRT 1,SPEED=300 ;T01 DZ Line 1 (300 baud) TTDPRT 2,SPEED=1200 ;T02 DZ Line 2 (1200 baud) @@ -398,3 +398,105 @@ MCONDX DX,{ ;;; DX TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 .ENDC ;} + +;NOTE: SEE COMMENT AT FRONT OF FILE FOR CONSTRAINTS ON THE COMMENTS +;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE +;CHARACTERS MAY BE PRESENT IN THEM. + +MCONDX NX,{ ;;; NX + TTDLA36 0,SPEED=1200,HOR=132.,TT=%TTLCL ;T00 System Console + TTDPRT 1,SPEED=9600 ;T01 DZ Line 1 + TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 + TTDPRT 3,SPEED=9600 ;T03 DZ Line 3 + TTDPRT 4,SPEED=9600 ;T04 DZ Line 4 + TTDPRT 5,SPEED=9600 ;T05 DZ Line 5 + TTDPRT 6,SPEED=9600 ;T06 DZ Line 6 + TTDPRT 7,SPEED=9600 ;T07 DZ Line 7 + TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 + +.ENDC ;} + +;NOTE: SEE COMMENT AT FRONT OF FILE FOR CONSTRAINTS ON THE COMMENTS +;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE +;CHARACTERS MAY BE PRESENT IN THEM. + +MCONDX KN,{ ;;; KN + TTDLA36 0,SPEED=1200,HOR=132.,TT=%TTLCL ;T00 System Console + TTDPRT 1,SPEED=9600 ;T01 DZ Line 1 + TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 + TTDPRT 3,SPEED=9600 ;T03 DZ Line 3 + TTDPRT 4,SPEED=9600 ;T04 DZ Line 4 + TTDPRT 5,SPEED=9600 ;T05 DZ Line 5 + TTDPRT 6,SPEED=9600 ;T06 DZ Line 6 + TTDPRT 7,SPEED=9600 ;T07 DZ Line 7 + TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 + +.ENDC ;} + +;NOTE: SEE COMMENT AT FRONT OF FILE FOR CONSTRAINTS ON THE COMMENTS +;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE +;CHARACTERS MAY BE PRESENT IN THEM. + +MCONDX MD,{ ;;; MD temporary + TTDLA36 0,SPEED=1200,HOR=132.,TT=%TTLCL ;T00 System Console + TTDPRT 1,SPEED=9600 ;T01 DZ Line 1 + TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 + TTDPRT 3,SPEED=9600 ;T03 DZ Line 3 + TTDPRT 4,SPEED=9600 ;T04 DZ Line 4 + TTDPRT 5,SPEED=9600 ;T05 DZ Line 5 + TTDPRT 6,SPEED=9600 ;T06 DZ Line 6 + TTDPRT 7,SPEED=9600 ;T07 DZ Line 7 + TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 + +.ENDC ;} + +;NOTE: SEE COMMENT AT FRONT OF FILE FOR CONSTRAINTS ON THE COMMENTS +;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE +;CHARACTERS MAY BE PRESENT IN THEM. + +MCONDX PI,{ ;;; PI + TTDLA36 0,SPEED=1200,HOR=80.,TT=%TTLCL ;T00 System Console + TTDPRT 1,SPEED=9600 ;T01 DZ Line 1 + TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 + TTDPRT 3,SPEED=9600 ;T03 DZ Line 3 + TTDPRT 4,SPEED=9600 ;T04 DZ Line 4 + TTDPRT 5,SPEED=9600 ;T05 DZ Line 5 + TTDPRT 6,SPEED=9600 ;T06 DZ Line 6 + TTDPRT 7,SPEED=9600 ;T07 DZ Line 7 + TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 + +.ENDC ;} + +;NOTE: SEE COMMENT AT FRONT OF FILE FOR CONSTRAINTS ON THE COMMENTS +;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE +;CHARACTERS MAY BE PRESENT IN THEM. + +MCONDX DX,{ ;;; DX + TTDLA36 0,SPEED=1200,HOR=80.,TT=%TTLCL ;T00 System Console + TTDPRT 1,SPEED=9600 ;T01 DZ Line 1 + TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 + TTDPRT 3,SPEED=9600 ;T03 DZ Line 3 + TTDPRT 4,SPEED=9600 ;T04 DZ Line 4 + TTDPRT 5,SPEED=9600 ;T05 DZ Line 5 + TTDPRT 6,SPEED=9600 ;T06 DZ Line 6 + TTDPRT 7,SPEED=9600 ;T07 DZ Line 7 + TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 + +.ENDC ;} + +;NOTE: SEE COMMENT AT FRONT OF FILE FOR CONSTRAINTS ON THE COMMENTS +;THAT APPEAR ON THE FOLLOWING LINES. ALSO NOTE THAT LOWER CASE +;CHARACTERS MAY BE PRESENT IN THEM. + +MCONDX DU,{ ;;; DU + TTDLA36 0,SPEED=1200,HOR=80.,TT=%TTLCL ;T00 System Console + TTDPRT 1,SPEED=9600 ;T01 DZ Line 1 + TTDPRT 2,SPEED=9600 ;T02 DZ Line 2 + TTDPRT 3,SPEED=9600 ;T03 DZ Line 3 + TTDPRT 4,SPEED=9600 ;T04 DZ Line 4 + TTDPRT 5,SPEED=9600 ;T05 DZ Line 5 + TTDPRT 6,SPEED=9600 ;T06 DZ Line 6 + TTDPRT 7,SPEED=9600 ;T07 DZ Line 7 + TTDPRT 10,SPEED=9600 ;T10 DZ Line 10 + +.ENDC ;}