.þv@¯”Ÿ s@¤g'@̵;@#.-²Z@€}@É2Ú@�fSz@9mQŠ@ê.áyx@ €` @ñ�}@ë¨K"@L©C @c.ªÐf@R«ª:@ù«éd@(”[qjhÀ¢þv@h ¯”>÷æ.ÿÿæþÿŸ· ôÿ&ææB„&�´ L©C ( €` e.&ô•Ä ÷êôÒÿ&÷ „7 ß50þÿ3Ã" €` êôÉ2Ú�fSzL©C ´.L££Ö £´÷¦ÿ.sg`¯”É2Ú@(–�fSzh".�fTzh&@z(dhL€€(dh|ƒ€øŽhÚƒ€ �h8ñ¯”‘÷æ.&€tüÿ7êô€À À ÀEÀÿÀU 6€‡4 êô.&&€tüÿ7ìô€À À ÀEÀÿÀUÀ6€‡ì ìôþ.L&f€ÁWtüÿÁEñÿAàôWt€ € ÀEø`/.rv�€‡&f€#À æêô&÷ lÿ€�êô É2ÚÞ.˜ÁWtüÿÁEñÿ@`$Wt·êô€€ € ÀEøŸ.�m„¯”·y‹@ÚKø€@ .1"?Th(€:D~h€:`†h¦C`Ú_hTamxxhH§.[q`"h`*}¤`hNu~@h42€ Nhè9€ Nh¸¿6ªëyh$¯”µ÷æ.f2@@ (@ˆ&€1 ¤E.¤ êô„Æ ßþÿaáyxêô.ræ¦f&æèôæêôæìôÀ&&&&& èôêôìôR«ª: .˜ ßþÿM¦)ƒ „ßF ´÷Lÿêôæ  &êôê.¾ó÷ FÿÀ     ·ìô·êô·èô€�‚¶ ù«édìôêô"èôà.䟷ÿ…·•ÿ·E÷50 ÿ2CDwúþwøþ L©C ˜. FÅ÷ (õ�êþÅâþ÷ æþ÷­ƒ÷5¯$L©C  ¤g' €` "R«ª:$ªÐf.00Ôþ¶ þÿŽ F ·Æþ÷U€Àþ êôô.¾`v�€Ž‡¦÷ xÿ¶õ&f€&I.äÀ &÷ ÿ€�ÁWtüÿÁEñÿ@`7$êô€}É2Ú$êôî. ÀEàtúÿ7`êô¶öEÀÿöU �€Ž‡º êô.0¶ø&f€&À &÷ Úþ€�ÁWtž É2Úå.VüÿÁEñÿ@`7$ìô€ÀEàtúÿ7`ìô¶öEðìô ìô÷"|ÀÿöUÀ�€Ž‡¶øTó ÐfhR«ª:hë«f'h]ë«s'hH•&ù«édh ½±�"(^¸kKh¯””÷æ, ÿÿÿÿÿÿÿÿÿÿÿÿÿÐ  É.  B*     "&,FZªgZĉ.Äw æêôæìô×þÿ& „u6 7!„üp‚Ÿô‹Ã[gÐ4 êôìô;.ê ô¥kô‹göÿÿÄ j„ — [ .Êìðô è#èÄ AC: M ä ? y  Ü  ILL CMD! Î Î ILL PAR! ± (À.(NON-QUIESCENT  ”N ê b†.bÿÿENþDSQUXXTMôDT$RE CMTASjÕ.ˆLDpDI‚FLŽ÷ ÿèôƶþæ æ¯ ÿ èô.,V÷ w…Ì7 õ•Ææ÷ ç*9mQŠ €}¤g' €`  áyx$L©C ;"zwƒ„Ö …—#ÎeGŸ s€}ñ�}ãó.9€˜:¯”̵;@4Þ@{7@H.¼M:@€}@""ø€@›:à_@«:<}@�._M€Q@ee;@YeÞ@hf€p@�fSz@Ñ.�fTz@[gÐ4@9mQŠ@imR@�m„@Ê.Tq€@[qj@þv@@@z(d@ƒ…4f@Ä.L©C @(ðE„:hÄäf„:h\)€Êh.)€bh9€p:h9€ahŒ4²¶�(^)€üXh÷¯”‘÷æpÿ€àˆà�à˜à à¨à°à- çtÿ„àŒà”à  j”.ô•ß�þÿ���ðW  Á• !ðÉ.6Q†¦÷ ‚r�ŸÊ BÁ Á Ä f÷ j �fSz $�fTz(jp.\1j„ ô•4Š2 ²7­ð”û†7�)j"ð}.‚ðŒûÖ ß�þÿ·ìô·êôw ö ¶Æe‡ðìôêôhf€p*.¨öþÿ¶Æeæ÷ HwfŽ Ž Ž Ž Ž Ž a.ÎŽ 6 ¶×æ&&f¦÷ €ƒ•„À ÂÆ ®lUTvTC|BRºEX.ˆ÷ºÿ\.®æx ˆ÷€ÿ÷Šÿæx ˆ÷ öþ÷%úþœ.Ô7 Ìþ÷òþÈþ÷îþÄþædˆ�Ö Àú$È .úü€ˆæ¨ ˆ÷Àþ÷Š´þ7 ¼þæx ˆ÷ ¢þî×. ÅŒDêÄå�Ä Ã$S# Ó Ë û÷Ì€þæ|.Fx ˆÙË ÖÕ Û Å Ó÷Úfþò÷ !€Ä “$_M€Q€Ç.lôE €‡W¥, Ä !‚÷ €Å ‡Ö  åYeÞ€«.’‡÷ Üÿæ& && ˆÖ ôˆæöæóæ=.¸ðæíÀ0Š€&çW¥,W£B Å ÷ ˆ.; ö ¯”hf€p@[gÐ4@(h�; ö h¯”Ö÷æ.æ w �¶ Ñ‹À D”Ä¥ À ùK [gÐ4.&D”Äå0�¡ ‚CÂà à Â`‚`a…À ïñ¥á$L-úÿ 6 vw ‡6ø hf€póœà¤à¬à´à  årÿ‚àŠà’àšà¢àªà²à ãvÿ†àŽà–àžà¦à®à¶à÷ á&0DXl€”¨½*0DXl€” ¨Ñ0DXl€”¨¼*0DX l €”¨¼ŸDXl€”¨¼Ðz*DXl € ”¨¼Ðý0Xœ”Xœ0�00AK'.ôç妶¶æ—þÿŸ÷ ôúd7 îúŸ•þÿÁ.÷åðúÿêôêúæ¦f�vÂÈú ¦j÷  êô&jo.@‚² 6 €6²„×þÿŸ7  �fSz3.f˜ú7 šúÆ úò”ú 7 ŽúÊÁ ô•!f $¼.Œ!‡ô•ß�þÿæìô&&÷ €·ìô�ô•Î ìôGmy‹ ìôú.²�œÁ Á Ä J1j1jß�þÿ·êô4"jj (êô .ØHŸ•þÿŽŽŽ‡æþÿ& ÷ ÿw4—þÿŸ €` €_.Þ”ÿÄ Ö! ÓæÖ ûÄÿÿøæjˆ÷ ¦ý(.Ňæ7 –ý7 ”ý7 ’ýaÃjc™Ä ýædˆ„ .*Ö  ƒ‡F^’¢ ÁÁÁ.PW¥,5Ä 3!0‚÷ ¢ÿÅ ,!)!€&3&;}¸G€‹.vÄ ô%€!„ yöß•àþÿô¥€4Š€Šþÿl É2Ú€ €` €$ €` €*.œ‡ß•àþÿô‹€­€ Šþÿ÷èýæx ˆJ €` € €` €Ï. ‡ô•€Šþÿ‡&& & & ˆÖ òê&ˆ‡Ö.=sL"¯”�m„@[qj@þv@@|.(N4Þh4_M€QhYeÞh=sL"hÀ¯”‘÷æ.w æ& æ & ÷ Ö w @€€@þv@�m„[qj•.&l L¦óXœXœD{D0XœjXœXgX0XœUXœlSl0Xœ@Xœ€?€0Xœ+Xœ”+”0XœXœ¨¨0XœXœ0�00Z ZDD0Z÷ZÀúW.þ!&÷ €1Š7 ðù7 èù7 êù7 èù0  �fSz.$ÆèùW  ‡ñ‹ ±Š·�þÿf÷ wâñŠÔþÿ ®lT[(æ.Jûw €P7 úM‚æ—þÿŸœÁ yròòb[gÐ4$r&ò(òpòòò†ò šòòòÐ.òòò † ò šòòò§.„ Ÿ“þÿ&÷ ªŸÖ . 7nù) ‡ð‹þ (˜.ªð•ýÿ𕟓þÿ&&÷ €Ÿð•o · €` €g.è HH:MM:SS MM/DD/YY ¯²µÃ@.À½�Ä÷ ìþÅ &ÅeÀ õI ƶÿ‡i.4·°ÿW¥, !ôÀ÷ Æÿ1ˆÖ í‡ÀÁK.ZÆÂªw(·€ÿW¥, !ÜÀ÷ –ÿ0ˆçß.€ÀÁ̸÷Eÿ7PňædˆDÔ�7 ¦üÔ�ýûÅ öÅ ·üæx ˆ‡Ùó.›:à_¯”É2Ú@�fTz@ g¸p@V. €` @ë¨K"@L©C @ù«éd@(2=›:à_h¬:|—hò¯”ª÷æ.ö �¶Ö y€À &÷ €ð5Ž É2Ú$�fTzü.&¶Ö ‡æþÿßU0þÿ· ŸÃ ÿÁ€ÿÎ ù«édÜ.LæfæfæfæfæfæfæfæfF Ÿ�"1.rþÿÃeÁ€ÿÑÑÑÑÑÑÑÑÁ ÿÑÑÑo.˜ÑÑÑÑÑŸñ¥ñ‹ÁEà°XîX0ZâZlÚl0ZÍZ€Æ€0Z¸Z”²”0Z£Z¨ž¨0ZŽZ¼Š¼0ZyZDD0\Ú*\ÚX%X0\Ú\Úy‹(t.ÐÂ�.W"Âåø1f÷ Ÿ•þÿ- ."ÚKø€èöw އFhf€pc{ Òck  Â. c öU€w æêôæìôí   [gÐ4$êô(ìô].Fæ—þÿ €ÀE€w ö €Á‘!7 þø|‚Ó.lÀ &j÷ �€ ŸœÂå  k D g;j �fSz‰.’ÂåHd𕟓þÿBœ.""ø€¯”ö ; @«:<}@hf€p@I.�fSz@�fTz@[gÐ4@Tq€@@z(d@¿.9€a@L©C @(†ö [Êhf�¡Zhj´""ø€htÚKø€hV¯”†÷æ.N) ERROR XXXXX¶ N%& XXXXXX XXXXXX XXXXXX XXXXXX 0 D¥.D ,3:Aÿÿ·øÿŽw æêôæìôÞ( ,3 : A [gÐ4$êô(ìô² €`  €` Å.¾æ¡ f¡ f† æÀŽ�$�*f77œ¶ &L©C „.ä Á æ÷ Æe† À�ÿÁ°ÿ ¡Ñë¨K"ù«édÖ.  ¡ ¡ ¡ ¡ ¡ ¡ ¡¶Žwë 0Á  g¸pLóll0\Ú\Ú€ý€0\Úë\Ú”é”0\ÚÖ\Ú¨Õ¨0\ÚÁ\Ú¼Á¼0\Ú¬\ÚЭÐ0\Ú—\ÚX%Xÿÿÿÿÿÿÿÿ– _Š_� `‰`Œ  ƒXÀ ,j (jø.¸Äæ÷ ƒ÷MŸW"Iò ròò �fTz$¦.Þ²`¡2 ¡2 &÷ „Lr¤   �fTz/.¡2 ¡2 É€� †1 ð‹Û n.*𕟓þÿ&&÷ € Ÿ0ŠŸ•þÿvÿ ·y‹".P·ìô·êôw ‡… … … ñÅ ð•þÿìw šìô êôhf€p"([gÐ4.væêô×þÿ& „K .j¦Åâÿ w æêôæìô…æþÿf÷ „¿[gÐ4êôìô&@z(d§.�ŸÍ æhÿ÷ 7^ÿÃõ³Š· œÿè�fTzL©C $«:<}÷.¶ Ÿ•þÿ·ìô·êôw އ� ô7 |ÿæ(ÿ÷ f ìôêôhf€p(�fSzK.Ü…=wÿ ÷ÿ¡7 ÿ¡7 ÿŸ“þÿÄDfž&Dq.&÷ C÷ VÌ ú÷• ÿÅå ŸÍA¯ ö ; œ.(ñŠŸþÿf÷ Ÿ•þÿæ÷ ÷ ÿ¸‡z«:<}Tq€ 9€a\.!.u~#"¯”äq@€}@«:<}@S.;K}@ÌeèS@�fSz@�fTz@9mQŠ@#.�m„@Tq€@[qj@þv@@@wà@p.áyx@@z(d@u~!"@€ƒ±@ƒ€ �@±.L©C @(¼M:hðÌeBkhÎimRhÜÎ.[qâ¿h[qå¿hu~‘h¾u~"hÆ®ŒshÔ•.´L hÖ¸ hÚ¾$;hØ•«p{h€¯”÷æ.ª* " aˆa‹ b‡bŠ c†c‰ d…dˆ e„e‡ fƒf† g‚g… h�h„ i€iƒ jjz l}lx n{n#7!Þ÷H‚Ÿô¥Eô•Áêô (˜.œ!‡ß�þÿæìôæ�&&÷ ‚ƒ•„·ìô ;ìôƒ…Ia$ìô.Â-Ä j¦÷ …Í A�Á Á f÷ ž±Ê j�fSz $�fSz‰.è„ ´Šß�þÿ¶·êôw ö އöþÿ0 êôhf€pÒ. æ÷ îûw Ž Ž Ž 6 ä˜÷ ÖöÄÚö.4 Ä Ä Â„`ßÂ`Ê !û—!÷ÿÿ¸öý  ÌyÔ.Z ˜äþ…Õ ¦÷ �J�¡ ¡ BY �fSzN· þþæþÿŸ½÷ÿÿòþŸ•þÿ‡À‚ â�ÊÅøÊÕºt0ƒ ÃE€ƒ ƒ À ô‡½ó%"&`"& `&     € .€"¦ Î Î5í5ÔÉ.Ô5Ôæ¦f&æêôæìôÃþÿ€È m&æ5ÔÆ.ú÷ �ö% ððµ a0 œï@z(d €ƒ±L©C u. a— ^ŸÂ  ¦÷ ^r°@�fTz $@o&v pypt rwrr tutp vsvn xqxl zozj |m.| !"w æêôæìô÷ ‚ ÷ à$ !"[gÐ4êôìô .¢.÷ &ñ‹_&Ÿ•þÿ¬·ìô·êôw ŽD '!.€ ò•wœ„ö˜ÉCÃeÄ€ÿÔÔÔÔ  Ö.¦ ÔÔÔÔÄ ÿÔÔÔÔÔÔÔÔ·Jöñ 9x.Ì @Cf Î ßU0þÿ† æÀfŸ÷ö· .ò öò• ·jöwœúõwœøõñ A jW. BCD fÎE€ÎeßU0þÿ† ffEû.> Ew$èôÅU€C @ u õEÿ ŸÄ èô½±�"Ú7 7 7 7 7 7 B.  +.À.[gÐ4¯”( [gÐ4h¯”è÷æ&æ¦f&M ó).FrBr@° ðÅ &±Š0Š ðÕGB @ «:<}“.l ÷å?ß�þÿ6 öÆe€�‚ƒ ¼ áyxáyxý.’÷ Îe ÞÅß@fÿ· wß@fÿ· 6 È9mQŠ€}.¸ß�þÿŸìôŸêô€�‚ƒŽ‡öˆ ïöF.Þˆ êöˆ å&f¦ææêôæìô€.È%Vœ  æþÿŸðµ G÷ žÈ .* &÷ ‚zf÷ ÎerrBô  �fTz�fTz"&BÃ.P2*_ìô"êô&hf€p‹.ȇ,ˆ ò¬î·ìô·êôw öþÿþìô êô$hf€p.î& ÷ w±Š_5lõêôpñ‹^Ѐñ•^}* 9mQŠ€}_lêôp ^(^Œ.Ÿ•þÿ÷ Êw æêôæìô÷ ðÍÄ÷ š÷ [gÐ4êôìô*:’ñ‹`¶±Š`5nõêôrñ‹^¬€1Š^ܺ*``nêôr^"^4²¶�º,w À  ü‡ÁwÀHÀe |,[gÐ4  P,À À ÀpÁà0Š ñjð•¦&  $jV*<0Šðá À ð7Š#ÀÁ.ÙÀ ü‡#&  ð# . ó.hf€p¯”(hf€ph¯”ö÷æÖ €�‚ƒ„…�ó-@2&÷  2 ƒÃe¡  ò…@ �fTz ‚.vàðÅ óŠæ÷ Ÿ•þÿ6 v«:<} Tq€º.œŸìôŸêôƒ‚�€‡ðÕ ïöïÿÿ_.Â÷ øÿßE@fÿ&f¦À€Á ÂP‚~µ€  �.è7 Ôÿ7 Òÿ÷ÿÿÈÿ‚�€· ¼ÿüf&æ¦fß.&æêôæìô& & À€ Ð B 0þÿÁe1€9.4W @ów¦÷ ‚òµ òŠ ‚ó$ �fSz#.Zèòµ.$Xú‡À^Š zü‡À^Âÿÿ�� _ü‡Š À. X ^ z ^ _KHaü‡ÀjP� lü‡w ‡f, a j lhf€p\.\w ÁþÿÁEðÿEÅ æ€ñ‹gDô• Ÿ•Cþv@g O.‚þÿñ•aDœfÄ |œ1ŠgwJ¸ìü0U. afœg¸ ì"ü$&(0æ&¨BP^rzŒš¬±ŠbW¬bH†@!.BP^ r zŒš¬bb±.ÆlwpêôD/.»zy:¯”ØÄq@s'D~@É2Ú@U.Ì2pÆ@Ì2˜Æ@Ì2€Ô@Ì2ÀÚ@Ì2á@#.Ì2@ç@Ì2€í@Ì2Àó@y:û@€:D~@ö.\MÌ2@ee;@¸kK@»pÌ2@;}¸G@€.u~!"@’è€@ €` @ë«s'@(ò6x(€»zy:h<¯”×÷²6xuè*ØÄqs'D~»pÌ2 \MÌ2 €:D~y:ûý Ü*u~!"Ì2€ÔÌ2ÀÚ Ì2á Ì2@çÌ2€í.ö ; ¯”hf€p@[gÐ4@(^šö ; h ¯”Ì÷æ.'èd w „…ÀÄ �Õ•+Á• [gÐ4ô.& â€d Á0B`•�È ôÄe0 ‘¶ w éL–%‡Õ•- äÒ‹å† hf€p)ó1 ù¦ƒ÷ Ö Âó&f¦æÆå€M.€w€þ²œ ƒœ „Ã5€òÕ Ž ß8ýìô2 ì.¦¦÷ ¿&ý· ý·ý÷e ý÷êôýÇÃ5S  @z(d›.ÌäÃ5 Ã5@Ô ò  ¦& ÷ ÷ œ $äqi.ò]<] ÄeÃ5 ò‹ £ƒ¦÷ Zÿ… ƒ€ �5.Ö Â�òÕ ÷ –‘þÿ&f¦æêôü Ÿêôm.>‚�€òÅ Ÿòµ ÞÚ÷ dþ÷ ^‘þÿ�.dŸw²þÖ ÂÊ æ÷ Þ÷Ö ç.u~!";K}2twxìô´  -†m=�"lp êôtxìô(Ð.ì­ ý• ñ• fwÔf÷ Ö =ŠÕf $¼M:Œ.=ŠœÄñ‹^ ÷ ʬ‚‡÷ Ò^f.8Šw && ÷ w @lwpêô ˜$ [gÐ4›:à_hf€pl p"êôà.^ôŠ&÷  Â÷ °1Š^÷ Rx Äeà«:<}Tq€^$xÉ.„xÄå xŸþÿ±Š^&÷ €õêô/xx^"�fSz. ÷ #Ì2ÀóÌ2pÆÌ2˜ÆŠ.>Àâÿ<2Šrœ· · ë,¸kK < €` ’è€ ;}¸G&;}¸G$d¡ ¡ rÀeçæ÷ ‡É2Úë«s'ee;tó4.ërœ,¯”̵;@�fSz@L©C @Ì&(¦œ,²2hhërœ,h¯”™÷æ.÷ 0&¦Ÿæ÷ €ÂÀô°°° EL©C ̵;�fSzò.&ðU€ðU€ðU€ ·Œÿ·Šÿ·ˆÿÂàô°,\ŒÿŠÿ ˆÿñ.L°.°0·¬ÿ·ªÿ·¨ÿ˜‚€‡¦&æêôŸz¬ÿªÿ¨ÿ&êô¤.ræ÷ €÷†ÿð÷êô¦ÿðêô*˜Àå!"̵; �fSz†ÿêô¦ÿ"êôë�fSz ÌeèS$ÌeèS&;K}5.ŠŸìôŸêô€�‚ƒ„…7 ,üw· "üwD  @wà.°wŠ · þåÃÎ#£c#ãêô££Ö ŸR@wà[qj΃.ÖìôŸêô€�‚ƒ„…w æÃÀææßêôÀMþv@ÀüÁÂćâó6(êôu.ªp5l1Š_ÄexŸ•þÿ&÷ €õêô pl_x"�fSz(êô.Ðr5n÷ ^w1Š`ñŠ^Ÿ•þÿ÷±Šbf÷ ª$rn[qj`^"b&p.öÖ ïñ•f1Šbôý• ñ•fâñ‹i¥ ¼M:fb f&iS.ý• ñ•fØ1Šiý•Uñ•f±Šb̼fi"f&b¦.Bý•^ñ•fö}œdñ•fﱊbý• ñfdf"b».hñ• få1Š7. ­!T¯”¼M:@ #}@ÌeBk@•.�fSz@�m„@®Œs@´L @¸ @>.¾$;@ƒ…4f@(€ÌeèSh¤u~!"hBLmh$¯”§÷æ.f2@I (@ˆ&€1 ¤E.¤2ˆÇ¬ÅàÄþÿÀL‘ß &ß €õ  ¬®Œs #}&�fSz&.Êðµ @ðµ ðÅ ð• <ðÕ Še˜@6·êô€‡ü  êôóF.{7¯”̵;@¼M:@€}@‡.""ø€@É2Ú@›:à_@«:<}@_M€Q@£.YeÞ@hf€p@�fSz@�fTz@[gÐ4@Ú.9mHŠ@imR@�m„@Tq€@[qj@Q.þv@@@z(d@€ƒ±@ƒ…4f@L©C @É.("ôÌKh)e Xh|i&hÛi²2hØc.%leh°R8xh \h¦®Œsh´L h„.ô&@hâ’4!;h(0X¹shÜYYqhw(´8. wehpÖ hv}h*w h {7hUee;h¯EfwJþý• 1Šbñ• f§ý•² ffb$f½.Ž ñ• f 1Šb@nwrêôwZþñ‹jw˜" fbnrêô$jF.´ ÿý•ñŠjwÿw Á�þÿœÁEðÿEÅ Dg jþv@þÿ(.Úô• @nwrêôBvwzìôÊ €fæÜ" nrêôvzìô$Š.÷ Ö DŸ+ÄÅ€¡|¡ n¡ *¡‡imR  .&-ƒÃeƒl¡.ñ‹cB¦ÎEÀ–,I†² _ c.ððµ  ðµ@ Ò  ðµ ’$ðµÂ. Ò ¦ & æ& æ&& æÞ Ö _�m„$ƒ…4f�.<L‘ðÅ ð‹ ðµ ðÅ &ß Ö ® $¼M:k b ß÷7 ß 6*®Œs ÌeBk´L ®Œs¾$;¸ ·z ŠšB  #}@ó"DˆˆˆˆˆDDDDDD ""   ""ˆˆ @DDDDD€ˆˆ "€ˆˆ """""""""Dˆˆˆˆ@DDD€@€ˆˆˆˆˆˆˆ@DDD"ADD€€B Cþv[q^á ›sg`^á›�m„^á '›€:`†^á›9€˜:^á Y›; ö ^á  ›=sL"^á››:à_^á›""ø€^á ›u~#"^á1›[gÐ4^á$$›hf€p^á((›»zy:^á+/›ö ; ^á,,›ërœ,^á04›u~!"^á37›{7^á5 n›Ë8}^áG[›m'Ü-^áH l›Ì:@Î^á]i›\!¸p^á_o›s@Q^ámµ›”Mœ^ápp›y: }^árz›%ãf^ás “›i'ày^át�›•à^á~š›’M²Z^á”°›©: ^á——›¤œ^á›››,8^^អ›û €^៟›ër\M^á£Û›¡(xx^᦮›… d^á²›É2Ú^á´´›;}5J^Ḹ›@^á¹½›$DÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅaå Í‹æÄ,L ƒw:ÄB8ŽŒ ýƒàÇ` 5 þÿ€�&ˆ ‚— ýÿ†ƒœÃEÀÿ× >w†× × ò f€ò5ÀeòU@ò €× [æ*ˆ² ¦¦æ× Ž & *ˆÖ G× ‚&(ˆ°Ì 8�L'ˆ°4e÷ ÌQ$ ô �BBâBä" ± üÿü× ÷ ¬ŒÉU@Ò °ðU€ Æe  Å"U%÷‹äþGæÎeÞþæfÇ.Ö … U¥… … … … U¥Ñ Bb‘â‹Ã 0Š æ*ˆ€�Ö BÃÅ.&0 æM &0 & Iu.L ‘Ê €Ê5@Ä =‘Có• Ê5@@Ü›.rwÄ• ñ•fîý•^ñ•f2 ïò ‰[qjff .˜äò Ê Þ�à ñ‹c ±ŠcÄ•\ñ•fñ’dÐccc"f&dß.¾Ä’Î1Šc²  ‘1‘dÄ•\ñ•fÁñ‹eÀ±Š cdf$eï.äef÷ Ö ¸½Š½=‘ñ• ff÷ ã*e ¼M: f$(¼M:V. Ö ²Ä•=‘ñ•fò€÷ ¨È /Ÿ•þÿœkJ”÷æ î å&ÿÿÿÿÿÿÇ& ÙÐ  É Î "Ç"Ì $Å$Ê &Ã&È (Á (ÿÿÿÌ )À )È *¿ *Ç +¾ K.Ë8}¯”̵;@€}@""ø€@p.›:à_@«:<}@_M€Q@YeÞ@hf€p@Ú.�fSz@�fTz@[gÐ4@9mQŠ@�m„@F.Tq€@[qj@þv@@@z(d@€ƒ±@¯.ƒ…4f@L©C @(*)À](Ë8}hq) Zh|¯”a÷æ.ÿÿEMçS Ü &Ê)À]„.w æêôæìôæþÿ�ÀÉŸÉ KŸ“þÿ€ DœèL.m'Ü-¯”e X@i²2@R8x@¤.{7@\@€}@ #}@ô&@@â.É2Ú@y:û@›:à_@«:<}@_M€Q@–.ee;@YeÞ@hf€p@�fSz@�fTz@™.[gÐ4@9mQŠ@�m„@Tq€@@z(d@!.€ƒ±@9€a@ƒ…4f@L©C @(Ç.œ's(ŒŠ 0„hŽ ðh” L;hi Nh¬k.Øh ö&`;hHa'àyh4‰'öhÈŽ'ŒshD.”'L hµ' ™h Œ(` h¾ÞY!ThÒ‹'e^(~ß.Îu:hÔMf].0w /‚Á W<.ñ5€6Aœp�¬)_M€QYeÞYeÞ YeÞå.V&‡¬"‚œ— !‚Ä0 ´ŠC–L©C &«:<}Â.|à Ń`0 ‡ˆ Ÿ•þÿð‡ð‡ðË.¢‡ð‡ð‡ñ5@ìA·& ‰YeÞ"4Þ¿.È& ÷ Ö ‡÷ N÷ ô&÷ &z÷ ž´¬ƒ…4f@z(dz"�fTzY.îzŸ•þÿ‡æ÷ (÷ Î4x Ãxa¡ ¡ ÞzxxB.ôzÈŸ•þÿN+Æ ,½ ,.˜.¦ .¦@�*j�k�TÌo� ââ¦À꣦ìLìÂêT îùîÄêP ð÷ðÆêL òõòÈêH ôó.ôôfdüô wf¶‡O[gÐ4 êôìô;.&7!F‚Ä B�ÅÅEðW¡<Åq‘€ Bœ£_M€QYeÞ™.L5— 2€ ñ¥-‡€ Dwìô€ W "ìôì.r— A!1 Ÿf÷ „æ÷ 7 —-û"@z(d�fTz$F.˜Ãñ ³Š· G‰ ·“þÿ÷ F¹$€ƒ± L©C «:<}$þÿÁ,¾E7Š ·“þÿæ÷ �Dwìôw÷‹,  þÿ�fSz ìô$z.âêô  €Â ÷Pe"hm'NhÖäfàh€… qhꯔ‘÷œ's¢(µ . €d!AÝi²2 i²2é.ÆDÊÒÚB& ‹'e^D ‹'e^Ê ‹'e^Ò ‹'e^ÚÝ(ìþþ@¨þþ‹'e^G.w w À w Àw À�ƒ[gÐ4[gÐ4[gÐ4Qƒ‡fÁ Á �`D`Ä Ä %�‡‚æ zp.:ñ•añ‹jYDô•ð 1Šhñ‹^(1Šf@¿a jh ^&f>.`lwpêô7ìô5tõìôx4 �¡è"lp êôìôtìôxê.† ñ• f=‘fæýÕ@÷ Ö J@% f"imR±.¬nwrêô7ìôõvõìôz3 1Še1ŠY&nr êôìôvìôz&eR.Òcñ•fDŸÄAË5@Ä =‘fæÒPc fRB ´  ÿÿÑwU.&À@&À€& æêôæìôf¦æ&fêôìôñ.&�¶1�ÀæþÿŸÉ uŸ•þÿ€ Dœà þÿÙ.L7!k‚Ä ÅÅŠeÅ€ Bœ`— ]€ Bœ´_M€QYeÞ�.rYµ V€ DwìôN€ÃE€× /Há ìô×.˜€ ­‡B‚W¬>1 4 @À æf & .¾þÿŸµ (†µ�(  ƒ`f÷ „æ÷ S÷CœÃÂP·CœÎ*êô &"ÂÜ·77 7÷•C^.  Ö"7 ÷• ÷âþ÷‹I* âþO.6 Ÿ•þÿwW¬ Ÿ•þÿ·ìô·êôw Ž" [qjìô"êô&hf€p.\‡Ÿ“þÿ¶·ìô·êôw & ÷ ww žC&ìôêôhf€p9mQŠ"€}&þv@,,‚æþÿ÷• Á÷ êô÷ I�÷ âþ �÷5GT"[gÐ4g.&f÷ …1�æþÿÀŸÉ FŸ“þÿ€ ñ%h  @z(d›.LA†ñ%ô=‡€ ÷ — 7‚€ ƒœ¾ÃEàÿñ� õ œ's¾¾.rà ó ,�€ —-'óŠñŸæ÷ —&YeÞ€ƒ±L©C «:<}&œ's¸.˜^w· ÒŸ•þÿw öþÿ& ÷ ææÅ.�fTz œ'sœ'sÒhf€p"9mQŠ&€}¸.¾þÿŸ÷ ÈŸ•þÿ‡w°w®· ÈŸ“þÿæ÷ Û œ'sÈœ'sÈ&œ's .ä�wè÷êôê÷ rŸ· òÕ€¾Ÿ“þÿU"�.øñ•jñ• fý•fæðÄÃ�Bù³ŠgÅjjf&g.Å AŸ7Š2ùóŠaw0ó‹^@lwpêôáa^ l$p&êôº.D@nwrêôð÷°ø÷®ø7 ¬øœÄ ô5°n r êô .j@w ò5€|ò5xô5 �$YeÞ4ÞYeÞ YeÞ(YeÞP.�„èôU =Š=Š�œp�w`ø÷ ÖBYeÞYeÞ.¶—tÂezÅ Å Å @ÀexV 1&þÿ ( (@z(d$�fTz .ä —-Ãñ ³Š° 5Š)ŸþÿL( €ƒ±L©C «:<}  $)`. ñ ñf fæ÷ Ö wtw|x(  fimR`.0w|wÈÓ$Áýf÷ �pDw­ �fSz �*Vìô0 ðêô"ðìô$ô ãK�Â*þ2 *ìô   êô "ìô $Q.x|+Âe úÅ BâÀ  Àå �ƒ ûÀe 1МW.  êô âþ%.¦÷-èþ�ææ÷56  ·å" èþ l&Ì·ewXÿ÷-èþù€éwÄ÷-*èþ êã÷ÿÿ÷÷�. ñ*þäþæ÷ ƒ —v—t÷E0·Pº(äþ @z(d". ÂEüÿƒP÷æþÒ÷ âþQ� ÷•âþW¬fAX@œ.�fSz œ'sèêôœ'sêR8x "œ's¾,. À xÊÀ$&÷ €Ð &æÅ÷ â( œ'sÊÉ2Ú�fTz$œ's(›:à_'.0wLÀwfÀw^ñ‹€ ÷ tñ÷Ô(œ'sÔŸ&V7Ö@÷ ’÷‚ð÷•ó7Š÷’*œ'sÖ‚œ'sðœ'sóœ'sæ.tâæì÷ £÷ ì÷ ÿ äÖ÷ Ô@ }d,œ'sâœ's œ'sì{7œ'sä«.šòµ@¾` ƒ4„ á o‚7Ø2` ‚ æv. œ'sYÅezÄ÷ ø:7 zxz@.ÜJÒ  Ä ÷Ÿ•þÿ÷ Þñ‹^3ñœ^^ñœ__ó^ ^"^&_(_Z.ñœ`` EÅ µllµnnµppµrrõ.``llnn p"p&r(r�.(µxxµzzµttµvvŸ•þÿæ÷ îýƒó•p&xx zzttvv•.Nÿÿ^3Š_3Š` Ÿ•þÿõ}�fæ÷ Ö  ^ _`&imRë.t3Šg‡ó‹hñ³Šh÷ ì×-z÷æ÷ Z | âS.žò Àƒlt,… ôô<ôÕ@} ,ž.Ä -w†w„ƒœ�ÃE€ÿñ ÎÂe|÷ <À “ � "|”.êñ�— ÂåôÕ€ úÀE€À ü.À `‚`Âe¦Ê ãÀÕõ• *õ• +Å =à ¦ * "+q.6ì= ì¦&÷ ƒ —v—tµ&ÂEž$ ì ì@z(d "&$*\üÿƒPýî‚=ð‚œäÂUAµP&Cóª. î [æþâþâþÎ.F & ÷ Ö ÄßKÌ¡ ¡ Ɉ ƒ…4f  ï.lB òŠ·“þÿ¦÷ ·“þÿ1 W¬Ì «:<}þÿTq€þÿ£.’f¦÷ Ÿ÷ �wþw�þ÷ àþ‚�÷5àþ- ›:à_àþ&àþ•.¸÷âþ÷Š wþÀÎÁ÷ 0³÷58àþgâþ &àþœ.Þ÷âþ÷5�àþîè7 "wÜ"æ÷ w6þö,âþàþ"" $""ø€61Ààþ‡X\¾ œ's4 œ's  œ'sØ $œ's ¹À÷7 ÷ ÷ˆ, œ's œ's œ'sœ'see;Òòð÷•ó÷•÷â"*òœ'sð œ'sóœ'sœ'sâ�,ææì÷ ‡÷ |÷ š÷ jÃä÷ &÷á(œ's œ'sì ee;œ'sä&�. ð‡÷ `÷ ~÷ Nñ‹ €ÃÔ÷ æ¬÷ ¦$œ'sðœ'sÔ $œ's¬(ee;û.0ñÖ1ŠòÅ€¾@&& ÷ ÎþÿŸw2$œ'sÖ œ's¾ƒ…4f(œ'sJ»g hh$(""ø€l.š‡Á�¸÷EÅ =бŠi7Ѝ÷@nwrêôðÏin r"êô1.Àý•^ñ•f‡¦öþÿŸ‡f&Á�z÷Á � Öfi汊j„�‡¡ j€ó^ð ä & " (~ æþÿŸ}&ê… õ‹) �Ÿ•þÿwS* þÿ & ê )þ.ž‰ ÷ æ�þÿ‰ ñ¥Ÿ•þÿ…„ƒ‚,[qjþÿ .Ä�·ìô·êô€Ö ‡5ŠŸ•þÿ‡¶…„ƒ‚Jìô êô É.ê�·ìô·êô€& ÷ w��wæþôµŠìô êô9mHŠ€}<.ÂôÅ€ƒÂùñ‹ �€œÀE€ÿæþÿ• (þÿÉ.6Ÿ7 WŸ•þÿñµ@ô‹!´€t<  àþó`.V ÷¡7 ¡7 ÉðŠŸ“þÿ&÷ Ì, œ's œ'sœ'sœ's«:<}Œ*|Ÿ÷ Ò7 Èw:þwHþ‚ 7 à7ÞÀ¶,Tq€ œ'sÒœ'sÈœ'sà"œ'sÞ…"žþ÷ ÷æ÷Èð÷•ó7Š*œ'sþœ'sæÈœ'sðœ'só¥(¸7 æì÷ ‡÷ ¦÷ Äà ÷xŠ,œ'sœ's œ'sì{7 œ's [.ØÜ÷ Š÷`ÜË ÅœÅE€ÿ… ÀÞZó-à«&œ'sÜ œ'sÜ œ'sÞ&œ'sàÁa.Ì:¯”Š 0„@Ž ð@” L;@œ.O öHài&@i N@©üX@™üX@•.v}@{7@€}@) Z@ûy:@e.\!¸p@t!öH8É2Ú@y:û@¬:|—@@.E„:@‰MüX@äf„:@=sL"@þv@@B.@wà@ÌyÃHëyÐÀ@ëyøÀ@ëy Á@K.ëyHÁ@ëypÁ@ëy˜Á@ëypÆ@ëy˜Æ@a.»zy:@;}¸G@u~"@¾~VK@Lm@‰.’è€@ €` @)€üX@6ªëy@Ì«‘I@|.ë«f'@ë«b ´.\4Àe 4ô‹ò‹€ñµÀ0 Z.‚‡´åÀ ‡ À5%÷ t2 ƒÆ.¨ƒlm €l €m 44 ¹.ÎÀeÊÀ‡À ‡À ‡À‡À$&+ (É2Ú×.ô÷ €Àe&æf÷ „÷ w fWtç�fTz@z(d›:à_Œ.úÿÀ5?� @�‡w æþÿ…æ ÅEðÿõ‹>þv@ (¤.@Ÿ•þÿwõ•)Å Có Ÿ•þÿAD”, [qj ) c.\!¸p¯”Ÿ s@; ö @s kM@Ì.t 4!@u ²Z@y üX@ Öd@€ Ã@".‚ l@‡ ¼@‡ üq@ö ; @ˆ}@ª.*\M@•à@Ë8}@Îu:@Ôe"@a.w @{7@»ŒE@¼M:@\!y:@Ç.""ø€@ #}@m'N@U(€@a,È}@R.œ,²2@.Ã@é.R@’M²Z@{QÀD@“.€Q\!H5ÛYTG@Zµp@ÕZd'@ee;@á.äfà@ g¸p@Cmà@imR@�m„@=.ërœ,@vd&þ÷à÷Ú÷ØÃe ÷ Üä· ,. œ'sàœ'sÚœ'sœ'sØœ'sÜb ÷-æÌ÷ Þ ƒ4„ž.œ'sœ's œ'sæœ'sÞ œ's4ì.4 áÀà À1 wjþ‚ ÷ à8÷tð÷•* œ's  œ'sàœ'sà$t&œ'sðÌZó÷•÷Øæì÷ .œ'só œ'sœ'sØœ's œ'sì(,p‡÷ ú÷ ÃÚ÷Øómàóíà÷,ee;œ'sÚœ'sØœ'sà"œ'sàž.”šð‡÷ Ôes'@(Н„:(ð°„:(%.²6x(¹¯6x(½±�"(Õ¯v~(„¯„:(ö.4²¶�( ±Œ:(l¼M:hföBxhdÌ:h&eÌ:hf gÌ:hfimRhh¯”ç÷ ±Œ:f.ŸÆ—!÷ R÷ ð÷ J÷¤÷àR"=sL"$¤Þ&&¦Áà÷0w2÷4w6÷V,¦ E„:02äf„:46 v}‚*DX÷àZ÷Œ÷àŽ÷÷à÷¦*X Z) ZŒŽ\!¸p"=(f &è.f w"êôw$ìôý5€êwVôµ@qô‹Æ.  " êô $ìô ê9.Œ€wW¬f & ÷ Ö Â@D½ƒ…4f $ (‡.²Cœà à Ä``… æþÿŸKÌ¡ ¡ ‰$d.ØÈ ‚ µ ùÂÿÿµ�(B òŠŸ“þÿ¦ ( «:<}».þ÷ ŸþÿW¬fff ÷ … @À Ÿ.Tq€›:à_a,$ð €ñ õ‹) �𠀟•þÿwg3d@v€…@9w€W@awÈ}@ÿ.äwì]@áyx@éyR@z4f@9€p:@¤.9€a@ƒ€øŽ@}…C @€… q@ƒ…4f@K.ë¨K"@©€}HL©C @(„\!œhÉ\!¸ph€ƒ±h.¯”÷ææ*�m„z4f ƒ…4f #}U(€Ÿ sËÚ*imR¼M:Cmà »ŒE 9€a9€p:Î*Ë8}ö ; ; ö  {QÀD }…C ""ø€Žh÷ òñà w$þ3 ¯7à÷Úµ*šœ'sðœ'sà$œ'sà(œ'sÚ÷*º÷ØÄÀwØ÷TØ÷rØ÷�.œ'sœ'sØTœ'sØr œ'sت(ÜzØ@÷ ÷ð÷•ó÷•÷ü.zœ'sØœ'sðœ'só œ'sÌ,üâæì÷ Ÿ•þÿ‡÷ `÷ ~ÃäË Hÿ {,œ'sâœ's œ'sìee; œ'sä€( Øó‹ €@÷ ”ÿ Øæ¬÷ ÷Dû(œ'sØœ'sØ œ's¬ee;"Dº.@ð‡ifÔ÷àÖ÷÷à0÷ ÷ ÷ Ž.u~"Ô Ö¬:|—)€üX ûy:x†÷ 7 þÿ7Šæ÷R(‰MüX™üX þÿŽ ð” L;Š 0„=&œ÷ ÷%ü÷•7Šæ÷ Æ,” L;{7” L;Ž ði&i Nþ$º÷%ü÷•7Š÷æž,{7 i Ni&ë«f'¾~VKë«s'­$Ö÷ ÷%ü÷•÷ /(*ë«s'{7ë«s'ë«f'»zy:6ªëyÆòö*Ì«j.    ) ™.HŸ•þÿ5Š‡Ä w\ýŸ•þÿwLýŸ•þÿôÅ@[qj ð.nBœÂEÀÿƒ×p ÂBm,Ê $÷ ˜ýÀ b@… { ,œ.”u¬(w`ýw”ûôµòw æêôæìôf¤ ([gÐ4"êô&ìô®.ºf ÷ ·ìô·êôw àÀ?@€ ý52êƒ" ›:à_ìôêôhf€p (êÚ.àý5òðŠ* ýêB&‚ ÂEüÿ ‚œç. ò * ê & (k&Â*{7•à’M²Z .à ˆ}ÛYTG;2¶*é.Ra,È}9w€W ÕZd' Zµpy üX±>ª*u ²Z Öds kM t 4! € Ç üqÖJž*‚ lv3dv€… ‡ ¼ Îu:Ôe"`V’*äfà€… qäwì] ërœ, ee;awÈ}á.bvð"éyRvœ,²2 w  m'N5.ˆl÷ *÷ H÷ wâý œÂE€ÿòµ@¾‡œ'sð &œ's¾j.fól3 ‡óÕ€‡óÅ€‡‰ Ÿ•þÿ1�.Œw އ÷ ô‡Ö À1�÷ ¾wŒýÀ ðhf€pœ'sôË.²1�÷¾ð‡÷ °ñ Ã*þ3 Ö„ Ãe ùr ¾ œ'sð\ÖU.Ø ‡À ÅœÛÅE€ÿq¡ ñÃeÖ‡¦À 7 â €\Û\Ö&œ'sâ®,þ—r ·â×p Ãe ÷äCœ ÷�îà ÷œÍ, œ'sâ œ's œ'sä œ'sî&YeÞ’."þ· þ‘IëyÐÀLm ëyøÀ ëy ÁëyHÁ*.þÀð C—r@‰øÀÁÀôÍ"ëypÁëy˜ÁëypÆ ëy˜Æð.$‚~ÁàôÀ‘Âe€~÷Îô÷€îôŸ ã Îô&îôý*Jzÿ‡      ÷•€ëwX‡Ž‡Åë€}¤ónçý.w(üÀ ÷ œB2rœ2rê   &ê¢.,rò ¦÷ têtòýêôÅÀwS, ò""ø€ ê ò ê½.R>þ… ÷ Tõ‹)øÅ w@þB@Å °Šð•ÿÿ¬ ) $Ox)AD w"êôw* )  "êôù Š$ìôðŠ+ ýê¦æ÷ Ã* $ìô + ê%¢Ö §À °1‡O oJ.®!0033æ.Ô ˆˆˆˆˆˆ V.úˆwNwR÷ r (L©C ‚. ûö5À÷¦f&F ‚ÂU€ß ÿèô�a X.F€Õå 5âÁÁEàÿ¼lÛœ¢7œØªÿÀ 7zë¨K"l¢"ØŽ.l ÿz@WtüÿÀEðÿÁEðÿÂå·†ÿÀ ’~C ì.’€��‚��·Æhÿæfÿ¦ææ�`ÿœþÿþÿà áyxó‚‡KóØsœ ³�ñ‹€óÕBœ'sþœ'sþœ'sØó.H€s òµ@¾óØól‡BœÂEß œ's¾œ'sØ‚n€ÿ‡Áè÷êêô‡B œ'sèœ'sêêôbóq.s@Q¯”̵;@,8^@O ö@›.�H£@©€p@®€p@º€p@ we@ò.4[M@{7@ºef@¼M:@€}@ˆ.öBx@t!ö@""ø€@ú&ày@É2Ú@æ.49@«:<}@;K}@hf€p@�fSz@ü.�fTz@”f�@[gÐ4@9mHŠ@imR@É.‰wq@áyx@@z(d@’è€@ €` @q.€€(d@L©C @R«ª:@(:0$`hÇÿ. $`hÄÈ$`hƹ¯6x(4ûy:hç_(6.®lAKhè_imR·ó.¸‚“[ÂE€ÿ‚aƒœ×tüÿÃEñÿß ÿêôƒÃEà×túÿ¢.Þß`êôÊEÀÿÊU Ö‹€‚ƒœ ×tüÿÃEñÿò ÿƒï. ÃEà×túÿò`Ÿìôƒ ÃEÀÿÃUÀòƒ“.*‚Þ ŸÆ&&7Ôþ7ÎþÁ 0C~ÀeÀEÕ  áyxù.Pà&À¶þÁ´þßU0þÿ† Ö €�‚wÖ Ùz $ g¸p,væ¦÷ ^BL©C ƒ€øŽó.”Mœ¯”(€; €Mh¯”l÷æ.�‚„‡ˆ �‹À�Ž                 !"£$¥Ü.&¦'(©ª+¬-.¯0±²3´56·¸9:»<½¾?ÀABÃDÅÆGHÉÊKÅ.LÌMNÏPÑÒSÔUVרYZÛ\ÝÞ_'ABÃDÅÆGHÉÊKÌMNÏPÑÔrÒSÔUVרYZ     Nóu(R®lT[hé_(Œ€y‹hÒ.ê_(4ˆ}hÛYTGhë_(Gmy‹hÄ.ƒ…Iah^ì_(·y‹hTq€hhí_(öU.œ,0ahî_(Ð,.0ahï_(>ùdhbç_€»(ê8(®sh~¯”‚÷æ.Î.&ÿÿª.L‚.rÿÿ˜˜Ò˜ ¥ ï_ ˜v. ­™x¯”” L;@e X@i N@ô.ô&@@ö&`;@a'ày@µ' ™@_M€Q@Y.YeÞ@(Xy:ûhy: }hŠÌ«‘Ih$w¯”‘÷æ.J2@â (@ˆ&À ¤E.¤v,,,,Ä ,Ä ,,ÞÊ ¸1(¸Š@Nw.%ãf¯”” L;@ôÌK@i N@.Ø@%le@R8x@pÖ @\@ó.®Œs@´L @ô&@@ö&`;@‰'ö@¥.Ž'Œs@”'L @µ' ™@Œ(` @É2Ú@.’4!;@«:<}@0X¹s@ÜYYq@ÞY!T@].ee;H/YeÞ@(@ØÄqhÜ(Þf%ãfh`¯”8÷æ. `K$A Ü` (Üc&x.i'ày¯”\@Œ(` @YeÞ@v.(@s'D~hÜ(*i'àyhö¯”­÷æ. ö2$F Üö (ÜÌ&ÀÜü €r d…(dv@´vY.OBJECT LOAD SYMBOLICAS<.*M SYM FOR SYM DATA JANFEBMARAPRMAYJÉy"˜$Ò&˜>.˜6 ¾ÿÿ  Ø.Øôô.ô Ì ï_ôô.ôÿ.þÐ.$ÿÿ«.Jÿÿ….p].–ÿÿ9.¼z X�.X*ROS DISC SYSTEM Ï.~INITIALIZED .ˆÀìÿ Âÿ p€p€°€W µ' ™€$ö&`;€(a'ày€y,¤lxÀelxò߀€ß€€æ€÷U€ .a'ày€µ' ™€a'ày€ö&`;€"” L;€x(È /ˆß%€ü÷E€ À€  €üæÛ.” L;  ” L;€” L; ô&@€e X€ë.è€ß%€üÀ€ÿ0 Àeû B€"�ÂEÿð— Ûi N€ i N€ YeÞ€¿.wœ€²þ· ®þ� w�˜þ7 ®þæx/ˆ{€1Üü �q ˜Q&˜@ý 8°.8#COMPRESSION COMPÎ^LETE-FILE TYPE XXX t rv+rCOMPRS-FILE TYPE XXX NOT VALID æ –R-–!COMPRS NOT ALLOWED-FILE TYPE XXX & ¼,.¼#COMPRS-DIRECTORY SEARCH DISC ERRORu â  ä.ä%COMPRS-FIL|.PUNJULAUGSEPOCTNOVDECFREE READ WRž.vITE DELETED HFI .œLE ID START FILE LOGICAL FILE Š.ÂCKSAVE PROTECT CORE DIR. IFD > ¹.è SECTOR TYPE DEVICE LENGTH a.0=NONE Y/N Y/N I************.4**************************************\Z********************** Ø rur ) zm.zFXXXXX XXXXXX }.âÿÿí.ÿÿÆ..ž.Tÿÿz.zR. ÿÿ>˜ô2p®ì*hŽ.  >˜ô2p®ì*he º-ºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8 Ä#Ä÷%†þü YeÞ€©,4· œþ÷% ‚þó� _ €Á Û� øæ ˆˆ¯_M€Q€×óE XFER ERROR-FILE TYPE X}  XX ( Ù.#COMPRS-DIRECTORY UPDATE DISC ERROR 4 ° 8¯.8Ž�wŽ �¢.^.ˆ3ˆ·öÿ7Ôÿ †œ€Å5 ÅEàÿÅ  &Œ(` €1.„AÝ€Á ß•àþÿñ € �ŠþÿæædˆÖ ñw©YeÞ€ÜYYq€Øf.ªhwtð‹€ð�€Â ÿò0òȈŠþÿ¿ Œ(` €R8x€0 È@.€ XXX XXX XXXl. XXX XXXXXX X X XXXX u.Æ > ELEMENT Å.ì CREATED START I d. NAME TYPE STATUS DATE Ô)8 TIME SECTOR LENGTH Ê ZŒ.ZH .NAME. OBJECT FREE 0ƒ.€2-JAN-72 23:17:59 005466 000100 K.¦-DISC ERROR-BATCH FILE ELEMENT DIREîÌCTORY READ @� Ö¹¯6x .À€ ŠÁ‹@Ð7÷÷ ÀÀ QöBxº€p®€p ,8^u&þ÷5‡ ®€pÒO"Ò ä ÿÿÕ Ê ,º,µç_ .€¶Ž¦6 öþÿÁ ƒ÷ ð‹¥&ç_€»8‚.•௔̵;@4Þ@¼M:@Å.€}@›:à_@œ:mm@©: @«:<}@Š._M€Q@äb; @YeÞ@�fSz@�fTz@W.9mQŠ@imR@Tq€@[qj@ërh@Š.þv@@@z(d@€ƒ±@9€p:@9€a@.€€(d@ƒ…4f@L©C @(j”¶^h^q.”ð_hd•àhxН„:(™üXh¯””÷Þ æ ® Pp 4µƒÐ… w‘Äý� wrÿ� wnÿÁ€ñ�°ý1�À 1€ª%le€(ö&`;€Ù.ö€ ÷ÿÿFÿ7 >ÿ7 ªý÷•�ý÷•‹ý÷8ÿŽý7ŠÍ.�ýæ˜/ˆ÷% vý÷ pý¶÷xÿ·`ÿƒœO˜¶y.BÃE€ÿ Âe · ðþõ· XýáwÔwªÊ ž.h$ƒñ ì‡÷ Ìþè‚· Âþ÷Âþ·Àþ·¼þU.Ž·ºþ÷ýºþÙ±lðµ@€±lwHÿ·ÅŒ(` €1.´žþ÷•ßü÷æÚü÷•×ü÷•Ýüæ˜/ˆ÷ ÈüSæ ˜<.Úˆ÷ vþw"ÿ÷ ¶ü Âdþ2 ÷ü¢ü„ Ø.ØDISC DIRECTORY READ ERROR 7 ýˆ.ˆJ.þ÷ ý2�÷ ¶Àøü>Á€BœÂE€ÿ·�HüwTü7 í\€Û.$Züædˆ÷% :ü÷ 4ü"„Ãxƒ`Ê À:d„ß.J¸ü-„œÄE€ÿ 'Âe ƒ ñ· üßwØ÷ ”ü?.pÁe W"ˈ÷Ø ý÷ øùœ€ÅEàÿw‘ÐûŒØ Œ(` €7.–Å  DÝ€„ 7Òûwzÿ÷•Nþ÷•Nþ÷• þ÷•0 YeÞ€©.¼ þ÷• ûý÷• öý…Ä‚À÷ È…ÄŠ‚(….&�wZB¤w"…… üwÂe÷Ÿ+”f� ¤�.LÊ Ÿ�þÿëæ÷÷U0÷ в²Ïº€p®€p ‰wqª.r°Š¹ÅÅ þ÷5s÷5wŽ÷·  ¹®€p®€p(©€p›.˜÷U÷ ÊÕÃÄŠ„ ÄmÄÅÅ þ¸&º€p ®€p,8^©€p ÄÁ.¾÷5TŸ“þÿð‹�E¤5ôÿÅÒ&÷ „Ÿ(®€p”f� ¤ Ò&�fSzÊ.äTþ€Äå:̃Cì¤ô�†"4¨ 0@P¨ 0@PH�H4FXjh4FX jJ3JžN‚Npþpþ P™Prþrþ¼ R—Rtþtþ¶ T•.T CR 1 ERROR CR 1 SPUR INT f¯.z¦æ&f� ¶ 6 æêôæìô@÷ 0À. Bœ ³ LÄ ŸþÿÄÄ Ä7 L–.‡‡÷  ü/  üÑ.w’wžw>÷ 0þZñ2þ7 ”ü7Љü÷"þÑ.&€üæ˜/ˆ÷ nüF÷•qüwjüæ˜/ˆ÷ Xü;· ¡˜˜•.Ldü÷-`üöýä‡÷•?ü÷l:ü÷•7ü÷äý:ü÷•G lh.r7ü÷Úý8ü7 Öýæ˜/ˆ÷ üˆ÷ Æý÷%¼ý2 ˜F.˜Àªý÷ Ä ÷¤ýÀ”ýœý÷ úæ/ˆBwÄ "i Nõ.¾Úþwxw„À p€æ€/ˆßÿÿ€Å•µŠ€Ÿ&µ' ™€” L;€ R8x€(«:<}€ß.äÅfý@À ÷ÿÿPýˆŠ›.â÷ ¸…œ!€f&æ¦f&€·œü÷E€ÿüÁë.÷ lÄÂÀ÷ †÷•Y–ý€�‚ƒ„…:Â..ÅE€ÿÄ�À÷ d…œ€÷•YfýÅE€ÿÄ—À« �&—‘.T÷ H…Ä¢÷ 8…Ī÷ ,÷zü÷ Ø¢ª$zÊ.zwÚþ愈÷ ~û÷ tû�÷ (÷ \‡Àƒ  „_. „ d‘ÌÅøÌÕ0… ÅE€… … À ô‡÷8Dû÷/.ÆÄÆû÷ ²ÿ÷–¼û÷ ¨ÿ÷â²û÷ žÿ÷$¨û÷ ”ÿ)Ä–â"$‰4�ô ô• Ï ¤ î_¨. Ãe0ôÃe ôôêô…Å t04Š3Äêô"49c.0Äe&Ê‹€÷ ÷ ô �ñ• Ÿ•Ü we{7& €` ½.Vþÿ‡ö ¶ �1ŠÖ óÁe8f÷ ÆN €` (ç_€»Æ].|�D„ À w®B¤æŸ2¬¹þÿ+ð‹¹ €ò ôÿã&î_® ¤ ¹ "¹-.¢ ÷÷U0÷ ²ŠÿÿÄ…÷ „ôÿ� º€p®€p‰wq"ç_€» .ÈBŠÆ 1…„ƒ‚�€ŸìôŸêô‡æþÿŸÉ ä(.ìà f÷ æ ÷ ž³ _ìôƒ ö%Ý  @z(d �fTz &€ƒ±Ÿ.Ä´Š1 1 ó .Ÿþÿñ¥mL©C  «:<}Á.8÷ ´ ŸìôŸêô…„ƒ‚�€´‡ŸìôK ̵;#.^Ÿêôæþÿ€ ¶ ¶ …„ƒ‚�& æS (€}¤.„w³ Ÿþÿs óêôó ó÷ ‰&9mQŠ  "äb; $Å.ªÁ ßêô½æT÷ ®ó´‹€Á>ý:ff÷ ’�Ãe€z´L €0. DÄEàÄU@f÷ 4 Bœwý ÷8J (8Ž.0ý¡7 ý¡7 üü ß•àþÿµ €†µ�€Â  ƒ`Ð’4!;€"’4!;€Y.Væ÷ vž‹° €· ØüŠþÿÁÃÎü �ß•àþÿçÜYYq€W.|ð €õ•ÿÿ€Šþÿ4ˆŠþÿÁ¦ü ff÷ ö�‰ÜYYq€ôÌK€«.¢w–ü ÷<�ü¡7 Šü¡7 „ü ß•àþÿæ€÷ | <&”'L €ã.ÈžŸ€Ÿ €Ûß•àþÿß €ß €æòÚ*Œ/.ì÷ržû÷ Šÿ‡÷8 û÷ÄŒû÷ xÿ÷Ê‚û÷ nÿÙrÄ"Ê .÷ xû÷ dÿ÷$nû÷ Zÿ÷rdû÷ Pÿ‡fæ   $r( Õ.8ˆÓ�ÐúÓ�Íú‡÷ °ÿ÷(ú÷•ú7 (úædˆ' &df.^÷ ú„÷ úÂe—  · ú÷%þùêþ „<.„ˆ÷¦û÷ ðþˆÊ ÷æb¦'ˆ�œÁE€ÿÁ Á µ¦b½.ªA`w¸üÑ w²üÑ w¬üÑ w¦ü�œ€  M.Ð � Á Á A`wd”üÑ �Á Ä wªþÊ•Ÿ“þÿ&÷ „wÿB® �fSz.îŸ�þÿ…… wbÿ—¢ÂeõŸ—¢îÊ‹.²²w(ÿð‹‘€Ÿ“þÿÄ  ‹ô‹€%”f�&”f�‹.:Å A¤ E… E’W¡ÁeõÄ é…F ¤0.` CÝ EÜÅ f÷ ä…EÀÿÅ éÅp¡î �H£É2Úç_€»äÇ.†ÇåŸÊ‹w¶þE’ÈW¡ÅEõ‹ô÷ T× Ç"«:<}(ç_€»T8.¬Ÿ“þÿf÷ Ö ó /Ÿõ•ñ µŠŸ“·ŽÅ õ8f  T $8‹.Ðæd÷ Ö ¨w  Åó æd÷ xMr  ©: þv@[qj"dò.öó ß5@pþ8MÀpþ÷ ôýMw4À5€ » Ô.À5€øÀ5@À5ñ3À ððŸ  &=.B&æ2÷ Ö ßE@pþM3 ó  Á ߦý) ©: $ Ë.hêô÷ @3 MæþÿÀ�ýߎýêôìôñu  Ì.ŽpýŸ·ný÷ªýhýŸþÿÄjýÈ� ”'L €ÞY!T€‰'ö€"ÞY!T€(ò .î& 5ˆŠþÿÀðŠ€Àm÷ N÷J8ûæ8 ˆˆù«:<}€mJ$8_.À‡÷ 8÷r"ûôÀ·÷ (÷–ûì÷¼ ûn‡r·–&¼g.:èÀ ÷ ÷äúúà÷òúÜæèûæXˆÐ�Ì ä$X3.`ùûÐ�öûÐ�óû‡÷ 0ú÷ ÞûÂÐûÁÀ¼û÷ ê "%leÀ.†&ò‹€· Âû· ¾û‡7 ºûæ& ˆÖ ‡· ªû.¬÷Erðµ@€…lr‡Å Â@€AŒ(` €(®Œs�wdŽüÑ wdˆüÑ wddd d(dÝ.ö‚ü�œ Ã÷ .ÿ�œ CÁ Á`wœ=nüÑ‹wœ=gür =&=˜.Ñ‹wœ=`ü�œ Æ÷ ÿ�œÃŠ÷ öþ�œÃ¢=†ŠZ.B�÷ êþ�œÃ�÷ Þþ… Äš÷ >þ…Ĥ��š(¤".h÷ 2þ÷Zú÷ þwôþ Ã*þ3 Ö�„ Ãe ùÁ Z\Ö��$Ž ‡À ÅœÛ�ÅE€ÿq¡ñÃeÖ�‡„\Û�\Ö�ó‘ ºef €` & €` .Òþÿ³Äÿ3�Ãÿó•óÿó•ËÿóÌÿÄÄeðÿ3ÔÿJ í_x.ø3Úÿóe ÚÿóêôØÿÃeÈÿæ÷ ó  w.þ Štêô weß ÃeÀÿÄÁ wÂýA÷ ~wPUç_€»~í_Pè_¨.�Žæ—þÿ÷ ~Ÿ1ŠÁ 1 ð‹a€7ÀÿÂ&ç_€»~ €` É2Ú ”f�(º€p.&÷U÷ ðй þ÷5MŸ“þÿÀÓ ®€p 4[M ¹ ®€pn.LÁð‹¹�B¤ð‹ €ƒƒ à ÃE€ÿ’ð¥T.´ð¥@¦æ&ff&÷ …„€ $›:à_³.Úƒ‚Ä && ÷ Ö Ä ôŠ&÷  9ƒ…4f«:<}&Tq€ù. ßEApþ3 æF÷ Ö M¦÷ �@_õFœ:mm �fSzÇ.&ìô÷ ¢ 3óêôs ÷ lM0•ó ˜ z.LM³ ×,ÄP! ³ -!•P$ .r '! ó èÂRÂlÁ ßêô_û“€¼.ÒA€&&÷ ¸„Àe€Áe€�à à Á``… –´L €>.øÉ¡ ¡ Àe‚ µ €ùÂÿÿµ�€ æ?0X¹s€$’4!;€Ç.û÷ ®ž·ûćff÷ ^…_€ ß!"Ž'Œs€(Ž'Œs®.D€¡ €¡ € ææú÷ vž·Úú‡ Ã1”'L € ”'L €”'L €.j*þ3 Ö�„ Ãe ù ‡À ÅœÛ�ÅE€ÿq¡ñ\Ö�\Û�.�ÃeÖ�‡&€tüÿ7¢ÿÀ¶úð¢ÿ&÷‚ÿðt\Ö�¢ÿ¢ÿ•8 ¹ ¤”f�ž.rÂeõ‚øÿÊ‹€ Ñ  äwTŸƒÙÃE€ÿIç_T&.˜ÕŸƒ’Òƒ÷ ÷÷U0÷ Ãà ð ç_€»º€p®€p"‰wqù.¾þ÷5 ÷5Ÿ“þÿð‹Ì�Òw”¸  ®€p®€p”f�$ç_”Ÿ.äÁ B¤÷ 4�„ôÿ‚øÿ—¢ôÊÕ&÷ „ ¤ ç_€»4&�fSzw. Ÿ“þÿÁ wîò%äÿ¦Îeäÿ÷ Ö ò‹ÿÿ­vç_î ¼M:*0¦ôÿ÷ ·÷U–R "Ò.˜ìôAÁeÁl¡’ó ÒÁ ßêôñ£  a.¾³ Mó³ Á Bœ—  G äb; Ú.ä Â Ä ‡„ „ „ „ „ øÄ õCÀNÀUq &N|. 3æT÷ Tó´ñ8; Nfæd÷ f T8 N˜.0Ö ‡CûEANû5Nó ì…Á ñ©: NN ( F.Vßêôñwþ…wôý„fÅ4æþÿŸ2&‚ÿâ.¶€À À ÀEÀÿÀU 6€‡&€tüÿ�.Ü7¤ÿÀzúð¤ÿ(÷¤ÿð€À À ÀEÀÿý¤ÿ¤ÿ¤ÿ-.ÀU@6€‡&f€ÁWtüÿÁEñÿA ÿWte.(€ € ÀEø`v�€‡Àú°(·¤ÿƒ (¤ÿ#N÷„ÿðŽ‡® „ÿcó˜.’M²Z¯”̵;@4Þ@; €M@·.€}@›:à_@œ:mm@©: @«:<}@Š._M€Q@YeÞ@�fSz@�fTz@9mQŠ@`.�m„@Tq€@[qj@þv@@@z(d@à.€ƒ±@9€a@ƒ…4f@L©C @(D}.�Mp&h8�M€Wh>’M²Zh”Mè€hÊð°„:(ɉMüXh¯”ó÷âÞ ¤è¤2™÷ 2Šÿÿ2 ôÿwäþŒ& �fSzº€p®€p4[Mé_.æ—þÿÁ÷ ~4 ð‹¹3ƒ’à 0À ¤€ ù$ L©C ç_€»~ ¹ &¤´.&Ÿ÷ 4÷ fƒøÿ×¢Ã׬÷ 4t$ç_€»4 ç_€» €` (ç_€»4].L÷ ð�CƒàÅeÀÿõ�‚øÿ� w¨÷ 9ç_€»&ç_¨"r4ÞÁ÷ ~´ ñ•wTÛ*ç_€»4 L©C ç_€»~ €` ç_TÌê_�.÷ 5×-1æþÿæÿÿŸ×š"4�.|õ 5 5Ÿþÿf÷ …ޤ‡Ÿþÿ…° 9€a›.¢Ž´‡1 ‡3 3 s ó @_! 7.Èìô3 ³ Á fæd÷ ñÖ ³m  ©: "Â.îûAN‡À4"àð p &æF= N4 (F‹.÷ Ö ÷ ‡ ñ¨Äô¥ñ ל:mm 9€p:¨Æ.:Àð…3w$ý3 ³ …wøü· .©: ¯”imR@(Bœ:mmh0Ú©: h¯”®÷æ.æþÿŸþ% f…µ� …ŸþÿŽ6 H$&‡Ÿþÿwöeþ&6 ‡” imR&nóœ2¸ì¸�ÌÄÌÊ9Ê" Ì.Ì L/P 1 PARITY ERROR L/P 1 NOòT READY úïú L/P 1 ABORTED„ Ú¢&ª.¢& ª .Ó.&f¦æ&fæêôæìô€÷ º 7¬k.8ŒÿÄŸìôŸêô…„ƒ‚�€Ž‡œ™.^— ÂÉ Ä çÄ ä÷ hæþÿŸR.�÷ Áöÿð̵; L©C L©C $9mHн.&ñ•Šþÿæ& & ÷ ~ð‹�÷ ~ŸÊ•( €` €}ç_€»~”f�"ç_€»~Ÿ.Lñ•Á À À ppÖ ·•þÿ‡Ÿ. €` ú&àyÉ2Ú;K}É2Ú ú&ày&þÿK.r…CÀÿÀð‹€ Á B¤ �� [”f� "¤l.˜ÁE€ÿÂeö€ êÎ AÆ çÍ•\.¾AwFŸ�ÁE€ÿ�AœÁEÿC – ë_F �H£ .äÃð Ç O`ºú‡7 ´ú‡ÔН„:ïßܘßàš‡ˆ Üýó.¤œ¯”(äb; h¯”š÷æ. 12345678 &=':>@9 0/STUVÞ.&WXY _,(%\"Z -JKLMNOPQ $ó.L*];^R ! ï.r +ABCDEFGH .)[<#I ê.˜ ? “.¾ P$ä tó „È :&÷ ¦÷ ž²ìô ö%a  @z(d�fTz(€ƒ±�.ªÄ´Š0 ó $Ÿþÿ ð¥ð  L©C «:<}Ñ.Ð ¶Æe…„ƒ‚�€& ÷ w0X 9mQŠ$€}û.öŸþÿ£ˆ ŸþÿÄ�³ Ÿþÿs3 3 0 &v.³s3 ÷ ÖÂ÷ îŸ÷ ô ÂÉ; €M..Bw0w  Åó MœÂ¦÷ €@$ þv@[qj"&¡ Ö A÷ TŸ“þÿŸ�þÿ¾Ÿ�þÿÍ÷  Çç_€»T. w ÁW  æþÿŸ÷ ~Ê•Ÿ•þÿw � ̵; [gÐ4L©C ç_€»~¿ 0‡8hf€pë_Ð.�Žæþÿæ÷ ~² —¢Ê•ð‹ ç_€»~&”f�.&€wrÀ ¤Ãeäÿ3 ææþ÷ Ö ñ•ü"ê_r ¤ imR( €` Ô.LÖ wTÊ•ð‹èô�6 æþÿ@œ÷  ¼"ç_T”f�$’è€(ç_€» �.r € ÷  ü¢.,8^¯”hf€p@[gÐ4@(ú{.,8^hBü \}h©€ph$®€ph&º€ph"F4[Mh\‰wqh(¯”¿÷æ.Î.&÷Eð„÷U0~÷Eÿ|÷Uv÷Eðj÷UP6.Ld÷Eÿb÷U„\ ÷EðP÷U@J÷EÿH÷U„£.rBw À¦ÿ7  ÿ7МÿŠÀ   D € [gÐ4"ö.˜„  ‚ Â5øqÑ W !îÄ5 îƒ x Þ. ­L"¯”(ÀÌ2€ÔhëyÐÀh$ ¯”‘÷æ.d2¤_ (¤$&€1 ¤E,¤ælˆˆ|~˜ ¼+ ¼ ‡ ó¤�fSzÞ.hìôÁ÷ ˜å÷ ŠÂ÷ ¢÷ ¨MæÜ ; €M¯.ŽþÿŸ2 „Äe¡ ¡ 2ÈŸ["m.´þÿÄôŠ&÷ ¬ æ& 1«:<}Tq€$ƒ.Ú÷ Ö fæ&æ÷ ƒ…ÂÂ÷ æhƒ…4f›:à_ §.Äò Âe(¦÷ €ìô^ �fSzç.&÷ Âð wVÿs³3 3  ¥ð‹Ä¤ÄeäÿŸô ¶ „ ç_€» ”f� ¤5.˜Úô•ÿÿ Ÿ“þÿ&÷ Ö Á ŸDÊå2 ¯¼M:É2Úe.¾� ñ•à &÷  æ÷ 3·—¢…â$ €` �fSz;K}�fSz";K}ô(ä � C÷ & fæ€ðйw\2 ¥ñ& ç_€» ¹ç_\ì_<.�Žæþÿ@œ÷   € ÷  üŸ„Ÿ“o’è€ç_€» ç_€» Ä.&þÿðÄE€ÿ!Ê•wTð‹�Ê•Á D+ç_.¾÷ ^ÿêƒÂíVÿ‚ ÂÂÝNÿ·Nÿ÷EJÿ„  ƒ Ã5äúqw ‡÷U.ÿùò hf€pó§.ër\M¯”�H£@É2Ú@49@Ì.«:<}@ee;@”f�@;}¸G@’è€@. €` @ë«s'@(@\MÌ2hër\M(œÁ¯”‘÷æ. Èdè ër\MÈ (ër\MÅ&Àër\Mà Á1 È!.Ȉ÷t ÷† ÷n æŽæF&ˆæB!ˆ÷ ŽF$BG.îú æà ˆ÷Hî æ¨$(; €Mð.Ls3 ÷ Î÷ ª÷ ÒM÷  3 æ¸÷ i  $¸(œ:mmÉ.rÖ M³ ó%÷ X÷ z÷ ¢MæÌ÷ t &̪.˜`ñwèþæä÷ N÷ V3 ĸ&ôÌçä"¸(Ìæ.¾æd÷ Ö MC fÁÂæ÷ €! ©: "&�fSz.äìô÷ Ö …ÄÅ÷ ³ ×,´¥ $D. æd÷ Ö ‡ðÖ …wfþæ&ff& B  ©:©T”f�(É2ÚZ.L&÷ ä„wð‹ì€ ðйèw æêôæ». ç_€»äè_”f� ¹"[gÐ4&êôX.rêô€æ œ �Ö ·ìô·êôw އ&W þÿ¬êô €` ìôêôhf€p.˜öð•÷ Tÿ€°•æ÷ â6  €`  €` $è_J ¾ð?í_š.æþÿÁe8f÷ Æ�DÁ ÷ ŠŸ—¢bô —ç_€»Æç_€»ŠI.&ÐÿÊåò ÊeŸ“þÿÄÿ�ÃÿÁ ÄeÀÿ£.LwîüEÄÿ4�ª.¡(xx¯”(@¡(xxh¤(ÀD(nÀ¯”‘÷æ.@2À (¤(ÀDÙ&À¤(ÀD  ç d….dv ž vj.Š î° ¤ ¼-.¼û Úû«à ˆÀKÁ¢Â:ˆô à Hà K ¢ .ÃHã ã ã €  ¢,× G÷‚’õ)H"G.:æBf&ˆCCTQ$äÀ¢Áå¦� � � w7 SB¢¦ë.`è Á 7Ü 7Ú æB ˆ÷ Ê ÐÎ ÐÌ ïÄ  BŒ.† ÷ ¬ ÷¢ì÷àä÷Lð÷Lü÷ â 6÷ Ï ¢LL2.¬ 3÷ ºÈ È ó"ðò· ¤È ð‹H.ÒP)Åå眗 ÀeD zô6®$ô&(6+¬ r.0ÀÅAaÁes!B3  DÔ! ! á T.V3 ³  Ä% !3  ÷ ^Ä• Îåý~.|÷ R … s!ßÀ5Е sÀì„ Ö "c.¢…�€Ö ‡3 ³ Ä ÷ êÎ5øÝãœ.ÈÅ êÄÕ¶ 6 & „`“3 Ž Ö ‡ð¥Ô Á.î ‡ð¥ùćß@ê‡Äê& ….Ä5 Ä5Ä5Ö ‡– ‡Ö ‡ó Ê ­Ãÿð‹�À ¤€ f&Ÿ÷ 4a$ç_î”f� ¤(ç_€»4/.r÷ Ÿ�þÿ…øÿµ-ò„�C…àt‘ÂÿÂò ç_€»F.˜#À À Ÿ &÷ „&÷ 0Ê•Ü@z(d;K}�fSz$;K}a.¾ñ•Á 1Ÿ“þÿ� Ä,t&÷ wTÊ•É( €` É2Ú ,"""ø€&ç_TÑäôð‹¥€ ðй¡z ”f� ¹î_.æþÿÁe8f÷ Æ�@œÃÿÀ  BÜÂÿl¤ „‹ç_€»Æ "¤®+ Úú âÿÿ â(âÿÿö TASK F<öÓ&û³ –. æ¼)ˆæä ˆæd ˆæÈˆæ¼+ˆ÷I’ û攼 ädȼø.FȈæˆ÷%I’Êýæ¼,ˆæ¼*ˆˆæp ˆXÈ ¼¼&p¶ lõ‹ pt.p‚ ** PROTECTED F ‚Y–ILE MODIFIED *¯.øÖÖzÄ ÷ 2 Ä ÷ * Ä ÷ " wž÷ ôMÖÖzª.÷j`÷ ¦ÕÄ€÷  ·÷ ñµ .D÷  D÷@:÷ |À­ 7(1-¶†$.jt²Ä÷ ¾ ñµ÷ À ôµ.�ôÕñÕ÷ ¾D÷ P–÷ ˜’÷ þX.¶�ÄLÄe Äe ô¥ú÷ `7¶Ô Ôž– L‰.ÜÔ.ˆ‚ĦÄe 7!®#ƒ×"ÿÿ÷Ì"ô,.ÃeôôHôÁx'  xI.(°3s $Ê.:  ê÷ Ôúß ê êßêßÈê¦ �.`ĸôÌ&æd÷ Ö ‡fÄÅBĸ Ì©:  ‘.†ÀåÄÄ Ä Ä Äe¶0ð0ŠÈ&÷ D ¶#.¬…À‡ÃwÃwøÿÃwðÿÃZ9€a ¾Ä.¾ÅÀ@aAa… !B@Á…Âw¬ü êq  y.ä‡f  ÅCqBa…à ‡„fŤæþÿŸø "¤*. ±«.&—¢Kô¥Gñ Ðÿ:ff÷ ƒ×tüÿÅ €` @z(d|.Lñ ñ`$Ñ Gƒ�À Ä Ÿô„ Ê‹� & É2Úá.r÷ Þð±€ € 1�2 ô•Ê•ƒ;K}�fSz;K}& €` ä.˜wT ððñÅ 5f÷ ô•.ç_T ú&ày;K}ú&ày  &""ø€Ï¾€ D�Ÿwu €` è_ï_.± æþÿB�÷ ~Åuf÷ Ÿñ‹fç_€»~ *›ó³÷ 2Äx÷ ÂÚ7 F÷• ÀL7: . x"L×.N×-.@7 &7ŠìÿÀe 7 $/†œœ.tW Á èµ 0 0  ÃeÃE.šðæ÷`à7âÒµ ÃÖð0l¬.ÀÆ0Â÷ æà ˆÀFÁ¤Âˆæ!à F ¤[.æBˆ a( ùˆæBˆ7ª æBˆ7¤ ÷\«BBB(\.  ÷ ÀL7 j÷• ×-Z@7 R¼  L….27ŠìÿÀe 7 PN†œÁ 'W éæõ 5 Ÿþÿf÷ …ޤ‡Ÿþÿ…Ž´! 9€aŸ0‡1 ‡· Žú‡7 ˆú‡;ð°„:ˆ  ßF€ßà‚÷ ÷ à‡F FàHóµ$""ø€’ &ñ•wñ•ýÿwTI(«:<} €` è_ €` ç_Tãç_€»e. ÅÜœÇÊCa‡�öÿfÑQr úÿ�Ÿ�H£ Ç€.&üÿröÿ�°Š¹‡�øÿC DEr úÿ�üÿrà ¹.Løÿðй‡É•…ÊÅÊÕEõ•Å f÷ ø ¹ €` &É2Úä.rpƒ5 … ‡Á f÷ \„�À  ÝÂÿl1 É2ÚÉ2Úë.˜¤� € ‡à ¤ …… r —¢ÂeC¶.… d¯”{7@a,È}@é.R@�.hf€p@[gÐ4@(¢s kMhJt 4!h€@&u ²Zh¬y üXh2 Ödhð¯”5÷æ ó å(@‡ ¤E¤@ 2¶.2w …÷ òõ‹1Á¤! Á%$ü‡÷¸þ¬[gÐ4¤ $&Ò.X÷¶þ÷•µþ÷ ¶þ÷ $÷% –þ÷ ¢þÇ Ô·(&'ˆü $(’.XÃ6÷ ¶÷• º ¼÷•M¬ ÷– ¯ 6&G.~÷ �ÏæÏ&'ˆ÷°‚ ÷ |Åæý&'ˆl ϰ ý÷.¤Ã ÷ nDÃ÷ `B‚ A w`À ļ ÃŒ Ž.Ê÷ J÷ø> ÷ 8£7 À Ä€÷ N÷6$ Ð ø&63.ð÷ ÷\ æ`&'ˆ÷ Àe 7 ’ õ‡÷0Öå \`&0….æà ˆÀd ÀeÀ € ÀE€€ € € € € € €  à ý..É2Ú¯”Ì` @#H:@ô&¬ @Ñ.:dÀÁ@²dÀÁ@Ùf@áy s@€ØY@f.(@É2Úhëy(ëyàyh¯”ö÷æ,2,€ØY‚ Ùf áy s #H:Ì` ²dÀÁð$À ëy:dÀÁëyØ ò ô&¬ ó ¤ ¤i.¾ô ‡¦÷ ÷ ¶÷ìôêô÷å€êô‡œ@z(d�fTzìô êô&êô©ä¦òRóº.~õÂ$RÒ Ò ’$ÒV¯ÒÜ…åw,Q  $Â.¤w8w8w …÷ xa÷‹iþ\�÷  È‹  [gÐ4.ÊÈ•þÿË÷•Ïþ÷ ¶ãÂ$À�Bþ7Âþ²$(²Ó.ð÷¤þ÷¤þ÷•¥þ÷ ŒlÁ�þÁEøÿÁ Á Á J¤ ¤‘.Á �`D%ñ•ÿÿþÿ ÷ ‘•‘•‘•÷ ‘•äé.R&a,È}\.<‘•‘•Ìæý ÷Õ€ÙýÀ ÷•Oþ÷ 6A÷Ò (².b¬ý÷ªý÷•©ý÷ 56w\wZw …a»<À À À À À À À $7B 7@ Àå 7 7 < 7 Ã.b ÷ ÷ ÷p( ÷€ìæŽæF&ˆ÷•¢p Ž$F.ˆ¿æBˆ÷ ¬.À°7Æ`wÜ wì ÷È Â  B–.®Ì ÷¢È ÷ŠÔ ÷ Ê]÷ >`pú÷Ä ¢Š‡.ÔÀ &÷ ʸ —   z쪈ÂÄ÷ Ûìª ˆ"‰.ú<Ä ÷ 4÷ º9@BÀåÂåõÂEüÿ ¡. Ž`‡÷ < B”„ÄE€ÿC”Ãå÷B Ãm\ ÅD &.F!÷  !ÀÄ .;}5J¯”Ì` H€#H:H€ô&¬ He .¤:L;@?TÈ@²dÀÁHÙfHäfÎ@(.ëyày@òy‚@€ØYH/(ž :dÀÁhðîáy sh¯”°÷æ wìn ðÚðˆ÷•÷÷ * ¤:L;¤:L;¤:L;¤:L;?TÈj  æ ˆæ0& & & ˆÖ ˆwäfΤ:L;Kó½.;}5J¯”Ì` H€#H:H€ô&¬ He .¤:L;@?TÈ@²dÀÁHÙfHäfÎ@(.òy‚@€ØYH/(@É2Úhëy(® R.:dÀÁh áy shdëyàyh€¸yh¯”>÷æ./d€2…ö ëyd (ëym&   ëy ëyå e� d… dw˜^  É ˆ÷•¾$[gÐ4Þ.ˆ÷ ¤&÷ 6ȋȕþÿË ÷•þ÷ è÷[.®^ý÷\ý÷•[ý÷ Ð�Š�Š�Š�Š�Š�Š�й ±.Ô�Š�Š�Š�Š�ŠÍ ôw Ž7Šý‡w …÷ hf€p"[gÐ4%.ú4î÷ Æç·Šý€÷ŠýÛÈ•Àe5 5 y. Ë ÷•}ý÷ dØ÷Úü÷Øü÷•×ü÷ Li�.FÌÍw …÷ ÚÁ÷ lºÈ¥È¥ÿÿ°p¾  [gÐ4.l wm ´ü÷Å€«ü·Š¦ü÷ÿÿ ü ÷µ–üá.’· ¿|^€ô*J^®&^€ô "$*&J(^Ð.l€¤Ú€*J^w€Ä÷ °Âú ÂeÂe&€¤Ú  €*J^ê.’ · ö ñ†—¢øÂå·Þ ‰÷ º ‰ÀåÑ 7¨.¸à Âà À R”ü7 Î ÷ 6ÿøwJÿ÷€.Þ¸ ÷° wìþÄ÷ DDDm÷ xÀå†.DQ$÷ œ÷ fÀåw¼þ÷ Ì Dd÷ RÀåõ™.*÷ ºDQ$÷ pDá÷å & ÷ 2ÀååD÷ XÆ.PQ$Dd÷ ÀåÛ÷ †D÷ >Q$DdDá÷å ð C.v÷ üÀåÀ.’M²Z¯”̵;@4Þ@; €M@·.€}@›:à_@œ:mm@©: @«:<}@Š._M€Q@YeÞ@�fSz@�fTz@9mQŠ@`.�m„@Tq€@þv@@@z(d@€ƒ±@Þ.9€a@ƒ…4f@L©C @(.�Mp&h"ˆ.�M€Wh(’M²Zh”Mè€hÊð°„:(‰MüXhe¯”‘÷âÞ ¤è¤¸÷÷�* ¤:L;¤:L;¤:L;¤:L;?TÈj  æ ˆæ0& & & ˆÖ ˆgäfΤ:L;KóÂ’ü÷Š‹üŠ÷•uüà ÷•ùü÷ à–÷R (².¸Vü÷Tü÷ Î�ŽÀ4¢ 5$ 5$ þ4¢Â.Þ5¬ ¢þÿ¤‡Ð Àe  ì‡À²Â0ƒ V"²&0À.×  ‡÷¤üû÷¤úû÷•‡ü÷Šü÷ jÔ}.*Ö w°þ ÷‹Êû'·ŠÄû7 àûÀ÷•ÏûHw» ¾.PPü7¸û7¸û÷ 2÷%¤ûß,V¯,›.vÜ… ‡À‡Ö wBþÖ wJþæ÷ õÝÜ"&{7ºœnûÃÊDQ$÷ 37ü Àå7 Ð W-.œ· Ä DDdÄmÄ 7¾ 7 ä Àå¬É¥©°.ÂÉ¥¦DD]é÷Fš å ÷ –÷eš Ä�.èš ÷ ˆ’Ä÷ @Ä÷ 8÷@b÷•S÷ '.€À\ € Àe=ŠÀ€ &Ä÷":7Š/÷ \6.4À„ÁÐ Ãe@ —r@°L~·Š÷ – „X.Z4ÁW p;W 8Â�— 2ò‹÷ øh "”f�;.€+ÀüÀí€ À5Ž Â ƒ¬ ÅÃE€ƒ#_ ¬ .¦Å �ÎÅW!W!ô w–Åĸ�¶Ú¶ÊOÊ" Ì.Ì L/P 1 PARITY ERROR L/P 1 NOòT READY úïú L/P 1 ABORTED„ Ú¢&ª.¢& ª .Ó.&f¦æ&fæêôæìô€÷ ¨ 7¬�ÿ.8ÄŸìôŸêô…„ƒ‚�€Ž‡œ— e.^ÂÉ Ä çÄ ä÷ VæþÿŸÈ 8.„&÷ ¦÷ Å ; FILE TYPE 6, LOG UNIT 1 $FD007 = 1 ; FILE TYPE 7, LOG UNIT 1 $FD008 = 1 ; FILE TYPE 8, LOG UNIT 1 $FD009 = 1 ; FILE TYPE 9, LOG UNIT 1 .IFL 10.-$FTMAX XXXXXXXX ; ONLY SET UP FOR 10. FILE TYPES .ENDC $OVTYP = 5. ; FILE TYPE FOR OVERLAY TASKS ; ; FILE TYPE SIZE TABLE - IN SECTORS ; .IFNZ DRESDI $FS000 = DIRAD1+DIRLN1+$FTDRL+$CDI‡]óǺÅE€ÿW!,.Ì „ „ „ „ „ „ „ ÷ X÷�šr7pæP*ˆÃ�ß $Pn.ò^Ã% êæP)ˆ÷‹Lçw ÂÀ< Â@7Šx P‚. E7H÷8÷ hw:·,·Š+÷ X¤7 D2.> ëw w ’‚ ±�1Š1б•Á Àö÷‹ôF’è€ €` «:<}�H£î.d €ÀêÀU€11 � w wæ÷ R*49É2Ú;}¸G ;}¸G$ë«s'(ee;.Š ÀèÁ¢æB!ˆ7 ®w¦w¤Q$À ôw÷,€* ¢BÏ.° (€(€(€ € €È²ìô ö%Ä @z(d �fTz"€ƒ±µ.ª´Š0 ó #Ÿþÿð¥ð ¶%L©C «:<}ã.ÐÆe…„ƒ‚�€& ÷ w0Ÿþÿ¥ˆ h9mQŠ€} .öŸþÿÄŸ³ Ÿþÿs3 3 ³s™"&.3 ÷ ÈÂ÷ àŸ÷ æ Âw"w U ; €M(þv@�.B ó MœÂ¦÷ €ìôÁ÷ :�fSz&•ÉSZ+$TKFNS .ENDC .IFZ DRESDI $FS000 = $FTDRL+$CDISZ+$TKFNS .ENDC $FS001 = 300. $FS002 = 300. $FS003 = 300. $FS004 = 300. $FS005 = 2500. $FS006 = 300. $FS007 = 2500. $FS008 = 300. $FS009 = 300. ; $ALOD1 = $FS000+$FS001+$FS002+$FS003+$FS004 $ALOD2 = $FS005+$FS006+$FS007+$FS008+$FS009 .IFL 8192.-$ALOD1-$ALOD2 XXXXXXXX ; ONLY 8192 SECTORS AVAILÊÀ ¤€ f&Ÿ÷ 4a$ç_î”f� ¤(ç_€»4/.r÷ Ÿ�þÿ…øÿµ-ò„�C…àt‘ÂÿÂò ç_€»F.˜#À À Ÿ &÷ „&÷ 0Ê•Ü@z(d;K}�fSz$;K}a.¾ñ•Á 1Ÿ“þÿ� Ä,t&÷ wTÊ•É( €` É2Ú ,"""ø€&ç_TÑäôð‹¥€ ðй¡z ”f� ¹î_.æþÿÁe8f÷ Æ�@œÃÿÀ  BÜÂÿl¤ „‹ç_€»Æ "¤«.Ë € €,€,€,€&æ¦f,.Ö &MÖ €�‚ƒ„…Ć ¥ÄÄmvÄm.ü ‚‡×-œ‚‡Ä÷ &&ÀL7 r‡€Îe3 L5." ‡ð¥Àe ò#û0-÷€‡&o.H ]ÀLÀ,7 B‡€‡#0-Õ Lƒ.n ð¥ ÀEßÿ7à€Îe‡Àe ãó.” ÷ ®ÿ‡ô¥ûÎe‡÷ šÿ!‡&Àæ9.º ÷e Ø÷ 4ÿ€‡w úþÄ´÷ R”Á.à ”””÷ ÿw ìþ‡Ä÷ @w ÒþĈÄe ³Ì.hŽç÷ €Â÷ ˜÷ žMæþÿŸ20; €M"(^.Ž„Äe2ÈŸþÿÄôŠ&÷ ë  «:<}(Tq€Z.´¬ æ& ÷ Ö fæ&æ÷ ?ƒ…4f&Ñ.Úƒ…ÂÂ÷ äÄò Ò (¦Ú›:à_ (T.÷ €ìô÷ Âð w`ÿs³à�fSz&.&3 3 Âs3 ÷ Î÷ ª÷ ÒMy Í.- 1/2 MEGAWORDS .ENDC ; .IFNZ $BATCH $BCHID = NDISCS+$SYSFL+1 ; FILE ID FOR BATCH FILE $BCHTP = 7. ; BATCH FILE TYPE $RASIZ = 200. ; NO. OF ENTRIES IN USERS SYMBOL TABLE ; ; IN RASM ; ; NOTE: 4 WORDS/ENTRY $LSDSZ = 1000. ; NO. OF WORDS RESERVED FOR LOADERS ; ; SYMBOL DIRECTORY (LSD) ; Î&—¢Kô¥Gñ Ðÿ:ff÷ ƒ×tüÿÅ €` @z(d|.Lñ ñ`$Ñ Gƒ�À Ä Ÿô„ Ê‹� & É2Úá.r÷ Þð±€ € 1�2 ô•Ê•ƒ;K}�fSz;K}& €` ä.˜wT ððñÅ 5f÷ ô•.ç_T ú&ày;K}ú&ày  &""ø€Ï¾€ D�Ÿwu €` è_ï_.± æþÿB�÷ ~Åuf÷ Ÿñ‹fç_€»~ $""ø€’Ï. 7!„ †­ #‚ô‡2-ðƒ7!`‚÷e Ä., XÕ&fÀhÁe  ‚�€÷e B÷e Nå.R ‡!!!!!ïw jþÁ @`� 7 .†BF.x  ýøw Xþ÷å ‡÷ î7 ÚÀæ7Öù.ž 7è· ä÷eÐ÷ø¸Îe‡÷ ÊÿM÷I øÓ.Ä ‚À×- ø‡÷ ¸óæô ˆ÷ >· Ž÷倂 øô ".ê €À|Áøà÷‚ŠÁ 7fä?¤|õ· { ø‚0. v÷5pò”Ћ#BÁåw>”Â`Á ü‚Š.Ð ; €M.L÷  3 æ¸÷ Ö M³ ó%÷ X; ¸œ:mm"Û.r÷ z÷ ¢MæÌ÷ `ñwòþæä÷ N÷ Ì"ä .˜V3 ĸ&ô¶æd÷ Ö MC fÁ¦ ¸¶©: ¤.¾Âæ÷ €ìô÷ Ö …ÄÅì �fSz&›.ä÷ ³ ×,´æd÷ Ö ‡ðÖ t ©: . …wpþæ&ff& ÀÅAaÁes!B3 "Ñ ; NOTE: $LSDSZ MUST BE >/= TO ; $MXOBJ*7/2 (5 WO-DS PE- SY4B6L#D $MXOBJ = 20. ; MAX NO. OF OBJECT MODULES TO BE ; ; LINKED INTO ANY GIVEN LOAD ; ; MODULE. .ENDC .ENDC ; MATCHES .IFNZ NDISCS .PAGE ; ; TTYIO SYSGEN PARAMETERS ; NTTYS = 1 ;NO. OF TELETYPES Ò &ñ•wñ•ýÿwTI(«:<} €` è_ €` ç_Tãç_€»e. ÅÜœÇÊCa‡�öÿfÑQr úÿ�Ÿ�H£ Ç€.&üÿröÿ�°Š¹‡�øÿC DEr úÿ�üÿrà ¹.Løÿðй‡É•…ÊÅÊÕEõ•Å f÷ ø ¹ €` &É2Úä.rpƒ5 … ‡Á f÷ \„�À  ÝÂÿl1 É2ÚÉ2Úë.˜¤� € ‡à ¤ …… r —¢ÂeC ¤ Ó6 70@À5Ã"0”þÿà ü@À ÅÎe¾.\ ‡Ä÷ ÒÄ÷ ÊÄ÷ ‘ �Ä‘‡ .‚ ÄýÄ€÷ ª‡æˆ÷ ЇÄ÷ ’÷m2 ².¨ ðÄæÀÄè„#‡Ãe€ƒ#!‡÷•—÷ Äÿƒ .Î ƒ ÃE€ƒ ƒ ƒ ƒ ƒ ƒ ÄÃmf÷|7Šq÷ žÿÄ ô.ô Ä Ä Ä Ä Ä Ä 7˜ƒáÃej÷Ž‡æˆ‡—j$. Â#‘ËÅøËÕ0„ ÄE€„ „  ô‡w ’üÃZç (Z](@ Â÷ Öÿ÷Jžæà ˆw ‚ü€‡w*üµJà à ˆÔ$].0 DÔ! ! 3 ³  Ä% !3 éi.V ÷ ^Ä• Îå÷ R … s!ßÀ5Еò¦.| sÀì„ Ö …�€Ö ‡3 ³ Ä•  &=.¢ ÷ êÎ5øÝÅ êÄÕ¶ 6 & „`š.È“3 Ž Ö ‡ð¥ ‡ð¥ùÄF ×.î‡ß@ê‡Äê& Ä5 Ä5Ä5Ö ‡.– ‡Ö ‡ó Ê 3  ê÷ êúß êÏÊÕ ;IN SYSTEM SYSTTY = 0 ;LOGICAL UNIT NO. OF SYSTEM ;TTY DEVICE MSGBUF = 0 ;MESSAGE BUFFERING OPTION: IF 1, ;DISC MESSAGE BUFFERING VERSION IS ;ASSEMBLED. IF 0, CORE VERSION IS ;ASSEMBLED. DISCUN = 1 ;LOGICAL UNIT NO. OF DISC TO BE USED ;FOR MESSAGE BUFFERING DBUFSZ =¤i.¾ô ‡¦÷ ÷ ¶÷ìôêô÷å€êô‡œ@z(d�fTzìô êô&êô©ä¦òRó×à ò ô èô jajEÆ ¿\G\0,.0x xXVt jpj€å xax@ Ò. ROSLOD IIA # ROSLOD PASS #1 §.,END Øã.: êßêßÈêĸô¶&æd÷ Ö â ¸¶&©: ~.`‡fÄÅBÀåÄÄ Ä Ä Äe 0ð£ "  .†0ŠÈ&÷ …À‡ÃwÃ49€as¬wøÿÃwðÿÃ¥ ¨<.¨ÅÀ@aAa… !B@Á…Âw¶ü ê}  y.·f  ÅCqBa…à ‡„fŤæþÿŸ "¤*.ôõ 5 Ÿþÿf÷ …ޤ‡Ÿþÿ…Ž´8Ù 1 ;NO. OF 64 WORD DISC SECTORS ALLOCATED ;FOR BUFFERING OF ONE MESSAGE ON DISC FILESZ = 20*DBUFSZ ;NO. OF SECTORS PER FILE NTRYS = 3 ;NO. OF TRYS TO OUTPUT A CHARACTER ;TO TTY TTOTIM = 15. ;MILLISECOND COUNT FOR TTY ;OUTPUT TIMERS TTITIM = 15. ;SECOND COUNT FOR TTY INPUT/OPERATOR .©: ¯”imR@(Bœ:mmh0Ú©: h¯”®÷æ.æþÿŸþ% f…µ� …ŸþÿŽ6 H$&‡Ÿþÿwöeþ&6 ‡” imR&nóÛ ROSLOD PASS #2 BEGIN ERRVROR # w \|.\P **** ROSLOD LOAD MAP **** **** LOá‚AD ELEMENT [% ŽJ.ŽLODTMP] **** / / : C.´********** ELEMENT TITLE: [] SEC¸%ÚTION ENTRY OFFSET SIZE TOTALm øà.ø<> ñ. "**********�.D UNRESOLVED R 9€aŸ‡1 ‡· ¤ú‡7 žú‡%ð°„:ˆ  ß>€ßà‚÷ ð÷ ʇ{ >ðÊ}óÝ ;RESPONSE TIMERS TTWTIM = 240. ;SECOND COUNT FOR WAIT TIMER NWUCH = 5 ;NO. OF CHARS TO BE OUTPUT FOR ;WARMUP OF A TTY UNIT EOMCH = 33 ;ALTERNATE EOM CHAR (ALT KEY) EOMOPT = 0 ;EOM CHAR OPTION WHERE ; 1 = EOM IS FOLLOWED BY CR AND LF ; 0 = NOT FOLLOWED BY CR AND LF EOMPRT = 0 ;EOM PRINT OPTIONÞ .TITLE $$TEST (DISCIO TEST) .GLOBL HED4,STK04 ; HED4: .WORD 1,4 .BYTE 20,2 .WORD START-STACK+100. .WORD 0,0,50.,0,0,0 .WORD 7006 ;PDR'S .WORD 77406 .WORD 0,0,0,0,0 .WORD 77406 ; STK04: .WORD STACK .WORD 0,0,0,0,0,0 .WORD 7600 .=.+12. .=.+100. STACK: SP = %6 ; ; START: MOV #MODULE-STACK+100.,-(SP) EMT 19. EFERENCES K.j ¯ `)�@ B”BŒ óàEPEAT IF MORE ;CLEAR FREE CORE: TM.IOC: RESET   ;FOR SAFETY, STOP ALL INTS CMP @#100,#374 ;MUST RESTART CLOCK ... BEQ .+6  ;IF VECTOR NOT SET, NO CLOCK MOV @PC,@#177546 MOV R5,R4  ;SET 2ND SVT PTR ADD #V.BFE-V.DCO,R4 ;ADJUST PTR .... MOV @R4,R2  ;GET 'REAL' RESMON TOP MOV -(R5),R0 ;ANY ASSIGNMENTS? BEQ TM.ATC CMP R0,R2  ;IF SO PRE-LOAD? BNE TM.ATC-2 ;NO - MUST SCRUB TM.SAT: TST @R0 á WHERE ; 1 = EOM IS PRINTED ; 0 = EOM IS NOT PRINTED EOLCH = 12 ;CHAR BEING USED FOR END OF LINE ON ;TTY INPUT ECHOCH = 40 ;ECHO CHAR -- CHAR OUTPUT FOR NO ECHO MRCH = 25 ;MESSAGE RESTART CHAR (CONTROL U) LINELN = 72. ;LINE LENGTH: NO. OF CHARS TO BE ;TYPED IN A LINE .PAGE EMT 4 ; .BOUND MODULE: .WORD 1 .BYTE 1,3 .WORD TSK4X-STACK+100. .BYTE 0,1 .WORD 0,0,DATA-STACK+100.,0,0 DATA: .WORD 3 ;FILE ID .BYTE 1,0 .WORD 0,0,0 . = .+500. ; TSK4X: NOP RTS PC .END ãHE POINTERS WILL ; BE REPLACED BY THE ELEMENTS CONVERTED ; TO THEIR FINAL FORM ; ; FURTHER ERRORS MAY BE UNCOVERED DURING ; CONVERSION OF OCTAL VALUES. THESE WILL ; BE REPORTED BY KBL RECALL AS SHOWN FOR ; PART 1. ; .BYTE 0,-1  ;IN USE/NO SHARE SW. ;SET UP FOR CONTROL SUB-ROUTINE: AS.CO: MOV @#V.RRES,-(SP) ;GET CALL REGS FROM STACK JSR R5,@(SP)+ CMP (SP)+,(SP)+ ;IGNORE CALL RETURN MOV SP,R0  ;GET BOTTOM OF TABLE ADD #16,R0 JSR R5,AS.CVT ;GO CVT ELEMENTS ;ä ;FIND END OF SECTION BEQ TM.ATE  ;... BY ENTRY SEARCH COM @R0 BEQ TM.ATE COM (R0)+ MOVB 2(R0),R1 ;NOT FND YET - GET NEXT ASL R1 ADD R1,R0 CMP (R0)+,(R0)+ BR TM.SAT  ;... & TRY AGAIN TM.ATE: CMP R0,R2  ;IF END ALSO AT 'REAL' MONTOP ... BEQ .+6  ;.... TABLE GOES!! MOV R0,R2  ;OTHERWISE SET MONTOP AT END BR .+4 CLR @R5  ;FOR POST-LOAD, CLEAR PTR TM.ATC: CLR (R2)+  ;CLEAR LINK IN ANY CASE CLR (R2)+ MOV R2,-(SP) ;LEAVE ROOM FOå ;*********************************************************************** ;* ** ;* SEGMENT REGISTER ADDRESSES REQUIRED BY THE PROGRAMS WHEN ** ;* IMPLEMENTED ON AN 11/45 OR 11/25, EITHER WITH SEGMENTATION. ** ;* ** .IFNZ $KT11C ;* ;* K E R N E L S E G M E N T R E G I S T E R S ;* $KPAR0 = 772340 ; $KPAR1 =æ... BEQ .+4  ;... DRIVER REQD. ASL R0 ADD KBI.DU-4,R0 MOV (SP)+,R5 ;SET UNIT/FUNCTION BR DU.ND1  ;GO OVERLAY SELF WITH ACTION RTN ;ERROR IN INPUT - IGNORE COMMAND: DU.ER1: ASRB @R1  ;ERROR CODE HERE -3 (SYNTAX) DU.ER2: ADD #6,SP  ;CLEAN UP STACK AS NEC. DU.ER3: CMP (SP)+,(SP)+ MOVB @R1,R1  ;RETURN ERROR CODE CLR R5  ;SET DONE FLAG INC DU.ND1+4 ;SET UP KBL RECALL .... V.RRES=46   ;... & DROP THRU TO IT V.DDL=50-4 .=.+KBI.DU+376-. DU.ND1: .=.+KçDESPATCH TABLE FOR ELEMENTS: .WORD AS.CVD-AS.CGO ;RAD50 PACK DEVICE .WORD AS.CVU-AS.CGO ;OCTAL CVT DEVICE UNIT .WORD AS.CVF-AS.CGO ;RAD50 PACK FILE (2 WRDS) .WORD AS.CRP-AS.CGO .WORD AS.CRP-AS.CGO ;RAD50 PACK EXTENSION .WORD AS.CVC-AS.CGO ;SPEC. FOR UIC .WORD AS.CDN-AS.CGO ;RAD50 PACK LOG NAME & XIT ;CONTROL SUB-ROUTINE FOR DESPATCH AS REQD. TST (R5)+  ;ALLOWS OMISSION IF NO CVT AS.CVT: MOV -(R0),R1 ;GET TABLE ENTRY BEQ .-4  ;IF ZèR NEW ASSIGNS ADD #1000,R2 ADD #V.EOM-V.BAT,R5 ;SET EOM ABOVE THIS MOV R2,(R5)+ ADD #40,R2  ;RESET TOB ACCORDINGLY CMP R2,@R5  ;(UNLESS ALREADY THERE!) BEQ .+6 MOV @(R5)+,@R2 ;... WITH APPROP STACK STOP CLR @-(R5)  ;... & OLD ONE CLEAR MOV R2,(R5)+ ;CLEAR BUFFER ALLOCATION: MOV @R4,R0  ;SET PTR TO ALLOC. TABLE CMP -(R4),(R5)+ ;... & ADJ PTRS CLR -(R0)  ;ZERO TABLE ENTRY CMP R0,é 772342 ; $KPAR2 = 772344 ;KERNEL $KPAR3 = 772346 ; PAGE $KPAR4 = 772350 ; ADDRESS $KPAR5 = 772352 ; REGISTERS $KPAR6 = 772354 ; $KPAR7 = 772356 ; ; $KPDR0 = 772300 ; $KPDR1 = 772302 ; $KPDR2 = 772304 ;KERNEL $KPDR3 = 772306 ; PAGE $KPDR4 = 772310 ; DEêBI.DU-2+KBI.OZ-. ;DUMP PART II:- DUMP DEVICE DRIVERS: ; ;ON ENTRY, PART I REGS ON TOP OF STACK GIVE:- ;  R1 = START OF DUMP AREA ;  R2 = # OF WORDS TO DUMP ;  R3 = DEVICE INDICATOR ;  R4 = TPB ADDRESS (FROM KBI) ;  R5 = UNIT/FUNCTION REQD. ; ;ON SUCCESSFUL COMPLETION OF DUMP, KBL WILL BE ; RECALLED WITH R5 CLEARED, R4 STILL SET TO ; TPB ADDRESS AND R1 WILL BE POSITIVE ; ;IF DUMP CANNOT BE COMPLETED THRU ERROR, RECALL ; TO KBL WILL HAVE R1 SET TO AëERO TRY AGAIN MOV R0,R4  ;OTHERWISE LOOK FOR ... MOV -(R4),R2 ;...NEXT NON-0 ENTRY BEQ .-2  ;GIVES END OF ELEMENT DEC R2  ;ALLOW FOR DELIMITER CLR @R0  ;EMPTY STORE FOR RESULT MOV #3,R3  ;SET COUNT MOV (R5)+,-(SP) ;SET UP CONVERSION DESPATCH ADD PC,@SP AS.CGO: JSR PC,@(SP)+ ;... & GO DO IT TST R5  ;IF SATISFACTORY ... BNE AS.CVT  ;... GO TO NEXT ADD #20,SP  ;OTHERWISE SCRAP TABLE MOV #-3,R1  ;REJECT COMMAND BY ... INC AS.ND2+4 ;.ì@R4  ;... & REPEAT IF MORE BNE .-4 ;DO OTHER SVT. CLEAN-UP: CLR @R5  ;REMOVE PROG LOAD ADDR ADD #V.MUS-V.PLA,R5 ;JUMP TO M/U SW. CLR (R5)+  ;... & CLEAR IT CMP (R5)+,-(R4) CLR (R5)+  ;REMOVE START/RESTARTS CLR (R5)+ CLR (R5)+ MOV R4,@R5  ;RESET WAIT LOOP PTR ADD #V.WTL-V.SSP,(R5)+ ;ENSURE DDL CLEAN: MOV -(R4),R0 ;GET DDL ADDRESS ADD #6,R0  ;... & ITS END MOV (R0)+,R2 TM.ZDL: TST -(R2)  ;IF ENTRY HAS DISK INFO BEQ .+6 CLR -4(RíSCRIPTOR $KPDR5 = 772312 ; REGISTERS $KPDR6 = 772314 ; $KPDR7 = 772316 ; ;* ;* U S E R S E G M E N T R E G I S T E R S ;* $UPAR0 = 777640 ; $UPAR1 = 777642 ; $UPAR2 = 777644 ;USER $UPAR3 = 777646 ; PAGE $UPAR4 = 777650 ; ADDRESS $UPAR5 = 777652 ; REGISTERS $UPAR6 = 777654 ; $UPAR7 = 777656 îPPROP. NEGATIVE CODE ; ;  ************************** ; ;LINE PRINTER DUMP ROUTINE: ; ; OCCUPIES FIRST TWO BLOCKS OF PART II ; ON ENTRY R5 SHOULD BE CLEAR TO SHOW WRITE REQD. ; PROVIDES FORMATTED LISTING WITH 8 WORDS PER LINE ; FOLLOWED BY THE SAME WORDS CONVERTED TO BYTES ; MAPPED AS NECESSARY TO PRODUCE ASCII CHARACTERS ; IN THE RANGE 40-137. ; LISTING CAN BE TERMINATED AT THE END OF ANY PAGE ; IF CTL/C IS INPUT AT THE KEYBOARD. ; IF THE FUNCTION REQUESTED IS NOT 'WRITE' OR ; Tï.. RECALL KBL BR AS.XT ;GENERAL ROUTINE FOR RAD50 PACK 3 BYTES: AS.CVD: CMP (R4)+,(R4)+ ;USED TO GET NEXT PTR CMP R4,R0  ;IF FILE NEXT, LEAVE PTR ALONE BEQ AS.CRP BHI .+4  ;IF UNIT MUST BUMP CMPB -(R2),-(R2) ;OTHERWISE MUST MOVE BACK INC R2  ;(BECAUSE DELIMITING VARIES) AS.CRP: JSR PC,AS.CGB ;GO GET BYTE ... JSR PC,@(SP)+ ;...& RETURN TO PROCESS BR .-2  ;IF COME BACK, GO AGAIN ;CO-ROUTINE TO PROCESS BYTE: ; GETS BYTE & RETURNS ð2)  ;... CANNOT BE RESIDENT CMP -(R2),-(R2) ; GO TO NEXT ENTRY CMP -(R2),@R0 ;... UNLESS ALL DONE BNE TM.ZDL ;RESTORE MRT. FROM DISK COPY: MOV R3,R2  ;SET SYS DSK IN LINK BLK ADD #6,R2 MOV @(R4)+,(R2)+ TST (R2)+  ;NOW SET UP TRAN BLOCK MOV -(R4),R0 ;...COMPUTE MRT SIZE SUB -(R4),R0 ;... AS WORD COUNT ASR R0 MOV @R4,(R2)+ ;SET MRT START ADDR MOV R0,@R2  ;... & COMPUTED COUNT CMPñ ; ; $UPDR0 = 777600 ; $UPDR1 = 777602 ; $UPDR2 = 777604 ;USER $UPDR3 = 777606 ; PAGE $UPDR4 = 777610 ; DESCRIPTOR $UPDR5 = 777612 ; REGISTERS $UPDR6 = 777614 ; $UPDR7 = 777616 ; .ENDC .PAGE ;********************************************************************** ;* òHE LINE PRINTER IS NOT AVAILABLE, KBL WILL ; BE RECALLED WITH R1 SET TO -4 TO SHOW ILLEGAL ; DEVICE. ; .BYTE 0,-1  ;IN USE/SERIALLY REUSE SWS. ;SET UP DUMP CONTROLS: DU.LP: MOV @#V.RRES,-(SP) ;RESTORE REGISTERS JSR R5,@(SP)+ CMP (SP)+,(SP)+ ;CLEAR CALL OFF STACK JSR R4,DU.LGO ;SAVE TPB ADDR & SET SUBR ;PRINT SUB-ROUTINE: MOV @#LPS,-(SP) ;PRINTER AVAILABLE? BMI DU.ER4  ;IF NOT REJECT CMD TSTB (SP)+  ;IF IT'S FREE ... BPL .-10 MOVB R0,@#LPB ;... OUTPUóTO CALLER FOR CHECK - ; IF RAD50 RE-ENTERED AT EXIT; IF OCTAL CVT ; AT EXIT + 10 AS.CGB: MOVB (R1)+,R4 ;GET BYTE ... JSR PC,@(SP)+ ;RETURN TO PROCESS ASL @R0  ;FOR RAD50 MULT BY 50 ASL @R0 ASL @R0 ADD @R0,R4 ASL @R0  ;FOR OCTAL CVT, COMPLETE ROT8 ASL @R0 ADD R4,@R0  ;ADD IN NEW BYTE CMP R1,R2  ;LAST VALID BYTE? BNE .+4 CLRB -(R1)  ;IF SO, SET FLAG (**) DEC R3  ;DONE 3 BYTES? BNE AS.CGB  ;IF NOT GO FOR NEXT AS.CNX: TST (SP)+  ;ô -(R2),-(R2) ;RESET PTR TO TBLK START MOV R3,-(SP) ;.INIT DISK EMT .INIT MOV R2,-(SP) ;.TRAN MRT. COPY MOV R3,-(SP) EMT .TRAN TST 6(R2)  ;IF DISK FAILS ... BPL .+6 CLR -(SP)  ;... IT'S FINAL!!!! IOT CLR -(R4)  ;FINALLY REMOVE PROGNAME CLR -(R4) ADD #V.OSW-V.PGN,R4 ;LEAVE PTR AT OTHER SW. ;INITIALISE LINK-BLOCKS: MOV R3,R0  ;SET PTR TO OUTPUT BLOCK TST -(R0)  ;...SKIPPING Eõ ** ;* IN THE FOLLOWING EQUATES, A ZERO MEANS DO NOT INCLUDE ** ;* THE OPTION. ** ;* ** ;* C A R D R E A D E R E Q U A T E S ** ;* ** ;********************************************************************** NCR = 1 öT CHAR. RTS PC  ;GO BACK FOR MORE ;CHECK COMMAND VALID: DU.LGO: TST R5  ;FUNC = WRITE? BNE DU.ER5  ;IF NOT, CANNOT COPE MOV @#V.SVT.,R5 ;SAVE STACK POINTER MOV SP,V.SSP(R5) ;(WILL APPEAR IN DUMP) ;ALL O.K. DO DUMP: MOV R1,-(SP) ;SAVE START ADDRESS BIC #777,R1  ;SIMULATE FULL BLOCK START DU.LLA: MOV #14,R0  ;FORCE FORM FEED DU.LLB: MOV #2230,R3 ;SET CTRL FOR C2OA SUBR MOV R1,R5  ;OUTPUT BLOCK START ADDR JSR PC,DU.LGA ;CONV÷WHEN DONE CO-RTN ADDR RUBBISH RTS PC  ;REMOVE BEFORE EXIT ;(**) FOR RAD50 FORCES LEFT-JUSTIFICATION ;ROUTINE TO PROCESS FILE-NAME: AS.CVF: JSR PC,AS.CRP ;GO CONVERT 3 BYTES MOV R1,-2(R0) ;SAVE POINTER FOR 2ND WORD RTS PC  ;ALLOW GEN RTN TO CALL IT ;SPECIAL ROUTINE TO PROCESS U.I.C.: AS.CVC: DEC R2  ;MOVE BACK TO ] CLR -(SP)  ;SET STORE ON STACK TOP AS.CVA: JSR PC,AS.CUS ;GET GROUP CODE TST R0  ;LOOK FOR ERROR BEQ AS.CNX  ;REJECT CøRROR RTN SUB #16,R3  ;AND TO INPUT BLOCK MOV -(R0),@R3 ;INIT. BOTH TO KB CMP -(R3),-(R3) ;SET BOTH PTRS AT LINK CMP -(R0),-(R0) CMP -(R0),-(R3) ;CHECK FOR READ/WRITE IN CORE: MOV 2(R2),R1 ;GET MRT. ADDR CMP (R1)+,(R1)+ ;... & GO TO WRITE EMT MOV @R1,-(SP) ;PERHAPS SAVE CONTENT ASR @SP  ;CHECK IF DISK INFO BCS .+6 CLR @SP  ;IF NOT SET FLAG FOR LOADER BR TM.RWR  ;... & SKIP NEXT SEQUENCE ROL @SP  ;OTHERWISE RESTORE DISK INFO ADD #12,R2 ù ;NUMBER OF CARD READERS IN SYSTEM BIN = 0 ; DON'T INCLUDE BINARY MODE BCD = 1 ;1 = INCLUDE ALPHANUMERIC MODE, 0 = DONT TTYSW = 1 ;1 = SWITCH INPUT TO TTY ON COMMAND INEBC = 0 ; 1=PROVIDE OFR INTERNAL EBCDIC CODE EXEBC = 0 ; 1=PROVIDE FOR EXTERNAL EBCDIC CODE ; (029 CARD CODE) $RES = 1 ; TIMER RES. FOR CREAD (=10.0 MSEC.úT OCTAL TO ASCII JSR PC,@R4  ;... & PRINT IT MOV #12,R0  ;FORCE LINE-FEED DU.LLC: MOV #20100,R3 ;RESET CO2A CTRL MOV R1,R5  ;SET LINE ADDR SWAB R5  ;PRINT ONLY LAST 2 DIGITS JSR PC,DU.LGA ;CONVT TO ASCII JSR PC,@R4  ;PRINT : SET BY CO2A SUBR DU.LLD: SWAB R0  ;... & FORCE SPACE DEC R2  ;DONE ALL WORDS REQD? BLT .+10  ;IF SO PAD WITH BLANK CMP R1,@SP  ;REACHED START YET? BHIS DU.LLE  ;IF SO GO PRINT CONTENT INC R2  ;RESTORE WD CNT IF ûOMMAND IF ANY INCB @R0  ;ALSO CHECK AGAIN ... BEQ AS.CER  ;... FOR TOO BIG (377) DECB @R0  ;... OR ZERO BEQ AS.CER TST @SP  ;DONE TWO BYTES? BNE AS.CVO  ;IF SO THAT'S IT CMPB (R1)+,#', ;LOOK FOR SEPARATOR BNE AS.CER  ;IF NOT THERE IT'S AN ERROR MOVB @R0,1(SP) ;OTHERWISE STORE GROUP BYTE CLR @R0  ;RESET STORE MOV #3,R3  ;... & COUNT BR AS.CVA  ;GO FOR USER BYTE AS.CVO: ADD (SP)+,@R0 ;COMBINE TWO CODES WHEN DONE RTS PC  ;.... & EXü ;...& USE EMBEDDED ONE FOR NOW MOV R2,@R1  ;SET MRT. ACCORDINGLY MOV R2,4(R1) ;NOW CAN WRITE PROG IDENTITY: TM.RWR: MOV R0,-(SP) ;.INIT OUTBLK EMT .INIT MOV PC,-(SP) ;.WRITE HDR,OUTBLOCK ADD #TM.HDR-.,@SP MOV R0,-(SP) EMT .WRITE ;WHILE PRINTING, SET UP INPUT FILE: MOV #60,R1  ;SAVE CURRENT KBD INT VECTOR MOV @R1,-(SP) TST @R4  ;IN 'OTHER' MODE? BNE TM.OTH  ;IF SO SET UP ELSEWHERE ý) $100MS = 10. ;MULTIPLE USING $RES FOR 100 MS $500MS = 50. ;MULTIPLE USING $RES FOR 1/2 SECOND $1SEC = 100. ;MULTIPLE USING $RES FOR 1 SECOND MXTIME = 180. ;MAX SECONDS TO WAIT FOR OPR RESPONSE ; ; NOTE: THE ABOVE TIMES DO NOT NEED TO BE EXACT. SELECT THE ; PROPER VALUES TO GET AS CLOSE AS POSSIBLE TO THE ; TIMES STATES. ; ; ; C / R V E C T O R I N F O R M A T I OþNOT YET U/W CMP (R5)+,(R1)+ ;SET 1 IN R5 & BUMP PTR JSR PC,@R4  ;PAD WITH BLANK ROLB R5  ;DONE 7 TIMES? BCC .-4 SWAB R0  ;RESTORE PRINT BYTES BR DU.LLF  ;CONTINUE BELOW DU.LLE: MOV #2230,R3 ;RESET CO2A CTRL MOV (R1)+,R5 ;SET CONTENT IN BUFFER JSR PC,DU.LGA DU.LLF: BIT #17,R1  ;OUTPUT 8 CONTENTS? BNE DU.LLD DU.LLG: JSR PC,@R4  ;PRINT : SET BY CO2A SUBR SWAB R0  ;FOLLOWED BY SPACE MOV R1,R5  ;SAVE POINTER SUBÿIT ;ROUTINE TO PROCESS DEVICE UNIT NO.: AS.CVU: TST (R4)+  ;IF NOT FOLLOWED BY FILE ... CMP R4,R0 BEQ .+4 DEC R2  ;... MUST ALLOW 2ND DELIMITER ;GENERAL ROUTINE TO CVT 3 OCTAL DIGITS TO BYTE: AS.CUS: JSR PC,AS.CGB ;CALL CO-ROUTINE FOR DIGIT BR AS.CVN  ;GO CHECK VALIDITY AS.CUG: ASL @R0  ;IF VALID DO FIRST ROT8 ADD #10,@SP  ;RECALL CO-RTN FOR REST JSR PC,@(SP)+ BEQ AS.CNX  ;IF NO NEW BYTE, NO MORE AS.CVN: BIT #340,@R0 ;ROOM FOR THIS BYTE? BNE AS.C MOV PC,@R1  ;FORCE ALL KBD INTS HERE IF NOT ADD #TM.KIS-.,@R1 TM.SIF: MOV PC,-(SP) ;GET INFILE BLOCK ADD #TM.INF-.,@SP MOV R3,-(SP) ;... & INIT INBLOCK EMT .INIT MOV R3,-(SP) ;GET READY FOR OPEN MOV R0,-(SP) ;BUT FIRST SEE IF HDR DONE EMT .WAIT EMT .OPEN  ;IF SO OPEN INPUT FILE MOV V.EOM-V.OSW(R4),R2 ;RESET EOM.... MOV 4(SP),V.EOM-V.OSW(R4) ;...NOW BUFFERS EST. MOV R2,4(SP)  ;(BUT SAVE FOR LATER)  N ; ; CR1 = 2 ;LOGICAL UNIT NO. FOR CR # 1 CR2 = 2 ;LOGICAL UNIT NO. FOR CR # 2 CR3 = 0 ;LOGICAL UNIT NO. FOR C/R # 3 CR4 = 0 ;LOGICAL UNIT NO. FOR C/R # 4 ; ; C / R D E V I C E I / O A D D R E S S E S ; CRS.1 = 777160 ;CARD READER STATUS - C/R # 1 CRB1.1 = 777162 ;CARD READER BINARY DATA BUFFER CRB2.1 = 777164 ;CARD READER COMP #20,R1  ;GO BACK TO LINE START MOV R0,R3  ;HOLD SPACE FOR OP BELOW TST R2  ;DONE ALL PRINTING REQUESTED? BPL .+6  ;IF NOT SET UP BYTE PRINT ADD R2,R5  ;OTHERWISE ONLY REMAINDER REQD. ADD R2,R5 DU.LLH: JSR PC,@R4  ;PRINT BYTE (OR SPACE) CMP R1,R5  ;AT END YET? BHIS DU.LLJ  ;IF SO GO OUT NOW CMP R1,@SP  ;BEFORE ACTUAL START? BLT DU.LLI  ;IF SO PRINT SPACE MOVB @R1,R0  ;OTHERWISE PRINT BYTE IN ASCII ADD R3,R0  ;(200-237:=300-337 & BIER  ;IF NOT, THAT'S IT SUB #60,R4  ;OCTAL DIGIT? CMPB R4,#7 BLOS AS.CUG  ;IF SO BUILD IN DEC R1  ;OTHERWISE GO BACK TST 4(SP)  ;IF FIRST BYTE OF UIC BEQ AS.CNX  ;... COULD BE , - CHK AS.CER: CLR R5  ;IF NOT, ERROR ALSO BR AS.CNX  ;SET FLAG & EXIT ;LOG NAME PROCESSING: AS.CDN: JSR PC,AS.CRP-2 ;RAD50 PACK NAME CMP (SP)+,(SP)+ ;ON RETURN TIDY STACK MOV AS.CO-4,R0 ;GET PART 3 BLOCK ADD #KBI.OS,R0 ;ERROR EXIT: AS.XT:;GET COMMAND INPUT: TM.RDS: MOV PC,-(SP) ;PRINT READY MARK ($) ADD #TM.DOL-.,@SP MOV R0,-(SP) EMT .WRITE MOVB @PC,@#177560 ;REENABLE KBD INTS MOV #EMT+.KBI,TM.KIG ;INIT. FOR KBI CALL IF NEC. TM.RDC: MOV PC,R5  ;SET POINTER TO BUFFER ADD #TM.IBF-.,R5 MOV R5,-(SP) ;... & SET UP READ MOV R3,-(SP) EMT .READ MOV PC,R2  ;SET POINTER TO CHECK TABLE ADD #TM.CTB-.,R2 CMP (R5)+,(R5)+ ;MOVE TO BUFF BYTE COUNT MOV R3,-(SP) ;WAIT FOR IRESSED DATA ADDRESS ; CRS.2 = 777160 ;CARD READER STATUS - C/O # 2 CRB1.2 = 777162 ;CARD READER BINARY DATA CRB2.2 = 777164 ;CARD READER COMPRESSED DATA ; CRS.3 = 0 ;CAR READER STATUS - C/R # 3 CRB1.3 = 0 ;CARD READER BINARY DATA BUFFER CRB2.3 = 0 ;CARD READER COMPRESSED DATA BUFFER ; CRS.4 = 0 ;CARD READER STATUS - C/R # 4 CRB1.4 = 0 C @PC,R0  ;340-377:=240-277) ADD R3,R0 DU.LLI: INC R1  ;BUMP POINTER BR DU.LLH  ;GO BACK TO PRINT & GET NEXT DU.LLJ: MOV #12,R0  ;SET UP PRINT LINE-FEED TST R2  ;FINISHED YET? BLE DU.LOD  ;IF SO GO OUT NOW BIT #77,R1  ;DONE 8 LINES? BNE DU.LLC JSR PC,@R4  ;IF SO PRINT L/F NOW ... BIT #777,R1  ;DONE PAGE YET? BNE DU.LLB  ;NO - OUTPUT LINE FEED ONLY MOVB @#TKB,R5 ;KEYBOARD STRIKE? BIC #200,R5  ;IF SO IS IT CTL/C? CMPB R5,#3 BNE MOV #177566,R4 ;RESET TPB POINTER .=.+AS.CO+376-. AS.ND2=. V.RRES=46 .=.+AS.CO-2+KBI.OZ-. .EOT ;ASSIGN PROCESSOR PART 3 ; ; A) FOR COMMAND WITH ARGUMENTS SETS UP TABLE ; ENTRY AS STORED ON TOP OF THE STACK (R2 POINTING ; AT BOTTOM):- ;  1) AT THE TOP OF FREE CORE IF USER PROGRAM ; IS NOT UNDERWAY. TABLE AREA CLAIMED IS INCLUDED ; WITHIN THE THEN RESIDENT MONITOR ;  2) IF USER PROGRAM HAS BEEN STARTED, CLAIMS ; BUFFER FOR NEW ENTRY - IF NONE AVAILNPUT TO COMPLETE EMT .WAIT MOV (R5)+,R1 ;NOW GO TO END BYTE ADD R5,R1 CMPB -(R1),#13 ;IF VT, CTL/C INPUT BNE TM.DEC MOV PC,-(SP) ;SO ECHO ACCORDINGLY ADD #TM.CTLC-.,@SP MOV R0,-(SP) EMT .WRITE MOV R0,-(SP) ;... & WAIT TILL DONE EMT .WAIT BR TM.RDC  ;RETURN FOR COMMAND PROPER TM.OTHR: HALT  ;NOT YET IMPLEMENTED!! BR .-2 ;COMMAND RECEIVED - CHECK IF HANDLED BY TMON: TM.DEC: CLRB  ;CARD READER BINARY DATA BUFFER CRB2.4 = 0 ;CARD READER COMPRESSED DATA BUFFER ; CRVC.1 = 230 ; C/R # 1 INTERRUPT VECTOR CRVC.2 = 230 ;C/R # 2 INTERRUPT VECTOR CRVC.3 = 0 ;C/R # 3 INTERRUPT VECTOR CRVC.4 = 0 ;C/R # 4 INTERRUPT VECTOR .PAGE ;********************************************************************** ;* **  DU.LLA  ;IF NOT CONTINUE DU.LOD: CMP (R0)+,(SP)+ ;MAKE LINEFEED FORMFEED JSR PC,@R4  ;...& PRINT IT MOV R0,R1  ;FORCE R1 POSITIVE BR DU.GXT  ;TAKE COMMON EXIT ;OCTAL TO ASCII CONVERSION: DU.LGA: JSR PC,@R4  ;PRINT CHAR IN R0 MOV R3,R0  ;NOW SET WITH CTRL WORD DU.LGL: ASL R5  ;GET BIT FROM NUMBER ... ROLB R0  ;.. & MOVE INTO PRINT BYTE BCC DU.LGL  ;MARKER BIT OUT AT FRONT? JSR PC,@R4  ;IF SO DIGIT DONE - PRINT CLRB R ABLE WILL REJECT ; COMMAND WITH R1 SET TO -7 TO SHOW NO ROOM. ; (OTHER ENTRIES FOR SAME LOG NAME WILL BE DELETED) ; ; B) FOR COMMAND WITH NO ARGUMENTS, REMOVES ALL ; EXTANT TABLE ENTRIES. (ACCEPTABLE ONLY IF NO USER ; PROGRAM IS RESIDENT IN CORE - OTHERWISE COMMAND WILL ; AGAIN BE REJECTED, THIS TIME WITH R1 SET TO -2 ; TO SHOW INVALIDITY. ; .BYTE 0,-1  ;IN USE/NO SHARE SW. ;SET UP & CHECK TYPE OF OPERATION: AS.DO: MOV @#V.RRES,-(SP) ;GET BACK PART 2 REGS. JSR R5,@(SP)+  @#177560 ;STOP INTS WHILE CMD PROCESSED MOV R5,-(SP) ;SAVE BUFF START PTR CMPB (R5)+,#73 ;... & LOOK FOR COMMENT BEQ .+6 CMP R5,R1 BLOS .-10 MOVB #15,-(R5) ;IF FOUND REPLACE WITH RETURN MOV R5,R1  ;RESET END ACCORDINGLY MOV (SP)+,R5 ;RESET START PTR CMPB @R1,@R5  ;END HERE ALSO? BEQ TM.RDS  ;IF SO NO ACTION - GET NEXT INPUT CMPB @R1,-1(R1) ;SET END BEYOND 1ST CR BEQ .+4 INC R1  ; (COULD BE 2 FROM ABOVE) CMP @R5,(R2)+ ;GET 1ST 2 CHARS  ;* L I N E P R I N T E R E Q U A T E C A R D S ** ;* ** ;********************************************************************** NLP = 1 ;NUMBER OF LINE PRINTERS IN SYSTEM NLPRTY = 3 ;NUMBER OF L/P PRIORITY LEVELS LPBACK = 1 ;1 = BACKUP L/P WITH TTY BY OPER COMMAND LPVC.1 = 200 ;L/P # 1 INTERRUPT VECTOR ADDRESS LPVC.2 = 0  ;RESET MARKER & ASCII BITS BISB #23,R0 ASL R0  ;DONE ALL DIGITS? BCC DU.LGL MOV #20072,R0 ;PREP PRINT SPACE & : RTS PC  ;... & EXIT ;LINE PRINTER ERROR: DU.ER4: MOV @#V.SVT.,R5 ;CLEAN UP STACK MOV V.SSP(R5),SP ;ERROR IN FUNCTION: DU.ER5: MOV #-4,R1  ;GIVE ERROR CODE (NEG. VALUE) ;COMMON EXIT: DU.GXT: MOV (SP)+,R4 ;RESTORE TPB ADDRESS CLR R5  ;SHOW NOW DONE INC DU.ND2+4 ;RECALL KBL BY DROP THRU ;MISCELLANEOUS DEFINITIONS: V.SVT.=40 V.RRES=46 CMP (SP)+,(SP)+ ;REMOVE PART 2 CALL INC AS.ND3+4 ;MUST RECALL KBL THIS TIME MOV @#V.SVT,R1 ;GET PTR TO SVT. MOV R1,R0  ;... & HENCE TO TABLE IF ANY ADD #V.BAT,R0 MOV R0,R5  ;ALSO TO MON/USER SW. ADD #5,R5 TST @SP  ;SET UP OR CLEAR? BEQ AS.CLR  ;GO ELSEWHERE FOR LATTER ;REDUCE NEW ENTRY TO FINAL FORM: MOV SP,R2  ;GET BOTTOM OF ENTRY ADD #12,R2  ; (UNIT WORD) MOV SP,R3  ;FORGET LOG NAME FOR NOW TST (R3)+ SWAB @... BEQ TM.CMD  ;... & CHECK WITH INTERNAL CMDS BHI .-4 TM.CLI: JSR PC,TM.GKI ;CALL KBI BR TM.RDS ;... CALL NORMAL INTERPRETER: ; EXPECTS R1,R4 & R5 SET AS SHOWN ON KBI LISTING TM.GKI: MOV 2(SP),R2 ;GET START OF MINIMAL DRIVER MOV -(R2),R2 ;GET PTR TO SAVE AREA CMP (R2)+,(R2)+ ;SKIP ITS OUTBUFF PTRS INCB @(R2)+  ;... BUT FORCE PROPER EXIT MOV R4,-(SP) ;SAVE IMPORTANT REGS MOV R3,-(SP) MOV  200 ;L/P # 2 INTERRUPT VECTOR ADDRESS LPVC.3 = 000 ;L/P # 3 INTERRUPT VECTOR ADDRESS LPVC.4 = 000 ;L/P # 4 INTERRUPT VECTOR ADDRESS LPDT.1 = 765010 ;L/P # 1 DATA BUFFER I/O ADDRESS LPDT.2 = 765010 ;L/P # 2 DATA BUFFER I/O ADDRESS LPDT.3 = 0 ;L/P # 3 DATA BUFFER I/O ADDRESS LPDT.4 = 0 ;L/P # 4 DATA BUFFER I/O ADDRESS LFRG.1 = 765012 ;L/P # 1 LINE FEED REV.SSP=52 TKB=177562 LPS=177514 LPB=177516 .=.+DU.LP+376-. DU.ND2: .=.+DU.LP-2+KBI.OZ-. ;DUMMY BLOCKS FOR OTHER DEVICES: ; ;ONLY DEVICE CURRENTLY IMPLEMENTED IS LINE PRINTER ; DRIVERS FOR OTHER DEVICES WILL COME HERE ; IF PROVIDED. UNTIL THEN THIS SEQUENCE WILL ; CAUSE COMMAND TO BE REJECTED VIA KBL RECALL ; WITH R5 CLEARED, R4 UNCHANGED AND R1 SET TO ; -4 TO INDICATE DEVICE ILLEGAL ; .BYTE 0,-1  ;IN USE/ERROR SWITCHES DU.IXT: MOV @#V.RRES,-(SP) ;RESTOR2  ;ADJUSY UNIT WORD ... MOVB #4,@R2  ;... TO SHOW WORD COUNT AS.CDL: TST (R3)+  ;LOOK FOR NON-0 ENTRY BNE AS.CDD DECB @R2  ;ADJUST BYTE COUNT UNTIL FND MOV (SP)+,@SP ;... & MOVE DOWN LOG NAME CMP R3,R2  ;... AS FAR AS UNIT WORD BLO AS.CDL AS.CDD: CMP (R2)+,(R2)+ ;GET PROPER STACK TOP ;CHECK IF TABLE ALREADY - IF NOT START ONE: MOV @R0,R4  ;ANY TABLE YET? BNE AS.TUW TSTB @R5  ;PROGRAM UNDERWAY? BNE AS.SUB  ;IF PROGRAM U/W SPEC ACTION REQD R0,-(SP) MOV R2,-(SP) ;... & END OF SAVE AREA MOV (R2)+,R4 ;PICK UP TPS POINTER CLR R0  ;RAISE PRIORITY TO 4 ... MOV @R4,-(SP) ;...& RETURN WITH IT MOV (R4)+,-(R0) ; (USING DONE BIT) JSR PC,TM.KIG ;SIMULATE CALL TO KBL ...    ;... & THENCE TO KBI ;ON RETURN, WAIT END OF TERMINAL MESSAGE: MOV (SP)+,R0 ;GET BACK KBD SAVE PTR MOV R3,-(R0) ;... & INSERT PTRS FROM KBL MOV R2,-(R0) MOV R1,-(R0) CLRB @#177776 ;SAFE NOW TO DROP PRIORITY MOV (SP)+,RGISTER LFRG.2 = 765012 ;L/P # 2 LINE FEED REGISTER LFRG.3 = 0 ;L/P # 3 LINE FEED REGISTER LFRG.4 = 0 ;L/P # 4 LINE FEED REGISTER CNT.1 = 765014 ;L/P # 1 WORD COUNT REGISTER CNT.2 = 765014 ;L/P # 2 WORD COUNT REGISTER CNT.3 = 0 ;L/P # 3 WORD COUNT REGISTER CNT.4 = 0 ;L/P # 4 WORD COUNT REGISTER CMD.1 = 765016 ;L/P # 1 COMMAND REGISTER CMD.2 RE REGISTERS JSR R5,@(SP)+ CMP (SP)+,(SP)+ ;CLEAR CALL OFF STACK MOV #-4,R1  ;RETURN ERROR CODE CLR R5  ;SET KBL NO ACTION INC DU.ND3+4 ;RECALL KBL BR DU.ND3 .=.+DU.IXT+376-. DU.ND3: .=.+DU.IXT-2+KBI.OZ-. .END  MOV @R1,R3  ;NO - GET EOM TO ACCESS ... CMP -(R3),-(R3) ;LINK WORDS ALREADY PROVIDED TSTB -1(R5)  ;IF PROGRAM IN CORE ... BEQ AS.STS CMP R3,V.BFE(R1) ;... & NO ADDITIONS TO RESMON BNE .+4 TST (R3)+  ;... LEAVE ONE AS SW. AS.STS: MOV R3,@R0  ;STORE RESULTANT START ADDR BR AS.SUG  ;CONTINUE LATER ;IF TABLE EXISTS, FIND END: AS.TNX: CMP (R3)+,#-1 ;LOOK FOR SEGMENT END BNE .+6 MOV @R3,R3  ;IF FOUND GET NEXT LINK BR AS.TU0 ;RESTORE TMON REGS. MOV (SP)+,R3 BITB #100,@R4 ;CHECK PRINTER BUSY ... BNE .-4  ;... & WAIT TILL MSGE DONE MOV (SP)+,R4 ;WHEN DONE, .... RTS PC  ;...RETURN FOR NEXT INPUT TM.KIG: EMT .KBI  ;RTN ADDR ON STACK = KBL CALL ;KEYBOARD INTERRUPT SERVICE: TM.KIS: MOV @#V.RSAV,-(SP) ;SAVE REGS. JSR R5,@(SP)+ MOV #177562,R3 ;SET PTR TO TKB MOV @R3,R0  ;... & GET INPUT MOVB R0,-(SP) ;STRIP PARI = 765016 ;L/P # 2 COMMAND REGISTER CMD.3 = 0 ;L/P # 3 COMMAND REGISTER CMD.4 = 0 ;L/P # 4 COMMAND REGISTER STAT.1 = 765016 ;L/P # 1 STATUS REGISTER STAT.2 = 765016 ;L/P # 2 STATUS REGISTER STAT.3 = 0 ;L/P # 3 STATUS REGISTER STAT.4 = 0 ;L/P # 4 STATUS REGISTER ; ; LPSIZE = 132. ; ; ÿPIW+2  ;START CHECK AFRESH MOVB 2(R3),R4 ;IF NOT THERE GET NEXT ENTRY ASL R4 CMP (R4)+,(R4)+ ADD R3,R4 CMP -(R3),@SP ;SAME DATASET? BNE AS.TUW MOV #-1,(R3)+ ;IF SO REPLACE WITH LINK MOV R4,@R3 AS.TUW: MOV R4,R3  ;RESET PTR .... TST @R3  ;... & LOOK FOR END BNE AS.TNX ;END FOUND - CHECK USER PROGRAM STATE: CMP -(R3),#-1 ;PREVIOUS WORD A LINK? BEQ .+4  ;IF SO REMOVE IT TST (R3)+ TSTB @R5  ;USER UNDERWAY? BEQ AS.SUG AS.SUB: MOV #1TY BIT IF ANY BICB #200,@SP CMPB (SP)+,#3 ;LOOK FOR CTL/C BNE .+6 ADD #10,R0  ;CVT CTL/C TO VT MOV @#V.SVT,R4 ;GET KB DVR ADDRESS MOV @V.KBA(R4),R1 CLR -(SP)  ;... & BUILD INTSVCE ENTRY MOVB 5(R1),@SP ADD R1,@SP CLR -(R3)  ;STOP INTS FOR NOW JMP @(SP)+  ;... & GO TO DVR .EOT ;INTERNAL COMMAND - DESPATCH TO SERVICING ROUTINE: ; MUST ASCEND IN ORDER OF 2ND CHAR. VALUE TM.CTB: .WORD NUMBER OF CHARACTERS IN L/P BUFFER LPMXTM = 180. ;MAX NO SECONDS LPRNTR WAITS FOR OPER ACTION LPINH = 4 ;INTERRUPT LEVEL OF L/P $NLINE = 56. ; MAX LINES/PAGE (=CONTROL TAPE. $LPERR = 10. .PAGE ;*********************************************************************** ;* ** ;* MACROS TO SATISFY THE DIRECTIVES PRESENT IN PALRES ** ;* (OUP-11 ÿV002A ÿ.GLOBL ÿGETDEC ÿ.CSECT ÿ.TITLE .ALLOC .ALLOC: ÿJSR ÿR5,.GETLK ÿJSR ÿR5,.GETFN ÿMOV ÿ#LKBKDU+10,R0 ÿ;CNT OF NO. WORDS TO FOLLOW TST1: ÿTST ÿ(R0) ÿBEQ ÿERR1 ÿCMP ÿ(R0),#2 ÿBLT ÿERR1 ÿ ÿ;NO NUMBER IN ADDRESS FIELD ÿMOV ÿ(R0),R1 ÿ ÿ;CNT TO R1 ÿROL ÿR1 ÿ ÿ;MULTIPLY CNT X 2 ÿADD ÿR1,R0 ÿCMP ÿ(R0)+,#"AL ÿBNE ÿTST1 FOUND: ÿCMP ÿ-(R0),-(R0) ÿ;BACK UP R0 TO ADDRESS ÿMOV ÿ(R0),R0 ÿJSR ÿR5,GETDEC ÿ;GET NO. BLKS TO BE ALLOC. ÿTST ÿR0 ÿBMI ÿERR1 ÿ ÿ;NO. TOO BIG ÿMO,-(SP) ;IF SO MUST GET BUFFER MOV @#V.GTB,-(SP) JSR R5,@(SP)+ MOV (SP)+,R4 ;... IF ANY AVAILABLE BEQ AS.ER1  ;IF NOT TREAT AS ERROR TST @R0  ;FIRST ENTRY? BNE .+6 MOV R4,@R0  ;IF SO STORE IN SVT. BR AS.SUG-2 MOV #-1,(R3)+ ;OTHERWISE SET LINK MOV R4,@R3 MOV R4,R3  ;.... & RESET PTR ;SET UP TABLE ENTRY: AS.SUG: MOV (SP)+,(R3)+ ;STORE LOG NAME MOV R2,R4  ;STORE BOTTOM OF NEW ENTRY MOV -(R4),(R3)+ ;... & MOVE IN CMP R4,SP BNE .-4 "GE .WORD "FI .WORD "LO .WORD "OT .WORD "RU .WORD -1  ;STOP CODE TM.CMD: MOV R5,-(SP) ;SAVE START OF STRING MOVB -(R1),-(SP) ;LEAVE SCRATCH ROOM TM.CML: CMP R5,R1 ;SEARCH FOR END OF CMD NAME BEQ TM.CMG MOVB (R5)+,@SP ;LEAVE PTR ON RETURN ... CMPB @SP,#40  ;... OR BEYOND SPACE BEQ TM.CMG CMPB @SP,#54  ;... OR COMMA BNE TM.CML TM.CMG: ADD TM.DTB-TM.CTB(R2),R2 ;DESPATCH AS REQD. TM.DTB: MOV R2,PC .WORD TM.GE-TM.CTB-2 .WORD TM.FI-T!R VERSION OF PAL11R) BUT NOT PRESENT IN MACRO-11R. ** ;* ** .MACRO .REF A,B,C,D,E,F,G,H,I,J .IRP X, .GLOBL X .ENDM .ENDM .REF .MACRO .DEF A,B,C,D,E,F,G,H,I,J .REF A,B,C,D,E,F,G,H,I,J .ENDM .DEF ; ; ; ; MACRO DEF. FOR QUEUES ; .MACRO .QUE A,B,C .BOUND .LIST ME A = ."V ÿR0,-(SP) ÿMOV ÿ#FNBK01,-(SP) ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿALLOC ÿCMP ÿ(SP),#-1 ÿBNE ÿERR2 ÿ ÿ;UNSUCCESSFUL ALLOC ÿTST ÿ(SP)+ ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿRELEAS ÿRTS ÿR5 ÿ ÿ;RETURN TO PIP ERR1: ÿMOV ÿ#S203,.ERCDW ÿ;ILLEGAL COMMAND SYNTAX ÿJSR ÿR5,.ERRFT ERR2: ÿMOV ÿ(SP)+,.AUXWD ÿMOV ÿ#S240,.ERCDWD ÿ;INSUFFICIENT # BLKS. AVAILABL ÿJSR ÿR5,.ERRFT ÿ.END # MOV #177566,R4 ;RESET TO TPB BR AS.CLX  ;JOIN CLEAR ROUTINE FOR EXIT ;COMMAND HAS NO ARGS - CLEAR PRESENT TABLE: AS.CLR: MOV SP,R2  ;SET POINTER BELOW DUMMY TABLE ADD #16,R2 TSTB -1(R5)  ;CHECK IF PROGRAM IN CORE BNE AS.ER2  ;REJECT COMMAND IF SO MOV @R0,R3  ;OTHERWISE GET START OF TABLE BEQ AS.RTN  ;... IF ANY!! CLR @R0  ;... & REMOVE FROM SVT. ;COMMON EXIT - PROVIDES LAST LINK - ; & ADJUSTS EOM IF NECESSARY: AS.CLX: CLR (R3$M.CTB-4 .WORD TM.LO-TM.CTB-6 .WORD TM.OT-TM.CTB-10 .WORD TM.RU-TM.CTB-12 ;LOGIN SERVICE: ; PRESENTLY MERELY ACCEPTS & STORES U.I.C. ;  (PASSWORD & ENTITLEMENT CHECKING MAY BE ADDED) ; COMMAND REJECTED IF ERROR IN FORMAT OR ; USER ALREADY LOGGED IN ;GET CODE ENTERED: TM.LO: MOV R4,R2  ;GET PTR TO UIC IN SVT. ADD #V.UIC-V.OSW,R2 MOV #-2,@SP  ;SET ERROR CODE (INV CMD) TST @R2  ;ALREADY USER ON? BNE%-4 B = .-2 .REPT C .WORD 0 .IFZ $KT11C .WORD .-2 ; NOTE: PPA WHEN RESOLVED BY IPL .ENDC .IFNZ $KT11C .PACK .-2 .ENDC .ENDR .NLIST ME .ENDM ; ; MACRO TO SET PRIORITY LEVEL 7 ; .MACRO .LOCK PSR = 177776 .IFZ $1145 MOVB #340,@#PSR .ENDC .IFNZ $1145 SPL 7 .ENDC &')+  ;CLEAR TWO LINK WORDS CLR (R3)+ TSTB @R5  ;PROGRAM UNDERWAY? BNE AS.RTN MOV R3,(R1)+ ;IF NOT SET NEW MONTOP TSTB -(R5)  ;IF NOT IN TMON CTRL ... BEQ AS.RTN ADD #40,R3  ;.. SET TOB ALSO MOV @(R1)+,@R3 ;RESET STACK STOP CLR @-(R1)  ;... & REMOVE OLD MOV R3,@R1  ;STORE NEW TOB BR AS.RTN .=.+AS.DO+376-16-. AS.ER1: MOV #-7,R1  ;FOR ERROR EXIT ... BR .+6  ;... GIVE APPROPRIATE CODE AS.ER2: MOV #-2,R1 AS.RTN: CLR R5  ;ALSO FOR ALL ( TM.ERR DEC @SP  ;ADJ. ERROR (ILL SYN) MOV R5,-(SP) ;IF NOT PUSH PRESENT STRING PTR TM.LOG: CMP @SP,R1  ;IF ALREADY AT END ... BHIS TM.LOE  ;... MUST BE ERROR SWAB @R2  ;ADJUST BYTES (VALID PASS 2) MOV #4,-(SP) ;GET OCTAL TO BIN CVT EMT .CVT MOV (SP)+,R5 ;IF RETURN VALUE = 0 BEQ TM.LOE  ;... IT'S ALSO AN ERROR CMP R5,#377  ;ALSO IF OVER BYTE SIZE! BHIS TM.LOE MOVB R5,@R2  ;STORE VALID BYTE INC @SP  ;ASSUME DELIMITED BY COMMA TSTB 1 ; ; SET INTERRUPT LOCKOUT .ENDM ; SET DONE MOV R2,SP  ;CLEAN UP STACK AS.ND3=.   ;.... & DROP THRU TO EXIT V.SVT=40 V.RRES=46 V.GTB=54 V.BAT=12 V.BFE=56 .=.+AS.DO-2+KBI.OZ-. .END ,(R2)  ;IF ONLY 1 BYTE DONE, ... BEQ TM.LOG  ;... REPEAT ;INPUT APPARENTLY VALID: ; CHECK IF USER ACCEPTABLE TO BE DONE HERE ;ALL O.K. - EXIT FOR NEXT COMMAND: TM.LOA: CMP (SP)+,(SP)+ ;CLEAN UP STACK MOV (SP)+,R5 ;GET BACK STRING PTR MOV PC,R2  ;SET UP FOR DATE MESSAGE ADD #TM.DAT-.,R2 TM.DTP: MOV R2,-(SP) ;OUTPUT LATTER MOV R0,-(SP) EMT .WRITE MOV R5,R1  ;SIMULATE KBD CMD MOV 6(R2),(R1)+ -T FILE SPECIFIER TST LKBKDU+6 ;WAS AN OUTPUT SPECIFIED? BNE .SWOS1  ;YES TST (SP)  ;MORE SPECIFIERS TO COME? BEQ .SWOS2  ;NO-LEGAL .SWOS5: MOV #S204,.ERCDW ;YES JMP .ERRFT  ;PRINT IT .SWOS2: CLRB .NUMOT  ;NO OUTPUT SPECIFIERS BR .PREOP  ;GO TO PRE-OPERATION DISPATCH .SWOS1: BIT (SP),#2  ;ENOUGH SWITCH ROOM? BEQ .SWOS3  ;YES MOV #S203,.ERCDW ;NO JMP .ERRFT  ;PRINT IT .SWOS3: JSR R5,.SWLOG ;LOG THEM IN TST SWCNT BLE .SWOS4./ ; ÿPIP-11 ÿV002A ;CLEARS LOCK BITS + USAGE CN0 MOVB #15,(R1)+ MOV R0,-(SP) ;WAIT TILL PRINT DONE EMT .WAIT TM.DTD: JSR PC,TM.GKI ;GET DECODED VALUE PRT MOV PC,R2  ;NOW SET UP FOR TIME ADD #TM.TIM-.,R2 MOV PC,R5  ;MUST RESET BUFF PTR ADD #TM.IBF+6-.,R5 COM R4  ;BEEN HERE BEFORE? BMI TM.DTP  ;IF SO DONE ALRDY JMP TM.RDS  ;... GET NEXT CMD ;ERROR IN INPUT: TM.LOE: CLR @R2  ;REMOVE UIC IF INVALID TST (SP)+  ;AGAIN TIDY STACK TM.ERR: MOV (SP)+,R1 ;PICK UP ERROR CODE CLR (SP)+  ;ONE1  ;ALL SWITCHES SEEN ARE LEGAL MOV #S203,.ERCDW ;SWITCH NOT RECOGNIZED JSR R5,.ERRFT .SWOS4: CMP (SP)+,#1 ;MORE FILES TO COME? BEQ .PREOP  ;NO-ALL IS OK TSTB .NUMIN  ;IF NO INPUTS,MULTIPLE OUTPUTS OK BEQ .SWSO BR .SWOS5  ;ERROR 4 .PREOP: MOV #.PREQF,R3 ;SET UP TABLE SEARCH .PROP2: ADD #4,R3  ;BUMP R3 TO FLAG TST (R3)+  ;FLAG SET? BNE .PROP1  ;YES CMP R3,#.ENTB2 ;END OF TABLE 2 ÿ;PIP-11 ÿV002A ÿ;//////////////////////////////////////////////////// ÿ;//////////////////////////////////////////////////// ÿ;////////////////// SUBROUTINE PROTECT ////////////// ÿ;//////////////////////////////////////////////////// ÿ;//////////////////////////////////////////////////// ÿ;ROUTINE TO CHANGE A FILE'S PROTECTION ÿ;RENAMES FILE A TO FILE B,THEN RENAMES FILE B BACK WITH ÿ;NEW PROTECTION ÿ.TITLE ÿPROTEC ÿ.GLOBL ÿ.PROT ÿ.GLOBL ÿ.NUMIN,FNB3T IN UFD .CSECT .TITLE ÿ.UNLOC .UNLOC: ÿJSR ÿR5,.GETLK ÿJSR ÿR5,.GETFN ÿJSR ÿR5,START ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿ7 ÿ ÿ;RELEASES ÿRTS ÿR5 ÿ ÿ;RETURN TO PIP START: ÿMOV ÿ#LKBK01,LKBK ÿJSR ÿR5,FINDUC ÿJSR ÿR5,GETUFD ÿBR ÿNOTFND ÿ ÿ;NO UFD FOUND SERCH: ÿTST ÿ(R2) ÿ ÿ;SEARCH UFD FOR MATCHING FILNAM.EXT ÿBEQ ÿNXT ÿ ÿ;NO ENTRY HERE ÿMOV ÿR2,R1 ÿ ÿ;PNTR1 TO UFD FILNAM ÿCMP ÿ(R1)+,FNBK01 ÿBNE ÿNXT ÿCMP ÿ(R1)+,FNBK01+2 ÿBNE ÿNXT ÿCMP ÿ(R1)+,FNBK01+4 ÿBNE ÿNXT FOUND: ÿCLRB ÿ14 MORE CLEAN UP! CLR R5  ;SET DONE FLAG FOR KBL MOV #EMT+.KBL,TM.KIG ;... & PREPARE CALL IT COM R4  ;SET SWITCH FOR EXIT BR TM.DTD  ;GO TO IT TM.OT=TM.ERR-2 ;FINISH SERVICE: ; THIS VERSION MERELY CLEARS CURRENT USER - ; REQUIRES EXPANSION TO INCLUDE DISK CLEARANCE TM.FI: CMPB (R1)+,(SP)+ ;TIDY STACK MOV (SP)+,R5 ;... & GET BACK STRING START MOV PC,R2  ;PRINT TIME MESSAGE ADD #TM.TIM-.,R2 MOV 5SEARCH? BLO .PROP2  ;NO BR .ACDSP  ;YES-GO TO ACTION DISPATCH .PROP1: DEC -(R3)  ;DECREASE FLAG JSR R5,@-(R3) ;DISPATCH TO ROUTINE INC ACFLAG BR .PREOP  ;SEE IF ANY MORE .ACDSP: TST .ACT  ;ANY ACTION SWITCHES SEEN? BNE .ACDS1  ;YES CMPB .NUMIN,#0 BEQ .POSOP  ;NO INPUTS SO DON'T TRANSFER CMPB .NUMOT,#0 BEQ .POSOP  ;NO OUTPUTS SO DON'T TRANSFER JSR R5,.TFR  ;DISPATCH TO TRANSFER ROUTINE INC ACFLAG BR .POSOP  ;GO TO PO6K01,LKBK01,FNBKDU,LKBKDU ÿ.GLOBL ÿ.CSII2,.CSII5,.CSII4,GETOCT,.FLAG1,.MOVLK ÿ.GLOBL ÿ.MOVFN,.ERCDW,.ERRPR,.ERRFT .PROT: ÿTSTB ÿ.NUMIN ÿ ÿ;NO OUTPUT FILES GIVEN? ÿBNE ÿ.PERR ÿ ÿ;NO-ERROR ÿJSR ÿR5,.CSII2 ÿ;YES-SET UP .CSII2 .PRR: ÿJSR ÿR5,.CSII5 ÿ;GET FIRST OUTPUT ÿMOV ÿR0,.FLAG1 ÿ;SAVE MORE FLAG IN .FLAG1 ÿJSR ÿR5,.MOVLK ÿLKBKDU ÿ ÿ ÿ;GET LKBKDU INTO LKBK01 ÿLKBK01 ÿJSR ÿR5,.CSII4 ÿ;GET FILE NAME ÿJSR ÿR5,.MOVFN ÿFNBKDU ÿFNBK01 ÿ ÿ ÿ;COPY IT INTO FNBK01 ÿMOV ÿ#LKBKDU+170(R2) ÿ ÿ;CLEAR LOCK BITS & USAGE CNT ÿJSR ÿPC,WRBLK ÿ;IN 4TH WORD, LOW BYTE ÿRTS ÿR5 NXT: ÿJSR ÿR5,ENDTST ÿBR ÿSERCH ÿ ÿ;NOT END ÿ ÿ ÿ ÿ;END - FILNAM NOT FND NOTFND: ÿMOV ÿ#S237,.ERCDW ÿ;NO - FILNAM NOT FOUND ÿJSR ÿR5,.ERRFT ÿ;FATAL ERROR ÿ.END 8R2,-(SP) MOV R0,-(SP) EMT .WRITE MOV 6(R2),@R5 ;SIMULATE TIME CALL MOV R0,-(SP) ;... AFTER PRINT DONE EMT .WAIT JSR PC,TM.GKI MOV V.CSA-V.OSW(R4),R0 ;SAVE DATE & TIME CLRB R0  ;... ABOVE TMON ADD #V.DAT-V.OSW,R4 MOV (R4)+,(R0)+ MOV (R4)+,(R0)+ MOV (R4)+,(R0)+ MOV V.DDL-V.DAT-6(R4),R4 ;NOW DETERMINE SYSTEM DISK JSR R5,TM.DSK .WORD 177462  ;DISK TYPE TABLE:- .RAD50 'DF'  ;GIVES H/W WC REG & NAME .WORD 177406 .RAD50 'DK' .WOR9ST-OP DISPATCH .ACDS1: MOV .ACT,R3 JSR R5,(R3)  ;DISPATCH TO ACTION ROUTINE INC ACFLAG .POSOP: MOV #.PSTQF,R3 ;SET UP SEARCH .POSP2: ADD #4,R3  ;MOV TO FLAG TST (R3)+  ;FLAG SET? BNE .POSP1  ;YES CMP R3,#.PREQF ;END OF SEARCH BLO .POSP2  ;NO TST ACFLAG BNE .POSP3  ;OK - ACTION TAKEN ON COMMAND MOV #S242,.ERCDWD ;GARBAGE COMMAND JSR R5,.ERRFT .POSP3: JMP .RES  ;GET ANOTHER STRING .POSP1: DEC -(R3)  ;CLEAR FLAG JSR R5,@-(R:0,R0 ÿ;SET UP SWITCH INTERFACE .PR2: ÿCMP ÿ(R0)+,#PR ÿ;FIND PR SWITCH ÿBEQ ÿ.PRO1 ÿBR ÿ.PR2 ÿ ÿ;KEEP LOOKING .PRO1: ÿSUB ÿ#4,R0 ÿ ÿ;POINT TO ADDRESS OF ASCII DIGITS ÿMOV ÿ(R0),R0 ÿ ÿ ÿ ÿ;R0 NOW POINTS TO ASCII STRING ÿJSR ÿR5,GETOCT ÿ;GET BINARY ÿTST ÿR0 ÿBMI ÿ.PERR3 ÿMOV ÿR0,.ADDR1 ÿ;SAVE PROTECTION ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿINIT ÿ ÿ;INIT DEVICE ÿMOV ÿ#FNBKPR,-(SP) ÿ;NEW NAME ÿMOV ÿ#FN;<D 0  ;TO BE INSERTED LATER .RAD50 'DP' .WORD 177450 .RAD50 'DC' .WORD 0,0,0,0  ;SPARES TM.DSK: MOV (R5)+,R1 ;COLLECT H/W REG ADDR CMP (R5)+,@R4 ;CHECK IF DISK REQD BNE TM.DSK TM.DGO: RESET   ;FOR NOW CALL BOOT FROM HERE MOV #-64.,@R1 ;WILL BE REPLACED ... MOV #5,-(R1) ;... BY ROM CALL LATER TSTB @R1 BPL .-2 TST (R1)+ BMI TM.DGO CLR PC  ;GO RELOAD MONITOR ;RUN-GET SERVICE=3) ;DISPATCH TO POST OP INC ACFLAG BR .POSOP  ;SEARCH FOR ANY OTHER .NYI: MOV #S203,.ERCDW ;E9=NOT YET IMPLEMENTED JSR R5,.ERRFT ;//////////////////////////////////////////////////////// ;//////////////////////////////////////////////////////// ;/////////////// SUBROUTINE SWLOG /////////////////////// ;//////////////////////////////////////////////////////// ;//////////////////////////////////////////>BK01,-(SP) ÿ;OLD NAME ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿRENAME ÿ ÿ;RENAME TO TEMP FILE NAME ÿMOV ÿ.ADDR1,FNBK01+10 ÿ;MOV IN NEW PROTECT CODE ÿMOV ÿ#FNBK01,-(SP) ÿ;NEW NAME ÿMOV ÿ#FNBKPR,-(SP) ÿ;OLD NAME ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿRENAME ÿ ÿ;RENAME BACK WITH NEW PROTECTION ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿRELEAS ÿ ÿ;RELEASE DEVICE ÿTSTB ÿ.FLAG1 ÿ;MORE OUTPUT ÿBNE ÿ.PRR ÿ ÿ;YES ÿRTS ÿR5 ÿ ÿ;NO-GO HOME .PERR: ÿMOV ÿ#S20@: ; A) CHECKS SPECIFIED INPUT AVAILABLE:- ; IF NO OWNERSHIP STIPULATED WHEN DEVICE ; IS FILE-TYPE, INPUT WILL BE ASSUMED ; INITIALLY TO BELONG TO LOGGED-IN USER ; OR, BY DEFAULT, TO THE SYSTEM. THERE ; WILL BE NO ASSUMPTION IF OWNER SPECIFIED. ; B) CALLS RUN-TIME LOADER TO ENTER PROGRAM. ; FOLLOWING 'RUN', PROGRAM WILL BE STARTED ; AUTOMATICALLY AT THE APPROPRIATE ADDRESS - ; THAT ESTABLISHED DURING ASSEMBLY OR AT ; LOAD POINT BY DEFAULT. ;GET SPECIFIED INPUT & CHECK AVAILABILITY:A////////////// ;ROUTINE TO SET UP SWITCH DISPATCH BY SETTING FLAGS ;FOR QUALIFIERS AND SETTING ADDRESS FOR ACTION DISPATCH. ;CALLED BY CONTROL ROUTINE WHEN A SWITCH IS SEEN .SWLOG: MOV LKBKDU+10,R0 ;MOV # OF WDS TO FOLLOW IN R0 TST R0  ;ANY SWITCHES AT ALL? BEQ .SWL10  ;NO-CHECK FOR * ROL R0  ;MAKE IT NUMBER OF BYTES ADD #LKBKDU+10,R0 ;R0 POINTS TO SWITCH ASCII .SWL5: MOV R0,R4  TST (R4)+  ;R4 POINTS TO NEXT SWITCH INC SWCNT  ;SWITCH-SEEN COUNT B5,.ERCDW ÿ;ILLEGAL INPUTS ÿJMP ÿ.ERRFT ÿ ÿ;FATAL ERROR ÿ ÿ ÿ ÿ;FS ERROR IN PROTECT .PERR3: ÿMOV ÿ#S203,.ERCDW ÿ;PROTECT CODE TOO LONG ÿJMP ÿ.ERRFT ÿ.WORD ÿ0 FNBKPR: ÿ.WORD ÿ175777 ÿ ÿ;DUMMY NAME FOR TEMPORARY ÿ.WORD ÿ175777 ÿ;FILE RENAME ÿ.WORD ÿ176777 ÿ.WORD ÿ0 ÿ.WORD ÿ0 .ADDR: ÿ.WORD ÿ0 ÿ ÿ;LITTLE BUFFER TO STORE ÿ.WORD ÿ0 ÿ ÿ;SIX CHAR ASCII STRING ÿ.WORD ÿ0 .ADDR1: ÿ.WORD ÿ0 ÿ.END CD TM.GE: CLR R2  ;REMEMBER IT'S 'GET' TM.RU: MOV V.EOM-V.OSW(R4),@SP ;RESET EOM FOR .... MOV 10(SP),V.EOM-V.OSW(R4) ;PROG D/S SET UP MOV (SP)+,6(SP) ;... & MOVE TO STRING PTR MOV 2(SP),@#60 ;RESET FOR KBI OPERATION ... MOV R2,2(SP) ;... & SAVE REQT FOR START MOV @PC,@#177560 ;ALLOW INTS. AGAINST ERROR MOV #401,V.MUS-V.OSW(R4) ;ALSO ASSUME PROGRAM IN CORE MOV @SP,R2  ;USE CSI TO GET SPECIFICATION MOV #-3,-(SP) ;... WITH FIRST ERROR ILL SYN JSR PC,TM.CSI ;AEJSR R5,.ASCHK ;CHECK IF ACTION SWITCH TST R2  ;SUCCESS? BEQ .SWL3  ;NO TST .ACT  ;YES-IT IT FIRST ACTION SWITCH? BEQ .SWL4  ;YES MOV #S232,.ERCDW ;NO-MORE THAN ONE ACTION SWITCH JMP .ERRFT .SWL4: MOV R2,.ACT  ;SAVE ROUTINE ADDRESS .SWL3: TST (R4)  ;MORE SWITCHES? BEQ .SWL1  ;NO MOV (R4),R0  ;MOV # OF WDS IN R0 ROL R0  ;MAKE IT NUMBER OF BYTES ADD R4,R0  ;R0 POINTS TO SW VALUE BR .SWL5  ;LOOP TILL DONE .SWL1: MOV LKBKDU+10,RFG ÿ;PIP-11 ÿV002A ÿ;////////////////////////////////////////////////////// ÿ;////////////////////////////////////////////////////// ÿ;///////////// SUBROUTINE RENAME ////////////////////// ÿ;////////////////////////////////////////////////////// ÿ;////////////////////////////////////////////////////// ÿ.CSECT ÿ.TITLE ÿRENAME ÿ.GLOBL .RENAM ÿ.GLOBL ÿ.ERCDW,.ERRFT,HLSO CHECK INDIV OWNERSHIP BEQ TM.RUG  ;FILE FOUND - GO PROCESS MOV (PC)+,R2 ;SET UP FOR DEFAULT EXT. .RAD50 'LDA' TST 6(R1)  ; OWNER STIPULATED? BNE TM.RCM  ;IF SO CHECK AGAIN ;SPECIFIED FILE NOT THERE - TRY DEFAULTS: TM.RUR: MOV #401,6(R1) ;OTHERWISE TRY SYSTEM JSR PC,TM.DCK BEQ TM.RUG  ;O.K. GOT IT THIS TIME TST 4(R1)  ;ANY EXT. GIVEN? BNE TM.RER  ;IF SO THAT'S IT MOV R2,4(R1) ;OTHI0 ;#OF WDS TO FOLLOW IN R0 ROL R0  ;TIMES 2 ADD #LKBKDU+10,R0 ;R0 POINTS TO SWITCH ASCII .SWL11: MOV R0,R4 TST (R4)+  ;R4 POINTS TO NEXT SWITCH TO CHECK JSR R5,.QUACK ;CHECK FOR QUALIFIERS TST (R4)  ;MORE SWITCHES? BEQ .SWL10  ;NO MOV (R4),R0  ;# OF WDS IN R0 ROL R0  ;TIMES 2 ADD R4,R0  ;R0 POINTS TO ASCII SW BR .SWL11 ;/////////////// THIS PORTION OF SWITCH LOG TESTS FOR * SPECIFIER ;/////////////// IN COMMAND STRING. IF FOUND,ITJK.ERRPR,.MOVFN,.MOVLK ÿ.GLOBL ÿ.NUMIN,.NUMOT,.CSII,.CSII1,.CSII2,.CSII3,.CSII4,.CSII5 ÿ.GLOBL ÿFNBK01,FNBK02,FNBKDU,LKBK01,LKBK02,LKBKDU ÿ;SUBROUTINE TO PERFORM PIPS RENAME FUNCTION ÿ;ONLY ONE INPUT AND OUTPUT FILES ALLOWED ÿÿ;A,(R0)+ RTS PC ;CONVERT BINARY TO OCTAL ASCII (6BYTES) BTOA: MOV R3,-(SP) ;NO. TO CONVERT MOV R0,-(SP) ;ADDRESS OF DESTINA¨NE MOV R1,#0  ;HOLD FOR LATER CHECKING TM.LBC=.-2 JSR PC,@R2  ;IGNORE LOAD ADDRESS JSR PC,@R2  ;GET GEN INFO MARKER CMP R1,#3401 ;CHECK IT'S CORRECT BNE TM.LCL  ;IF NOT THIS COULD BE 2ND LINE ;EXTRACT GENERAL INFORMATION: JSR PC,@R2  ;GET LOAD POINT MOV R1,-(SP) ;... & HOLD FOR MOMENT JSR PC,@R2  ;GET SIZE ... ADD @SP,R1  ;... & COMPUTE UPPER LIMIT SUB #2,R1 CMP R1,(R5)+ ;WITHIN © ;FATAL ERRORS: OUTPUT SPECIFIER IS NON FILE-STRUCTURED ;NON FATAL ERRORS: MORE THAN ONE OUTPUT SPECIFIER .GETLK: JSR R5,.CSII2 ;INITIALIZE INTERFACE JSR R5,.CSII5 ;GET OUTPUT SPECIFIER MOV FNBKDU+6,UIC JSR R5,UCGET ;GET UIC TST R0  ;ANY MORE OUTPUT SPECIFIERS? BEQ GETLNK  ;NO MOV #S204,.ERCDW ;TOO MANY OUTPUT SPECIFIERS JSR R5,.ERRFT GETLNK: JSR R5,.MOVLK LKBKDU LKBK01 INITO: MOV #LKBK01,-(SP) EMT INIT  ;INIT OUTPUT DEVICE MOV #LKBK01,LªT ÿR2 ÿ ÿ;BYPASS READ CHECK,WRITE, ÿBEQ ÿ.COPY2 ÿ ÿ;AND WRITE CHECK ON 1ST PASS. ÿBIT ÿ#RDCHK,2(R2) ÿ;TEST FOR ERROR IN PREVIOUS READ. ÿBNE ÿ.CERR2 ÿ ÿ;YES-JMP TO ERROR PRINT. ÿBIT ÿ#40000,2(R2) ÿ;END OF DATA IN PREVIOUS READ? ÿBNE ÿ.COPY4 ÿ ÿ;YES-SKP TO SET FLAG. ÿBIT ÿ2(R2),#400 ÿ;CHECK FOR INVALID LINE. ÿBNE ÿ.CERR2 ÿ ÿ;YES-INVALID LINE. ÿBR ÿ.COPY1 ÿ ÿ;GO TO WRITE. .COPY4: ÿTST ÿ4(R2) ÿBEQ ÿ.COPOT ÿ ÿ;NOTING READ-EXIT ÿINCB ÿ.FLAG4 ÿ ÿ;SET FLAG TO TERMINATE ÿ ÿ ÿ ÿ;AFTER WRITE «TION MOV #5,-(SP) ;CODE - BINARY TO OCTAL ASCII EMT 42 MOV #6,UPDFAC RTS PC ;CONVERT BINARY TO DECIMAL ASCII BTDA: MOV R3,-(SP) ;NO. TO CONVERT MOV R0,-(SP) ;ADDRESS OF DESTINATION MOV #3,-(SP) ;CODE EMT 42 MOV #5,UPDFAC RTS PC REPLZ: MOVB #40,R3 BR SUPLZ+2 SUPLZ: CLR R3 MOV R0,-(SP) ;SAVE ORIG. ADDRESS LZTST: CMPB (R0),#60 BNE UPDATE  ;NOT A LEADING ZERO MOVB R3,(R0)+¬AVAILABLE CORE? BHI TM.LE3  ;IF NOT REJECT MOV (SP)+,@R5 ;STORE LOAD POINT MOV @R5,#0  ;... & AGAIN SAVE TM.PLA=.-2 ADD #V.PSA-V.PLA,R5 ;MOVE TO PSA IN SVT. JSR PC,@R2  ;GET & STORE PROGRAM START MOV R1,(R5)+ TST @SP  ;CHECK IF 'RUN' BEQ .+4 MOV R1,@SP  ;IF SO HOLD START NOW JSR PC,@R2  ;GET & STORE DEBUGGER START MOV R1,(R5)+ JSR PC,@R2  ;GET RELOCATE FLAG TST R1  ;OBJECT IF SET ... BNE TM.LE2  ;... FOR THE PRESENT ADD #V.PG­KBK JSR R5,SETUP ;SETUP FOR DISK OR DT  RTS R5  ;OK - FILE STRUCTURED DEV. MOV #S231,.ERCDW ;FATAL ERROR JSR R5,.ERRFT ;DEVICE NOT FILE STRUCTURED ;SEES WHETHER DEVICE IS FILE STRUCTURED ;IF SO SETS UP BUFFER SIZE, NOWDS/BLOCK ;BLOCK NO OF 1ST MFD FOR DEVICE SPECIFIED ;REQUIRES LKBK CONTAIN LKBK01 OR LKBK02 SETUP: MOV LKBK,-(SP) ;EXIT 1 - OK EMT STATUS  ;EXIT 2 - ERROR - NON FILE STRUCT. DEVICE MOV (SP® ÿBIT ÿ2(R2),#2 ÿ;IGNORE FOLLOWING TEST ÿBEQ ÿ.COPY1 ÿ ÿ;IF FORMATTED MODE. ÿMOV ÿR2,R0 ÿ ÿ;WE MUST TEST IF LAST ÿADD ÿ#6,R0 ÿ ÿ;LINE READ FROM FILE ÿADD ÿ4(R2),R0 ÿ;ENDS IN NUL. IF SO, DON'T ÿTSTB ÿ-(R0) ÿ ÿ;OUTPUT THE BYTE. ÿBNE ÿ.COPY1 ÿ ÿ;BRANCH IF NOT NUL. ÿDEC ÿ4(R2) ÿ ÿ;DECREMENT BYTE COUNT .COPY1: ÿMOV ÿR2,-(SP) ÿMOV ÿ#LKBK01,-(SP) ÿEMT ÿWRITE ÿ ÿ;INITIATE WRITE ÿTSTB ÿ.FLAG4 ÿ ÿ;EOD ON PREVIOUS READ? ÿBNE ÿ.COPOT ÿ ÿ;YES-EXIT ÿTST ÿR3 ÿ ÿ;BYPASS WRITE CHECK ON ÿBEQ ÿ.C¯ ;REPLACE WITH NULL OR SPACE INC CNT TST CNT BLT LZTST UPDATE: MOV (SP)+,R0 ADD UPDFAC,R0 RTS PC UPDFAC: 0 CRLF: MOVB #15,(R0)+ MOVB #12,(R0)+ RTS PC ;CONVERT RAD50 WORD TO ASCII AND STORE IN LINE BUFF (3 BYTES) CONV: MOV (R1)+,-(SP) ;WORD TO BE CONVERTED MOV R0,-(SP) ;ADDRESS OF DEST. MOV #1,-(SP) ;RAD50 TO ASCII EMT 42 ADD #3,R0  ;UPDATE POINTER IN LINE BUFF RTS PC  ;DONE ;MOVE SPACES TO LINE BUFF (-NO. IN CNT) SPACE: MOVB °N-V.PSA-4,R5 ;MOVE TO PGN IN SVT. JSR PC,@R2  ;GET & STORE PROGRAM NAME MOV R1,(R5)+ JSR PC,@R2 MOV R1,(R5)+ ;NOW COLLECT LIST OF MONITOR ROUTINES TO BE RESIDENT: CLR #0  ;PREPARE TO COUNT MON RTNS TM.LMC=.-2 MOV SP,R5  ;HOLD PRESENT STACK POINTER JSR PC,@R2  ;GET NEXT MARKER TM.LCL: CMP R5,SP  ;MON RTN STORE U/W? BLO TM.LE2  ;NEEDED IF COME HERE DIRECTLY CMP TM.LBS,TM.LBC ;SHOULD STILL B±)+,STWD MOV (SP)+,DEVNAM MOV (SP)+,NOWDS BIT #120000,STWD BNE OK  ;FILE STR. OR MAG TAPE TST (R5)+  ;SETUP ERROR EXIT RTS R5  ;AND EXIT OK: BIT #40000,STWD BEQ DISK  ;DEVICE IS DISK DECTAP: MOV #100,FSTMFD ;DEVICE IS DT - INITIALIZE MFD SETUP2: MOV NOWDS,ENDBLK ROL ENDBLK ADD #BLOCK-2,ENDBLK ;POINTER TO END OF BUFFER FOR DEVICE SPECIFIED RTS R5  ;OK EXIT DISK: MOV #1,FSTMFD BR SETUP2 STWD: .WORD 0 DEVNAM: .WORD 0 ;SUBROUTINE²OPY2 ÿ ÿ;2ND PASS. ÿBIT ÿ#WRCHK,2(R3) ÿBNE ÿ.CERR3 .COPY2: ÿMOV ÿR3,-(SP) ÿ;ROTATE THE BUFFER ÿBNE ÿ.COPY5 ÿ ÿ;POINTERS ACCOUNTING ÿMOV ÿ#.LINE2,(SP) ÿ;FOR FIRST TWO ENTRIES. ÿTST ÿR2 ÿBEQ ÿ.COPY5 ÿMOV ÿ#.LINE3,(SP) .COPY5: ÿMOV ÿR2,R3 ÿMOV ÿR1,R2 ÿMOV ÿ(SP)+,R1 ÿBR ÿ.COPY6 .COPOT: ÿRTS ÿR5 ÿ ÿ;DONE-EXIT .COPY .CERR2: ÿMOV ÿ2(R2),.AUXWD ÿ;READ ERROR. ÿBR ÿ.CERR .CERR3: ÿMOV ÿ2(R3),.AUXWD ÿ;WRITE ERROR. .CERR: ÿBIC ÿ#377,.AUXWD ÿSWAB ÿ.AUXWD ÿMOV ÿ#S202, ÿ.ERCDW ³#40,(R0)+ INC CNT TST CNT BLT SPACE RTS PC FILLST: JSR PC,MOVMES ;MESS. ADDRESS IN R1 JSR PC,BTDA  ;NO TO BE CONVERTED IN R3 MOV #-4,CNT JSR PC,REPLZ EX: RTS PC MOVMES: TSTB (R1)  ;MOVES MESSAGE (R1) TO LINE BUFFER (R0) BEQ EX  ;EXITS ON 0 (R1) MOVB (R1)+,(R0)+ BR MOVMES OUTPUT: SUB #LINE,R0 MOV R0,HEADER+4 MOV #HEADER,-(SP) MOV #LKBK01,-(SP) EMT WRITE MOV ´E IN BIN. LINE BGT TM.LE2  ;... SO CHECK DECB R1  ;AT COMD END? BMI TM.LND DECB R1  ;IF NOT, THIS MON RTN MARK? BNE TM.LE2 SWAB R1  ;O.K., ANY RTNS REQD. BEQ TM.LCL-2 ;IF NOT GO BACK FOR END MARK ASL R1  ;OTHERWISE GET # OF BYTES SUB R1,SP  ;... TO GIVE STACK ROOM TM.LGM: JSR PC,@R2  ;GET RTN # MOV R1,-(R5) ;STORE ON STACK INC TM.LMC  ;... & COUNT 'EM CMP R5,SP  ;UNTIL END OF LIST BNE TM.LGM CMP TM.LBS,TM.LBC ;NOW AT LINE ENDµ TO GET A WILD CARD FILE - FNBKWC SHOULD CONTAIN *'S. ;EXIT 1=GOOD FILE ;EXIT 2=NO MORE FILES WCSRCH: TST (R2)  ;R2 POINTS TO FILE NANE IN UFD BEQ NOGO  ;NULL FILE NAME CMP FNBKWC,#'* BEQ TSTEXT  ;FILNAM IS * CMP FNBKWC,(R2) ;FIL BNE NOGO CMP FNBKWC+2,2(R2) ;NAM BNE NOGO TSTEXT: CMP FNBKWC+4,#'* BEQ WCRET  ;EXT IS * CMP FNBKWC+4,4(R2) BEQ WCRET  ;MATCH NOGO: TST (R2)  ;EMPTY FILE? BEQ NOGO2  ;YES. DON'T TALLY ADD 14(R2),BLKS ; ÿJSR ÿR5,.ERRFT ÿ;PRINT IT ÿ.END ·#LKBK01,-(SP) EMT WAIT RTS PC HEDEND: JSR PC,CRLF JSR PC,CRLF JSR PC,OUTPUT RTS PC ;ROUTINE TO PRINT OUT "DEV: FREE BLKS: N N N N" IN RESPONSE TO /FR ;COUNTS FREE BITS IN PERMANENT BIT MAPS (CNTBIT) FREE: MOV FSTMFD,BLKNO CLR R3  ;ACCUMULATE TOTAL IN R3 JSR PC,RDBLK ;READ 1ST MFD MOV BLOCK+4,BLKNO ;POINTER TO 1ST BIT MAP RDMAP: JSR PC,RDBLK JSR PC,CNTBIT TST BLOCK BEQ PRNTFR  ;DONE-PRINT MOV BLOCK,BLKNO BR RDMAP PRNTFR: MOV #¸? BNE TM.LCL-2 ;IF NOT GO FOR NEXT MARK JSR PC,@R2  ;OTHERWISE GET CHECKSUM TSTB TM.LCS  ;DOES IT TALLY? BEQ TM.LGO+4 ;IF SO GO FOR NEXT LINE ;LOAD ERRORS: TM.LE1: MOV #1421,-(SP) ;READ FAILURE IOT TM.LE3: MOV R1,-(SP) ;LOAD MODULE TOO BIG MOV #1423,-(SP) ;GIVE UPPER LIMIT AS EVID. IOT ;TM.LE2 MOVED OUT IN ORDER TO BE WITHIN BRANCH RANGE ;COMD BLOCKS NOW DONE - DESPATCH TO DATA LOADER: TM.LND: JS¹UPDATE TOTAL BLKS INC FILES NOGO2: JSR R5,ENDTST ;NO MATCH - GET NEXT FILE  BR WCSRCH  ;GOT IT ADD #2,R5  ;NO MORE FILES WCRET: RTS R5  ;EXIT .WORD 0  ;WILD CARD FNBLK .WORD 0 FNBKWC: .WORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD 0 ;GLOBAL SUBROUTINES ;CHECKS IF FNBKXX+6 IS NON-ZERO (OTHER THAN LOGGED IN UIC) ;IF NOT, GETS LOGGED IN UIC ;REQUIRES FNBKXX+6 BE IN UIC TO START UCGET: Tº ; ÿPIP-11 ÿV003B ; ÿSYMBOL DEFINITION FOR ALL PIP ; ÿASSEMBLY MODULES ÿR0=%0 ÿ ÿ ÿ;REGISTER DEFINITION ÿR1=%1 ÿR2=%2 ÿR3=%3 ÿR4=%4 ÿR5=%5 ÿR6=%6 ÿSP=%6 ÿPC=%7 ÿR7=%7 ÿWAIT=1 ÿ ÿ ÿ;DISK MONITOR EMT SYMBOLS ÿWRITE=2 ÿREAD=4 ÿINIT=6 ÿRELEAS=7 ÿTRAN=10 ÿSTATUS=13 ÿSEARCH=14 ÿALLOC=15 ÿOPEN=16 ÿCLOSE=17 ÿRENAME=20 ÿDELETE=21 ÿAPPEND=22 ÿPROTECT=24 ÿEXIT=33 ÿUTILIT=41 ÿS202=2202 ÿS203=2203 ÿS204=2204 ÿS205=2205 ÿS206=2206 ÿS207=22»LINE,R0 JSR PC,DEVICE ;"DEV" TO LINE BUFFER MOVB #40,(R0)+ MOV R3,BLKS JMP FRMESS  ; ;SUBROUTINE TO COUNT BITS IN PERMANENT BIT MAP. USED WITH /FR SWITCH CNTBIT: MOV BLOCK+4,R4 ;NO. WORDS IN BIT MAP ASL R4  ;MAKE IT BYTE COUNT MOV #BLOCK+10,R1 ;1ST WORD OF BITS IN MAP TBYT: TSTB (R1)  ;ALL ZEROES? BNE CNTFR  ;NO COUNT THE BITS ADD #8.,R3  ;YES ADD 8 TO CNT NXTBYT: INC R1 DEC R4 BNE TBYT RTS PC  ;DONE CNTFR: ROLB (R1)  ;1 BCS .+¼R PC,@R2  ;GET FINAL CHECKSUM TSTB TM.LCS  ;... & VERIFY BNE TM.LE1 MOV @R0,R0  ;GIVE LDR DDB ADDRESS MOV TM.LTS,R1 ;... & FILE TYPE SWITCH MOV TM.LTB,R5 ;GET TRAN BLOCK ADDRESS TST (R5)+ MOV (R5)+,R2 ;... TO PASS BUFFER ADDRESS TST (R5)+ BIC #137777,@R5 ;ENSURE EOD BIT SET IN DDB BIS @R5,12(R0) ;... IF NECESSARY MOV TM.LRS,R5 ;PASS ON RWN RESIDENCY MOV TM.LMC,-(SP) ;SHOW MON RTN COUNT MOV TM.PLA,-(SP) ;... & PROGRAM LOAD POINT EMT 61 ½ST UIC  ;CALLED BY JSR R5 BNE UCRET MOV #105,-(SP) EMT UTILIT  ;GET UIC MOV (SP)+,UIC UCRET: RTS R5 FINDUC: MOV FSTMFD,BLKNO JSR PC,RDBLK ;READ 1ST MFD BLOCK RDMFD: MOV BLOCK,BLKNO ;LINK TO NEXT MFD JSR PC,RDBLK ;READ NEXT MFD BLOCK MOV #BLOCK+2,R2 ;UIC IN MFD CMPUIC: CMP (R2)+,UIC BEQ RETURN  ;FOUND MATCHING UIC ADD #6,R2 CMP R2,ENDBLK BLT CMPUIC TST BLOCK BNE RDMFD TST (SP)+  ;CLEAR STACK MOV #S233,.ERCDW ;NO MATCHI¾07 ÿS231=2231 ÿS232=2232 ÿS233=2233 ÿS234=2234 ÿS235=2235 ÿS236=2236 ÿS237=2237 ÿS240=2240 ÿS241=2241 ÿS242=2242 ÿS251=2251 ÿS252=2252 ÿCR=15 ÿLF=12 ÿ ÿ ÿ;ASCII DEFINITIONS FOR CNTRL CHRS ÿVERTAB=13 ÿAL="AL ÿÿBR="BR ÿB='B ÿCO="CO ÿ C='C ÿDE="DE ÿDI="DI ÿEN="EN ÿ E='E ÿFA="FA ÿFB="FB ÿFR="FR ÿMT="MT ÿ M='M ÿÿPR="PR ÿ P='P ÿQU="QU ÿ Q='Q ÿRE="RE ÿ R='R ÿUN="UN ÿ U='U ÿZE="ZE ÿ Z='Z ÿWC=-1 .GLOBL ÿLKBK01,LKBK02,LKBKDU,FNBK¿4 INC R3  ;FREE BIT - INC CNT ROLB (R1)  ;2 BCS .+4 INC R3 ROLB (R1)  ;3 BCS .+4 INC R3 ROLB (R1)  ;4 BCS .+4 INC R3 ROLB (R1)  ;5 BCS .+4 INC R3 ROLB (R1)  ;6 BCS .+4 INC R3 ROLB (R1)  ;7 BCS .+4 INC R3 ROLB (R1)  ;8 BCS .+4 INC R3 BR NXTBYT DIRMES: .ASCII /DIRECTORY / .BYTE 0 DFMES1: .BYTE CR,LF .ASCII /TOTL BLKS: / .BYTE 0 DFMES2: .BYTE CR,LF .ASCII /TOTL FILES:/ .À ;CALL LOADER PROPER. ;DATA BLOCKS: ; (A HEADER MESSAGE: TM.HDR: .WORD 2 .WORD 0 .WORD 2 .BYTE 15,12 ; B) SIGNAL READY FOR COMMAND: TM.DOL: .WORD 2 .WORD 0 .WORD 2 .BYTE '$,13 ; C) CTL/C ECHO MESSAGE: TM.CTLC: .WORD 6 .WORD 0 .WORD 6 .ASCII '^C' .BYTE 15,12,'.,13 ; D) DATE & TIME MESSAGES: TM.DAT: .WORD 10 .WORD 0 .WORD 10 .ASCII 'DATE:- ' .BYTE 13 ; TM.TIM:ÁNG UIC FOUND JSR R5,.ERRFT    ;2 EXITS - 1ST=NO UFD ;GETS UFD BLOCKS ;EXIT 1=NO UFD ;EXIT 2=FOUND NEXT UFD. R2 POINTS TO 1ST ENTRY GETUFD: TSTB UFDPAS  ;IS THIS 1ST PASS? BEQ FIRST  ;YES MOV BLOCK,BLKNO GET: JSR PC,RDBLK MOV #BLOCK+2,R2 BR DONEX FIRST: INCB UFDPAS TST (R2) BEQ RETURN  ;0 - NO UFD, SO EXIT MOV (R2),BLKNO BR GET ENDTST: ADD #22,R2  ;POINTS R2 TO NEXT UFD ENTRY CMP R2,ENDBLK ;READS NEXT UFD BLOCK IF NECESS. BLT RÂ01,FNBK02,FNBKDU,.ACTSW .GLOBL ÿ.M20B,.CSQF,.TRFQF,.PSTQF,.PREQF,.ENTB1,.ENTB2 .GLOBL ÿ.FLAG1,.FLAG2,.FLAG3,.FLAG4,.FLAG5,.FLAG6,.FLAG7,.FLAG8 .GLOBL ÿ.NUMIN,.NUMOT,.ERCDW,.ACT,.SPARE,.COUNT,.ERRPR .GLOBL ÿ.ERRFT,.M2OB,.RSAV,.USAV,.CSII,.CSII1,.CSII2,.CSII3 .GLOBL ÿ.CSII4,.CSII5,.MOVLK,.MOVFN,.RENAM,.TFR .GLOBL ÿ.FLGIN,.FLGOT,.START,.DIREC,.DELET,.ZERO .GLOBL ÿ.NYI,.BRIEF,.PROT,.ALLOC,.ENTER,.UNLOC,.FREE .GLOBL ÿBLOCK,FSTMFD,UIC,.GETLK,.GETFN,BLKNO,HOWOPN,NOWDS .GLOBL ÿENDBLK,STWD01,STWD02,LKBK,SBYTE 0 DTMES1: .BYTE CR,LF .ASCII /FREE BLKS: / .BYTE 0 DTMES2: .BYTE CR,LF .ASCII /FREE FILES:/ .BYTE 0 .EVEN HEADER: .WORD 0  ;LINE BUFFER .WORD 2  ;UNFORMATTED ASCII .WORD 0  ;PLANT (NO. BYTES) LINE: .WORD 0 .=.+72. CNT: 0 .END Ä .WORD 10 .WORD 0 .WORD 10 .ASCII 'TIME:- ' .BYTE 13 ; E) INPUT FILE BLOCK: .WORD 0  ;NO ERROR RTN - SYS ERROR .WORD 4 TM.INF: 0,0,0,0,0  ;NAME SET VIA CSI ; E) INPUT COMMAND BUFFER .WORD 2,0,0,0,0,0,0 ;REQD FOR CSI LDR.GS=.-4 TM.LBA=.-2 LDR.LN: TM.IBF: .WORD 128. .WORD 0 .WORD 0 .=.+128. ; F) LINK-BLOCK FOR FILE LOOK-UP: .WORD 0  ;NO ERROR POSSIBLE??? TM.RBK: .WORD 0 .ÅETURN  ;INCREMENTS EXIT IF NO MORE BLOCKS TST BLOCK BNE ENDTS2 CLRB UFDPAS  ;INITIALIZE FOR NEXT TIME BR DONEX ENDTS2: JSR R5,GETUFD  TST (SP)+  ;NO UFD. RETURN TO PIP RETURN: RTS R5 DONEX: ADD #2,R5  ;INCREMENT EXIT RTS R5 ;ROUTINE TO SEARCH LKBKDU FOR SWITCH MATCHING ONE FOLLOWING CALL ;RETURNS WITH R0=0 IF MATCH ;R0=1 IF NO MATCH SWGET: MOV #LKBKDU+10,R0 SWGET1: TST (R0)  ;SWITCHES TO FOLLOW? BEQ SWGET3  ;NO SWGET2: MOV (R0),R1  ;NO. WTWD,PASSGL,FNBKWC .GLOBL ÿFINDUC,GETUFD,ENDTST,RDBLK,WRBLK,WCSRCH,SETUP,UCGET .GLOBL ÿBLKS,FILES,UFDPAS,SWGET,.AUXWD .GLOBL ÿDEVNAM,DKZ,LKBKTT,LKBKKB,.CMDBF ÿ.EOT Ç .TITLE DKZERO .GLOBL DKZ,LKBKTT,LKBKKB,LKBK01,BLOCK,.CMDBF ;VERSION V000A ;PROGRAM TO INITIALIZE A DISK CARTRIDGE ;COPYRIGHT DIGITAL EQUIPMENT CORPORATION ;MAYNARD, MASSACHUSETTS JUNE 1971 R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 R6=%6 PC=%7 CR=15 LF=12 VT=13 UIC=440 INIT=EMT+6 READ=EMT+4 WRITE=EMT+2 WATE=EMT+1 TRAN=EMT+10 IF=5    ;INTERLEAVE FACTOR MSGBUF: .WORD 12.,0,12. .BYTE CR,ÈWORD -1  ;CANNOT BE ASSIGNED!!! .WORD 1 .RAD50 'DF'  ;DEFAULT IS DSK ; G) LINK-BLOCK FOR INPUT COMMAND: .WORD 0  ;AGAIN SHOULD BE NO ERROR! .WORD 0 .RAD50 'CMD'  ;COMMAND DEVICE .WORD 1 .RAD50 'KB'  ;... NORMALLY KBD ; H) LINK-BLOCK FOR PRINTER MESSAGES: .WORD 0 .WORD 0 .WORD -1  ;AGAIN AVOID ASSIGNMENT .WORD 1 .RAD50 'KB'  ;ALWAYS CONSOLE ; I) LINK BLOCK FOR I/O TIDY & DISK READ: .WORD 0  ;NO ERROR RETURN FOR NOW TM.LNK: .WORÉDS TO FOLLOW ROL R1  ;DOUBLE IT ADD R1,R0  ;POINT R0 TO SWITCH CMP (R0)+,(R5) ;MATCH? BEQ SWGET4  ;YES BR SWGET1  ;NO - TRY FOR MORE SWGET3: MOV #1,R0  ;NO MATCH BR SWEX SWGET4: CLR R0  ;MATCH SWEX: ADD #2,R5 RTS R5 RDBLK: MOV #4,HOWOPN TRN: MOV #BLKNO,-(SP) ;CALLED B, JSR PC MOV LKBK,-(SP) EMT TRAN MOV LKBK,-(SP) EMT WAIT BIT #TRNCHK,HOWOPN ;TEST FOR ERROR OR EOM BNE TRNERR RTS PC  ;NO ERROR TRNERR: MOV HOWOPN,Ê; ÿDECTAPE COPY ROUTINE, VER 001A ; ÿ DR. WILLIAM GODWIN ; ÿ EDUCATIONAL TESTING SERVICE ; ÿ PRINCETON, NEW JERSEY ÿR0=%0 ÿR1=%1 ÿR2=%2 ÿR5=%5 ÿSP=%6 ÿPC=%7 ÿ ÿ;ASSIGNMENTS ÿ;FOR 8K CONFIGURATIONS, SET ÿ; WBLOCK=2048. ÿ; HBLK=8. ÿ;FOR 12K CONFIGURATIONS, SET ÿ; WBLOCK=4096. ÿ; HBLK=16. ÿWBLOCK=4096. ÿHBUFSZ=WBLOCK+WBLOCK ÿFBUFSZ=HBUFSZ+HBUFSZ ÿHBLK=16. ÿFBLK=HBLK+HBLK ÿ ÿ;BUFFERS & REGISTERS VEËLF  ;CONFIRMATION MESSAGE .ASCII /CONFIRM: / .BYTE VT .EVEN RESBUF: .WORD 3,0,3  ;RESPONSE TO CONFIRMATION .=.+3 .EVEN ;CALLED BY JSR PC,DKZ DKZ: MOV #MSGBUF,-(R6) MOV #LKBKTT,-(R6) WRITE   ;SEND REQUEST FOR CONFIRM MOV #RESBUF,-(R6) MOV #LKBKKB,-(R6) READ   ;READ THE REPLY MOV #LKBKKB,-(R6) WATE   ;WAIT FOR THE READ MOV R5,-(R6) ;SAVE MAIN PIP'S R5 MOV #2400.,R5 ;SET FOR LOW DENSITY MOV #2,R2  ;# OFÌD 0  ;PTR TO DDB - SET AS NEC .WORD -1  ;CANNOT BE ASSIGNED!!! .WORD 1 .WORD 0  ;SET TO SYS DSK NAME ; J) TRANSFER BLOCK FOR DISK READ: .WORD 5  ;STD BLOCK FOR MRT COPY .WORD 0,0  ;ADDR & CNT SET BY PROG .WORD 4  ;READ ONLY REQD .WORD 0 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;X EMBEDDED READ/WRITE PROCESSOR MUST COME HERE: X ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Í.AUXWD BIC #377,.AUXWD SWAB .AUXWD MOV #S207,.ERCDWD JMP .ERRFT WRBLK: MOV #2,HOWOPN BR TRN .=.+20  ;PATCH SPACE LKBK: .WORD 0  ;PLANT BLKNO: .WORD 0  ;PLANT .WORD BLOCK NOWDS: .WORD 0  ;PLANT HOWOPN: .WORD 0  ;PLANT .WORD 0  ;MONITOR USE FSTMFD: .WORD 0  ;PLANT UIC: .WORD 0  ;PLANT ENDBLK: .WORD 0  ;PLANT STWD01: .WORD 0  ;PLANT STWD02ÎRIFY: ÿ.WORD 0 EWORD: ÿ.WORD 0 TCOUNT: ÿ.WORD -5 VCOUNT: ÿ.WORD -5 UNIT: ÿ.WORD 0 SWITCH: ÿ.WORD 0 BUFF0: ÿ.WORD 80.,0,0 BUFF1: ÿ.WORD 0 ÿ.=.+HBUFSZ BUFF2: ÿ.WORD 0 ÿ.=.+HBUFSZ ÿ ÿ;CONTROL BLOCKS ÿ.WORD 0 ÿ ÿ;TTY PRINTER LINK BLOCK LNKP: ÿ.WORD 0,0 ÿ.BYTE 1,0 ÿ.RAD50 /KB/ ÿ.WORD 0 ÿ ÿ;PRINTER FILE BLOCK ÿ.BYTE 2,0 FBLKP: ÿ.WORD 0,0,0,0,0 ÿ.WORD 0 ÿ ÿ;TTY KEYBOARD LINK BLOCK LNKK: ÿ.WORD 0,0 ÿ.BYTE 1,0 ÿ.RAD50 /KB/ ÿ.WORD 0 ÿ ÿ;KEYBOARD FILE BLOCK ÿ.BYTE 4Ï BM BLOCKS MINUS 1 MOV #RESBUF+6,R1 CMPB #'L,@R1  ;IS REPLY CONFIRM LOW? BEQ DKZ00  ;YES - BRANCH CMPB #'H,@R1  ;IS REPLY CONFIRM HIGH? BNE DKZXIT  ;NO - GO EXIT ASL R5  ;SET FOR HIGH DENSITY TST (R2)+ DKZ00: INC R1  ;KEEP 'EM HONEST! IF NEXT CMPB #12,@R1  ;CHARACTER IS NOT AN ASCII BHI DKZXIT  ;DELIMETER, ASSUME NO CMPB #15,@R1  ;CONFIRMATION BLO DKZXIT TSTB LKBK01+5 ;IS THIS UNIT 0? BNE DKZ03  ;NO - CAN'T BE SYSTEM DEVICE MO;MISC DEFINITIONS: V.EOM=0 V.TOB=2 V.CSA=4 V.PLA=6 V.BAT=12 V.DCO=14 V.MUS=16 V.OSW=20 V.PSA=22 V.DAT=32 V.UIC=40 V.PGN=42 V.MRT=46 V.DDL=50 V.SSP=52 V.BFE=56 V.WTL=60 V.KBA=62 V.SVT=40 V.RSAV=44 V.RRES=46 V.GTB=54 .WAIT=1 .WRITE=2 .READ=4 .INIT=6 .RLSE=7 .TRAN=10 .STAT=13 .LUKUP=14 .OPEN=16 .CLOSE=17 .KBL=31 .KBI=33 .CVT=42 .CSX=56 .CSM=57 .XIT=60 .END TMON Ñ: .WORD 0  ;PLANT BLOCK: .WORD 0 .=.+508. .WORD 0 ;ROUTINE TO ZERO DIRECTORY ON DECTAPE .TITLE .ZERO .CSECT .ZERO: JSR R5,.GETLK BIT #40000,STWD BNE ZDEC  ;DECTAPE CMP DEVNAM,DK ;IS IT DK? BEQ DKZE CMP DEVNAM,MTA BEQ MTZE MOV #S236,.ERCDW JSR R5,.ERRFT ;ILL OUTPUT DEVICE DKZE: JSR PC,DKZ ;ZERO DK ZEND: MOV #LKBK01,-(SP) EMT 7  ;RELEASE OUTPUT DEV. RTS R5  ;RETURN TO PIP MTZE: JSR PC,MTZ  ;ZERO MT BR ZEND Ò,0 FBLKK: ÿ.WORD 0,0,0,0,0 ÿ.WORD 0 ÿ ÿ;DRIVE 0 LINK BLOCK LNK0: ÿ.WORD 0,0 ÿ.BYTE 1 LNK0U: ÿ.BYTE 0 ÿ ÿ;UNIT FOR ORIGINAL ÿ.RAD50 /DT/ ÿ.WORD 0 ÿ ÿ;DRIVE 1 LINK BLOCK LNK1: ÿ.WORD 0,0 ÿ.BYTE 1 LNK1U: ÿ.BYTE 0 ÿ ÿ;UNIT FOR COPY ÿ.RAD50 /DT/ TRANF: ÿ.WORD 0 ÿ ÿ;FULL BUFFER TRAN BLOCK ÿ.WORD BUFF1 ÿ.WORD HBUFSZ ÿ.WORD 2 ÿ ÿ;READ(4)/WRITE(2) ÿ.WORD 0 TRAN1: ÿ.WORD 0 ÿ ÿ;NO. 1 HALF-BUFFER TRAN ÿ.WORD BUFF1 ÿ.WORD WBLOCK ÿ.WORD 4,0 TRAN2: ÿ.WORD 0 ÿ ÿ;NO. 2 HALF-BUFFÓV #.CMDBF,-(R6) EMT 56  ;FIND OUT WHAT THE SYSTEM TST (R6)+  ;DEVICE IS CMP .CMDBF+6,LKBK01+6 ;IS THIS IT? BNE DKZ03  ;NO - GO AHEAD CLR -(R6) MOV (PC)+,-(R6) ;S254 MEANS YOU TRIED TO .BYTE 254  ;ZERO THE SYSTEM DISK .BYTE 4  ;USING PIP. WHICH IS IOT   ;DEFINITELY A NO-NO BR DKZX00  ;GO BACK TO PIP DKZ03: MOV #TB,R4 MOV #BLOCK,R0 CLR @R4 MOV #2,R3  ;INITIALIZE ZERO PASS COUNT MOV R0,R1 JSR PC,DKZCLR ;CLEAR THE 256. WORD BUFÔ; UPDATE 1 27 APR 1972 TEMP FIX FOR LENGTH -B20K ; DECTAPE COPY ROUTINE, VER 001A ;  DR. WILLIAM GODWIN ;  EDUCATIONAL TESTING SERVICE ;  PRINCETON, NEW JERSEY R0=%0 R1=%1 R2=%2 R5=%5 SP=%6 PC=%7  ;ASSIGNMENTS ;FOR 8K CONFIGURATIONS, SET ; WBLOCK=2048. ; HBLK=8. ;FOR 12K CONFIGURATIONS, SET ; WBLOCK=4096. ; HBLK=16. WBLOCK = 8192. HBUFSZ=WBLOCK+WBLOCK FBUFSZ=HBUFSZ+HBUFSZ HBLK = 32. FBLK=HBLK+Õ MTA: .RAD50 /MT/ DK: .RAD50 /DK/ ZDEC: JSR R5,ZDIR  ;ZERO DECTAPE BR ZEND ;ROUTINE TO ZERO DECTAPE ZDIR: MOV #LKBK01,LKBK MOV NOWDS,CNT ;BLOCK SIZE JSR R7,CLEAR  ;CLEAR 256 WORD BLOCK CLR PASS   ;INITIALIZE 1ST PASS MOV #70,FBLK MOV #TABLE,FTAB NEWPAS: MOV FTAB,R0 MOV FBLK,BLKNO SAMPAS: JSR R7,@(R0) ;MOVE DATA,WRITE,CLEAR ADD IF,R0   ;INC TABLE PNTR BY IF ADD IF,R0ÖER TRAN ÿ.WORD BUFF2 ÿ.WORD WBLOCK ÿ.WORD 4,0 ÿ ÿ;PROGRAM INITIALIZATION START: ÿMOV #LNKP,-(SP) ÿ ÿ; .INIT LNKP ÿEMT 6 ÿMOV #LNKK,-(SP) ÿ ÿ; .INIT LNKK ÿEMT 6 ÿMOV #MSG1,-(SP) ÿ ÿ; .WRITE MSG1 ÿMOV #LNKP,-(SP) ÿEMT 2 L10: ÿMOV #MSG2,-(SP) ÿ ÿ; .WRITE MSG2 ÿMOV #LNKP,-(SP) ÿEMT 2 ÿMOV #LNKP,-(SP) ÿ ÿ; .WAIT LNKP ÿEMT 1 ÿMOV #BUFF0,-(SP) ÿ; .READ KEYBOARD ÿMOV #LNKK,-(SP) ÿEMT 4 ÿMOV #LNKK,-(SP) ÿ ÿ; .WAIT LNKK ÿEMT 1 ÿJSR PC,L40 ÿ ÿ;CHECK INPUT ÿBR L10 ÿ ÿ ÿ×FER DKZ05: ADD #3,@R4 CMP @R4,R5 BHIS DKZ12  ;CLEAR THE CARTRIDGE DKZ10: MOV R4,-(R6) ;THE ALGORITHM IS TO MOV #LKBK01,-(R6) ;ZERO BLOCKS 0,3,6,... TRAN   ;THEN BLOCKS 2,5,8,... BR DKZ05  ;THEN BLOCKS 1,4,7,... DKZ12: MOV R3,@R4 DEC R3 BGE DKZ10 DKZ15: MOV R0,R1 MOV #1,@R4  ;WRITE OUT FIRST MFD BLOCK SUB R2,R5  ;GET SECOND MFD BLOCK # CMPB -(R5),-(R5) MOV R5,(R1)+ ;LINK TO FIRST MFD MOV R2,R3 MOV #IF,(R1)+ ;INTERLEAVE FACTOR ØHBLK  ;BUFFERS & REGISTERS VERIFY: .WORD 0 EWORD: .WORD 0 TCOUNT: .WORD -5 VCOUNT: .WORD -5 UNIT: .WORD 0 SWITCH: .WORD 0 BUFF0: .WORD 80.,0,0 BUFF1: .WORD 0 .=.+HBUFSZ BUFF2: .WORD 0 .=.+HBUFSZ  ;CONTROL BLOCKS .WORD 0  ;TTY PRINTER LINK BLOCK LNKP: .WORD 0,0 .BYTE 1,0 .RAD50 /KB/ .WORD 0  ;PRINTER FILE BLOCK .BYTE 2,0 FBLKP: .WORD 0,0,0,0,0 .WORD 0  ;TTY KEYBOARD LINK BLOCK LNKK: .WORD 0,0 .BYTE 1,0 .RAD50 /KB/ .WÙ ADD IF,BLKNO  ;INC BLOCK NO. BY IF CMP R0,#ENDTAB BLE SAMPAS INC PASS   ;SET UP NEXT PASS CMP PASS,IF   ;WAS THIS LAST PASS? BEQ EXITZ   ;YES INC FBLK ADD #2,FTAB BR NEWPAS EXITZ: RTS R5 PASS: 0 IF: 4 CNT: 0 TEMP: 0 FBLK: 0 FTAB: 0 ;TABLE OF SUBROUTINES TABLE: WR70S    ;70 WR70S    ;71 WR70S    ;72 WR70S    ;73 WR70S    ;74 WR70S    ;75 WR70S    ;76 WR70S    ;77 WR100 WR101Ú;ERROR. TRY AGAIN ÿMOVB R0,LNK0U ÿ ÿ;OK. SET INPUT UNIT L20: ÿMOV #MSG3,-(SP) ÿ ÿ; .WRITE MSG3 ÿMOV #LNKP,-(SP) ÿEMT 2 ÿMOV #LNKP,-(SP) ÿ ÿ; .WAIT LNKP ÿEMT 1 ÿMOV #BUFF0,-(SP) ÿ; .READ KEYBOARD ÿMOV #LNKK,-(SP) ÿEMT 4 ÿMOV #LNKK,-(SP) ÿ ÿ; .WAIT LNKK ÿEMT 1 ÿJSR PC,L40 ÿ ÿ;CHECK INPUT ÿBR L20 ÿ ÿ ÿ;ERROR. TRY AGAIN ÿCMPB R0,LNK0U ÿ ÿ;OK. SAME DRIVE AS INPUT? ÿBNE L30 ÿJSR PC,L50 ÿ ÿ;YES. THATS A NO-NO! ÿBR L20 L30: ÿMOVB R0,LNK1U ÿ ÿ;NO. SET OUTPUT UNIT ÿMOV #MSG8,-(SPÛINC R5  ;FIRST BIT MAP BLOCK MOV R5,(R1)+ ;ENTER IT TWICE MOV R5,(R1)+ MOV R5,-(R6) ;AND SAVE IT FOR LATER DKZ20: INC R5  ;ENTER SUCCESSIVE BM BLOCKS MOV R5,(R1)+ DEC R3 BNE DKZ20 JSR PC,DKZTRN ;WRITE OUT MOV R0,R1  ;SET TO DO SECOND MFD BLOCK MOV @R1,@R4  ;SET THE BLOCK NUMBER CLR (R1)+  ;CLEAR THE LINK MOV @#UIC,(R1)+ ;ENTER THIS USER'S UIC CLR (R1)+  ;NO UFD YET MOV #9.,(R1)+ ;9. WORDS PER UFD ENTRY JSR PC,DKZCLR ;CLÜORD 0  ;KEYBOARD FILE BLOCK .BYTE 4,0 FBLKK: .WORD 0,0,0,0,0 .WORD 0  ;DRIVE 0 LINK BLOCK LNK0: .WORD 0,0 .BYTE 1 LNK0U: .BYTE 0  ;UNIT FOR ORIGINAL .RAD50 /DT/ .WORD 0  ;DRIVE 1 LINK BLOCK LNK1: .WORD 0,0 .BYTE 1 LNK1U: .BYTE 0  ;UNIT FOR COPY .RAD50 /DT/ TRANF: .WORD 0  ;FULL BUFFER TRAN BLOCK .WORD BUFF1 .WORD HBUFSZ .WORD 2  ;READ(4)/WRITE(2) .WORD 0 TRAN1: .WORD 0  ;NO. 1 HALF-BUFFER TRAN .WORD BUFF1 .WORD WBLOCK .WORD 4Ý WR102 WR103 ENDTAB: WR104 WR70S: JSR R7,WRBLK  ;WRITE A BLOCK OF ZEROS RTS R7 WR100: MOV #BLK100,R1  ;FOR MOVING DATA MOV #4,CNT   ;NO. WORDS TO BE MOVED JSR R7,MVWRCL  ;MOVE DATA,WRITE,CLEAR BLOCK RTS R7 WR101: MOV #BLK101,R1 MOV #4,CNT MOV UIC,2(R1)  ;UIC TO BUFFER JSR R7,MVWRCL RTS 7 WR102: MOV #BLK102,R1 MOV #1,CNT JSR R7,MVWRCL RTS R7 WR103: JSRÞ) ÿ ÿ; .WRITE MSG8 ÿMOV #LNKP,-(SP) ÿEMT 2 ÿMOV #LNKP,-(SP) ÿ ÿ; .WAIT LNKP ÿEMT 1 ÿMOV #BUFF0,-(SP) ÿ; .READ KEYBOARD ÿMOV #LNKK,-(SP) ÿEMT 4 ÿMOV #LNKK,-(SP) ÿ ÿ; .WAIT LNKK ÿEMT 1 ÿCLR VERIFY ÿCMPB #131,BUFF1 ÿ ÿ;TEST FOR "Y"ES ÿBNE L35 ÿINC VERIFY ÿ ÿ;SET TO VERIFY COPY L35: ÿMOV #LNKK,-(SP) ÿ ÿ; .RLSE LNKK ÿEMT 7 ÿMOV #LNK0,-(SP) ÿ ÿ; .INIT LNK0 ÿÿEMT 6 ÿMOV #LNK1,-(SP) ÿ ÿ; .INIT LNK1 ÿEMT 6 ÿCLR TRANF ÿ ÿ;START AT BLOCK 0 ÿCLR TRAN1 ÿCLR TRAN2 ÿJMP L100 ßEAR THE REST OF THE BLOCK    ;AND WRITE IT OUT ;SET TO DO THE BIT MAPS CLR R5  ;USED FOR MAP NUMBER MOV @R6,@R4  ;GET BLOCK OF FIRST MAP MOV #60.,R3  ;USED PERIODICALLY BELOW DKZ25: MOV R0,R1  ;INITIALIZE BUFFER POINTER MOV @R4,@R1  ;GET LINK TO NEXT MAP INC (R1)+ DEC R2  ;IF THIS IS THE LAST MAP. BGE DKZ30  ;THEN THE LINK IS ZERO CLR @R0 DKZ30: INC R5  ;PUT IN THE MAP NUMBER MOV R5,(R1)+ MOV R3,(R1)+ ;PUT IN MAP SIZE MOV @Rà,0 TRAN2: .WORD 0  ;NO. 2 HALF-BUFFER TRAN .WORD BUFF2 .WORD WBLOCK .WORD 4,0  ;PROGRAM INITIALIZATION START: MOV #LNKP,-(SP)  ; .INIT LNKP EMT 6 MOV #LNKK,-(SP)  ; .INIT LNKK EMT 6 MOV #MSG1,-(SP)  ; .WRITE MSG1 MOV #LNKP,-(SP) EMT 2 L10: MOV #MSG2,-(SP)  ; .WRITE MSG2 MOV #LNKP,-(SP) EMT 2 MOV #LNKP,-(SP)  ; .WAIT LNKP EMT 1 MOV #BUFF0,-(SP) ; .READ KEYBOARD MOV #LNKK,-(SP) EMT 4 MOV #LNKK,-(SP)  ; .WAIT LNKK EMT 1 Já R7,WRBLK  ;ALL ZEROES RTS R7 WR104: MOV #BLK104,R1 MOV #11,CNT JSR R7,MOVDAT MOV #BLOCK+80.,R1 MIN1: MOV #-1,(R1)+  ;FILL WDS 40-255 WITH -1 CMP R1,ENDBLK BLE MIN1 JSR R7,WRBLK  ;WRITE THE BLOCK MOV #256.,CNT JSR R7,CLEAR  ;CLEAR THE WHOLE BLOCK RTS R7 MOVDAT: MOV CNT,TEMP  ;MOVES DATA MOV #BLOCK,R2  ;TO BLOCK MOVE: MOV (R1)+,(R2)+ DEC TEMP BGT MOVE RTS R7 CLEAR: MOV #BLOCK,R2  ;CLEARS BLOCK CLR1: CLR (R2)+ âÿ ÿÿ;HI-OH SILVER, AWAY... L40: ÿMOVB BUFF1,R0 ÿ ÿ;GET KEYBOARD CHARACTER ÿSUB #60,R0 ÿBMI L50 ÿ ÿ ÿ; <0. ERROR ÿCMP R0,#7 ÿBGT L50 ÿ ÿ ÿ; >7. ERROR ÿADD #2,(SP) ÿ ÿ;OK. SKIP ERROR RETURN ÿRTS PC ÿ ÿ ÿ; & BACK WE GO L50: ÿMOV #MSG4,-(SP) ÿÿ ÿ;ERROR COMMENT (???) ÿMOV #LNKP,-(SP) ÿEMT 2 ÿMOV #LNKP,-(SP) ÿ ÿ; .WAIT LNKP ÿEMT 1 ÿRTS PC ÿ ÿ ÿ;TAKE ERROR RETURN ÿ ÿ;COPY SEQUENCE L100: ÿMOV #TRANF+6,EWORD ÿMOV #4,TRANF+6 ÿ ÿ;READ FULL BUFFER ÿMOV #TRANF,-(SP) ÿ;FROM UNIT 0ã6,(R1)+ ;PUT IN LINK TO FIRST MAP CMPB R5,@PC  ;IS THIS MAP #1? BHIS DKZ35  ;NO - BRANCH -*****- MOV #3,(R1)+ ;SET BLOCKS 0 & 1 TAKEN DKZ35: TST R2  ;IS THIS THE LAST MAP? BGE DKZ45  ;NO - BRANCH ADD R3,R1  ;SET UP FOR LOW DENSITY TST -(R1)  ;POINTER LAST WORD OF MAP CMP (R6)+,#2400. ;IS IT LOW DENSITY ? BLO DKZ40  ;YES - BRANCH ADD R3,R1 MOV #176000,(R1)+ ;SET LAST 6 BLOCKS TAKEN BR DKZ45 DKZ40: MOV #170000,(R1)+ ;SET LAST 4 BLOCKS TAKäSR PC,L40  ;CHECK INPUT BR L10   ;ERROR. TRY AGAIN MOVB R0,LNK0U  ;OK. SET INPUT UNIT L20: MOV #MSG3,-(SP)  ; .WRITE MSG3 MOV #LNKP,-(SP) EMT 2 MOV #LNKP,-(SP)  ; .WAIT LNKP EMT 1 MOV #BUFF0,-(SP) ; .READ KEYBOARD MOV #LNKK,-(SP) EMT 4 MOV #LNKK,-(SP)  ; .WAIT LNKK EMT 1 JSR PC,L40  ;CHECK INPUT BR L20   ;ERROR. TRY AGAIN CMPB R0,LNK0U  ;OK. SAME DRIVE AS INPUT? BNE L30 JSR PC,L50  ;YES. THATS A NO-NO! BR L20 L30: MOVB R0,LNK1UåDEC CNT BGT CLR1 RTS R7 MVWRCL: JSR R7,MOVDAT JSR R7,WRBLK JSR R7,CLEAR RTS R7 BLK100: 101   ;LINK 4   ;I.F. 104   ;FIRST PBM 104   ;LAST PBM BLK101: 0   ;LINK 0   ;UIC PLANTED HERE 102   ;FIRST BLOCK OF UFD 11   ;NO. WDS/UFD ENTRY BLK102: 103   ;LINK BLK104: 0   ;LINK 1   ;NUMBER 44   ;NO. WDS IN MAP 104   ;1ST MAP OF CHAIN 1 æ ÿMOV #LNK0,-(SP) ÿEMT 10 ÿMOV #LNK0,-(SP) ÿ ÿ; .WAIT ÿEMT 1 ÿCLR UNIT ÿ ÿ;CHECK FOR ERRORS ÿJSR R5,ERROR1 ÿBR L100 L110: ÿMOV #2,TRANF+6 ÿ ÿ;WRITE FULL BUFFER ÿMOV #TRANF,-(SP) ÿ;TO UNIT 1 ÿMOV #LNK1,-(SP) ÿEMT 10 ÿMOV #LNK1,-(SP) ÿ ÿ; .WAIT ÿEMT 1 ÿINC UNIT ÿ ÿ;CHECK FOR ERRORS ÿJSR R5,ERROR1 ÿBR L110 ÿ ÿ;VERIFY SEQUENCE ÿTST VERIFY ÿ ÿ;VERIFY? ÿBNE L120 ÿJMP L170 ÿ ÿ;-- NO L120: ÿCLR SWITCH ÿ ÿ;-- YES. SET TO START ÿMOV TRANF,TRAN1 ÿMOV TRANF,TRAN2 ÿMOVçEN DKZ42: MOVB #-1,(R1)+ DEC R3  ;LOW DENSITY ONLY USES "HALF" BNE DKZ42  ;OF THE LAST BIT MAP DKZ45: JSR PC,DKZCLR ;CLEAR GARBAGE & WRITE INC @R4  ;SET UP FOR NEXT BLOCK TST R2  ;WAS THIS THE LAST MAP? BGE DKZ25  ;NO - BRANCH BR DKZX00  ;GO EXIT DKZXIT: CLR -(R6) MOV (PC)+,-(R6) ;I354 MEANS YOUR DISK .BYTE 354  ;CARTRIDGE WAS NOT ZEROED .BYTE 0 IOT DKZX00: MOV (R6)+,R5 ;RESTORE PIP'S R5 RTS PC  ;RETURN TO MAINLINE PIP ;-è  ;NO. SET OUTPUT UNIT MOV #MSG8,-(SP)  ; .WRITE MSG8 MOV #LNKP,-(SP) EMT 2 MOV #LNKP,-(SP)  ; .WAIT LNKP EMT 1 MOV #BUFF0,-(SP) ; .READ KEYBOARD MOV #LNKK,-(SP) EMT 4 MOV #LNKK,-(SP)  ; .WAIT LNKK EMT 1 CLR VERIFY CMPB #131,BUFF1  ;TEST FOR "Y"ES BNE L35 INC VERIFY  ;SET TO VERIFY COPY L35: MOV #LNKK,-(SP)  ; .RLSE LNKK EMT 7 MOV #LNK0,-(SP)  ; .INIT LNK0 EMT 6 MOV #LNK1,-(SP)  ; .INIT LNK1 EMT 6 CLR TRANF  ;START AT BLOCKé  ;BIT PATTERN,BLKS 17-0 0   ;BLKS 37-20 0   ;BLKS 57-40 177400   ;BLKS 77-60 37   ;BLKS 117-100 ;ROUTINE TO ZERO MAGTAPE ;REWIND AND WRITE 3EOFS MTZ: MOVB #3,SFBLK ;REWIND CODE=3 JSR R5,SPFNCT ;REWIND MOVB #2,SFBLK ;EOF CODE=2 JSR R5,SPFNCT ;EOF CODE=2 JSR R5,SPFNCT ;EOF CODE=2 JSR R5,SPFNCT ;EOF CODE=2 MOVB #3,SFBLK JSR R5,SPFNCT ;REWIND AGAIN RTS PC SPFNCT: MOV #SFBLK,-(SP) MOV #LKBK01,-(SP) EMT 12 MOV #LKBK01,ê #TRAN1+6,EWORD L130: ÿMOV #TRAN1,-(SP) ÿ;READ ORIGINAL FROM 0 ÿMOV #LNK0,-(SP) ÿEMT 10 ÿMOV #LNK0,-(SP) ÿ ÿ; .WAIT ÿEMT 1 ÿCLR UNIT ÿ ÿ;CHECK FOR ERRORS ÿJSR R5,ERROR1 ÿBR L130 ÿMOV #TRAN2+6,EWORD L140: ÿMOV #TRAN2,-(SP) ÿ;READ COPY FROM 1 ÿMOV #LNK1,-(SP) ÿEMT 10 ÿMOV #LNK1,-(SP) ÿ ÿ; .WAIT ÿEMT 1 ÿINC UNIT ÿ ÿ;CHECK FOR ERRORS ÿJSR R5,ERROR1 ÿBR L140 ÿMOV #BUFF1,R0 ÿ ÿ;SET UP COMPARE LOOP ÿMOV #BUFF2,R1 ÿMOV #-WBLOCK,R2 L150: ÿCMP (R0)+,(R1)+ ÿ ÿ;COMPARE ÿBEQ L1*****- USED AS LITERAL BY PREVIOUS INSTRUCTION TB: .WORD 0  ;TRAN BLOCK .WORD BLOCK .WORD 256. .WORD 2 .WORD 0 DKZCLR: CLR (R1)+  ;CLEARS THE BUFFER FROM CMP R1,#BLOCK+512. ;@R1 TO THE END BLO DKZCLR DKZTRN: MOV R4,-(R6) ;TRANS OUT THE BUFFER MOV #LKBK01,-(R6) ;R4 CONTAINS #TRANBLOCK TRAN MOV #LKBK01,-(R6) WATE   ;WAIT FOR COMPLETION RTS PC .END ì 0 CLR TRAN1 CLR TRAN2 MOV #HBUFSZ,TRANF+4 MOV #WBLOCK,TRAN1+4 MOV #WBLOCK,TRAN2+4 JMP L100  ;HI-OH SILVER, AWAY... L40: MOVB BUFF1,R0  ;GET KEYBOARD CHARACTER SUB #60,R0 BMI L50   ; <0. ERROR CMP R0,#7 BGT L50   ; >7. ERROR ADD #2,(SP)  ;OK. SKIP ERROR RETURN RTS PC   ; & BACK WE GO L50: MOV #MSG4,-(SP)  ;ERROR COMMENT (???) MOV #LNKP,-(SP) EMT 2 MOV #LNKP,-(SP)  ; .WAIT LNKP EMT 1 RTS PC   ;T-(SP) EMT WAIT RTS R5 SFBLK: .BYTE  0  ;SPECIAL FUNCTION CODE .BYTE  3  ;NO WDS TO FOLLOW .WORD  0  ;TAPE UNIT STATUS RETURNED BY DRIVER .WORD  0  ;USER SPECIFIED COUNT .WORD 0  ;RESIDUE COUNT RETURNED BY DRIVER .END î60 ÿJMP ERROR2 ÿ ÿ;OOPS! WE GOOFED. L160: ÿINC R2 ÿBNE L150 ÿTST SWITCH ÿ ÿ;ALL OK. BOTH HALF- ÿBNE L170 ÿ ÿ;BUFFERS TESTED YET? ÿINC SWITCH ÿ ÿ;-- NO. DO SECOND ONE. ÿADD #HBLK,TRAN1 ÿADD #HBLK,TRAN2 ÿJMP L130 ÿ ÿ;INCREMENT COPY BLOCKS OR END L170: ÿADD #FBLK,TRANF ÿ ÿ;BUMP BLOCK NO. ÿCMP TRANF,#512. ÿ ÿ;DONE YET? ÿBGE L180 ÿ ÿ;-- NO. CONTINUE ÿMOV #-5,VCOUNT ÿJMP L100 L180: ÿMOV #MSG7,-(SP) ÿ ÿ;-- YES. TYPE END MESSAGE ÿMOV #LNKP,-(SP) ÿEMT 2 L190: ÿCLR TRAN1 ÿ ÿ;REðAKE ERROR RETURN  ;COPY SEQUENCE L100: MOV #TRANF+6,EWORD MOV #4,TRANF+6  ;READ FULL BUFFER MOV #TRANF,-(SP) ;FROM UNIT 0 MOV #LNK0,-(SP) EMT 10 MOV #LNK0,-(SP)  ; .WAIT EMT 1 CLR UNIT  ;CHECK FOR ERRORS JSR R5,ERROR1 BR L100 L110: MOV #2,TRANF+6  ;WRITE FULL BUFFER MOV #TRANF,-(SP) ;TO UNIT 1 MOV #LNK1,-(SP) EMT 10 MOV #LNK1,-(SP)  ; .WAIT EMT 1 INC UNIT  ;CHECK FOR ERRORS JSR R5,ERROR1 BR L110  ;VERIFY SEQUENCE TSTòWIND UNIT 0 ÿMOV #1,TRAN1+4 ÿMOV #TRAN1,-(SP) ÿMOV #LNK0,-(SP) ÿEMT 10 ÿMOV #TRAN1,-(SP) ÿ;REWIND UNIT 1 ÿMOV #LNK1,-(SP) ÿEMT 10 ÿMOV #LNK1,-(SP) ÿ ÿ; .WAIT ÿEMT 1 ÿMOV #LNK0,-(SP) ÿ ÿ; .RLSE LNK0 ÿEMT 7 ÿMOV #LNK1,-(SP) ÿ ÿ; .RLSE LNK1 ÿEMT 7 ÿMOV #LNKP,-(SP) ÿ ÿ; .WAIT FOR TTY ÿEMT 1 ÿMOV #LNKP,-(SP) ÿ ÿ; .RLSE LNKP ÿEMT 7 ÿJMP START ÿ ÿ;RESTART ÿ ÿ;READ/WRITE ERROR CHECK ERROR1: ÿTST @EWORD ÿ ÿ;ERROR? ÿBPL E1.20 ÿINC TCOUNT ÿ ÿ;-- YES ÿBEQ E1.10 ÿRTS ô VERIFY  ;VERIFY? BNE L120 JMP L170  ;-- NO L120: CLR SWITCH  ;-- YES. SET TO START MOV TRANF,TRAN1 MOV TRANF,TRAN2 MOV #TRAN1+6,EWORD CMP TRANF,#575. BLT L130 MOV #256.*2,TRAN1+4 MOV #256.*2,TRAN2+4 L130: MOV #TRAN1,-(SP) ;READ ORIGINAL FROM 0 MOV #LNK0,-(SP) EMT 10 MOV #LNK0,-(SP)  ; .WAIT EMT 1 CLR UNIT  ;CHECK FOR ERRORS JSR R5,ERROR1 BR L130 MOV #TRAN2+6,EWORD L140: MOV #TRAN2,-(SP) ;READ CöR5 ÿ ÿ ÿ;RETRY TRANSFER E1.10: ÿADD #60,UNIT ÿ ÿ; 5 RETRIES ALREADY. ÿMOVB UNIT,MSG5X ÿ ÿ; TYPE ERROR NOTICE ÿMOV #MSG5,-(SP) ÿ ÿ; AND ABORT COPY. ÿMOV #LNKP,-(SP) ÿEMT 2 ÿJMP L190 E1.20: ÿMOV #-5,TCOUNT ÿ ÿ;-- NO. RESET RETRY COUNT, ÿTST (R5)+ ÿ ÿ; BUMP RETURN BY 2, AND ÿRTS R5 ÿ ÿ ÿ; CONTINUE ÿ ÿ;VERIFY ERROR HANDLER ERROR2: ÿINC VCOUNT ÿ ÿ;5 RETRIES YET? ÿBEQ E2.20 ÿJMP L100 ÿ ÿ;-- NO. RECOPY BLOCK. E2.20: ÿMOV #MSG6,-(SP) ÿ ÿ;-- YES. TYPE ERROR NOTICE ÿMOV #LNKP,-(SPøOPY FROM 1 MOV #LNK1,-(SP) EMT 10 MOV #LNK1,-(SP)  ; .WAIT EMT 1 INC UNIT  ;CHECK FOR ERRORS JSR R5,ERROR1 BR L140 MOV #BUFF1,R0  ;SET UP COMPARE LOOP MOV #BUFF2,R1 MOV #-WBLOCK,R2 L150: CMP (R0)+,(R1)+  ;COMPARE BEQ L160 JMP ERROR2  ;OOPS! WE GOOFED. L160: INC R2 BNE L150 TST SWITCH  ;ALL OK. BOTH HALF- BNE L170  ;BUFFERS TESTED YET? INC SWITCH  ;-- NO. DO SECOND ONE. ADD #HBLK,TRAN1 ADD #HBLK,TRAN2 CMP TRAN2,#578. ú) ÿ ÿ; AND ABORT COPY. ÿEMT 2 ÿJMP L190 ÿ ÿ;CONSOLE MESSAGES MSG1: ÿ.WORD 0,0 ÿ.WORD MSG1E-MSG1-6 ÿ.BYTE 15,12,12 ÿ.ASCII /DECTAPE COPY V001A/ ÿ.BYTE 15,12,12 ÿMSG1E=. ÿ.EVEN MSG2: ÿ.WORD 0,0 ÿ.WORD MSG2E-MSG2-6 ÿ.ASCII /ORIGINAL ON UNIT / ÿ.BYTE 13 ÿMSG2E=. ÿ.EVEN MSG3: ÿ.WORD 0,0 ÿ.WORD MSG3E-MSG3-6 ÿ.ASCII /COPY TO UNIT / ÿ.BYTE 13 ÿMSG3E=. ÿ.EVEN MSG4: ÿ.WORD 0,0 ÿ.WORD MSG4E-MSG4-6 ÿ.ASCII /????/ ÿ.BYTE 15,12 ÿMSG4E=. ÿ.EVEN MSG5: ÿ.ü BGE L180 JMP L130  ;INCREMENT COPY BLOCKS OR END L170: ADD #FBLK,TRANF  ;BUMP BLOCK NO. CMP TRANF,#578. BGE L180  ;-- NO. CONTINUE MOV #-5,VCOUNT CMP TRANF,#575. BLT L180-4 MOV #256.*2,TRANF+4 JMP L100 L180: MOV #MSG7,-(SP)  ;-- YES. TYPE END MESSAGE MOV #LNKP,-(SP) EMT 2 L190: CLR TRAN1  ;REWIND UNIT 0 MOV #1,TRAN1+4 MOV #TRAN1,-(SP) MOV #LNK0,-(SP) EMT 10 MOV #TRAN1,-(SP) ;REWIND UNIþWORD 0,0 ÿ.WORD MSG5E-MSG5-6 ÿ.BYTE 15,12 ÿ.ASCII "*** I/O ERROR, UNIT " MSG5X: ÿ.BYTE 0,13 ÿMSG5E=. ÿ.EVEN MSG6: ÿ.WORD 0,0 ÿ.WORD MSG6E-MSG6-6 ÿ.BYTE 15,12 ÿ.ASCII /*** UNRECOVERABLE COPY ERROR/ ÿ.BYTE 13 ÿMSG6E=. ÿ.EVEN MSG7: ÿ.WORD 0,0 ÿ.WORD MSG7E-MSG7-6 ÿ.BYTE 15,12,12 ÿ.ASCII /COPY COMPLETED/ ÿÿ.BYTE 15,12 ÿMSG7E=. ÿ.EVEN MSG8: ÿ.WORD 0,0 ÿ.WORD MSG8E-MSG8-6 ÿ.ASCII /VERIFY COPY (Y OR N)? / ÿ.BYTE 13 ÿMSG8E=. ÿ.EVEN ÿ.END START T 1 MOV #LNK1,-(SP) EMT 10 MOV #LNK1,-(SP)  ; .WAIT EMT 1 MOV #LNK0,-(SP)  ; .RLSE LNK0 EMT 7 MOV #LNK1,-(SP)  ; .RLSE LNK1 EMT 7 MOV #LNKP,-(SP)  ; .WAIT FOR TTY EMT 1 MOV #LNKP,-(SP)  ; .RLSE LNKP EMT 7 JMP START  ;RESTART  ;READ/WRITE ERROR CHECK ERROR1: TST @EWORD  ;ERROR? BPL E1.20 INC TCOUNT  ;-- YES BEQ E1.10 RTS R5   ;RETRY TRANSFER E1.10: ADD #60,UNIT  ; 5 RETRIES ALREADY. MOVB UNIT,MSG5X  ; TYPE ERROR NOTICE MOV #MSG5,-(SP)  ; AND ABORT COPY. MOV #LNKP,-(SP) EMT 2 JMP L190 E1.20: MOV #-5,TCOUNT  ;-- NO. RESET RETRY COUNT, TST (R5)+  ; BUMP RETURN BY 2, AND RTS R5   ; CONTINUE  ;VERIFY ERROR HANDLER ERROR2: INC VCOUNT  ;5 RETRIES YET? BEQ E2.20 JMP L100  ;-- NO. RECOPY BLOCK. E2.20: MOV #MSG6,-(SP)  ;-- YES. TYPE ERROR NOTICE MOV #LNKP,-(SP)  ; AND ABORT COPY. EMT 2 JMP L190  ;CONSOLE MESSAGES MSG1: .WORD 0,0 .WORD MSG1E-MSG1-SINGLE INPUT SOURCE RECORD. UPD7690 ; NO REGISTERS ARE USED NOR ARE ANY ARGUMENTS PASSED. UPD7700 ; IF AN EOF STATUS IS RETURNED BY THE READ/WRITE PROCESSOR, 'SIEOF' UPD7710 ; WILL BE SET TO +1. ALL OTHER NON-ZERO STATUS SETTINGS WILL CAUSE A UPD7720 ; CALL TO THE PACKAGE ERROR ROUTINE 'ERR' WITH AN ERROR NUMBER OF 52. UPD7730 ; THE ERROR STATUS WILL BE PASSED TO 'ERR' ON THE STACK FOR DISPLAY UPD7740 ; ON THE TTY. 0 D OR.W D:ENCR 8097PD U R.BEUM NNELIG BE. RRCO; 0 D OR.W : STCR 7097PD UITN IOLMBSYE ATPD UNTREUR CAS H 1TEBY; //- IISC.A: OLMBSY 6097PD U R BEUM NNELIT PUINT ENRRCU; 0 D OR.W I:NELI 5097PD U T.PUINI CSG INSSCERO PINE USR FO; 0 D OR.W: ET2RCS 4097PD U S LEABRIVA ; 3097PD U R ROERC PE SONTIECRRCO; 4//7 IISC.A 4:þ6 .BYTE 15,12,12 .ASCII /DECTAPE COPY / .ASCII /V01B/ .BYTE 15,12,12 MSG1E=. .EVEN MSG2: .WORD 0,0 .WORD MSG2E-MSG2-6 .ASCII /ORIGINAL ON UNIT / .BYTE 13 MSG2E=. .EVEN MSG3: .WORD 0,0 .WORD MSG3E-MSG3-6 .ASCII /COPY TO UNIT / .BYTE 13 MSG3E=. .EVEN MSG4: .WORD 0,0 .WORD MSG4E-MSG4-6 .ASCII /????/ .BYTE 15,12 MSG4E=. .EVEN MSG5: .WORD 0,0 .WORD MSG5E-MSG5-6 .BYTE 15,12 .ASCII "*** I/O ERROR, UNIT " MSG5X  UPD7750 ; THIS WILL BE FOLLOWED BY AN EXIT TO TERMINATE THE PROGRAM. UPD7760 ; UPD7770 INSOR =. ; ENTRY POINT UPD7780 MOV #SRBUFH,-(SP) ; SOURCE LINE BUFFER HEAD ADD. UPD7810 MOV #SILKBK,-(SP) ; SOURCE INPUT LINK BLOCK ADDRESS UPD7820 EMT 4 ; READ A RECORD  UPD7880 INSO10: BITB O100,SRBUFH+3 ; TEST FOR EOF UPD7890 BEQ INSO20 ; BRANCH IF NOT UPD7900 INC SIEOF ; SET EOF FLAG. UPD7910 RTS PC ; RETURN UPD7920 INSO20: MOV A52,ERRNUM ; UPD7930 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODEA7 2097PD U D IEIFECSPT PUINE RCOU SNO; 3//7 IISC.A 3:A7 1097PD U R ROERC PE SCEURSOT PUIN; 2//7 IISC.A 2:A7 0097PD U R ROERC PE SUTTPOU; 1//7 IISC.A 1:A7 9096PD U R ROERX TAYN SI1CS; 0//7 IISC.A 0:A7 8096PD U RSBEUM NNELIE NCUEEQ SOFT OU; 9//5 IISC.A 9:A5 7096PD U. GEAR LTOR BEUM NNELID AR CONTIECRRCO; 8//5 IISC.A 8:A5 6096PD U . ýý: .BYTE 0,13 MSG5E=. .EVEN MSG6: .WORD 0,0 .WORD MSG6E-MSG6-6 .BYTE 15,12 .ASCII /*** UNRECOVERABLE COPY ERROR/ .BYTE 13 MSG6E=. .EVEN MSG7: .WORD 0,0 .WORD MSG7E-MSG7-6 .BYTE 15,12,12 .ASCII /COPY COMPLETED/ .BYTE 15,12 MSG7E=. .EVEN MSG8: .WORD 0,0 .WORD MSG8E-MSG8-6 .ASCII /VERIFY COPY (Y OR N)? / .BYTE 13 MSG8E=. .EVEN .END START  UPD7830 MOV #SILKBK,-(SP) ; LINK BLOCK ADDRESS FOR WAIT UPD7840 EMT 1 ; WAIT UNTIL I/O IS DONE UPD7850 TSTB SRBUFH+3 ; TEST STATUS BYTE UPD7860 BNE INSO10 ; BRANCH IF NOT OK UPD7870 RTS PC ; RETURN UPD7880 INSO10: BITB O100,SRBUFH+3 ; TEST FOR EOF UPD7890  UPD7940 MOVB SRBUFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD7950 JSR PC,ERR ; GO DO ERROR STUFF UPD7960 EMT 60 ; EXIT UPD7970 .PAGE UPD7980 ; THIS SUBROUTINE IS USED TO READ A SINGLE CORRECTION RECORD UPD7990 ; NO REGISTERS ARE USED NOR ARE ANY ARGUMENTS PASSED. UPD8000 ; IF AN ORRR EATRMFOS HAD AR CONTIECRRCO; 7//5 IISC.A 7:A5 5096PD U . ITUNO I/T IS LOMFRR ROER; 6//5 IISC.A 6:A5 4096PD UT)ECOTPR (. LEFIO SLD OTELEDET NON CA; 5//5 IISC.A 5:A5 3096PD U R.ROERT PUUT OONTIECRRCO; 4//5 IISC.A 4:A5 2096PD U ORRR EUTNP IONTIECRRCO; 3//5 IISC.A 3:A5 1096PD U ORRR E/O IUTNP ICEURSO; 2//5 IISC.A 2:A5 0096PD U R.ROERO I/ùý TEBYS TUTA SOR FSKMAF EO; 0001 D OR.W : 00O1 9094PD U S NTTANSCO ; 8094PD U ; 7094PD U . GEKAAC PTEDAUPE THY BEDUSS LEABRIVAD ANS NTTANSCOE THE ARE ESTH; 6094PD U E AG.P 5094PD U E.OD CONMMCOO TGO; 10C4AS BR 4094PD U . OWFLEROV. GEAR LøýBEQ INSO20 ; BRANCH IF NOT UPD7900 INC SIEOF ; SET EOF FLAG. UPD7910 RTS PC ; RETURN UPD7920 INSO20: MOV A52,ERRNUM ; UPD7930 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE UPD7940 MOVB SRBUFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD7950 JSR PC,ERR EOF STATUS IS RETURNED BY THE READ/WRITE PROCESSOR, 'CREOF' UPD8010 ; WILL BE SET TO +1. ALL OTHER NON-ZERO STATUS SETTINGS WILL CAUSE A UPD8020 ; CALL TO THE PACKAGE ERROR ROUTINE 'ERR' WITH AN ERROR NUMBER OF 53. UPD8030 ; THE ERROR STATUS WILL BE PASSED TO 'ERR' ON THE STACK FOR DISPLAY UPD8040 ; ON THE TTY. UPD8050 ; THIS WILL BE FOLLOWED BY AN EXIT TO TERMINATE THE PROGRAM. UPD8060 ; T PUUT OCEURSO; 1//5 IISC.A 1:A5 9095PD U O =SSI- 3 ; 8095PD U R =CSO- 2 ; 7095PD U R =CSI- 1 ; 6095PD U . ORRR ESI CS.ERMBNUR ROER; 0//5 IISC.A 0:A5 5095PD U ; B//K 50AD.R B:RK 4095PD U ; õýTOR BEUM NNELI; UMRNER8,A5 V MO: 40C4AS 3094PD U E OD CONMMCOO TGO; 10C4AS BR 2094PD U . RSBEUM NNELIE NCUEEQ SOFT OU; UMRNER9,A5 V MO: 20C4AS 1094PD U ITEX; 60 T EM 0594PD U ; 1 T EM 0494PD U ; ) SP-(K,KBOL#C V MO 0394PD U ; ôý ; GO DO ERROR STUFF UPD7960 EMT 60 ; EXIT UPD7970 .PAGE UPD7980 ; THIS SUBROUTINE IS USED TO READ A SINGLE CORRECTION RECORD UPD7990 ; NO REGISTERS ARE USED NOR ARE ANY ARGUMENTS PASSED. UPD8000 ; IF AN EOF STATUS IS RETURNED BY THE READ/WRITE PROCESSOR, 'CREOF' UPD8010 ; WILL BE SET TO +1. ALL OTHER NON-ZERO STA UPD8070 ; IF THE LISTING SWITCH IS SET THIS SUBROUTINE WILL PRINT THE UPD8080 ; CORRECTION IMAGES ON THE LINE PRINTER. IF THE LINE PRINTER UPD8090 ; DOES NOT EXIST, THE LISTING WILL BE PRINTED ON THE TTY UPD8100 ; UNLESS THE CORRECTION FILE IS ON THE TTY. IN THIS SINGLE UPD8110 ; THE LISTING OF THE CORRECTION FILE WILL BE SUPPRESED. UPD8120 ; T//D 50AD.R T:RD 3095PD U ; F//D 50AD.R F:RD 2095PD U ; R//C 50AD.R R:RC 1095PD U . SOI= SIF. XT ELEFIW NE; / PD/U 50AD.R : PDRU 0095PD U TEBYS TUTA SOR FSKMAF EO; 0001 D OR.W : 00O1 9094PD U S NTTANSCO ; 8094PD U ñý 2 T EM 0294PD U ; ) SP-(K,KBOL#C V MO 0194PD U D.OREC RTEDAUPD BAE THT OUE ITWR; ) SP-(H,BFRI#C V MO 0094PD U . FFTU SORRR EUT OUT PGO; RR,EPC R JS 9093PD U. RR EOR FCKTA SINE LUVAD INNDFEOFT PU; ) SP-(),R2-( VBMO: 10C4AS 8093PD U R.ROERT MAOR FOR FREHE; UMRNER7,A5 V MO: 00C4AS 7093PD U RNTURE; PC ðýTUS SETTINGS WILL CAUSE A UPD8020 ; CALL TO THE PACKAGE ERROR ROUTINE 'ERR' WITH AN ERROR NUMBER OF 53. UPD8030 ; THE ERROR STATUS WILL BE PASSED TO 'ERR' ON THE STACK FOR DISPLAY UPD8040 ; ON THE TTY. UPD8050 ; THIS WILL BE FOLLOWED BY AN EXIT TO TERMINATE THE PROGRAM. UPD8060 ; UPD8070 ; IF THE LISTING SWITCH IS SET THIS SUBROUTINE WILL PRINT THE  UPD8130 INCR =. ; ENTRY POINT UPD8140 MOV #CRIBFH,-(SP) ; LINE BUFER HEAD ADDRESS UPD8170 MOV #CRLKBK,-(SP) ; LINK BLOCK ADDRESS UPD8180 EMT 4 ; READ THE RECORD UPD8190 MOV #CRLKBK,-(SP) ; LINK BLOCK FOR WAIT UPD8200 EMT 1 ; WAIT ; 7094PD U . GEKAAC PTEDAUPE THY BEDUSS LEABRIVAD ANS NTTANSCOE THE ARE ESTH; 6094PD U E AG.P 5094PD U E.OD CONMMCOO TGO; 10C4AS BR 4094PD U . OWFLEROV. GEAR LTOR BEUM NNELI; UMRNER8,A5 V MO: 40C4AS 3094PD U E OD CONMMCOO TGO; 10C4AS BR 2094PD U . RSBEUM NNELIE NCUEEQ SOFT OU; UMRNER9,A5 V MO: 20C4AS 1094íýS RT 6093PD U D.BA. EIINSTCR; 20C4AS BR 2093PD U . OK. NDRESTCR; 20C4AS BR 2093PD U . OK. NDRENOE IN L. ET SIT BGNSI; 40C4AS I BM 2091PD U . LTSURED OLD TEIFSHO TTEBYW NED AD; 3 ,RR1 D AD 0091PD U N 10= 2 N* 5 =R3; R3 L AS 9090PD U 3. RINT ULES RHE T 5N= N N+ 4 =R3; 3 ,RR0 D AD Üý- ON TTY. UPD8350 MOV #COLKBK,-(SP) ; GET LINK BLOCK ADDRESS UPD8360 EMT 2 ; WRITE UPD8370 MOV #COLKBK,-(SP) ; WAIT UNTIL DONE. UPD8380 EMT 1 ; UPD8390 .ENDC UPD8400 INCR05: RTS PC ; RETURN .R UPD8460 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE UPD8470 MOVB CRIBFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD8480 JSR PC,ERR ; GO DO ERROR STUFF UPD8490 EMT 60 ; EXIT THE PROGRAM. UPD8500 .PAGE UPD8510 ; THIS SUBROUTINE IS USED TO OUTPUT A SINGLE CORRECTION RECORD TO THE C2AS 8091PD U . R.ROERT MAOR FO. N; 00C4AS E BN 7691PD U K?ANBLA T IIS; 1 ,R60-040#0 PBCM 7391PD U S.YE; 10C2AS Q BE 7091PD U ? CRA T IIS; R10,06R-#C PBCM 6091PD U S.YE; 10C2AS Q BE 5091PD U A MMCOA T IIS; 1 ,R60-054#0 PBCM: 00C2AS 4091PD U Ùý 8090PD U CELA PND A10Y BR0 N 4 =R3; R3 L AS 7090PD U LYIPLTMUO TIST ULES RET NN 2 =R3; R3 L AS 6090PD U R TELAD ADR FOE LUVAL NAGIRI OVESA; 0 ,RR3 V MO 5090PD U . ORRR ES. IIT; 00C4AS E BG 4090PD U ) ERMBNUA T NO (GEAR LOO TIFE SE; 2 01,#R1 P CM 3090PD U . ERMBNUD ONEC SOR F50C2ASO T ; 2090PD U Øý1 UPD8410 INCR10: BITB O100,CRIBFH ; CHECK FOR EOF. UPD8420 BEQ INCR20 ; NOT EOF. GO TO ERROR. UPD8430 INC CREOF ; SET EOF FLAG. UPD8440 RTS PC ; RETURN UPD8450 INCR20: MOV A53,ERRNUM ; SET UP ERROR NUMBER UPD8460 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE UPD8470 2 UPD8520 ; SOURCE OUTPUT FILE. NO ARGUMENTS ARE PASSED AND ONLY THE STACK UPD8530 ; POINTER IS USED. IF ANY I/O ERROR OCCURES, ERR IS CALLED WITH A UPD8540 ; NUMBER OF 54 AND THEN AN EXIT IS GIVEN. UPD8550 ; UPD8560 OUTCR =. ; ENTRY POINT UPD8570 MOV #CRIBFH,-(SP) ; CORRECTION LINE BUFF HEAD ADD. UPD8600 E YT BXTNER FOK AC BGO; 00C1AS BR 3091PD UR.ROER 7.7632.>NOE IN L. ET SIT BGNSI; 40C4AS I BM 2091PD U . LTSURED OLD TEIFSHO TTEBYW NED AD; 3 ,RR1 D AD 0091PD U N 10= 2 N* 5 =R3; R3 L AS 9090PD U 3. RINT ULES RHE T 5N= N N+ 4 =R3; 3 ,RR0 D AD 8090PD U CELA PND A10Y BR0 N 4 =R3; R3 L AS 7090PD U LYIPLTMUO TIST ULÕý R.BEUM NSTIR FOR F00C2ASO T ; 1090PD U . CHANBRC MINADY R.BEUM N AOT NG.NE; 00C2AS I BM: 10C1AS 0090PD U. NOL MACIDET GEO T0'06 'HE TOFP RIST; 1 ,R60#0 B SU 9089PD U TEBYT GE; R1+,2)(R VBMO 8089PD U RDWOR EACL; R1 R CL: 00C1AS 7089PD UR FEUF BINE YT BNDCOSEO TEXND IUPT SE; 2 ,R+1UFRB#C V MO 6089PD U Ôý5 MOVB CRIBFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD8480 JSR PC,ERR ; GO DO ERROR STUFF UPD8490 EMT 60 ; EXIT THE PROGRAM. UPD8500 .PAGE UPD8510 ; THIS SUBROUTINE IS USED TO OUTPUT A SINGLE CORRECTION RECORD TO THE UPD8520 ; SOURCE OUTPUT FILE. NO ARGUMENTS ARE PASSED AND ONLY THE STACK UPD8530 ; POINTER IS USED. IF A6 MOV #SOLKBK,-(SP) ; SOURCE OUTPUT LINK BLOCK UPD8610 EMT 2 ; WRITE THE RECORD UPD8620 MOV #SOLKBK,-(SP) ; LINK BLOCK ADD FOR WAIT UPD8630 EMT 1 ; WAIT UNTIL I/O IS DONE UPD8640 TSTB CRIBFH+3 ; TEST STATUS BYTE UPD8650 BNE OTCR10 ; NO GOOD. UPD8660 RTS PC ES RET NN 2 =R3; R3 L AS 6090PD U R TELAD ADR FOE LUVAL NAGIRI OVESA; 0 ,RR3 V MO 5090PD U . ORRR ES. IIT; 00C4AS E BG 4090PD U ) ERMBNUA T NO (GEAR LOO TIFE SE; 2 01,#R1 P CM 3090PD U . ERMBNUD ONEC SOR F50C2ASO T ; 2090PD U R.BEUM NSTIR FOR F00C2ASO T ; 1090PD U . CHANBRC MINADY R.BEUM N AOT NG.NE; Ñý ; R3 R CL 3089PD U ERMBNUE IN LNGDIENE THR EACL; D ENCR R CL 2089PD U ERMBNUE IN LNGNIGIBEE THR EACL; STCR R CL 1089PD U NTOU CRDWOE AK MTOO TWY BDEVIDI; 10C1AS RBAS 0089PD U H NCRA BSTIR FOR FSSREDD AET S0;11SC,A-210C1AS0-20SC#A VBMO 9088PD U T INPOY TREN; =. I CBAS 8088PD U Ðý9NY I/O ERROR OCCURES, ERR IS CALLED WITH A UPD8540 ; NUMBER OF 54 AND THEN AN EXIT IS GIVEN. UPD8550 ; UPD8560 OUTCR =. ; ENTRY POINT UPD8570 MOV #CRIBFH,-(SP) ; CORRECTION LINE BUFF HEAD ADD. UPD8600 MOV #SOLKBK,-(SP) ; SOURCE OUTPUT LINK BLOCK UPD8610 EMT 2 ; WRITE TH: ; OK. RETURN UPD8670 OTCR10: MOV A54,ERRNUM ; ERROR NUMBER UPD8680 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE UPD8690 MOVB CRIBFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD8700 JSR PC,ERR ; GO DO ERROR STUFF UPD8710 EMT 60 ; EXIT THE PROGRAM. UPD8720 .PAGE 00C2AS I BM: 10C1AS 0090PD U. NOL MACIDET GEO T0'06 'HE TOFP RIST; 1 ,R60#0 B SU 9089PD U TEBYT GE; R1+,2)(R VBMO 8089PD U RDWOR EACL; R1 R CL: 00C1AS 7089PD UR FEUF BINE YT BNDCOSEO TEXND IUPT SE; 2 ,R+1UFRB#C V MO 6089PD U ; R3 R CL 3089PD U ERMBNUE IN LNGDIENE THR EACL; D ENCR Íý ; 7088PD U N.CA SHE TESATINRMTEO LS ANKLA B A. ONSIERNVCO; 6088PD U HE TESATINRMTEK ANBLA R OMAOM C AR.BEUM NRYNABIG INNDPOESRRCO; 5088PD U HE TTOING INTR SERCTRAHA CIISC ACHEAS RTVEON CNETIOUBRSUE TH; 4088PD U ; 2088PD U L.NAFID ANL IARTPAH OT BT.ULES R -R3 ; 1088PD U . ERFFBUE IN LONTIECRRCOE THO NT IEXNDÌý=E RECORD UPD8620 MOV #SOLKBK,-(SP) ; LINK BLOCK ADD FOR WAIT UPD8630 EMT 1 ; WAIT UNTIL I/O IS DONE UPD8640 TSTB CRIBFH+3 ; TEST STATUS BYTE UPD8650 BNE OTCR10 ; NO GOOD. UPD8660 RTS PC ; OK. RETURN UPD8670 OTCR10: MOV A54,ERRNUM ; ERROR NUMBER > UPD8730 ; THIS SUBROUTINE IS USED TO INTERPRET THE UPDATE LINE NUMBERS. UPD8740 ; THESE ARE OF THE FORM -N OR -N,M. THE FIRST CHARACTERS '-' MUST BE UPD8750 ; IN THE FIRST COLUMN. THEREFORE IT IS IN THE IS BYTE OF THE UPD8760 ; CORRECTION LINE BUFFER. NO IMBEDDED SPACES ARE PERMITER. UPD8770 ; REGISTERS R0 - R4 ARE USED AND HAVE THE FOLLOWING MEANING: UPD8780 ; R0 - TEMPORARY STORAGE FOR MULTIPLICATION R CL 2089PD U ERMBNUE IN LNGNIGIBEE THR EACL; STCR R CL 1089PD U NTOU CRDWOE AK MTOO TWY BDEVIDI; 10C1AS RBAS 0089PD U H NCRA BSTIR FOR FSSREDD AET S0;11SC,A-210C1AS0-20SC#A VBMO 9088PD U T INPOY TREN; =. I CBAS 8088PD U ; 7088PD U N.CA SHE TESATINRMTEO LS ANKLA B A. ONSIERNVCO; 60Éý I -R2 ; 0088PD U R.FEUF BNELIN IOCTREOR COMFRE YT BNTREUR C -R1 ; 9087PD U N IOATICPLTIUL MOR FGERATO SRYRAPOEM T -R0 ; 8087PD U G:INANMEG INOWLLFOE THE AV HND AEDUSE AR4 R -R0S ERSTGIRE; 7087PD U . ERITRMPEE ARS CEPA SEDDDBEIMO N. ERFFBUE IN LONTIECRRCO; 6087PD U E THF OTEBYS IHE TINS IITE OREFERTH N.UMOL CSTIR FHE TIN; 5087PD U E BSTMU' '-S ERCTRAHA CSTIR FHE T. ,M-NR O-NM OR FHE TOFE ARE ESTH; 40ÈýÄý UPD8680 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE UPD8690 MOVB CRIBFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD8700 JSR PC,ERR ; GO DO ERROR STUFF UPD8710 EMT 60 ; EXIT THE PROGRAM. UPD8720 .PAGE UPD8730 ; THIS SUBROUTINE IS USED TO INTERPRET THE UPDATE LINE NUMBERS. UPD87Åý UPD8790 ; R1 - CURRENT BYTE FROM CORRECTION LINE BUFFER. UPD8800 ; R2 - INDEX INTO THE CORRECTION LINE BUFFER. UPD8810 ; R3 - RESULT. BOTH PARTIAL AND FINAL. UPD8820 ; UPD8840 ; THE SUBROUTINE CONVERTS EACH ASCII CHARACTER STRING INTO THE UPD8850 ; CORRESPONDING BINARY NUMBER. A COMMA OR A BLANK TERMINATES THE UPD88þTPUT FILE LST2720 EMT 57 ; LST2730 SUB R5,(SP) ; SET STATUS ST ONLY 1 (NO MORE) IS OK. LST2740 BEQ ST160 ; OK. GO INIT & OPEN IT. LST2750 MOV A71,ERRNUM ; SET ERROR NUMBER. TO MUCH STUFF. LST2760 ADD R5,(SP) ; RESET STATUS LST2770 JSR PC,ERR ; DO ERROR STUFF