>7$J_>: `Q$ȋ @ B C  ` YSjL}K*9*Ud$:S4d[qKvt9wWKcvLDKvLIBa$ % zK5 #Y`K5  xeK Ih =- ! 9\rX\ t W3=:LsrPSUoU| CyW. yX N`YT T @@}~#~@s &@pBw ?06 "T T ~~E0f8f<M `Txw , e BfE͓͋7  @ D$ e6 B  @ǁP%Haw eN1" $#  ̋ NC ̋&͕ E  E?  &    w 6"&f&! /8G /V e@8f f" `DaJe "  E  w J ` >C“`# 0 C B 7!$   #`+ KP   w w @a/ Ba+Aa B`A D@mE D x@B   w 0 , w P7w \PABCfDՋ. ŀ 7<W ewW~W͊ NN`$ e^    $tBHߓ1$:Ó C"""E8bw ,0B 5  wU   7 ~f  7 faC$&pcF %$C%@`Գ Aa ,Ӌ(q%(  EUHQ̳ (&  Β ,^ 6S$%5beNa  搎NŀW W  װΌeΌ%H p MECP  "ϰU ` ( U (0 w w &* $$$E e)U@    J U@w  "Ő ea*Y p ŐŊ& " E T (P $bc H  U  "b UE T0 0 ŋU  pU2"װw  <@E%A! װ5KE֊EeEU%p!Ed Qbep "װ,ŀ Q 5lH!Oc Jp  ŌW  IװAa Q  `E(f a c   KаOe$d d cĊ  l "    E f ы   D"ᆃ עJ` فרJ b @( &^ )   @ e @ e 7  e 8 JPPP03R  ee eQ$e Z ` e "E 7R   DD` D0 :  !w > F @_f 0w  MONITOR V004A ߋt͋_v0&t*t&t*t:sroCyyz/N`Vq+fEE-/D' &&SNQK-|KKoT      7 7 hw f@e@  K"e E\  K"M W e    w R < w$ ew LB   w  \< w ew | 56 e? 0 @#E?UU6 3 w(  6  < wL epe4K#@$2  1  3 0 '@fDe"@  H P  @`$    eee J- )  e d%   ee 2 ((e   ( & $ $ e  ( (#(Q$f  N e &e&0f 6ee&e&ߓpefeU%AAaW e&&pfW;A! AMq R#? $&& &  `̵@$^ r&ŀe 2& NN`# ^GEFILOOTRUffA!N ,l&, e / f#)"#W! J %e&Aѕ & e|eD w   $D VeP&& e w 2(xAL%ɋ   0p K H r  c1  ^N̋me &RRRReRe L  , L e$Q$ ,^ L w&t 1 VB,BWf& p0e04 wJw W ͕,RA!ʕ . ee4/  %  Q$U$U%  AB I#   f& f a( ֵ W&&  %  ,^ b)̌ $$ &$b$"  h"  ⁁Wx &e !+ffe5@'&&f}  CE Df ͝U@e U W Ɂ w  W Mw l W W ! f cU 8We U N U e U U  F!- F e F!- f  B EpS $`1 $ ^C . DATE:- TIME:- EEaC$&pcF %$C%@`Գ Aa ,Ӌ(q%(  EUHQ̳ (&  Β ,^ 6S$%5beNa  搎NŀW W  װΌeΌ%H p MECP  "ϰU ` ( U (0 w w &* $$$E e)U@    J U@w  "Ő ea*Y p ŐŊ& " E T (P $bc H  U  "b UE T0 0 ŋU  pU2"װw  <@E%A! װ5KE֊EeEU%p!Ed Qbep "װ,ŀ Q 5lH!Oc Jp  ŌW  IװAa Q  `E(f a c   KаOe$d d cĊ  l "    E f ы   D"ᆃ עJ` فרJ b @( &^ DqF   e 3/ . fe& E NaeEM MJ f& NJ  f ,^ _e   A̋$)&E eAaW$  p  EW" gE( ևJ!  W=J(@U%EE ,^ $)6; "&f( f0 R,E KSa KcW" ge B Q$p  ֝,U%g"MBbF $D`);D` &*   y54- &&( $&& .^  (  t  e!&#Ee   U E3!( &W E$ &  .^ 8  e C@! &.^  U%g"G$B$bF %? EL05AaAa5EEd e (  &* e U  U@ 0  tU%g"G&EU C cF %44j  t#   g"G<L    F W,#;L,8 1 -Bl 000 E 0 e 0( &*  E?LQ$C$cF % C` !( & e(  &*   U%g"G)SE    0  U%g"Gac)$BbF %"g aE[$[  c ,J Oc! K C` L5 s V&* C`$U5$B  $5$U@(  *g"G܀ (    %0 C`  J D`$ !$$a!!  (( #)#" ͋͊Q$B S($3z]wE_P hfkNfmCMoErv-xqF $$D` R&*  D`̋E B ȋ9 ($) & & .^   U%g"G$5"ۆ 5`  :  E  U (  e: ("$ `%͋͊GhhE6 w7 l Õ7 p  7 Hwr wb7 *CW Հ |7 7  B߳tՀߕ@t97 D672G7 FՀ  %& n (   7 Nߓp2|߳t&^  #ʔ `Z 7 & 7 2 ~   j ꀣw e@@ tA @ w pe 2̓@ p @ d e6B @%w"CY7Xe  ߓp4 w|   e ! xe w!Dw!FeXL@  \e: ׋' j%' +@W 7wz  7\wl^$ U H   ށÔ "-~t N͕eBC 5  & ͓ N N"7 0 V7 Gbq w &O 7e: e ABCX#eX}   @$ $7 !7vv@@&EPe dΓ 3  ;'8 O76  ew%ߕ $^ $ )ɐ ǁ $^ f5ɕ &M 585 U ѐB`Ѱ `L7 & <f7 7> l  ߟn U@l$_  lx f7e~Tv.xf 77UAh h j UAh$^ h px  h |H.M w e w 7  7E@L LNf<ߋL- S ʋ_ \Y   Qt nIN d f^ ߋL wLJU@L$_  Lx & ߕ N   &^ %eeA mIf@ OWҕ^J@A Օ E  Iҕ\͋͊W  @ @Q Rʋ %6RbIɕ;fIAeV! פ ̕ .A!˕$Q$ ~-0  @ ߓp ̔ @&^ % w8ILL CMDINV CMDSYN ERRILL DEVNO FILEILL ADRNO COREc %8eL  חtw w  ae Cw    BC   w W!w w j7 _t&^ pw P 6 3=X30e $؋ hw w e0ߐvߋt'#U@ ACBc%DUe ``E  l@PHU% && ,- /$^ ( &^ & "u > U@ &^  /{;!D|"|M0K1K2./E@ ,@  ##`F U%M 5>C ( aØ` (E` fS@ EECDe0 f `$Ugzw>     e  f  E  `#' W'͋ WUWe ee e TZ  W#e1$ 'd d0 4@c  W3 e % E0 @c ` V%  $g"H @ U$eF e v&*  JEl&&  E`"D    (  U7   (Hh`B$$-,^ eB UJ &^ %7ewe|w~xU% e) & E Ee@wH> 4.f  E !w ~ԋp!w lԋj!w ` Ձ!w R AaBa !w >`!w 2 Aa@aO!QAaP !w &N`֋:5@0ĝ ) Et a b`Z \ XT a a 0݀U & & 2w x&^ % , .e @e("ep & e2*E? cc8$)  E S e$^ ( &^   Te 8 d0B`e & $AAIe ߋtߕ$v&  U%g"GC  e e(   e&  L̥ ̥ ̥̥̋ ̥ I  w P ˥*j .g  6 ˥, X T˥* ˥]K I G H C B&       ˥:0C ˥,U% "˥*  ˥. ˥[ ˥/. ˥< ˥  ˥ ˥  aeAbEɋA% "U%G!   4 .˥: "˥.˥$    & ˥0 ˥Z˥9˥A  & & ACB$2  Ae ! ! ! ! ! `0 . t1 D Ѥ 1ӥ, ˥,˥<˥  ˥.˥[ f˥*8D`%  % %2"6U%G  1 K Ӌc j2 & Β | r˥: ˥.˥$D U    F` 0˥: ӥ*@ & Β0 e& ˥0 ˥Z˥9˥A &f˥* Ŕ@Ŕ@a   @a&^ %&B A!"W D , COK STE WAC&^ e%OI ZZa 達 g" )em`& ($^ ` H((&(  ee 6## DASA ECODBERE KITIENMOPR AS DU ZZ&^ %0 e@@em &   c `@@ @)#&%7 2JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECL e `  %@ 44W-& 5"< de#N#e % &^ % 6DECNOVOCTSEPAUGJULJUNMAYAPRMARFEBJANXXX E 5 @`e /: W: "` @0- L &^ %eE ɕ hɊ4$ JRR XA!⊎ &. P f%f/ @e h"RA8"2 Ɍ",$*Ɋ,^ "$ $RR"&( @ %  Avv@K  `Be (e E T%T%T%TTTpT $ (a%ee e  e %& &eJ###  p&f&e"f&AAcDD 7FILE ERROR !  & L   8&& 3e0 7`$ "U%0 Yb.$)&&&cA!D 5@ 77 DEV. FULL ߕ ߋtvȊ& N&"W0W ѕ &^ % P  I W W,CAנ> ` ` g E A(eE eE ΊE`e EN W= EC@@@PN !&^ %  a  WR  WK c%@eJ!!! ̋ee&^ ߓpD&^ %2 ɊA!@ , 0"3  BEB WS Ɍ  3U%## A >ߋt'@fA! wV%eJ   e4   $)3U%0e @ ( &^ p&^ %eAu  H D! ! f h eeɋaE ^   e&C 3 e fE e d- D 1&0)d ddEEd 8 5   U%֌ ߁ LɌa M &&&A&^ % e0e K" A  W$@ $` @  F e 8  @ P$0e Œ A% W)E((f      '&^ % @ ̋'@ߓf  D @e      % % E4$   %@eJ!!! E0v8 p 2&^ %ea@W0=&& & K<<< B: e  ` `  d L b $ $< A!  2 " KX<LI/: `A d   &^ sɌ3 o m7R A!B0Z0W W   B   •/  :  A ߋp͗rŀ^UWI•\ ͋Ba͊QB  BN DIA% &^ % & !amB: ( #W[6e \c p s! bRK l c  A! ,  J W. ScA!W]W0W9@WAͥZfW,W VA!N  m&^ %ew H R   fa e W%!  D b aB !  p & . 'Ȋ% W, 6 e !  e 5 0   f%ev&^ %  @e e Me  ʕ ʊ $͋#C( . '$ Ĝ %`(  ( ͋,^ +  !v e   ͋e K)   &^  )$A!@ , e @`e 2 0 F D  I ;" 0 350 `5)N 끃 "  $w M C #%C me%A &^ %7 Ll֋N i *fE E  @ E N  Q% EE \5 E `` E N @`C`  5? 5ŗrEW$   @  :  F* &^ % u wF&M e v a( I D | j   X E eaE& & EfIDDm &! & e#  E   eDbeA LA   ! 0 e e  | .M $M "U%G$CE   em A    e$^ &&e E]e( &^ & ݁ "uz +SN&*)-fQK'a ͋,L w~B ` 5 5 6   w w* w4  DUUEU S & fNUVUe #<f& * 1U U@DEU!>Uf& * 5 U UCB E e v * "U%Gef.  EeEv &&&^ &ep T E eE`E& & EfpCCm   &    8      % 60 tE   EemLAN   2  (.M $M "U%G$^ &&e E]e( &^ & ݁ "ua ͋,L DnB ` % Z$7* &#LU%&& & * A<,M && = ,+   e  *euF!%"U%$Gef. Dd6&U%fN8W)C$ N! eeH!    Z%D RC,e <e c$B  D .M $^ &&e E]e( &^ & ݁ "u EeRRRRR %  22 2    F&USw&  p 4,0E  2% e 0 00 0 & 0"U%G E   #ccD  fNUVU00%%% p b $^ &&e E]e( &^ & ݁ "u 9:-  -5@! E 6 &M  $^ "U%Gwf&  p ,M 'p pT e TTTTTL&M 0   E Caee D!K& E ae f.M &0 & N.L &0 L &M  WE&  e&p  E eE`E& & 0pf$EA B` ~0   n& &D &  ` ic J1  6!(   6!6   ",T  BaBa6A c JQ   0  ! $ " lc  V&"BU%G 0  6    B  &M &&  &  mm$S # $m # f0 Ze $M "JU%G-B8< v! eeH! 6$^ &&e E]e( &^ & ݁ "ua ͋,L wB ` 5 5 @* H  &#,fE+Ue t * &M $^ "U%bGe\f.   Ee E v &$^ &&e E]e( &^ & ݁ "u$AcfNl & E CD  aCU%W# e  p p 0 P e"bU%M%& N.^ 0 E e E `eD#E &. 0 &$^ &&e E]e( &^ & ݁ "uVq &$&%-('#/ xCa ͋,L wB ` 5 5 i* p 6&#Q- P5?O & fNUVUJ#,;!9- 8 BBUBU8   * 0 &M  $^ "U%Ge f.    EEe v &$^ &&e E]e( &^ & ݁ "ua ͋,L wB ` 5 5 w* g,M `$ [ &#c bg & * X   #,4   Q$TTT e #i f   U p 8 E -e Ee v&   E *.M &^  $^ "U%nGehf.$^ &&e E]e( &^ & ݁ "ua ͋,L JB ` 5 &TT! #  H #(!' (  8e eef$C# 0 *C.&0 L &0 & L 0 e  1&fK ( ǁ'C!E?  * F0 *U "U% Gef.C& %$^ &&e E]e( &^ & ݁ "u&M %  GiU 0   pE  E Caee _ppl &pK!K  .M  leD<EE?E !> Q   0 .M & & NM 0 "U%GD& p rHeAe 8,BU% 2! eeH  p *$leU   w$^ &&e E]e( &^ & ݁ "ue& $EKcKm ; 8  E le$5@K J ,^ e&T&T 0d%aT $Q$K "@U%G$^ &&e E]e( &^ & ݁ "ua ͋,L w:B ` 5 &  E >w   f5eU@  [*   & * G &( 8L'4e Q$ BBB"   U@ U e  "U%Gef. U U Bb 0 * B.&0 M &0 & M 0 &$^ &&e E]e( &^ & ݁ "ua ͋,L TB ` % $w*< &TTB$W!"W!7 Z K + 4 J : Ee Ev ;&C!EU     be`e`S)B v * euF!%"U%Gef.$^ &&e E]e( &^ & ݁ "u(' (    7  E    $ &`B   E`` L$$E0d$^ pABDU%E 5x W h"U%MU ˋ5EMK55 8xB$"  e "E8b$^ $C Bx   "u U  foT3`T MH& 5p 7 ^e& Ap&p J*fteȋ W EWSW MW Ff mae7 27pȋ$^ |t ( ! @  x p . 0qH pD 7 356:'"90SUVYݬ_?Z-KMNPѠ!$\ҦABDGH.<(+ɠ356_'\90SUVY("Z-KMNPѠ:$۾+ABDGH?.B+X * ߕRM  Hɕ5"PwW"wɕ .5P*E   qɕ ɕ 5"P 7 (T3 BAPP52U5U5"U5@UEPs  ~1 6 2 . w$^ &RRE@P55& 7w|593 55(#51 ɥɥ5 Uw• TwB5 @ TBw077R0 R5pDD ve& Ap&p b;ftȋW`WpWpWgW``!? ef m`ae7 x;7tpȋ&5$^ JB( ! @  x p 8 qH 7pD7 77356:'"90SUVYݬ_?Z-KMNPѠ!$\ҦABDGH.<(+ɠ356':90SUVY_(\"Z-KMNPѠ$ݻ+ABDGH.<|:M @5@57 "  x 7  ewew  t @ 5@$^ 55  @@ 5  J &^ hdi uEW! W! 3W! W! BW!` S1) ݃˕w 2 W! ('x ӕ קyW!5㨣 h 7 קx 7 pjwH7pkfwb_ 7T: 74  e$ ccexe*c9EEE$cff9hvLI~f K/kur\Mz$ j =sL"^ ":`^'D ^Ha}^f u~@^ &j&j &j*&j@p &jj7B7@@747 *Jj7 7 7 :7 7 4*  % I  ^8}K m8}K ąe K{L}K  *c cUN~U~ENHrEHrRE|ydR|yDEbpPRxPxALiA ~fr\M|5G 5Z /0 5@  5C  0C u 7 $7 d,nj7 }fL~~~T`njn*jn`nnjnk!w,jw ((dBR`jFRjjDItjfFAfFBfCOf?*JdMTfMfZEwZwndH~ g; UPDATE 3/10/72 ROS2.RASM ; UPDATE 2/24/72 ROS2.SYS ; UPDATE 2/16/72 ROS2.SYS@ ne )7 w . n}`n`nJ,j-}.I ѕ?ѕ ѕ }*kw}jnjn7 6.=sL"m@H[qjd # od PIP-11 V004A,dc*e~g ; UPDATE 1/12/72 ROS2.SYS ; UPDATE 1/11/72 ROS2.SYS ; STANDARD REGISTER DEFINITIONS 7 <vnnG*(kw Jnnw >nnw 2nn*Lkw &7 7 7 7 7 7 7 &7 *pk@H(=sL"h E 7 jcccccc.,e  w dc4de  bdd*Te  eb7 Z7 B~gBa R0 = %0 R1 = %1 R2 = %2 R3 = %3 R4 = %4 R5 = %5 SP 7  }4nvn~k,k/  3&  Ln.kn~k/%&  & & wm[qjt7 H7 T7 Rw $.xedrdcc-5'dd.e. ЋЕ?Е xd7rdcchvLIBaR{h(hf 6A~rh Zh`w8hhE  = %6 PC = %7 PS = 177776 ; $DEBUG = 1 ; ROS DEBUG SWITCH $SAVE = !Bn*kn~k/ V3 & h*l Vndn`~k/%"#*ewn"w ddcc7 e*e/3w 7w %*fJ$Uh5 Ewe7 B7 \7 N7 7<79@7 2~h q& % 104400 ; USE TRAP INSTR. TO CALL SAVE ; ; ; TASK CONTROL SYSGEN EQUATE CARDS ; NPRIOR = 4 &**l& w --TD*Nl -N>-H8--.*rl -( (e/  I*4fwX73wBw P.Xfw .%xXde  )!1hЋ&./ *hff % (h& f  %-(hi~bif%ZhDa* ; NO. OF SOFTWARE PRIORITY LEVELS. PRIBKG = NPRIOR ; PRIORITY OF BACKGROUND .IFLE NPRI+-$--*l- - -J*l- --,-bdh.f k p n ׭L׭E w n*f PNK DLde  Xd Y*f..tw|d-T XjeP i Q$Bz w . t~izvy/OR ; XXXXXXXX ;NPRIOR MUST BE GREATER THAN ZERO .ENDC MXTASK = 20 0*l-Xn-- - *mBn ~4n  -*&mB& 1.:`; @H^2 w w^ k w _*f *@ ec w   ,gwp @ a3/2f7,,yB!ReL|,y %2d -XN7 eN~Rj4 ; MAX. NUMBER OF CORE TASKS IN SYSTEM. NLTASK = 1 ; LARGEST TASK # OF TASKS LOADED WITH SYSTEM 5w T--)*Jm-(4%-".!-(-" ".nmj nBn 56@_@.D @<@@He@Hq!e@H #}@H&._MQ@Mp&@MW@Ye@amxx@H17@ ec*:g w @ a-*w &-*^g*w ׭w ׭w *g|87 y,y,y@^ d,yedVj.(twZ:w9 ;NOTE: IF OVERLAYS ARE USED, THEN THE ;FIRST OVERLAY TASK NUMB:n*mBnnBn vn4n ,mLnnLn VnnVnj*m7 -;.w]@H*}`@Hu~@@H9p:@H9a@H.(:D~h:`hC`_hh[q`"ht@.[q<ew jbZN 8,g , cc 50cc*g  cc =~j. " ? Zz&e Hw tww$>ER IS MXTASK+1 OVTMIN = MXTASK+1 ;FIRST OVERLAY TASK NUMBER OVRLAY = 0 ; NO OVERLAY TASKS?^ gw 7 B!e@,n|z!7j7h7h^Rzd-**n w p:a@(x<h 1"?Thf2 Nh*9 Nh,A 5m,gccw4wc *hcd" W 2d B U*:hB~Bk@`   F`w`zw`xw`xw`rw`vw`d  %>7 .7 4,|,yC. ;0 = NO OVERLAY, 1 = OVERLAY .IFNZ OVRLAY ; MAXOVR = 20 D*Nn:'a9E E*rn*nE2 :,$,F4dH$eW bd B k*^h7 hPhh *hdd. Gt k v~kt^ ^  y,y7 7<B!ded^,V& X@Fw ;MAXIMUM NUMBER OF OVERLAY TASKS .ENDC ;(NOT USED IF OVRLAY = 0) .IFZ OVRLAY In # i*nEDIT-11 V004A LSP OFF?JH,ldKRw7 w!*h7 w7 e/5*h )-*-* L w w w w  ~2l  fXz.tw  X?   y/ T T MN n in * Bo(XRopppx wurwttfou@uw`txssTvOV vsvx[q,P&i w c  w 8 . iw dw w w csw ,w Z w*HiQ y/  V 9~l7  \T  w%Z7+ 7 ( %fT   4y |m` R.D ; @HSrpslzoxspFv@tRtjx`qxpr*oWHPMXROF0BEMRIFVUHGTNSPCDWLAKXJ01234%o56789/+@- T($ **B AC: Uw  w q*li"w 0  7l~ w &j*i" %&wRw.V f e 7   w&$~"m  7 7 4y p` Z f e   w ~ W(4D h,7 7 7 aXo.pYxp*pYBBPB ? < JJ ILL CMD!  XX Z*ie(eB>ee0, *iw$wee- di [wd  wNTmBmLmODpTRppTATpCCLp~mH h jf"V N Z f N`  8 jf\c <&$   ; ]7 *p LnnLn&  w P*p    @ k^ILL PAR! t ffNON-QUIESCENT |j,|_*iw  w c "A @`$AL (*"jw | &cc #  c Fjw >`"'  Zwv$ ' wJ hF ,y O~n ^  y,yafL{ L{,y,y ab*p7 ~@` -tnm*q   7 LF *@q  c  iENDSQUXXTM?dw 0_`jw Ojjw Z*tj7 7 w w 7 7 w 6P7mje7  e% | L{,yL{  |,y | ,y ~n$n7 7 %,%e7 ׭ 7x 7g-4. e v*dqVnVn LnLn *q w  T7 w 3h.q!e eamxx*}`u~@(DTREtTYCRLPEX8 .<@iw ccw 4c($jcE 4w 8jw ccw cIjcc cjt  p d en 7z   n 7 j d ` ww0 7* ~o( *  7  A kl*qw 7 >4nBnw `Bn *q4njnjn`n`nw.q0& m t [q8"[q   k. [q 9a[q [q[qn$j  %  w  kcc w I"k7`w ccw co    5,y ^| p y,yL{,y,yL{  $n~zo7 7 %7$ 7$ Ћ7 p.q!es@HD q w  4nBnq*r rw  d1 \vn4n!D*@r2h.d `&\n4n r ( %7 . [q 9p:[q[q [q,vs4kcc  w *Fkw >w 8c7 " c.jkw V7cct׭ $w f N`  Z 7T L{~ L{,y,yj $n %L{~o,yL{N ,yD eu@H<@Hi.1"?T@Hm@H;}G@H ` @H9 N@H.9a@H(ehq!eh amxxhyv ,dr5n4nnvn4nvnn&*rBn D w 7 : jnww *rljnw  |$ w&[q v; |& #}*  Tx[\kwRl w Rw `De0k  8-2*-.*p-/.kw y73 @- @% R % $$Ћ7 ׭ tw h jf"  wb~jpRwPW"(jz*}`hX,Jb {- w 7 .rf7 J~ 7! w#X ӕ F~`*rjnjnF~jnjn|. [q* 9a[q [q[q "7  .[q [q}^ Twt pp o*kp  4Е Е[  r@. l Е,  Z( zЕ~j WAf" " u X f" ZV :  E N h0 ~pE&qUW,2Jb  .$ 0!- )!&7!#yD w *s 7 77 7*Bsw-  & zr*fslԔ9p:[q [q.8D S#  J  N* [qJ [q $[q(] pt*HlC! , w 5 ~~xllzzvvw &`*|l%p b pmh&f- wf~@twh twt wtwz!~Zq;}G$(@2J42 `  `  $  7OWww  5*s LH׭(o &w & *s*#1/oD  79a,^  X W, ! [qX[q , 7! El X V X.lH  Ћ  Xw m*lp 5@o o*wpx7twjBzReuttttruuxxvvdsx8rrrrs\sRsls6vu^vuDvu$v` * ` 1&t   c2 1"?T<9 N9a ` (#*sw B! B #@*sD #K` -#ztn*t#dw  W,D _MQYe 0WLWC w,WT %.l    7 7 7 |e1$m7 e7 o n.2mpp ~qBw`wlwwwwww xx"x.x:xFxhxtxxxxxltvt.krrv rxxnhW"W"Z&ER@RL{ ,y&& & & & m s]mZT m7J.>t 7Ln} .Lnv4nn*ftb &w^fw w "_MW,*^w,WT ,Mp&&  Е. !p/*Zm < D ЕC(p,~mEz7 t-rh b ~Jrrp pt^h h^`Ty,y7 D7L{,y %87 (7 .&$ *t 2.pw ^*m84  Е- Е-*me8  e |L{~r,yER,y7} |7 $   7 |  fh}ry ̋#ˋ ׭   a*twf w 47 5@x [*u-fb7 .p xpf ;Zx*n0Nm>J&zQQAA wC*4nL^YؙcxD m 6e  N|ry1 ~:sſe7  h}Ӄɥtwtw ovBCztmeE7*>u N Jwfv7 .Bn*bu7w \w w 7*u B-g*Xn0ЋЕ:9pЕ<E *|n 0Е>&"8 *n&"X P zsssssssv~st$t8tXtsssstDDm DQ$*F   Dd 7 DQ$*FD*.u~@ ; @HD DLnw 6w >5@-*u Bnn  w > w 8*u8&  wBnD  &Õ  &0А \*n mЕ Е f&*n"eЕ h d  FQ$Dd 7DQ$*FDdDQ$6%~*tJ7DDd7 ɥɥH  f @H<@H.a,}@H.R@Haw}@HyR@H9 N@H.9a@H(<@hu~@hR-<*uT g-Lfw  w )*v( w  w l% g :,:vw  ; ^5 ; ^:Xv@^][qj^h{QD^y}C ^""^ , oR ɋPp7pcc1*2o  Z ,Vo P " e P" f&f&~  6~t NΕ twP Cå å$ ; MAXOVR = 0 ;SET TO ZERO ONLY IF NO OVERLAYS .ENDC TASMAX = MXTASK+MAXOVR  GVn <Bn*`vw w l-dw 5@b37!*vN P R~5@. HH:MM:SS MM/DD/YY p Е vo*|ow uɋe I *oI I I I I I נA   e`  vq~ulu  Ëנe ee e;MAXIMUM NUMBER OF TASKS (INCL OVERLAYS .IFLE MXTASK ; XXXXXXXX ;MXTASK MUST BE G:*v~.7 0-rVnVnVnn*vVnVn&  wEs,vw ( ,&! &e Iu"!  D ,J J*oI DIRECTORY TOTL BLKS: T*oOTL FILES: FREE BLKS: FREE FILEj pS: ѐ  v@(  DZ~umdf ->8.7 ,eREATER THAN ZERO .ENDC .IFL NLTASK ; QTAB XXXXXXw w 7 jn*wjnoT "RR-H*:ww @ 4 4` 7 W, ! &yR,n $w*xW, ! po`p'bpw .zww Lzp7jw *ccc{(pce #0-6]7 #0- 7~ v6ee ,eXX ;NTASK CANNOT BE NEGATIVE .ENDC .IFG NLTASK-MXTASK ; ~*^ww (7 mh - -*w<mNw *wZ!R .R$. * "aw}a,}* Zw %w B-L* p-H*70w cc pccc = pV,e&e 4ze re n4$~vRe 7!N  # QTAB XXXXXXXX ;NTASK MUST BE <= MXTASK .ENDC ; ; THE FOLLOWING IS A LIST OF P#!67.*wД "Ԕ - 7w*w-+w rn(* DԝDԝA   & ; <9 N"9ap CONFIRM: .ppcpccf` p{.$qɥLɥHu ɥ2-7!<e 4$e  !!!!! @` 7 B & ~vT LINK-11 RIORITY PROPERTIES ; +1 = TIME SLICE PRIORITY (CORE OR OVERLAY) ; 0 = FIXED OVERLAY TASK (MAY B*xjl  V 7J^*6x@7@7!D&  & & *Zx&  NDISCS = 1 ; DISC OPTION AND NUMBER OF CONTROLLERS ; $DDSDC = 0 ;USE RF-11 ;  oɥ lk dd*Lq. -\& `&ru *pq e#&c  V005A PASS 1 PASS 2 # ~~~Xlw~~rwly!E CORE) ; -1 = FREE TASKS (CORE OR DYNAMIC OVERLAY) ; PRIP01 = -1 ; PRIORITY PROPERTY w& \& פ *~x HoԔע ԕ (,*x%w"& & &  `ACTSIZ = 2 .IFL 20.-ACTSIZ XXXXXXXX ; ERROR-ALLOCATE MORE LOCATIONS XXXX*qeQ QQf Q  L*q    h <   *q QOD7 Bz(7 Bzw8l~~& |rl ~w`LEVEL 1 PRIP02 = 0 ; PRIORITY PROPERTY LEVEL 2 PRIP03 = 1 ; PRIORITY PROPERTY LE*xw z:Ln  3 w*x4n  w 5@*y$נ XXXX ; FOR AUTHORIZATION CODES .ENDC ; .IFNZ NDISCS DRESDI = 0  ` %` `*rѕ   & <*$ru W w&cc&ZNlwlBlw`6lwT*lwlwlw&Ew7~bxVEL 3 PRIP04 = -1 PRIP05 = 0 ; PRIORITY PROPERTY LEVEL 5 PRIP06 = -1 ; PRҐ b נ +נ *2y D#w B& w 6&  A*Vyw6w $ & `nn`n ; DISK RES. DIRECTORY .IFL 3-NDISCS XXXXXXXX ; PRESENTLY CODED FOR MAX. OF 3 DISCS "Hrw Mw ccdr < *|r *u"&  #e rwlwvlwjlw^lwRlwFEw2lw&l&yyIORITY PROPERTY LEVEL 6 PRIP07 = 0 ; PRIORITY PROPERTY LEVEL 7 PRIP08 = 1 ; PRIO.zyF77 :-^X V }w*y`n`n}* :ß" *y   .ENDC ; NDPRT1 = 3 ; DISK PRI. LEVELS. .IFL NDPRT1-3 XXXXXXXX  r!r ->R6J .rN5@ B   wrw ~x&"y"y@$+R&yyvLElMExQM^fRITY PROPERTY LEVEL 8 PRIP09 = 1 ; PRIORITY PROPERTY LEVEL 9 PRIP10 = 0 ; PRIORI~~ß *yz`n`n-N*z  ׯ ׯ ~ ; MUST BE AT LEAST THREE .ENDC ; .IFG NDISCS-1 NDPRT2 = 7 ; NO. OF PRIORITw 1rw w cc p"sw ~w |w  "sw w \w tcc~Ry\Mfryy"yy,yy@TY PROPERTY LEVEL 10 PRIP11 = 0 ; PRIORITY PROPERTY LEVEL 11 PRIP12 = 1 ; PRIORITY*2z~7    *Vz87 2whoj7 h b" ZׯV*zz ׯN Y LEVELS IN DISC 2 QUEUES .IFL NDPRT2-3 XXXXXXXX ; MUST BE AT LEAST THREE .ENDC *5>6*"tE$ wtu~{IEVED FROM TASK TABLE. ; IF DPRTY = 1, THEN CALLING PROGRAM ; CA% o $  S* |  o 77} ~ow0& *.| & & & w<RT = 1 ; PRINT-OUT DISC ERROR MESSAGES OPTION .ENDC CHKPTC = 0 ; CHECKPOIwp,ww 5@-~( -v w X*8w c P`Tw c~"|N SELECT PRIORITY. ARG = 1 ;ARGUMENT OPTION; IF ARG = 1, THEN ; THE CA.R|Ґ&  7 |7`jo  o%o_*z|%o$%o52%o%o%o)*| 8%NT CAPABILITY OPTION- ; ;******MODEL 45 ONLY FXPART = 1 ; FIXED PARTITIO9*\wT 7 H8JwFB< *wm,m(m$n w - *we~|LLING PROGRAM CAN PASS AN ; ARGUMENT TO THE QUEUED TASK. RGSAVE = 1 ;REG- (  E*|w5 &E f .|ee !o׭ f  N OPTION $SGMNT = 1 ; SEGMENT LOAD OPTION $CPTNO = 2. ; COMPRESS TASK NUMBER $MXFT wwwwww.wwwwwxxx tx ||x*w fx V ~} ISTER SAVE OPTION. 1 = SAVE ;REGISTERS, 0 = DON'T SAVE 'EM. ; ; ***** NOTE: IF DPRTY = SION IS ;ASSEMBLED. DISCUN = 1 ;LOGICAL UNIT NO. OF DISC TO BE USED P = 100. ; LARGEST FILE TYPE .PAGE ; ; TTYIO SYSGEN PARAMETERS ; NTTYS = 1  4*xx buw  *8xv lluR bu*\x Rq~}0 OR ARG = 0, THEN THE CORRESPONDING ; ---- ARGUMENT SHOULD BE OMITTED FROM THE CALLING LIST. .IFL DP ;FOR MESSAGE BUFFERING DBUFSZ = 1 ;NO. OF 64 WORD DISC SECTORS ALLOCATED  ; ONLY ONE TTY. ;IN SYSTEM SYSTTY = 0 ;LOGICAL UNIT NO. O v ADD*xB C$D4w *x*w w w w x ,~~ ********** HRTY ; XXXXXXXX ;CREATE ASSEMBLY ERROR IF DPRTY ISNT .ENDC ;ZERO  ;FOR BUFFERING OF ONE MESSAGE ON DISC FILESZ = 20*DBUFSZ ;NO. OF SECTORS PER F(v(v)4dzw*(v q܎)~2ձ%.ѱc*Lv,D  7*b0 h*w%@   !*w ; * x1c  w cbzcw b7~w 8cvzccw f7iw Pzcc t^@] ~Z3 ; $ABMES = 1 ; # OF ABORT MESSAGE BUFFERS .IFL $ABMES ; $ABMES MUST BE => 0. 4 & *w  wB `.7  ERRORS 5@@P@ @a*Dx@@t@ov@o6*hx@e@ 0! P! @!6Z<zV8,w Xcc,z&ccw "c .cm*z c7*-V~ LPw\ *ww"wwVw\* J*ßDå U ʐ 0ï,}ï$"y: *xv@ @ @ @Y *x@ @ @J D x` ; cc*{w |CO w fcc #,&{   w RCO w 1<e*`Q$Q$Q$Q$Q$w6Q$wjwwe*FwTww7 = PSTP ; THE SYSGEN PARAMETER '$PST CONTROLS THE EXECUTION PATH*PSTP > @ h*4Le <w*X O +. &J6?@ *xl*|@|7 V*y ҉f&R f^S**y'k@L{w @ w x7w Nc\`{cw 7w lc&p{ccw .D`cf&c*{A*@7Gwf5 q*̏ )7&H*,y͟FׯB; DURING A TASK ERROR. PSTP ; = -1 ROS + USER ROUTINES C*|& J*H*C=*Ą=% Ddw. Qɕ ?@*NyH^7 7{k7 \*ry7 $7 "7|\2 7wwEc #  4w c %*{ cc 5B ` P{ vF@` 6?.L*$ "D Fv *: @ @fEw@G PSTP ; = 0 ROS PSTP ; HzP<*d  xP?6 n. c* >w 4Fßנ0נ9,IG*y "|\ & *yww~A|\7 g*y7j7J | B}*}& H F c 5 %c*~ 5 %lK*^B K&&*&$&` 7 .~`mv L = +1 USER PSTP ; M*0å$ å.å  *TנAנZ נaנz  E.x N+ & w|*z\ w |\70 |4*&z\7N & w^O7{ *8~ fc ,5&55@<4*\~- (< elP7 n ffؐi*ΐff3 f&_wB * 7nh 7 H7 ^7 ^7Q PSTP $PST = 0 ; PSTP ; Rm _D`O,(7B D*ƅV l ? (J7 7 S*Jz 4z,*nz47 f {fj*z7 wBT,~ c[ 5g|J,~ B}B<4E.~*U!* $Q   6 ,:>%%’ K^*`*V PSTP .PAGE ;FOLLOWING ARE SYSGEN PARAMETERS FOR THE TIMER AND CALENDAR ROUTINESWRN*V< 40 0 b*C Z:V7G(7 "7 _*27 X!e77*z E ! ! ! ! wVwT*zw>|7 zw< ww7 -Y w  ~w 6w w cc&~w w D w$ w$w$"2 w @Z-  7 U*7  '*&_" ɋ 5 [ ; NORMALLY THE BASE PERIOD FOR THE TIMERS IS THE INTERRUPT PERIOD, AND ; IF THAT PERIOD IS DESIRED FOR USE BY ANY TIMER \8w7 7 P&RD*V 7x*z wf ]*z&7 7 z-~ 7 vf/*"{5& wl B  E`*F{ u^w `we_E*̑ ^0^ ɋD R*PT wcd `UBĝT * E7`MODULE, "RESO" MUST BE ; SET TO 1, AND THAT RESOLUTION (ZERO) SPECIFIED BY THOSE MODULES. ; IF IT IS DESIRED TO MAKE THE a*Q_ε9m*†X%,0xw6*wɵb @> /*j{e "$"*{"PA"TA  ĭ+76cdP* T *8  %å   w*\w׽@׽&b` eBASE PERIOD COARSER THAN THE INTERRUPT ; PERIOD, "$TMBAS" MUST BE SET TO THE DESIRED RATIO OF BASE PERIOD TO ; INTERRUPT PfELHA* G%B4/d\*.  g*{%"37#^4^b ,{fffD^v^^ ,&{^wbhim, B`E   eeW!e*`&fv  (*ʒ*&ZjERIOD. $TMBAS = 0 ;DE-SELECT ALTERNATE BASE PERIOD OPTION ; THE FOLLOWING PARAMETERS SPECIFY THE MULTkp,RV@@@<L&xP ܉ẋ X2* S̕l^D Nvĉz*|4d44d PAL11R V004C @| # *L|77 nw P  B[*7<B! w.  7[*7l *@"4.oIPLIERS THAT WILL BE LOADED ; INTO THE RESOLUTION COUNTER TABLES FOR DETERMINING THE PERIOD OF EACH ; RESOULTION. THE PEp:* #(׭DO׭<K*H   ^Vjq  *p| w w7 7 Õ . *| 7& w_D Hr>>@>8}.>?  7[5Q? R? *>??7H$??s\*6 7 7 " E - *Z1- 77 70*~!ׂtRIOD OF A GIVEN RESOLUTION LEVEL DEPENDS ON ALL ; THE PRECEDING LEVELS (WITH LOWER NUMBERS), WHICH ACT AS SUCCESSIVE ; Mu*EP )&X*(˕  S,H*Lv*|  j X R 7 ~ 7 R *|d : %_  .  z*}, 5 w?e*>e 5 58} ]"?.? .? A>x &< 7j* & ע. W._ *Ɠ0wtw2yULTIPLIERS IN COUNTING TO THE GIVEN RESOLUTION LEVEL. ; THUS, FOR "RES4", ITS PERIOD WOULD BE: ; RES4*RES3*RES2*RES1*RESz ˕7 t7 nN*pNSbw#%4 )%*744${  7 7 7 *$}- 6 4    Hw *H}7  *   5 |}*<  @0w2D*WW µ  *2 ~0 --- IN UNITS OF THE BASE PERIOD RES0 = 1 ;1/60 RES1 = 15. ;1/4 RES2 *hwN X  T@7{*܈wTw LPQARDMBI*NTU*l}  h 7  7Q*}  x  wlX*} 5  7*V0. 2}*z. W"µ@6µw = 2 ;1/2 RES3 = 2 ;1 RES4 = 5 ;5 RES5 = 2 ,EEGxr*$Hx\M*HM8f#P wRL Ն*}@ 8 |   .}hw@ , P  *µwµi *”͵&# 7ztP*N-F ;10 RES6 = 3 ;30 RES7 = 2 ;60 RES8 = 3 RES9 = *lxM&W*4d&W4d&W 7*&W N_<*$~D6 D 2 @  w܉  *H~ JH w  @2 *l~r, >>@>8}.>?  7[5Q? 7\$?y*>??>??׭^3 8/0Kx* H7E47 780VK*."%$oDaJH5 RES10 = 100. RES11 = 2 RES12 = 2 RES13 = 2 RES14 = 2 RES15 = 2 &Wz%p:*؉(( PAGE XXXXX MM-8DD-YY HH:MM:SS:XX G*2 *~bbڊf *~ F    HH?e*>e 5 58} ]"?.? .? A>*RJH*v ĝډe *4 5; IN SYSTEMS WHERE THE BASE PERIOD IS GREATER THAN ONE MILLISECOND, ; "MSECR" WILL NECESSARILY HAVE A PERIOD GREATER THAN O P[*8x(vm*\*~P N D H@Xʵ Zt*~> ?  C!$@A_* (CH׭, )G󷊮0׭*3* .7z7 T7 R *wEՇעעעNE MILLISECOND. MSECR = 0 ;NORMALLY 1 MSEC: HERE IS = 16.7 MSECS SECR = 3 ;"RES3" IS T䐬fhj2:Βv8^^PИ`t0NF  D H6*D̕`XZ *h    EHN* & עע Š **Հ L   *N7 HE ONE-SECOND RESOLUTION TRES = SECR ; FOR TIME-SLICE WATCH-DOG IN RPOM $NRES = 16. ~p|4Z~{&ЊȒȐ  V KP* FN F   HN&*@ACBEH׭ )*NF`   &4*r77  LP>7 7~{* 74u\ YR;USE MAX # OF RESOLUTIONS .IFLE $NRES XXXXXXXX ;$NRES MUST BE FROM 1 TO 16 .ENDR*erw7 l\,7 ~7 7 7 7 D7 87 @j 6 T  w *V   7W ? *  ' P ?! 5 w@uuR @xąe */." +%$#('&0uUPDATE V005A *u*Xe2e9ee, ef*ޖ e6  ̞ * E C .IFG $NRES-16. XXXXXXXX ;COME ON! MUST BE LESS THAN 17 .ENDC ; THE BASE PE*،!& !wLF׭pu*hLw,&w&7 * 717,7.@?  Ã$؊ͭͭ DK,hf^ͭ FNڊb* u END uS200 >&vv # ZZ00000* G vR"vR6v7V *6 .*&55 6  *J*IRIOD FOR THE TIME-OF-DAY CLOCK, ABORT, AND TIME-SLICE IS ; NORMALLY THE INTERRUPT PERIOD, AS SPECIFIED BY "TICRES". ; IF A 77777X*D%&R @w|*h{ĕ Q$BB`@ K^H  ͭ% E*7 vwͭ ĉb7"*ր^w VT8 , J+ FwR*wvyy *wMM*n* *qUQU@ ,MULTIPLIER FOR THIS INTERRUPT IS DESIRED TO PRODUCE A COARSER ; BASE PERIOD, USE THE PARAMETER "$ABMPL" TO SPECIFY THE RATI* wʥ m2229*d   /Je;*ԍrwBo*>& *w A*wv  END &*B7 eEO*wE* x*.x6& xܗ*ܗFz|*b !*@JIB=IO DESIRED. TICRES = 60. ;# OF T-O-D CLOCK TICKS PER SECOND $ABMPL = 6 ;CLOCK BASE PEv w&&* fL֋wn*-28 ׭    *fD!Bͽ%( w*w  v`uww,Rx6xw(xwuw*xxw7 87 &7 >7 7 7 *$A:&  4@. c$ *H@# *l7 RIOD = 1/10 SECOND C1COMD = 177546 ;DEVICE ADDRESS FOR HIGH-SPEED CLOCK C1CBIT = 100 ;BIT*@/4  S*dV׭b ɵ*ɵ*wwwJ7&V*ҁf"e  ͵ R*͵7 .x7 7 -xJvwwv*xww%0v. ,x* w,Xy& \  w7 t2w"*~yww/w -~n  TO CONTROL FAST CLOCK INTERRUPT $TMSLC = 1 ;SYSTEM OPTION FOR INCLUDING TIME-SLICING $SWATZ = 20. 2-w*e / *Ў~wDl-^j~ %͵ɕ= C͵͵*@G**D`*>$ D!!e $͵@ JՕ?Օ Օ vwvw,ywwf7wl*4ywhw/w.yw jX& w7 (w*y xw/Dw@8$ Pw*y ;NUMBER OF ENTRIES IN SCHEDULER "WAIT" TABLE $TWATZ = 20. ;WORDS IN TIMER'S "WAIT" TABLE .PAGE ; ; Bzzbv|{L}*/." +%$#(!'&0 zLIST V002A *z  z t^^ 5K hmILE NTRYS = 3 ;NO. OF TRYS TO OUTPUT A CHARACTER ;TO TTY TTOTIM = 7 -- /*z - Z7 -|*6zsw x f w END S200 {  #  {~,{00000* {000*0@3J3h3J3C!4 *$0q6|42  :6 15. ;MILLISECOND COUNT FOR TTY ;OUTPUT TIMERS TTITIM = 15. &3*Zz-\L SC ww w *~z)$0)7 XdT`*zP\-Jv*|{NENE*y/*,|{LM*P|0w.H0 t37 $ 7 3*p0& Ν4"& Ν4",*0 ;SECOND COUNT FOR TTY INPUT/OPERATOR ;RESPONSE TIMERS TTWTIM = 240. ;SE<F-4@,z8@ lw-w x*z $ & >w~ww*t|z|!||P||*|B||z|| [ Q J 4 f7*0 J3 e |,04~ 0R5"COND COUNT FOR WAIT TIMER NWUCH = 5 ;NO. OF CHARS TO BE OUTPUT FOR ;WA K,{w -   wG*6{7xwww T*Z{&t^(b (z ${x,|7 h7 `{||{| *||0{.  8.} d=5`>*1 f4"f5"f5*&1"L CfE 5 *J1RMUP OF A TTY UNIT EOMCH = 33 ;ALTERNATE EOM CHAR (ALT KEY) EOMOPT = 0 ;EOM CHAR xwww ֵQ,~{5@ www7\w*{w =  v8b0׭zo0zx 7r w (,w 7t % w Օ?Օ Օ {w{||*.}wp.|l||/Nu*R}Na wT -f5"f5" wb wbX*n1f(5"ע0ӕ f05*1" f65"  OPTION WHERE ; 1 = EOM IS FOLLOWED BY CR AND LF ; 0 = N=*{Rw< ^-DF   D) ;*{n .w-&*   & w/*|   7^w w ` % J.>ĝ\770 , T i  *v} -   -*} t.| zl|.|,}  *1 |H4 N W5 *1<R5"p=5l  *1COT FOLLOWED BY CR AND LF EOMPRT = 0 ;EOM PRINT OPTION WHERE ; 1 = E. w X 4*4| $w |Awwd*X|ww .vvw"&T( ,w.& 20@p D20 p, A  &DCc ֵ5@P$ wl|.|=*}l|.|7 $|^| |/,~"w w$|!t5 fBC :7V *"2 5ɕ0  @ 5>*F2ѕ 5 5OM IS PRINTED ; 0 = EOM IS NOT PRINTED EOLCH = 12 ;CHAR BEING USED FOw*||a lY|xL 0 &r.|f"(vwwZpww*|  w 2w p,4 w  ' 7  ',X&w \w wXw w  ^|$|.*.~  {$|$| @p*R~% w &f"{*v~b5 *j2f5"R5 e@57*25" 3*2R END OF LINE ON ;TTY INPUT ECHOCH = 40 ;ECHO CHAR -- CHAR OUTPUT FOR Nwwvwwo*| :ww ww*}wl   " 1,1,0|fw |t w 7 wtwhw O  *O l, %_ E e whH .|.|d ,~\wR$|$|$| v {.|h,~.|w$.|.|5"    q,2  Ex`5t &J3J3*2@30R3@3@3O ECHO MRCH = 25 ;MESSAGE RESTART CHAR (CONTROL U) LINELN = 72. ;LINE LENGTH: NO1,0*4}v"vwwf*X}vww& *|}Ν ; _ "H ,6  =w F6 / w :( w %  .|z|,~|w7 6z"z|* |DEM515255707172\3J3e* 3J3/E)E\*D3MMr3@8h3. OF CHARS TO BE ;TYPED IN A LINE .PAGE ; ; SYSGEN VALUES FOR LINE PRINTER AND C0vww,}R TX& Ν 0Fwwq*}ww  Fww,2! w * w "w * 7 w ,7w 77  Jv|T'r4 DISK DIRECTORY [*4 UIC T FILNAM.EXT DATE *4 MOARD READER ; NLP = 1 ; JUST 1 LINE PRINTER ; NCR = 1 ; AND JUST 1 CARD READER w,}T 6 & ΝC 20Fw*~ww)& Ν ;*4~0  ,4w7  ww (b ww ,Xw A B` r%D,|DE START DLONG LASTF 4 PROi4,4 5. 5 Z7 7  Mw 0 *X~W 4 ` C`@9*|~# : w| 7twrj,whg E 74pwhP Z 4,  S  **AwL C*Qw_*  E_U 5 N 5 E %5 < -5 4 65 +<5 TOTAL BLOCKS  *~~ v-rjj-d^F*~D> jFwww0*l*~  E t4P 4Iw Y4 4Q,-% w  =w H ,ؘ*/#@% ()"'+-!&; ,:=87s-*p 8 ̋נ0נ9 å.f*"Հ Y#W5 ******* DISK MAP }5 15 BLOCKS USED 5 BLOCKS FREE @ą E505152535455* 565758597071727374- >@xA, 7 4=w e0 4,0w ,w %@w ~k&& EEEE e*F ` e ` EС&EU*jp̵wV/},8 נ 5 *5|~6vtfdf&+,6Z6"e6" 6,Te=w @w Xww,xw=w  w  d,w *A*0נ98 å$ å.*נAנZ נaנz jE*֙T P**@6&6"f6"*d6 >J&*6zQQo-*}W!W!    w)*2}   7 7wn 7*V}} PoBPPlR9wW*/." +%$#(!'&04PSCAN V001A *P  Pe0w v,w nHBF),w 6- .274,  4,7&&jnx*ß@≇#0 E S*&wRU%f -$*Օ !AA wL^Y6 I6 6 6 0 END S200 2P  #  HP~^P00000*  PRu( B:8w ?j,w 7 w 777     w y,,%0 %7*B fe*"wD *f  D! *`r koh7_w ^0Y*z}-P* J HׯB  :ׯ4 ,}ׯ, w  7!.; hfp@H[g4"4Q STRING: DQR*QDQNENE*yH#E `  13  $3 .P W ֆ m7 yv6$eC ]*-$܉eCE y*Қ v$ | lf( ˕ %o *}wwpww}P(D~@~J&@H(h; h, w  '*Q{LM|*QV*RPVR( (vNv*D&.  *D&Z@<)*e˕ w8 ˕ ,*\ "  $ D*>b *~J;&ji+ Dĥ  H[g4,$D0 C ``a q(H-,!QQQQ*:RQQPQQ VP,^R7 7 6PQQRQQ-V^}.@ < V^l,Nz Z7U<. L W Ջ.bM u e ͕'  Dg*- "0 v6 w 6hfp1*RQ0DQ. .R ~Օ?Օ Օ XQwRQQQ-*Rw2&Nz   ~,D 2 7.7(%  ,w3˥*0ӕ  7 D!C   v*қKw  w <w .w C4564QQQPQQ*R @P < *SNH4< P27 %=w o, w  w w ww @,.  7m8!   *e e& 5 c| es*B%m  e:9.z(z;G*h(:,U   xB7n,$e-z?@  >-6 h*S(Q RQ ֵ,S5@R PwvRQRA "` c, L eD  !RB !R=DR$R0L !64B0102030405*Ҝ060708091011121314151617181920212223D*2425262728293031707172737475767778Ce Tx`,Hx^-VE?JFes ,leX . ~e$UD. ; hfp@H[g4EQ*S7 LQRQ/VwR*TH w2QRQ **:T HPQFD4 V ` !4D(DV ` *D",h4 V % w  G79,8081828384858687888990DF*@77  7 xtQ*deH7, E} =|,e e e_I@H(^  ; h ,'d w JQ @=*^T w ^P&.T % ҥ &f"Kh V,  @w @ % % w ,. ww  *L7`&܉ * ".΋4΋/%*M*W H%&:w.%TM,e  &,e @ee , e_N Օ+5[g4,$  d 0B` e0  ]Hw OPPK*TQQb ,T\wRQQQ z @PQw,TQP,RD  &C@AEPA&f,vw w /w w :w j, QZ*Нbڊbb,%hN@d*q:, ` &e*&R3R   j @,Df w#& P LN C,hFN @N Հ0S%Օ- ҋhfp!TwQQQPQ,UQw07 :.P""PQ&*@UQDEM5152556061U ` E .` H 8 wF (,w V`&ŝ awt*<eX U`E*`@w&JW E c,  !-S--<# XY707172MdU8RZ7U4E(w T760  pV$V*H[&*ՀH`Rbb.P lF*О5\%------< 04268 ny ^_,0w V׭U ,T7w @`P K*Kceba7+&b ɒ DeHabcdŝ\,xŝwt w3 ,t!D w w J& efg.v@;@He @ee *be_   j g*f hfp(.Bf&  R  B  , ,, *;/\ $G _<^,OWEBP@>SRC-FI!XAS<P PMCFRB q>1;}G$>&2($X0o0  .2       w#& P LN j*FN @N Հ0 E *Ν  ; (. n f d9a(E m` ~ `  ,: Xo ` ";}IgD. ;}I ;}J ;}8J ;}`J ;}JCN      ! !H-S--.v@@u~@@ ` @)X@J.& & &  ;}J2v,v   w;,&@&& f&fa O D ******************* ; * THIS IS THE ON-LINE LINKING LOADER FOR THE "ROS II" SYSTEM * ; * TO BE RUN ON.9:;@4 TASK # 4 v $v & &  0$ 1  i D7! *_MQ,L_ ŊY BT.[g4( [g4 THE PDP-11/20. THIS VERSION WILL LINK UP TO 20 * ; * OBJECT MODULES.(THIS NUMBER MAY BE CHANGED BY RE-ASSEMBLING *@{7@E.M:@}@""@:<}@_MQ@!.ee;@Ye@hfp@[g4@9mQ@;}8J2v,v TASK # 5 v  Q B7 Ye),pMJ D EE ,? M 0h&f&M  ; * THE PROGRAM WITH A NEW VALUE FOR "MAXNAM".) A LOAD MODULE WILL * ; * BE CREATED WHICH IS RELOCATABLE BY EXECUTI.imR@m@Tq@[qj@4f@".(E:hf:h)h)bh>&)X$v& & &  ];}`J29W51 4 @  $*R,  `kK  NG AT LOAD TIME A * ; * "TRAILER" PROGRAM ATTACHED TO THE END OF THE MAIN PROGRAM. * ; * BECAUSE THE LOAD MODh9p:h9ahb4pv,v TASK # 6 v $v& & 8.  ;LC &:<}S& 5!ULE IS RELOCATABLE, NO "ASECT" WILL BE * ; * ALLOWED. NAMED "CSECTS", HOWEVER, WILL BE PROCESSED NORMALLY. * ; * - t  r ;}J\2v,v T.  ! M.f w<w@w@wtZ" THE LOAD MAP PRINTED AT THE END OF PASS 1 WILL SHOW THE VALUES * ; * OF ALL GLOBAL SYMBOLS (ENTRY POINTS, MODULE AND SE v $&2>JVbnASK # 7 v $v ;}J42 imR (,$pD MH2 ^-e   ^%,H.hfp(hfpCTION NAMES) * ; * EXPRESSED AS A RELATIVE OFFSET FROM THE BASE OF THE LOAD MODULE* ; * OBVIOUSLY, THE ABSOLUTE LOAD*&2>JVbn&2>JVbnzN*&2> J Vbv,v TASK # 8 v $v&  B   e 1  ,llD t$ @@ih  VALUES CANNOT BE KNOWN UNTIL THE * ; * MODULE IS RELOCATED AT EXECUTION TIME. IN ADDITON, THE * ; * LOAD Mnz2>JVbnz*2>J V bnzo,3>*3> ;}J 2 v,v TAS $, +wwcEe^ N c "^, AP WILL SHOW THE ACCUMULATED LOAD MODULE SIZE AT THE * ; * START OF EACH OBJECT MODULE ON THE MAP. WHEN LOADING TASK*3>* >*>*">&*,>3>*3>*3>*K # 9 v $v ;}I/2 Հ  0 ``e  " # =$& "S, * ; * "ROSLOD" ALSO UPDATES THE MONITOR'S TASK TABLE TO ALLOW THE * ; * NEW PROGRAM TO BE QUEUED AND EXECUTE >*>*">&* b3>*3>*% >*>*&,& v,v TASK # 10 v $v "# *`$= == = +.     &D. FUTURE RELEASES OF * ; * "ROSLOD" WILL ALLOW LIBRARY SEARCHES AND LOADING OF SEGMENTED * ; * PROGRAMS. 0?0?0? ??"?&,J0?0?0?  T;}I.v2 'vvv7    }  UAC.    =,: ! w .\!ps@;  * ; * DATE: 07-APR-72 *  ??"?& n0?0? ??0;}I-v2 %vv&v7     | "  ![qj",^  5@s kM@.t 4!@u Z@y X@ d@ @. l@ @ q@ ; @}@; * VERSION:003.001 * ; * 25,23@n3@n3@n @n@n"@&n%,V3@n3@ 2 ,& wN 9mH},ŀ.@8}@u:@e"@{7@d.E@M:@""@ #}@U(@ .a,} * ; ******************************************************************** .TITLE ROSLOD n3@n @n@n"@&n% z3@n3@n E7 S5@ !,% 4e,@.@.R@MZ@{QD@h.Q\!H-YTG@Zp@Zd'@f@.Cm@imR@m@ .REF PPTAB,TASKS,TPRTY,TSTAT,IOSTAT,HEADER,BSIZE,IFD .DEF LODINIT ;SECONDARY INPUT PARAMETERS: ; @n@n>> BB CCu~#"^st!^&w,^H X^x u~^ gp^ ep^  45 - m,  `2 lm lx,6 m v3d@v@^.9wW@w]@z4f@9p:@9a@.}C @ q@4f@(\!h.!PRIBKG,$RLDNO,TASMAX,NPRIOR,OVTMIN,MAXID1,NDISCS,$SYSFL ; $OVTYP,ARG .PAGE ; THE FOLLOWING DEFINE MEA" DD EE F#$44 e,Z  5   "20~w@f% \!y:h\!phJ, &6  Z6.)NINGS OF BITS IN LOWER "FLAG BYTE": DBLDEF = 4 ;SINGLE/MULTIPLE DEFINITION (0/1) UNDEF = 10 'F GG HH(.u~#"hfp@H[g4> 5? @ *.Ew! C* $.$ ,2,mz4f4f #}U(+, II JJ KK-@Hm@H.[qj@Hz4f@H4f@HLC @HR:@Hl.( h*}hM:hzimRh. ;UNDEFINED/DEFINED (0/1) ABSREL = 40 ;ABSOLUTE/RELATIVE (0/1) TXTCMD = 3 /:.simRM: Cm ED.0.t!s@}1 LL MM N2.[q*}h}shbu~hu~"h~yh"2gh6b;h8F3 ;COMMAND TO BEGIN A TEXT BLOCK RLDCMD = 4 ;COMMAND FOR " RLD" BLOCK MODEND = 6 49a9p:8} ;  ; N.{QD}C "" {7 B5@&y@.;K}@hfp@f@[g4@m@.[qj@y@ ` @LC @R:@6N PP R,R7,&-&` e?B ``,$ 6  e8 ;MODULE END COMMAND PCMD1 = 7 ;RLD COMMAND TO SET PC PCMD2 = 10 ;RLD COMMAND T9X.MZ.} YTG .R7b.:.(eht!hxh-Zh.D~hA*}hEhtJ&) hm4phr.>) ;~$vb ZZRTVXZ\^`bd<,H[oLC z4fB,lS& =O BUMP CURRENT PC ; FOLLOWING ARE ENTRY-TYPE COMMANDS: OBJMN = 0 ;OBJECT MODULE NAME SECTN a,}9wWZd' Zp y Xl~.u Z ds kM t 4! ?h!?}hQ@hRehS@~h.U; hCmh2w_h|xhy2ghz.Yzb;hD~*}hk~[h@.RTV X Z\^`bdnfhjlnprtvx.fAw "[g4,%%E Cw0 B = 1 ;SECTION NAME GENTRY = 4 ;GLOBAL ENTRY POINT DECLARATION ; FOLLOWING C. [qj "! (",AD 5w@""D ph.7" @ : 7fEhj l nprtvxz|~@.z|~  F ebBA  J6 w  b*hfp,0 "$:8GARE OFFSET VALUES FOR WORDS WITHIN ENTRIES FLAGS = 4 ;DESCRIPTOR FLAGS VALR = 6 y  v,dwW& N & "4f#,@DCI$R:(f.&)-7 .LC LC  ` "y(J# <bU,bw  Z B)[gK  ,2EW  9W &F0$1 7L ;SYMBOL'S RELATIVE VALUE BASE = 8. ;SECTION'S BASE (OFFSET FROM LOAD BASE) VALF = 8. MN,L&  B.[qj&y;K}";K}&&y{,p9 O4B ,w && && ,hfp mm, w P  fb`E"b*,L7vBABWCEqQ;SYMBOL'S FINAL VALUE (OFFSET FROM LOAD BASE) ; FOLLOWING ARE MISCELLANEOUS DEFINITIONS BTCHID = 200 R.w,D~@HA*}S & 7T&;K}LC s}X,&fЕ<<9T& w%"hfp"9mQ&},B5NAЀA 4w PU,pJ7œ& ‹  J, & 5@& Œ ŒDV ;BATCH FILE I.D. BPSYM = 10. ;NUMBER OF BYTES PER SYMBOL ENTRY GSDMAX = 4 W@HJ&) @H`.m4p@H>) @H!?}@HQ@@HRe@H.S@~@HU; @Hhfp@H[g4@Hw_@HX<2  ,- "PPP8,)mȵ  Y"B NAA$[g40$  \CC5PA1AUCC Z4fm,$Œ&&f A, b`BAW,[;MAX GSD COMMAND ALLOWED HT = 11 ;HORIZONTAL TAB LF = 12 ;LINE FEED FF \.D~*}@Hk~[@H p@H(a,}h>&.Rhaw}h:yRh]@p&, ɕe` ,$^P$A*A0w   wHe  >[g4  *>A,BA_Jfb&, b   bZ` = 14 ;FORM FEED CR = 15 ;CARRIAGE RETURN EXIT = 4 ;EMT Fa,& <- &,$76b%!G7& ^ ,H< 72e1c ZA B DAZAB&D ,fMP NZRP W Zw d$ww8f[qj8bY(bpeOR CALL TO MONITOR EXIT TTYIN = 14 ;EMT FOR TELETYPE INPUT TTYOUT = 13 ;EMT FOR Cf w e&Re m4pk~[[g4p.H  0m5)g ",l"2 7B f 9 0 D &  ‹ & & h"MNZR Z&hfp0EE JD Ji e(P EdjALL TO TELETYPE OUTPUT DISCIO = 23 ;EMT FOR DISC I/O ROUTINE LPRNTR = 25 ;EMT FOR Lk"J&) U; (J&) .n œ Da`.Ul N & *m70 yeEwm *,DDI |1Jw, &@.D IJ "$&&@"n 5d $ +  (oINE PRINTER R50PAK = 46 ;EMT FOR RADIX-50 PACK ROUTINE R50UNP = 47 ;EMT FOR RADIX-5p;  A*}A*}>) (!?}0ӵeK6 w *D~*}q$[qj*,57&  ,5E -?rR`nEWEH.R`n  EEq,@N  -m=st0 UNPACK DEFINE = 51 ;EMT FOR "DEFINE FILE" MAXNAM = 20. ;MAX # OF OBJ MODULE NAMESuD~D~*hfp=.  V $5(S@~*5v- ,(   Ν{,L   Bew N o.  Iwf ==" I STSIZE = 100. ;STACK SIZE (WORDS) PHDSZE = 30. ;"PROGRAM HEADER SIZE": # OF WORDS LEz& H H H)w_{,p (- -- ,ee  Eg, E|M:$(g.: && & Am(A.` z }~ `` c  "C.8    B   EvÝ],;`Ý1`Ý*`%<< %, ÝÜ  &  & w y 4f([g4), w    j1A 6.Xe@H    (:<}0^Wf @   $   ,$ UU&-E &, hfp:<}$A.R %RRA5NRRR $A@H-Z@H.*}@HD~@H2@HRe@HS@~@H.[q*}@H|x@Hy2g@HYzb;@H;}G@H *.(!   wU.  ! [qj"+,HE eet?p6 ,l w %(N. 1B%R5P 4w1CA&BRP [qj$C(A0E.}s@HD~*}@Hk~[@Hu~@H~y@H(.@H ` @H"2g@Hb;@H(lX5w@B    ,``Bm$ V R@ u w{.u~t!@u~"[g4 .%BA  J6 w (hfp. Uf I1E B& EM:I"E*0IL I1h ,7% 1 M&b; $ ],w.w w @ 52[g4hfp@(u~h)" wwF  "(  LUILI"L* .FIE^I}GIn "2g~y ~y*$1 7}.[q*}*}u~ |x$ &,5" B E w&  "  K,6 " u~"t!{G"I EI G"(I,lE  I1Iwh EI F7 E.e D~*} D~Yzb;y2gV7 7  B2r2r  $&Zr  ttSI&,1E I  I1E@Pw{E II E$P,rMw&d&-Z k~[ReS@~. ""   0xwz F! w~B@ MwEMM".E D@P f  ! *a(!AD # L. !  # . gps@; P (imR, D+ŀ| n *-\ ,"el(4h:h6_MQhYehHyh.ep""@H:@}@d.K@LC @( g:h$h)&CvhS}he^h.FBE,I 4 F,F 5@ =C5@.em^!OzK5 : ^ M^`^)^!MZ^T), @@.$ @Hhfp@H.[g4@Hyx@H)@H)b@H(e:h,*  7 7d *,$7lvEpj,j@wĕ I^I2 [qjI I7,   ށ F $ (<$J  . g:  e:=sL"&f0~Dn!D$yx*yx=,(w Z&d ^ $;,H ""& J LC  Fĕ\IFF&I0GĒ1F  1Gĕ\IH.m-Z@K@2v@\!pu~ @,B0w2 N"[g4))b",L@f: (. *&st,l$ҝ.( wZLC K} ZGFG$I*H.Hf = If.&H M:@ 6|M:I*,(8w 5.2h":<}hS;K}hK3!hfh .kKhV9mHhd9mQhr9m[hmht .#wq2 )XkKX\!y:\My:& 1 &hfpX W<45<Ap& _MQYeYe$Ye.L ,( &0 hhyxh z4fh2;}Ghhc. ` hC4fhLC hR:h6MX X ` :D~ 2'      wB}T(;,r 0 C `0  :<}&,$  "$&(*,.\.DWDS = 3 ;# WDS INSERTED IN FRONT OF PROGRAM BY LOADER ;FOLLOWING ARE INDEX VALUES TO THE TASK HEADER HMAXEQ = m.5@A > <Z4Z" Ye  "$&(*,.&02468:"024 6 8:=* 6 ;TASK MAX EXECUTION TIME WORD HPRIOR = 9. ;TASK PRIORITY WORD HSTATS = AR4 Z$Z(.& & rRR4ReR4ZRRR$R(Z, $ D T d AS A DOUBLER BISB #DBLDEF,FLAGS(R1) ;ALSO FLAG NEW ONE BR LODE44 ;BYPASS REMOVAL LO.: imR@G*2+14. ;HEADER STATUS WORD HTASK = HSTATS+1 ;HEADER TASK NUMBER BYTE HSTACK = HTASK+1 f `D` DM"D&M,*CD1KA1I@N 4 etu,tf&×&  6  `7r]ߕ,C CVSR "DE42: JSR PC,SQUISH ;REMOVE FROM UNDEFINED TABLE SUB #BPSYM,USYME ;AND ADJUST ITS POINTER LODE44: (F:mmh4: h,% f;TASK STACK WORD .PAGE LODINIT: ;RTNE TO INIT TASK TABLES FOR ROSLOD MOV #$RLDNO,R0 ;TASK KAI N5,N  I=f@I& . CCS&", CߐcW Cc,r ߕ 4 MOV R1,R4 ;AGAIN POINT TO INPUT ENTRY JSR PC,INPTRH ;INSERT IT ALPHABETICALLY IN THIS SECT'N*$6 we*6 imR*Z# CLRB IOSTAT(R0) CLRB TSTAT(R0) MOVB #PRIBKG,TPRTY(R0) ;BACKGROUND PRIORITY r J@P 3 1H1FIDY"imRPHF$I(.A5@ =fC4S0"C&S,2  ߐ   ;IF IT WAS DOUBLY DEFINED, BOTH ENTRIES ARE FLAGGED AS SUCH. THE FIRST ;ENTRY WILL BE USED AS THE REF'D VALUE. THE MAP WILL ASL R0 MOV #LODHED,HEADER(R0) CMP #$RLDNO,TASKS BLOS .+10 MOV #$RLM I"M(I,fw ÝiJ AJ&7  -Z}0 2 7  CߐC652: JSR PC,INUSYM ;INSERT AS AN UNDEFINED BR LODD20 .PAGE ;NOW ALL OBJ MODYTE STSIZE ;STACK SIZE (WORDS) .BYTE PRIBKG ;PRIORITY .WORD 0 ;TIMERG& YeYeYe"&!.Rp w B eZ @eR-ZC*C, <"0"0"ߐA"""ULES HAVE BEEN PASSED OVER ONCE, ALL ; GSD'S HAVE BEEN PROCESSED, AND THE LOADER'S SYMBOL DIRECTORY ; (LSD) HAS  .WORD 0 ;ARG .BYTE 0 ;STATUS .BYTE $RLDNO ;TASK NUMBERYeZ(R1,xeZ :J   9Z$h0A!,(& (w,ߕ,L 1C7 7 7 0 BEEN CONSTRUCTED. NOW THE LSD MUST BE PASSED OVER ; TO ASSIGN LOAD MODULE RELATIVE ADDRESSES TO ALL GLOBAL SYMBOLS,  .WORD 0 ;STACK .WORD -1 ;BOTTOM STACK WORD: HOPE IT'S NEVER CHANGED .=STSIAABBCC E NN!*AAABBCC(N*N.PP JA3C-Z>rrBC;CHECK CONVERTED NAME... BIS (R1)+,R3 ;...FOR ALL NULLS BEQ LODB10 ;ALL NULLS: END D 4, 0/STUVWXY ,% >?Z -JKL,DMNOPQ !$*); R  stuvwx=E7 7 7 7 80j 0 0` 1 "C F @@tt B,B CR 1 ERROR CR 1 SPUR INT 9,GHOF INPUT LINE REACHED LODA40: CMP (R1)+,(R1)+ ;LEAVE ROOM FOR FOUR WORDS PER ENTRY BR LODA10 I,hy z &ABCDEFGH `.,<(+|I   abcdefgh H,iJ$"*C(0S0c 6 <S c6Kff&f  6 @ B, :   M  :,LM;...AND GO TO FETCH ANOTHER NAME ; ******************************************************************** LODB10: N jklmnopq r ,  \()[] , @OP1 @q_MQYe$Ye.  QR;ALL NAMES NOW CONVERTED TO RAD50 MOV #NAMBUF,R0 ;INIT POINTER TO LIST OF RAD50 NAMES SUB #NAMSyz{|}~123456789:;f,<=>?aiklmno!"#$%&'()*+,-./},@`YZ[\]^_U { 4Ye(,s 1 0 &&VWBUF+4,R1 ;#BYTES IN CONVERTED LIST ASR R1 ;#WORDS ASR R1 ASR R1 X,dbcdefgh P,IJKLMNO YZ ;LC :<}" , ;.@ [\ ;#NAMES CONVERTEDTO RADIX-50 MOV R1,MODCNT ;SAVE IT: # OBJ MODULES TO LINK .PAGE ; ],ABCDEFGHj+,QRSTUVWXpqrsG,tuvwx0^.MZ;@4_  & w$}(9mQ.f 3  `a NOW CHECK BATCH DIRECTORY FOR EACH NAME ENTERED LODB20: DEC R1 ;COUNT DOWN # OF NAMES BLT LOb@@P~}zn|@@@@@@@,@@@@@@@@a@@kMl@@@@@@@@@@@@,<@@@@@@[\^j@@@@@c@; M@.}@M@:mm@: @:<}@._MQ@Ye@9mQ@m@Tq@d*  b;  &b(<, B ff+ fDC10 ;DONE:EXIT LOOP:ALL NAMES WERE FOUND MOV #-1,OBJSEC ;START W/ RELATIVE SECTOR ZERO LODB30: INg@@@@@@@@@@,`Z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Nÿ,@@KL;@@@@@@@@@ @@o@@@@@@@h.v@@9a@4f@LC @(.MXhMp&hMWhMZhMhiB".,<  R 6M  :  R&,5@p/A :^$ r\M^5=rȡK5  pp^*}^5$}؁^5[q&"5kC OBJSEC ;BUMP SECTOR # MOV #OBJLST,-(SP) EMT DISCIO ;DISCIO: DIRECTORY SECTOl,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@m      nMp Mw"55,@53& $: oODULE BR LODF20 LODF10: ADD #BPSYM,R0 ;NEXT ENTRY LODF20: CMP R0,SYME ;END OF LSD? pR TST OBJERR ;CHECK FOR ERROR BNE LDER10 ;YES: ERR OUT MOV #8.,R3 q@@@@@@@@@@@@@r       sM,E@pM3   3 M O,@  W"Rt BHIS LODF90 ;YES: EXIT LOOP MOVB FLAGS+1(R0),R1 ;ENTRY TYPE MOVB FLAGS(R0),R2 u ;INIT COUNT OF ENTRIES IN THIS SECTOR MOV #OBJBK1,R4 ;...AND POINTER TO SECTOR DATA TST vw  C,zzzzz$z$zx ,dP ,@ y;QUALITIES FLAG CMPB R1,#GENTRY ;GLOBAL SYMBOL? BEQ LODF50 ;YES DEC R1 z OBJSEC ;IS THIS THE 1ST SECTOR (RELATIVE ZERO)? BNE LODB50 ;NO: BYPASS INIT OF ENTRY COUNT {|z,PPPP  U } rh0&f  &&  4f*:~ ;SECTION NAME? BNE LODF10 ;NO: GET NEXT ENTRY .PAGE ;*******SECTION NAME: MAKE TST (R4)+ ;SKIP BATCH FILE I.D. MOVB (R4),R2 ;# ENTRIES IN DIRECTORY (+1) M[ / * ),<}P,& EAp3 0 M Tq 0 :mm?,@ @3 <M ITS SIZE EVEN, STORE ITS BASE VALUE, SET PTR ; TO THIS SECTION, AND INCREMENT THE TOTAL PROGRAM SIZE. BITB TST (R4)+ ;SKIP SECOND WORD MOV (R4)+,DIRSEC ;NEXT FREE DIRECTORY SECTOR MOV (R4) ', L/P 1 PARITY ERROR L/P 1 NOT READY 0 8H   8&H, el4  -> V #ABSREL,R2 ;ABSOLUTE OR RELOCATABLE? BNE LODF30 ;REL CLR VALR(R0) ;ABS: SET +,BGNSEC ;NEXT FREE BATCH ELEMENT SECTOR SUB #8.,R4 ;RESET SO NEXT INSTRUCTION WILL WORK LODB40:  L/P 1 ABORTED  (0 (  0, 4$>,@  4M> e 4>"&.d1> čSIZE... CLR BASE(R0) ;...AND BASE = 0 BR LODF40 LODF30: ;RELOCATABLE SECTION  ADD #16.,R4 ;ADVANCE POINTER TO NEXT ENTRY DEC R2 ;MORE ENTRIES TO CHECK? &f&f  7,,0 T P  e >$(J01^>e3 4 M ,; MOV VALR(R0),R3 ;SECTION SIZE MOV R3,R4 ASR R4 ADC R3 ;MAKE  BEQ LDER11 ;EXHAUSTED: NO SUCH NAME FOUND DEC R3 ;DONE W/ THIS SECTOR?  Z,Z    @ _MQYe"Ye>4$(0>!  *! ! +!  a>*JSIZE EVEN MOV PRSIZE,BASE(R0) ;SET BASE OF NEW SECTION ADD R3,PRSIZE ;SUM UP TOTAL SIZE (& ENBEQ LODB30 ;YES: GO GET NEXT SECTOR IN DIRECTORY LODB50: CMP (R0),(R4) ;INPUT NAME :VS: DIRECTORY NAM,~  *: 4Ye& ,2 0 ,@l el @  $. MD OF THIS SECT) LODF40: MOV R0,PTSECT ;POINTER TO NEW SECTION BR LODF10 ;GET NEXT ENTRY E BNE LODB40 ;NO MATCH CMP 2(R0),2(R4) ;CHECK SECOND WORD BNE LODB40 &&  ;LC :<}. & w * b;  &b(2,$ %( ;*******GLOBAL ENTRY POINT LODF50: BITB #ABSREL,R2 ;ABS OR REL? BEQ LODF60 ;ABS  ;NO MATCH CMP (R0)+,(R0)+ ;MATCH! GET PAST NAME IN "NAMBUF" MOV 14(R4),(R0)+ ;... STA",  1f& f& imR$m $9mQ(},0 s3 &p.3 *b; b$rh=.HW %B %%% MOV PTSECT,R3 ;POINTER TO CURRENT SECTION MOV BASE(R3),BASE(R0) ;SECTION BASE ADRT SECTOR... MOV 16(R4),(R0)+ ;... AND LENGTH, TO INTERNAL DIRECTORY BR LODB20 ;GO GET 3 s3 3  &  (; M,6   &  ߪrh(rh,n   `  2  C<U3B N#D VALR(R0),BASE(R0) ;CALC OFFSET FROM LOAD MOD BASE BR LODF10 ;NEXT LODF60: MOV VALRNEXT NAME .PAGE LDER10: MOV #10,R4 ;DISC READ ERROR: BATCH DIRECTORY JSR PC,ERRPRT LD M&,Z   w3 <"B,,; <f< CEA<a <: &<(R0),BASE(R0) ;HAS ABS VALUE BR LODF10 .PAGE ;NOW ALL ENTRY POINTS AND SECTION ER11: MOV #11,R4 ;"BFUP" DIRECTORY SEARCH FAILURE JSR PC,ERRPRT ; **************************** ;PC @ BEGIN OF CURRENT TEXT BUFFER MOV #LEDWDS*2,CURPC ;ALLOW FOR LEAD WORDS INSERTED BY LOADER M&; M.~  M2e (f,2 ,5<  w>w* <x0f" 5 fBASES HAVE BEEN ;RELOCATED WITH RESPECT TO PROGRAM BASE ZERO. ;NOW TIME TO PRINT THE LOAD **************************************** LODC10: ; ALL NAMES FOUND IN DIRECTORY. NOW PROCEED WITH PASS 1. MOV #LEDWDS*2+TXTBK1,TXTPTR ;...ALSO FOR TEXT POINTER MOV BGNSEC,TXTSEC ;INIT START SECTOR OF TEXT &  :<} Tq, & f  O "*9aT0,1 3 3 s   $*MAP. LODF90: MOV #HEDING,MAPBUF ;PRINT HEADING JSR PC,LPCALL ;GO ASK FOR LINE PRINTER MOV #NAMBUF,NAMPTR ;POINTER TO LIST OF MODULE NAMES MOV MODCNT,NAMCTR ;# OF MODULES IN LIST MOV  MOV #128.,TXTCNT ;INIT FOR TWO-SECTOR TEXT TRANSFERS MOV MODCNT,NAMCTR ;RE-INIT COUNTER FOR # OF OBJE 4f&, 2  ) T ,Z,T3 4     s83  %4  8"& .xf< ֿ MOV #LSDBGN,R0 CLR PRSIZE ;INIT CUMULATIVE LOAD MODULE SIZE BR LODG20 LODG10:  #LSDBGN,SYME ;INIT PTR TO DEFINED SYMBOLS MOV #LSDBGN,USYME ;INIT PTR TO UNDEFINED SYMBOLS .PAGCT MODULES MOV #NAMBUF,NAMPTR ;RE-INIT POINTER TO MODULE NAMES MOV #TRAILBLOCK+4,TRAILPOINTER  s33 3 "&,4s3 3   M A< 8": "<( 0""p &0 xADD #BPSYM,R0 ;NEXT ENTRY LODG20: CMP R0,SYME ;END OF LSD? BHIS LODH10 ;YES: EXITE LODC20: ;LOOP HERE FOR SUCCESSIVE OBJECT MODULES JSR PC,NXTMOD ;INIT FOR NEXT OBJ MODULE ;INIT TRAILER POINTER .PAGE LODJ10: ;LOOP HERE TO PROCESS SUCCESSIVE OBJ MODULE BLOCKS JSR PC"; M M,X 3  M % E "" 0$:mm*9p:, @   @ " LOOP MOVB FLAGS+1(R0),R1 ;ENTRY TYPE BEQ LODG30 ;OBJ MOD NAME DEC R1  BR LODC19 ;DONE WITH ALL OBJ MODULES LODC30: JSR PC,NXTBLK ;GET NEXT BLOCK BR LODC,NXTMOD ;SET UP FOR NEXT OBJECT MODULE BR LODJ98 ;EXIT IF NO MORE LODJ12: JSR PC,GETBLK :mm",|  M w $, 3 &S,3wD3  w 7 Z $7  BEQ LODG40 ;SECTION NAME CMP R1,#3 ;ENTRY? BNE LODG10 ;NO: IGN19 ;DONE WITH ALL OBJECT BLOCKS LODD00: ;HERE TO PROCESS SUCCESSIVE GSD BLOCKS ; R0 POINTS TO FIRS ;GET NEXT NON-GSD BLOCK BR LODJ50 ;FOUND A "MODULE-END" BLOCK BR LODK10 ;"< MC?  : 0f r  Z # ORE MOV #GLOBAL,-(SP) ;YES:***PRINT ENTRY NAME & VALUE*** MOV R0,-(SP) EMT R50UNPT DATA BYTE IN BLOCK ; R5 CONTAINS BYTE COUNT OF DATA BYTES TST BLOCK1 ;IS THIS FIRST BLOCK ITEXT" BLOCK BR LODJ18 ;"RLD" BLOCK BR LODJ12 ;"ISD" BLOCK: IGNORE LODJ18: MO  *,,<   |X: C.w ;RAD50 UNPACK MOV 10(R0),R4 ;GLOBAL'S VALUE RELATIVE TO LOAD BASE 0. MOV #GLBVAL+6,N MODULE? BEQ LODD10 ;YES DEC (R0) ;IS THIS A GSD BLOCK? BEQ LODDV #3,TSWICH ;RLD! SET FLAG TO SHOW NOT FOLLOWING TXT CLR TXTBC ;DON'T ALTER "TXTPTR" IN "TXTOv&ff& Aaes!93 "( ,6 D! 3    % 3   [R3 ;END OF ASCII BUFFER JSR PC,BIN2OC ;CONVERT BINARY TO OCTAL ASCII MOVB #' ,MFLAG ;I15 ;YES: PROCEED DEC (R0) ;IS IT GSD END? BEQ LODC20 ;YES: GET NEXT OUT" LODJ20: ;PROCESS NEXT COMMAND IN RLD BLOCK TST R0 ;IS RLD BC EXHAUSTED? BGT "x.ZRĕ J  s!5Еs$(W,NIT "M" FLAG POSITION WITH SPACE BITB FLAGS(R0),#DBLDEF ;WAS THIS SYMBOL MULTIPLY DEFIND BEQ LOBJ MODULE CMP (R0),#4 ;IS IT MODULE END? BEQ LODC20 ;YES: GET NEXT MODULE  LODJ22 ;NO - CONTINUE LODJ60: ;DONE WITH BLOCK: OUTPUT TEXT, IF ANY, AND CONTINUE JSR PC   5(,  6 & `3   ,D ADD #5,R2 ;POINT TO FLAGS BYTE LODJ52: ADD #BPSYM,R2 ;NEXT ENTRY CMP R2,SYMDG25 MOVB #'M,MFLAG ;YES: SET TO FLAG ENTRY IN MAP LODG25: MOV #ENTRY,MAPBUF ;SET UP TO PRINT ENTRY BR LODC30 ;NO: GET NEXT BLOCK LODD10: INC BLOCK1 ;INDICATE FIRST BLOCK PROCESSED DE,TXTOUT ;GO OUTPUT TEXT, IF BUFFER IS FULL... ; ;...OR IF "CURPC" WAS CHANGED LODJ66:  4W 1 .W +5(5%^,D eD   ^,!!E ;HIT LSD END? BHIS LODJ98 ;*****END OF LSD: NORMAL END OF PASS 2***** CMPB (R2),#OBJMN  LINE JSR PC,LPCALL BR LODG10 ;NEXT .PAGE LODG30: ;***PRINT OBJECT MC (R0) ;CHECK THAT IT IS GSD BNE LDER13 ;NOT GSD BEGIN TSTB FLAGS+3(R0)  ;NOW PROCESS NEW BLOCK, IF IT FORCED TEXT OUTPUT MOV TSWICH,R2 ;SWITCH INDICATES INITIATING BLOCK TYPE 5  n,4@& 5 5},X5 3 ;IS THIS ENTRY AN OBJ MOD NAME? BNE LODJ52 ;NO: KEEP LOOKING SUB #5,R2 ;MOVODULE'S NAME*** MOV #TITLE,-(SP) MOV R0,-(SP) EMT R50UNP ;UNPACK MODULE'S NAM;FIRST ENTRY'S TYPE BNE LDER14 ;FIRST ENTRY NOT MODULE NAME LODD15: CMP -(R5),(R0)+ ;BUMP BC & CMP R2,#TMAX ;IS THIS VALUE LEGAL BGT LDER12 ASL R2 ;MAKE INTO BYTE  ",|    l &,E BACK TO 1ST BYTE OF ENTRY MOV R2,PTROBJ ;POINTER TO NEXT OBJ MOD ENTRY IN LSD BR LODJ10 E MOV #MODULE,MAPBUF ;INIT TO PRINT MODULE NAME & HEADING JSR PC,LPCALL ;GO PRINT IT  PTR PAST GSD COMMAND LODD20: ;HERE FOR EACH SUCCESSIVE ENTRY UNTIL BLOCK END SUB #8.,R5 ;BINDEX JMP @LODJ69(R2) .PAGE LODJ69: ;"TSWICH" JUMP TABLE LODJ12 ;T=0: TEXT FOLLO&< f H: p0 e00&  ;INIT FOR NEXT MODULE .PAGE LODK10: ;TEXT BLOCK ENCOUNTERED: FIRST TRANSFER IT TO INTERNAL  BR LODG10 ;NEXT LODG40: ;***PRINT PROGRAM SECTION NAME*** MOV #SECNAM,-(SP) LOCK END? BLT LODC30 ;YES: GO GET NEXT ONE MOVB FLAGS+1(R0),R2 ;ENTRY TYPE CMPBWED BY RLD. NO ACTION ON RLD REQUIRED LODK10 ;T=1: TEXT FOLLOWED BY TEXT. PROCESS SECOND TEXT BLK NOW LODJ*9aw,www&, ;BUFFER, THEN GET NEXT BLOCK. IF ANOTHER "TXT", OUTPUT FIRST ;ONE. IF AN "RLD", MODIFY TEXT, BUILD TRAILER, TH MOV R0,-(SP) EMT R50UNP ;UNPACK SECTION NAME MOV 10(R0),R4 MOV #SECVAL+ R2,#GSDMAX ;IS IT LEGAL? BGT LDER15 ;NO MOV R0,R1 ;ENTRY POINTER 50 ;T=2: TEXT FOLLOWED BY MODULE END. GET NEXT MODULE NOW LODJ12 ;T=3: LONE RLD (NO PREVIOUS TEXT). GET NEXT BLOCK @aAa ! @wj "}0  f  `BafEN OUTPUT TEXT ;IF MODULE END, OUTPUT TEXT BLOCK AND GET ANOTHER MODULE. TST ASWICH ;SWITCH 6,R3 JSR PC,BIN2OC ;CONVERT BINARY TO OCTAL ASCII MOV 6(R0),R1 ;SECTION SIZE  ADD #8.,R0 ;NEXT ENTRY MOV R1,R4 ;SECONDARY POINTER USED BY VARIOUS RTNES AS TMAX = .-LODJ69/2-1 ;MAX ALLOWABLE T-SWITCH VALUE ; ****************************************************** * ,H 5 f C 9a,l1 SET TO IGNORE "ASECTS"? BNE LODJ12 ;YES: GO GET NEXT BLOCK CMP -(R0),(R1)+ ;ADJ BC AN MOV R1,R4 MOV #SECSIZ+6,R3 JSR PC,BIN2OC ;CONVERT BINARY TO OCTAL ASCII MOV L R2 ;BYTE INDEX JMP @GSDTAB(R2) .PAGE GSDTAB: .WORD LODE00 ;(0) OBJ M ************* LDER12: MOV #12,R4 ;MAX T-JUMP TABLE INDEX EXCEEDED JSR PC,ERRPRT GETBLK: ;S  <7 6& , & & &  L 6mL" fD PTR FOR "PC" AS 1ST TXT WRD MOV R0,TXTBC ;SAVE TEXT BLOCK BYTE COUNT MOV TXTPTR,R2 R1,R2 ASR R2 ADC R1 ;MAKE MODULE SIZE EVEN ADD R1,PRSIZE ;ACCUMULATOD NAME .WORD LODE20 ;(1) SECTION NAME .WORD LODD20 ;(2) INTERNAL SYMBOL (IGNORE) UBROUTINE TO GET A NON-GSD BLOCK. KEEPS FETCHING BLOCKS ;UNTIL FINDING A TEXT, RLD, OR MODULE END BLOCK. ;R B    ;CURRENT OPEN CELL IN TEXT SAVE BUFFER LODK20: DEC R0 ;BC TO ZERO? BLT LODK30 ;YES E LOAD MODULE SIZE MOV PRSIZE,R4 MOV #CUMSIZ+6,R3 JSR PC,BIN2OC ;CONVERT IT TO O .WORD LODD20 ;(3) TRANSFER ADDRESS (IGNORE) .WORD LODE40 ;(4) GLOBAL SYMBOL ; ******ETURNS TO: RTN+0 FOR MODULE-END; RTN+2 FOR TEXT; ;RTN+4 FOR RLDF RTN+6 FOR ISD. ;IF LAST BLOCK IN LAST MOVB (R1)+,(R2)+ ;TRANSFER ANOTHER BYTE BR LODK20 ;BACK FOR MORE LODK30: CLR TSWICHCTAL ASCII MOV #SECT,MAPBUF JSR PC,LPCALL ;PRINT SECTION NAME,BASE,SIZE,& CUM SIZE BR************************************************************** LDER13: MOV #13,R4 ;FIRST MODULE BLOCK NOT "GSD MODULE IS NOT TEXT, RLD, OR MND, ;NO RETURN WILL BE MADE, BUT THE EXIT FROM PASS 2 WILL BE MADE. ;ROUTINE ;INDICATE FIRST TXT BLCOK JSR PC,GETBLK ;GET NEXT NON-GSD BLOCK BR LODK40  LODG10 ;NEXT .PAGE LODH10: ;END OF PRINTING DEFINEDS: NOW PRINT UNDEFINEDS, IF ANY " JSR PC,ERRPRT LDER14: MOV #14,R4 ;FIRST ENTRY IN GSD NOT OBJ MOD NAME JSR PC,ERRPR  WILL NOT REJECT ILLEGAL COMMANDS ABOVE [6], BUT WILL ;INSTEAD MIS-INTERPRET THEM FOR ONE OF THE LEGAL ONES. " ;"MODULE-END" BR LODK50 ;"TEXT" BR LODJ22 ;"RLD" BR LODK30 # CMP SYME,USYME ;ANY UNDEFINEDS? BEQ LODH30 ;NO: GO TO MESSAGE MOV #UNDHED,MAPBUF$T LDER15: MOV #15,R4 ;ILLEGAL GSD ENTRY DECLARATION JSR PC,ERRPRT LODC19: JMP LODF00 % JSR PC,NXTBLK ;GET NEXT OBJECT MODULE BLOCK BR LODJ98 ;NO MORE BLOCKS: EXIT PASS 2 &O GLOBAL NAME CMP (R1)+,(R1)+ ;BUMP PAST NAME JSR PC,SRGLOB ;SEARCH FOR GLOBAL ' ;ISD: IGNORE LODK40: ;TEXT FOLLOWED BY MODULE - END MOV #2,TSWICH ;PUT OUT TEXT: THEN GET ( JSR PC,LPCALL ;PRINT HEADING MOV #UNDDEF,MAPBUF ;SET UP TO PRINT FROM UNDEFINED BUF LODH20) ;END OF READING FIRST PASS OVER OBJ MODS .PAGE ;****************PROCESSING FOR INDIVIDUAL G S D ENTRIES******* MOV R0,R1 ;POINTER TO DATA MOV R5,R0 ;BYTE COUNT MOV (R1)+,R2 ;G+BR LDER22 ;GLOBAL SYMBOL SEARCH FAILURE SUB R3,R4 ;GET DISPLACEMENT MOV R4,NEW MODULE BR LODJ60 ;GO OUTPUT TEXT LODK50: ;TEXT FOLLOWED BY TEXT MOV #1,TSW-: MOV #UNDNAM,-(SP) MOV R0,-(SP) EMT R50UNP ;CONVERT TO ASCII JSR PC,LPC.******** ; ON ENTRY TO EACH ROUTINE, R1 AND R4 POINT TO CANDIDATE ENTRY ;*******MODULE NAME******** LODE00: JS/ET BLOCK COMMAND TST -(R0) ;COUNT OFF TWO BYTES FOR COMMAND SUB #2,R2 ;DISCARD C0,(R3)+ ;PUT ALTERED WORD INTO TEXT SUB #6,R0 ;BC BR LODJ99 ;NEXT RLD 1ICH ;INDICATE MORE TEXT AFTER OUTPUT THIS 1. BR LODJ60 ;GO OUTPUT UN-MODIFIED TEXT BLOCK ; **2ALL ;GO PRINT IT ADD #BPSYM,R0 ;BUMP TO NEXT ENTRY CMP R0,USYME ;REACHED END? 3R PC,SRMODN ;SEARCH FOR MODULE NAME BR LDER16 ;NOT UNIQUE MOV SYME,PTROBJ 4OMMANDS BELOW 3. BLE GETBLK ;IGNORE THEM AND GET NEXT BLOCK BIC #-3-1,R2 ;CHANGE 4 5 LODJ38: CMD5: ;GLOBAL ADDITIVE RELOCATION: ;PUT SUM OF CONSTANT & GLOBAL (OFFSET::0) INTO TEXT; 6****************************************************************** LDER21: MOV #21,R4 ;FINAL MODULE BLOCK NOT 7 BLO LODH20 LODH30: ;NOW PRINT "PASS 2" ON TTY MOV #PAS2MG,TTYBUF MOV #TTYLST,8;POINTER TO NEW MODULE NAME IN LSD JSR PC,INSYME ;GO INSERT ENTRY INTO LSD BR LODD20 ; **9(MND=4+2) TO ZERO ASL R2 ;CHANGE TO BYTE INDEX ADD R2,(SP) ;BUMP RTN ADDR APP: ;PUT "ADD" INTO TRAILER MOV R1,R4 ;PTR TO GLOBAL NAME JSR PC,SRGLOB ;SEARC;MODULE END JSR PC,ERRPRT .PAGE LODJ30: CMD1: ;INTERNAL SYMBOL: ADD SECTION BASE TO LOCAL OFFSET - <-(SP) EMT TTYOUT ;PRINT MESSAGE ; ****************************************************************=****************************************************************** LDER16: MOV #16,R4 ;MODULE NAME NOT UNIQUE >ROPRIATELY RTS PC .PAGE ; ******************************************************************** LODJ?H LSD FOR IT BR LDER22 ;GLOBAL SYMBOL SEARCH FAILURE CMP (R1)+,(R1)+ ;BUMP PAST GLOBA@ ;"ADD BIAS" INSTRUCTION INTO TRAILER MOV (R1)+,R4 ;LOCAL VALUE ADD BASE(R5),RA**** .PAGE ;PASS 1 IS NOW COMPLETED. NOW BEGIN PASS 2 TO FORM THE ;LOAD MODULE ITSELF, COMB JSR PC,ERRPRT .PAGE ;*******SECTION NAME******** LODE20: JSR PC,PTGLOB ;SEARCC22: ;PROCESS NEXT RLD COMMAND MOVB (R1)+,R2 ;GET RLD COMMAND BMI LDER25 ;IDL TO CONSTANT ADD (R1)+,R4 ;CONST + XSYM MOV R4,(R3)+ ;PUT ALTERED WORD INTO TEXT E4 ;CALC OFFSET FROM LOAD MODULE BASE MOV R4,(R3)+ ;PUT ALTERED WORD INTO TEXT JSR PC,TRAFPLETE WITH HEADER & TRAILER. ;THE METHOD IS TO:1)RESERVE A FILE THE SIZE OF THE LOAD ;MODULGH FOR IT IN LSD BR LODE22 ;NOT FOUND - GO INSERT IT BITB #UNDEF,FLAGS(R1);IS IT DEFINED? HT IS ILLEGAL TO RELOCATE ONLY A BYTE MOVB (R1)+,R3 ;OFFSET FROM TEXT COMMAND BEQ LODJ24 I JSR PC,TRAPUT ;"ADD" INTO TRAILER SUB #8.,R0 ;BC BR LODJ99 ;NJPUT ;"ADD" INTO TRAILER SUB #4,R0 ;BC BR LODJ99 LODJ32: CMD2: ;GLOBAL RELOCAKE, HAVING PRINTED ITS NAME ON THE LOAD MAP; ;2)SCAN THE OBJECT CODE FOR TEXT BLOCKS; ;3)MODL BNE LODE24 ;YES -(BYPASS UNDEF WORK) JSR PC,SQUISH ;NO: REMOVE FROM UNDEF AREA M ;ZERO OFFSET IS A DUMMY CMP -(R3),-(R3) ;ADJ OFFSET DUE TO "TXT" CMD AND "PC" WD LODJ24: MOV R3,OFFNEXT RLD LODJ40: CMD6: ;GLOBAL ADDITIVE DISPLACED: ;SUM OF CONST & GLOBAL, LESS CURRENT OFFSET, TO FORMOTION: OFFSET FROM LOAD BASE INTO TEXT - ;"ADD" INTO TRAILER MOV R1,R4 ;POINTS TO GLOPIFY ANY RELOCATABLE CODE INDICATED IN ANY RLD BLOC ;4)CREATE THE TRAILER TO RELOCATE THE MODULE AT RUN TIME Q SUB #BPSYM,USYME ;AND ADJUST UNDEF PTR LODE22: MOV R1,R4 ;INSERT NEW SECTION NAME INTO LSD RSET ;NOW IS OFFSET FROM FIRST WORD OF TEXT ADD TXTPTR,R3 ;ACTUAL BUFFER ADDRESS TO LOCATE TEXT S ;DISPLACEMENT TO PUT INTO TEXT; ;NO TRAILER ELEMENT JSR PC,GETPC ;PC TBAL NAME CMP (R1)+,(R1)+ ;BUMP PTR PAST NAME JSR PC,SRGLOB ;SEARCH FOR NAME IN LSD U ;5)FILL IN THE HEADER & TRAILER POINTERS ;6)WRITE OUT THE LOAD MODULE ;THESEV MOV SYME,PTSECT ;POINTER TO SECTION NAME IN LSD JSR PC,INSYME ;INSERT NEW NAME IN LSD W MOV PTSECT,R5 ;POINTER TO SECTION ENTRY IN LSD CMP R2,#CMDMAX BGT LDER20 ;ILLXNOW MOV R4,-(SP) ;SAVE IT MOV R1,R4 ;GLOBAL NAME PTR JSR PC,SRGLOB Y BR LDER22 ;GLOBAL SYMBOL SEARCH FAILURE MOV R4,(R3)+ ;PUT ALTERED WORD INTO TEXT Z OPERATIONS ARE DONE A SECTOR AT A TIME, TO ;CONSERVE PROGRAM BUFFER SPACE. ; FIRST MUST INIT TRAI[ BR LODD20 LODE24: ;SECTION NAME FOUND ALREADY DEFINED IN LSD CMPB FLAGS+1(R4),#SECTN ;IS \EGAL COMMAND TST ASWICH ;SET TO IGNORE "ASECTS"? BEQ LODJ26 ;NO - O.K. TO GO THROU ;SEARCH FOR NAME IN LSD BR LDER22 ;GLOBAL SYMBOL SEARCH FAILURE CMP (R1)+,(R1)+ ^ JSR PC,TRAPUT ;PUT "ADD" INTO TRAILER SUB #6,R0 ;BC LODJ99: JMP LODJ20 ;C_LER AND OTHER POINTERS... MOV PRSIZE,R0 ;TOTAL PROGRAM BYTES DEC R0 ;IN CASE S`IT A SECTION NAME,TOO? BNE LDER17 ;NO - DOUBLE DEFINITION ERROR MOV R4,PTSECT ;SECTIaGH CMP R2,#7 ;ALLOWED TO PROCESS TYPE 7 "PC" CMD ONLY BNE LODJ60 ;IGNORE REST OF b~ҀcOMMON RETURN (GET NEXT RLD COMMAND) LODJ34: CMD3: ;INTERNAL DISPLACED RELOCATION: ;DISPLACEMENT FROM CdIZE IS MULTIPLE OF 128 BYTES ASR R0 BIC #100000,R0 ASR R0 ASR R0 eON NAME POINTER TO ORIG ENTRY CMP VALR(R4),VALR(R1) ;COMPARE SECTION SIZES BHIS LODD20 fRLD BLOCK LODJ26: ASL R2 ;MAKE WORD INDEX JMP @LODJ29(R2) ;GO TO PROPER COMMAND ROUTINE g/~JhURRENT PC INTO TEST - ;"SUB BIAS" INSTRUCTION INTO TRAILER JSR PC,GETPC ;CURRENT OFFSET iASR R0 ASR R0 ASR R0 ASR R0 ;PGM BYTES/128=# WHOLE SECTORS FOR PRGM j ;ORIG WAS BIGGER: LEAVE IT MOV VALR(R1),VALR(R4) ;REPLACE WITH NEW BIGGER SIZE BR LODD20 k LODJ29: .WORD LDER20,CMD1,CMD2,CMD3,CMD4,CMD5,CMD6,CMD7,CMD8,CMD9 .WORD CMD2,LDER17,CMD4,CMD5,CMD6 ;THESE ARE l~mFROM LOAD BASE NEG R4 ADD (R1)+,R4 ;FORM (L-(.+2)) MOV R4,(R3)+ ;PUT ALTn INC R0 ;GET TO BEGIN OF NEXT SECTOR AFTER PGM MOV R0,TRASEC ;FIRST SECTOR FOR TRAIo; ******************************************************************** LDER17: MOV #17,R4 ;SECTION NAME COp.CSECT COMMANDS CMDMAX = .-LODJ29/2-1 .PAGE LODJ98: JMP LODL00 ;END OF PASS 2: GO WRITE LOAq>~:rERED WORD INTO TEXT JSR PC,TRAPUT ;"ADD" INTO TRAILER BIS #100000,-2(R3) ;CHANGE IT TO A "SsLER MOV R0,TRSCSV ;SAVE IT FOR RE-READ AT LOADER END ASL R0 ASL R0 ASL tNFLICT W/GLB OR MOD NAME JSR PC,ERRPRT .PAGE ;*******GLOBAL SYMBOL******** (HERE AT LAST...) LODEuD FILE ; ******************************************************************* LDER20: MOV #20,R4 ;ILLEGAL Tv~wUB" INSTR SUB #4,R0 ;BC BR LODJ99 ;NEXT .PAGE LODJ36: CMD4: ;Gx R0 ASL R0 ASL R0 ASL R0 ASL R0 ;NOW HAVE RELATIVE PC FOR y40: BITB #UNDEF,FLAGS(R1);REF OR DEF? BEQ LODE50 ;REF JSR PC,PTGLOB ;DEF - SEE IF zEXT-MODIFICATION COMMAND JSR PC,ERRPRT LDER25: MOV #25,R4 ;NOT ALLOWED TO RELOCATE BYTES {M~*|LOBAL DISPLACED RELOCATION: ;DISPLACEMENT FROM CURRENT PC INTO TEXT ;NO TRAILER ELEMENT }TRAILER START MOV R0,TXTBK1 ;LOAD FIRST TEXT WORD W/PTR TO TRAIL BLK CMP (R0)+,(R0)+ ;ALL~IT IS ALREADY IN LSD BR LODE44 ;NOT FOUND BITB #UNDEF,FLAGS(R4);FOUND: IS IT ALREADY DEFINE JSR PC,ERRPRT .PAGE LODJ50: ;MODULE-END BLOCK FOUND: ;MOVE MODULE POINTER "PTROBJ" TO NEXT ~! JSR PC,GETPC ;GET PC NOW MOV R4,R3 ;SAVE IT MOV R1,R4 ;PTR TOW FOR 2-WORD TRAILER HEADER MOV R0,TRAPC ;INIT PERMANENT FOLLOWER OF TRAILER PC CLR TXTORG D? BEQ LODE42 ;NO: GO REMOVE IT FROM UNDEF AREA BISB #DBLDEF,FLAGS(R4) ;FLAG OLD ONE MODULE NAME IN LSD; ;THEN BRING IN NEXT OBJECT MODULE MOV PTROBJ,R2 ;CURRENT MODULE NAME IN LS\~;BUMP PAST NAME TO CONST ADD (R1)+,R4 ;C+XSYM SUB (SP)+,R4 ;C+XSYM-PC= DISPLACEMENT ;GET VALUE OF CURRENT LOAD OFFSET SUB TRAPC,R4 ;CALC BACKWARD DISPLACEMENT CMP -(R4),-(R4) BBBz*BU   xB7n*fe-ze T~ MOV R4,(R3)+ ;PUT ALTERED WORD INTO TEXT SUB #8.,R0 ;BC BR LODJ99  ;SINCE "PC" IS ADVANCED, BUT "TRAPC" NOT MOV R4,(R3)+ ;STICK IT BEHIND "ADD" ; NOW SEE IF BUFFE.r\MH@2x`*x^-VE?JFes <*eX . ~e$U7*Ҝk~  ;NEXT RLD .PAGE LODJ42: CMD7: ;SET CURRENT PC AND POINT TO NEW SECTION ;IF .ASECT, THR IS FULL, AND WRITE IT OUT IF SO: CMP R3,#TRAILBLOCK+64. ;AT END YET? BLO TRAP20 ;N@49@.:<}@f@;}G@@ ` @(,\My:hO E} =*e e e*e  ~E CONSTANT WILL BE THE NEW PC, AND ITS ;BASE WILL BE ZERO. ;IF .CSECT, THE CONSTANT WILL REOT YET MOV #TRALST,-(SP) ;LIST FOR WRITING TRAILER EMT DISCIO INC TRASEC ;B(00 *%2 :<} ` *2";}GOL*>e @ee *be_   j g*fz~PRESENT THE OFFSET FROM ;THAT SECTION'S BASE. MOV R1,R4 ;PTR TO SECT NAME SOUGHT UMP TRAILER SECTOR COUNT MOV #TRAILBLOCK,R3 ;PREPARE TO RESET POINTER TRAP20: MOV R3,TRAILPOINTE& d! ;}G0   (  +( w#& P LN j*FN @N Հ0 E *Ν  ~r CMP (R1)+,(R1)+ ;BUMP TO CONSTANT JSR PC,GETSEC ;SEARCH FOR SECTION NAME IN LSD BRvt. q lv3d v fj.R ;NEW POINTER RTS PC .PAGE ; " T X T O U T " ; ("TXTBC" MAY BE ZERO, WHICH INDICATES "CUR]"   ( +"*(.,   , '"8 LDER23 ;NOT FOUND MOV R4,PTSECT ;PERM PTR TO SECT NAME IN LSD... MOV R4,R5 u:e"f q w]. ,  .,PC" HAS BEEN SET TO A NEW ; VALUE BY AN RLD COMMAND. IF THE NEW PC STILL FALLS WITHIN BLOCK #1, ; NO TRANSFER WILL OCCUR. '(":,Rf&CCTQ$ w 5>,v   "~ ~ ;...ALSO CURRENT PTR SUB #4,R0 ;BC (MORE BELOW) CLR ASWICH ;"ASECT" SWITCH: IF THE NEW PC IS INTO THE SECOND BLOCK, OR ; OUTSIDE THE TWO BLOCKS, BOTH BLOCKS WILL BE WRITTEN OUT, AND THE ; APPROPRIAT   ~ ,  77e   "4,0$  ~b PREPARE CMP 4(R5),#410 ;IS THIS AN "ASECT"? BNE LODJ44 ;NO-O.K. TO CONTINUE E NEW TWO BLOCKS WILL BE READ IN. IN MANY CASES THIS WILL ; MEAN THAT A PARTIALLY-WRITTEN TEXT BLOCK #2 WILL BE WRITTEN TO D   zh (6,rr,~, @6 p3 N ,,S,~ڇINC ASWICH ;SET TO FORCE IGNORE OF ALL "ASECT" TEXT ; CONTINUE AS IN "CMD8" LODJ44: CMD8: ;MODIFICATH-S--~2CLR TXTBC ;AVOID ALTERING NEW [CURPC] IN "TXTOUT" SUB #4,R0 ;2 WDS FOR CMD8; 4 WDS FOR C.1 ? < (A < +A@(A,,1   , 'A"A*R1f&CEPLACE TEXT ADD #128.,R4 ;PC OF FIRST BYTE IN SECOND TEXT BLOCK CMP (SP),R4 ;NEW PC  0l0z *z=, 0,7 e 7 N 'W ~MD7 ; PC COMMANDS MUST BE LAST IN RLD BLE LODJ99 ;DONE: O.K. ; IF NOT DONE, THEN NEXT COMMAND MUST IS ABOVE BLOCK1:IS IT BELOW BK2? BLO TXTO50 ;YES - NO NEED TO WRITE OR READ .PAGE TXTO10:   ,,&'  .  },M F &'M~"ALSO BE PC TYPE CMPB #PCMD1,(R1) ;IS NEXT COMMAND "PC DEFINITION"? BEQ LODJ99 ;YES: O..pphfp@[g4 ;HERE TO WRITE CURRENT TEXT OUT AND READ NEW TEXT IN--- MOVB #1,TXTR.W ;WRITE MOV #TXTLS2 !",&' D 8 ~K. CMPB #PCMD2,(R1) ;IS IT "PC MODIFICATION"? BEQ LODJ99 ;YES: O.K. BR LD@( v3dhvhj,w  DE@T,-(SP) EMT DISCIO ;WRITE OUT CURRENT RESIDENT TEXT MOV (SP),R3 ;NEW "CURPC" $,,B A w`. *   ,P- *  nDH&'\~ER24 ;PC COMMAND NOT LAST IN RLD .PAGE LODJ46: CMD9: ;SET PROGRAM LIMITS CLR (R3)+ !!/[g4,$  CaaŠw  hfp .H ASR R3 ;NOW GET SECTOR FOR NEW PC BIC #100000,R3 ;SUPPRESS EXTENDED SIGN ASR  \DH,te 7  6  E 6 d,~ ;FIRST TEXT WORD: RELATIVE ZERO MOV PRSIZE,(R3) ;SECOND WORD: TOP OF PROGRAM INC (R3)+ e! ee  w K([g4,n  ŋW? R3 ASR R3 ASR R3 ASR R3 ASR R3 ASR R3 MOV R3 7 7 7,$7 7  v z  v V,k~ ;MAKE FIRST AVAILABLE BYTE JSR PC,TRAPUT ;CAUSE BIAS TO BE ADDED TO BOTH WORDS ADD #2,O &,e ee e Q Š@(,R4 ;SAVE NEW SECTOR (RELATIVE TO TEXT BGN) ADD BGNSEC,R3 ;SECTOR RELATIVE TO BEGIN OF BATCH FILx x t  FT :[k ,n 7 l ! D^  z&~zFFSET JSR PC,TRAPUT BR LODJ99 ; **************************************************************E MOV R3,TXTSEC ;SET FOR UPCOMING READ & SUBSQNT WRITES CLRB TXTR.W ;PREPARE FOR NEW$&&z,(  82@B ED,L `B*z***** LDER22: TST (SP)+ ;POP SAVED PC MOV #22,R4 ;GLOBAL SYMBOL SEARCH FIALURE  TEXT READ MOV #TXTLST,-(SP) EMT DISCIO ;READ IN NEW TEXT ASL R4 C( m  ,p   z(@Zt.(@~ JSR PC,ERRPRT LDER23: MOV #23,R4 ;SECTION NAME SEARCH FAILURE JSR PC,ERRPRT LDER24: CTQ$@@ w 5*v1 < "~= %*1  77e   " ;NOW GET PC AT BEGIN OF NEW TEXT ASL R4 ASL R4 ASL R4 ASL R4 ASZ t"$&,(Ztw J B ( Z t=,e~jMOV #24,R4 ;FATAL ERROR: PC CMD NOT LAST IN RLD JSR PC,ERRPRT .PAGE LODL00: ;NOW4,.1$     @z *1rr,A~,A @6 p3 N* 2 L R4 ASL R4 MOV R4,TXTORG ;NEW BEGIN PC MOV (SP),R3 ;PC FOR BEGIN OFe 톗  t ,(7  R7 @,t l  ~ DONE WITH PASS 2: OUTPUT ANY REMAINING TEXT, THEN ; OUTPUT THE TRAILER. FIX UP MONITOR TASK TABLES; EXIT.  " 8 P)*.2eD zH2n22*2*22'*R2   w