C7$ ?BOOT-U-No boot on volume ߋtvSBA-JG81C-BC RX2 6/7 DECRT11A }vXJv6 vEyv,-8;vH06' kQ^\gy',y'^kQ^kQakQ^'^ԀveE !kQ""av#!Y`kQ)!XkQ4!C kQ ""ԀkQ""a^&$ykQXL"kQ9g&w&%f  7 #  bf & f p  b.wJ Pf KfwXT pp p rr lwewZwX f,5f 8  ( " * $V @ 7 7 ? E ,we5 5  5 UEA f   eww,^ ` 7 (J%P?:r %rr$D?w %^%w? #TTA  rlr   0 ,,^ `,} 爃E `  r 2 j  \  N 0 77 Z+w @MF&`(% $b zz C ' 5 tpe  z@  * @ 5w> 7b  z ׭$    ˋ  &7$5 2     H ",  ,-( ^U@  h ^iz 3BTeq"<>" errorInvalid argumentInvalid commandCommand buffer fullInsufficient memorySearch failedInvalid macroEnd of input fileInput errorOutput file fullInvalid deviceFile not foundNo file open for outputDirectory fullInvalid file nameSystem I/O errorDevice fullNo file open for inputOutput errorCommand abortedProtected file already existsProtected .BAK file exists in macro?EDIT-F-; no command(s) executedRBVI>UMNSGFPZRW0W9A>DE  ea 5e < WE<  ! !!!  !  2eB x  !+WM L!^keBn  S7s dw"2-)  WaWz } +1!   z w77 !, !., w~w 7 wNv7Ww 7L~|| t* 7 7 r &\ 7 GA7  d "ȃ     ! ˂@ L+Q ?EDIT-W-Command buffer almost full xr#   V! wDw76 nwT  \ w  w  m wы 77- -m7! 7!  w} wnYfdB 7!~  7!r   7!Z    m7!, e77 L HE b b (  b b b  B  F  ߋ*&  7  7 2 ,-&7  @7!8 w."* 7!~!   !7 d \~R<  0VT-,Dm >: m.mm      ( } :  *e * v pW!.n\W!~ wVU%'-ZV>0J4$ w , * Ҕ  w7 R&  P j7i %   ?7a\=8wjZ & 7aL7aF 44. 7(  7 CeC  ы     c $ 67&* j-rlmn `ӕ=  n 鈇V05.04 U@$E@$5 &  , e   Z+?EDIT-F- b & 7 7 7" 7N + 5$   B  U0$-&"wwb F߁ 0 H  " *   N  7 FBe<7 6  * 㷊~ xR eRN0,07淊 7! %  P@% @P@ X7 *7 t H  lh`0\,TP@e-6?0 ,5$ e e v  w <:!  T " ߋ*S R r E `= 7a7a7a7a7aX7a7a7aU7ar `w `w  BJ-∷ "7 & "7 &  B jb b 6 J 7~7{7 -b -b 7zZ -b b b *-b b b b :     | 7ߋ* 7 B B HB  B0 7ߋ* 7 77xb b ebZ J J  J0 (  Jj0 /7 ߋ*ק*ק*     J0 ؇L# >7 >㷊7?EDIT-W-Superseding existing file |t kd  M  7Np f߀8 d 7&J 爇 BBJ  R0 ק* wE$ H#ߋH ߋ`ЕEЕW 8НЕEЕR .7h~ЕEЕBЕEЕW`JɋPZ^,5U5 0 ,m=FO  Ba&fe@BJ%@& fEA  w )=))))D6.6.'6./_ )_ *_ *_ *_ +_ +_ +_ +_ ,_ ,,_ ,_ ,_ h-_  )_  )_  )_  *_  *_  *_  *_  *_  *_  *_  4+_  :+_  @+_  z+_  +_  +_  +_  +_  +_ )_ )_ )_ **_ h*_ v*_ *_ *_ *_ *_ *_ +_ "+_ +_ +_ ,_ 6,_ D,_ :*_ F._ ._ /_ 2/_ D/_ h/_ /_ /_ 0_ *0_ 0_ 0_ 61_ Z1_ r1_ h6_ 6_ n<_ $8._ *8._ *4_ *9kQ NACIY  f*5^ X#5P7^%EE @7 4 z (7 &w "7^7^%H" <TY : WORKING... U j H | @ 07 7 tNp 7^@%  6  &fP Y < 7 7 7 $ > @7 < 5 x b VwP7 7  57  7  z 7 z1&   7?% 7V%7L%w47  4 ~  *7 "   7LV% & 7:S% 7  7  7 7 tw7 17 2 7  "7A%7Y%7S% PwH^%h%& Y%7  E\ EX w * 4  6    AaDdEeLlSsUuXx ?ABC D PQ RF?QABC DPQ R p. qT rX st u vwx(yz nM p qxrbstxupv w^x y n Mf  1eA5 7 x r& n  t!7 P7 q%&D D @ ` E` ww J   7 z 3|  0%9 %  7 ~  XQ7 9 \ 5 ' $5  8- - ׯ -fv ?` \ V Z U  E7 427 K2 7 7 b2  &%  5\   -  U: 7 J  ' m8  f      &ׯ    L  \ R7   "O |e  RJ`"" | | qw 7 P2f  q, -*   ,   7 27 2"|  4 ) 6  BB- #BC   4    7 27 27 37 ~#3  F  j  " H  < , f  Z  N3 7 H3 2  &   3 7 g3%    <7 3 "7 z3     Z 7 F37 @3 ^  L 7 $47 4 l l7 94  T L7 ]4 7 7 %8:vwV vJ p d d4z,   r Z7  w 7 h|47 b47 \4j?A BjtuR(M j  @  .7 4H7 @7 >7 z2 h& F 7 4 R < D  @ 4  m- z @      %A Z%a%z E %A ZU  \ H f f  4 p r 7 47 47 5  H 47 !5  , 7 @5  ,7 Z5  7 py5 d 7 P5  52 >       V 7 5 U > 5 h |؆-ㆄ T ^ w w @ > w @     5 7 Pd7 ~%9 ? M p' 4 7 257 ,5 7 $ 6 ɋ%7 6 f&  ʋ - @ @  ҋ ʋ e 5 K & @+- @ @ 0 ` ` f 2   3.  azE W   n P x j ~ P N7 7 <6 2 & & 7      w7 i6 4w  @  ^(   m   eE  7 @6  퇇  $wew7 7    7    - xzx v p7 $ z Z7 v6 L  h  > T 4?* &-"  * 7 06 -7 f&f& 3e 7 7 %7 5$J < %t  7 /|x  w7 h/w%U $7 .&0  Z T % @ 77 z fp7 7  j t&숁 P 7l c7x c70@`aw`wh  w7 h/B     `C   ! ee! %<e15 +ĝ 0 0 ~ UEL#G5h 7f UE&7 /w(f%  L   w  7V% 0   %&%*&f 7S% @e̋7%a% Y & Q %% , < n.W, d  Z  H * p    Z " " " " D6 6      w7 0  % !@% =@   5p0 d  7 `*07 ZJ0 X  f 7 x0   w 7 (\07 0%Bp% w %% ۀ% 0y 3(ק*+x Fw.* 7 Lz1 t7 %% 7 x7 v w7 R1A%p;  ( ?  (  qf1We  w @7 0ק*ק* V7 07 0 %%&ק*t&f숀j7b 7 7 p7 n2%)E έ&  T R !έ  p   έ   E έ  H  "   dP ѕ e0ѐ 'd  7 8 , ^%Be p ,0 epww$7 61%%$$$"U@$E@$ E  Ee 7 鈷UP$EP$ 툇? -& &74&4& (<ѵ2B e !7n!7h&% f7Z)%wY6 ~ L7@,%780% `$ P & N7)%$E 77)%70%&7)%73% v ^7)%67 H". l &'fc _& V:jL b PV0ק*? >7 s<=*00 ,4 4 Հ04 4 Հ T7 ;7 < L7 *< B7 zN<7 t< t ŀ 7 D<7 ><ŀ&Bŀ  <   '4  5<  0 000  e 4  ߋ*7 |=7 v*=   E 0 00  e 4 ߋ*7 E= 7ק*fʋ %r @ K52 V01.27 TUT TY7 T?K52- [?2l K\Y7 K=>HJHK KHY5 J Repeat: FaGModel: HCommand:  = &&&&t',)INC-LUDESK-IPW-RITEINP-UTOU-TPUTCLO-SECLE-AREXITQUITOP-ENPURGESE-TLE-ARNLO-CALF-ILLT-ABSA-DJUST'P)P-ASTE'T)I-NPUTO-UTPUT (Z)ENT-ITYSEC-TIONP-AGEBE-GINEN-DEX-ACTG-ENERALBO-UNDEDU-NBOUNDEDSEA-RCHW-RAPNOW-RAPT-ABSNOT-ABSNO~(z)W-RAPT-ABS()S-ECTIONP-AGE()BE-GINEN-DEX-ACTG-ENERALBO-UNDEDU-NBOUNDED()A-DJUST()L-INES()P-AGESL-INESR-EST))P-AGESL-INESR-ESTS-ELECT''(p(h(08(X`{(`08h@H >V HVB7 L<:  J ZY      ' ( x@   `    4 <ׯ  6 ׯ   7 h67 b6 x &      jAf7 ,77 &7 .I  2@E,*   C 8ـ) ?  (  C柶 ـ ?    7 ~.77 xF77 ro7 -pt h 7 8 6 0 ,   w  7 | N 7 ڭ7v(  ,      7 N7 z| lR7 tdb I`Z <7 T   ~ @  N׀/ *   NC`  P "׀ #   w7 77 8  - < 7 j8  w z耔  7 .387 (H87 "j8 n  B<7 ܊8 7 , C  t "N DC?A41N%<'   ר 7%7%&^ U@ ~   < CB 0 j R C 7 ` X L  7 |7 P  | D vw57  (- : (- hUe :w7 | @'"@Rɋ(w 04 4 7 :ۨ8 ˕ 3  h TR7 8 7 B7 < 8 u (u u 2r7  f m   &    M  -pph  V .   ~<  nm  d  & 7 87 97 "97 =9 A37 Y9   끇 p j7 o9 N H7 ܇9 7L%> B .  7 7 7 h7 ܥ9+ * " + G7 :.wV7 7V%7L%7 ` & & 7 Jܼ9 $w w& 7 9& 7 :  7 Fɋ(w4   @   f * V 7 : J   p   7 zJ:<B  @ @ 76< & T 7 &c: 7 ۅ:&   7 2ɋ )w     z B 7 ڭ: v ^ h ! 7        7 <:7 6: 4 3 & 7 ;  ` C,,0->-^-p-&--r,z,,,*****%*,****%*,*:  .  .  .BSLKCOLB_LACOLLBANEELBANELBASDELBASDELBASID:$ +7   t  j @\7 `7 Z\ 78  F-7 :;7 47;7 .T;)   $  Z ) |) r  &   )    ) "  0  $  ~m   "4*     | X x   \  2 N    ء+  d  e0'd ѕ$    w"7 o;ѕ D  b@   w7 ڐ;W @ )  B  f) f)f)f)fe  %    . & t _$. v v _ .$         AZ09 6 az ׯ  r 07 ة; ^ N  d 7 ؿ; 2 7 ;77 ؄w4 7 7ww?z 5 |  #7 e. 87V7 NPwJH H<7(7 &7 (2 7    >   -    R   2  & b  V | v -fj `ZZ TR H pejw h  \-&&    .( &       *  $ # ?  ew *   ~$ b!-@De^w \.72 & N LeBw @ ڇ ,) &-"e w   & t Tڀ   F- L D "b  &     7 * %B &- 7  w  (  %  7 N w   h  7  w   h h / |+|p~ l ^@PFmDBA 7 bw\V A 7`Fw Dw`@7 67 47 d~.  w f-Ow _B5RRw ȝp0  wmB7  m w j @E | "P T PHL@7 BD 7 ~.7 x.   &  -ww w:B 1 0  p0  ww~Bbw jmb7 .7 .7 / :DB w ^5 B00w . BmD5bbw >ȝ 0  w m7 *"/ mBkm /  X Yw V  p|0  fHwpbBm|Rw TpL-BF1< 6  HX p0  eE `w 7 D@/7 >V/7 8o/7 2/T;:;;/6"656;6/6A6G6FaGFkGFhGFjGFfGF~GFgGKYJ IHJTU77 db m^TN 4@   7 7 7 &^ z@  | &X p h-L- ->-,w7 6- >Dw  f   x 2  7 @6;-6: D ʋ,r rl;Rz   BJ r8 n7i6 ."ҋP7 ^N ' !p'Bew *m&fE%  W6D(Y67   ߀m 7 H^ `RR@  ```B  7 7 6p- m xP J ? jH߷.޷:J.<* J  -ޜ ׯ (6 ? d6 7 7!dZfF &  q  7! wޔ޷޷ ކ M ׆ގ !E , ؆ %  4. 8  ޷ \& ݗ0   e@E^ ݀7!r  T6&mN6 7 7ݷ  -ݰ  vݎ -pݖ݇8 f c   f&& .(4݁`N W0 1   1 N 7!7!U(-#f& @ . ܴ  j1  ܂ *  6 h 7 ;P܇ E tna6 d7 ^d6 H&"7 6@ܷ .$ܷ"Q6 e e  & fW PF C ۂwہ w w w۷ ۂ  '  S S  m x7 fwm~w| 7 lہfX7 V )B  --H -ڸ ~ځ  w۷ڂ & w V W W   wڇw 2@  䂁 wڇ7 P.w$W-Output files purgedF-Bad call to .VVV.VF-SETUP-Allocation errorF-SPCFRE-Logic error, character count wrongF-RDFWD-No space to readF-RDFWD-pointer corruptF-WRFWD-Block overrunF-WRFWD-Bad block numberF-WRFWD-Not enough dataF-RDBKW-No space to read intoF-WRBKW-Block overrunF-WRBKW-Bad block numberF-WRBKW-Plygnd not emptyF-I/O or device errorW-Can not set terminal options-Continue(Y,N)?F-RSTS is not supportedF-Wrong version of RT-11F-Insufficient memoryF-Invalid command lineF-Unable to access input deviceF-Too big to editF-Unable to open input fileW-File not found - Create it (Y,N)? F-Invalid deviceF-Unable to access output deviceF-Unable to open output fileF-Output file shorter than input fileW-Only nnnnn blocks available for insertions -Continue (Y,N) ? W-Output file exists- Continue (Y,N) ? W-Output file or device protected- Inspect (Y,N) ? W-Unable to rename input file to BAK file typeCTRL/C entered to stop operationInvalid functionCTRL/C or CTRL/Z ignored - use QUITInsert finds file fullInvalid to insert nullInsert is invalid during inspectErasures are invalid during inspectLogic error in undelete setupUndelete buffer fullNothing to undeleteLogic error in undeleteNot enough space to undeleteUndeletes are invalid during inspectAdvance word finds end of fileBackup word finds beginning of fileAdvance line finds end of fileBackup line finds beginning of fileEOL finds end of fileEOL finds beginning of fileOPENLINE finds file fullOPENLINE invalid during inspectBackup char finds beginning of fileAdvance char finds end of fileSearch canceledInvalid terminating keyNo model definedTarget not foundBounded search reached boundNo model definedUnable to delete targetCursor not at targetDELETE finds beginning of fileDELCHAR finds end of fileCTRL/U finds beginning of fileDELLINE finds end of fileDELEOL finds end of fileArrow command finds extremity of fileCommand canceledInvalid terminating key to command promptInvalid commandToo many arguments for commandMove PAGE or SECTION finds extremity of fileTAB Indent value wrong for alignUnable to insert tabNo macro to executeLearn buffer filledFILL invalid during inspectNo select range defined for FILLFile full during FILLLogic error in FILLLogic error in CHNGCASEEmpty select range specified to CHNGCASECHNGCASE is invalid during inspectCHNGCASE finds end of fileREPLACE is invalid during inspectLogic error in SUBSTITUTENo select range definedLogic error in CUTSelect range too large for CUTLogic error in PASTENot enough file space to do PASTEPASTE is invalid during inspectInvalid right column for wrapInvalid definition of PAGE or SECTIONInvalid tab indent valueADJUST invalid in inspect modeTabs not enabled for ADJUSTNo select range for ADJUSTInvalid parameter to ADJUSTLogic error in ADJUSTMove to top when at topMove to bottom when at bottomEXIT stopped by CTRL/CAuxiliary input invalid during inspectAuxiliary input file not openAuxiliary output file not openINCLUDE finds end of auxiliary input fileFile full during INCLUDEArgument error to INCLUDE or SKIPINCLUDE and SKIP invalid during inspectWRITE finds end of fileNo select range for WRITE SELECTLogic error in WRITE SELECTArgument error to WRITEValid start of LSB not foundLOCAL invalid during inspectInvalid parameter to LOCALLocal symbol definition too longUnable to replace symbolMove failure in LOCALUnable to delete markInsert failure in LOCALInvalid file specificationUnable to access auxiliary deviceUnable to open auxiliary input fileUnable to open auxiliary output fileAuxiliary output file exists- Replace (Y,N) ? Auxiliary output file existsI/O error closing auxiliary output fileUnable to close auxiliary fileError writing auxiliary output fileAuxiliary output file fullError reading auxiliary input file* K52 V01.27 Lower Function is GOLD +-----------------------------------------------+ !T U! ! DELLINE ! ^ ! DELETE Erase char left !T GOLD U! HELP ! ! ! ! LINEFEED Erase word left !T BLU! RD!TUNDELLIN GYU!T REPLACE U! CTRL/U Erase line left !-----------------------------------------------! CTRL/C Cancel ! PAGE ! FIND NEXT ! DELWORD ! ! ! CTRL/Z Cancel ! ! ! ! V ! CTRL/R Restore screen !T COMMAND 7U!T FIND 8U!TUNDELWORD 9U!T SECTION U! and keypad !-----------------------------------------------! CTRL/W Restore screen ! ADVANCE ! BACKUP ! DELCHAR ! ----> ! and keypad ! ! ! ! ! !T BOTTOM 4U!T TOP 5U!TUNDELCHAR 6U!T SPECINS U! TnnnU Repeat !-----------------------------------------------! TDELU UNDELCHAR ! WORD ! EOL ! CUT ! <---- ! TLFU UNDELWORD ! ! ! ! ! TCTRL/UU UNDELLINE !TCHNGCASE 1U!T DELEOL 2U!T PASTE 3U!T APPEND U! !-----------------------------------------------! To return to display, ! BLINE ! SELECT ! ENTER ! press ENTER or use any ! ! ! ! function. !T OPENLINE U!T RESET U!T SUBS U! +-----------------------------------------------+ Summary of K52 Commands TSEUT [TENTUITY] TPUAGE "string" TEXITU TSEUT [TENTUITY] TPUAGE integer [TLUINES] TQUITU TSEUT [TENTUITY] TSECUTION "string" TSEUT [TENTUITY] TSECUTION integer [TLUINES] [TOPUEN] TINPUUT filespec [TOPUEN] TOUUTPUT filespec TSEUT [TSEAURCH] TGUENERAL TCLOUSE TSEUT [TSEAURCH] TEXUACT TPURGEU TSEUT [TSEAURCH] TBEUGIN TWURITE TSUELECT TSEUT [TSEAURCH] TENUD TWURITE option TSEUT [TSEAURCH] TBOUUNDED TINCULUDE option TSEUT [TSEAURCH] TUUNBOUNDED TSKUIP option "Option" can be: integer TPUAGES integer [TLUINES] TRUEST TCLEUAR TPUASTE TLEUARN TLOUCAL [starting_value [increment]] TSEUT TTUABS [indent] TSEUT TWURAP [column_number] TSEUT TNOTUABS TSEUT TNOWURAP [TTUABS] TAUDJUST [+-]level TFUILL Gold Keyboard Functions Terminate a macro without executing it. Execute the currently defined macro. Align structured tabs to the cursor. Extend the level counter for structured tabs. Decrease the level counter for structured tabs. Lower case selected area Upper case selected area 3P SY:SYSLIB000000.SOU00000/.OBJ3LST:000 END BATCH&@܄ +7 z @鈀?BATCH-x-IWEFUl 5_.4ah  7` aa4a4 e4( a w V .,w L$.'4 5@ 5 5 w $:.f  a& w M.w h.舨 f  a0a aw ~.舓c 0 ( 4 4 4  4 Fa& && 5$E$Hߋ*w `.w V. _M Z  d &F]P3w ,.wlX & Ca ^2Xr>HvXUTSRNMDB 0w .U wBATCH V05.07 ,&e@m@0B0mB00>0m>00D0mD0< 0H. U$ 舵 UE FU J(e%8b<PP2 P0e   a ~~ a4( H  awV< 0w x.舰 ( FAb(<H`2 f P&|0ef f Ew> a a  ,5U 5Eww . 0  F@0 < 0P 舨z zUw  aw tF   U444FaN wˇ j&0< 0da3  S aK aE x`@@, e0& ㈼0RKDT LPTTDLDYPC MTRFCTCR DS MMDPDXDM NL DDMS LS DUw /& ߋ*4 0w ` /w V4/w a d5-j j -jw F 55  X@Xw P_M_Mda  Vw ?/4  aw N/ :舂 e 5 tw25 m& aa" b "   ߋ*IQ4& 4 0w @]/AaC@ 1 Q$ fa  " a ``4 0ߊ* w o/w ~/w /}d4 0w /4 X wPa aH  aH ׇ4 B-j5w&  a aHw2 4 5 <68:2  < <5  LEwE0UF@05w~5 0   N ww & a܇ a     a w h/ Dנ\ :נC 0נ\ &נ\נ  נ  e PPPPPw x/w B.w 41w &/w (.w * ,ŰU5  EhU נ נ aPaP  H` a&L Lw 2Fw 1w /a a FaLN L5E  Ð  Õ  2& Fa aH Xw4 0w / 5" 5 w /與נ\Ð zÐ t@W U7 .& 5Ea(P Pw z.  w 0 $Fw 0w *.   ȋ,8,& ew ɋ ɋ.&  Nf5%tU 5 W##W#w $0}5w  w N )0w D 50wɋ 5% `ы S w 2  ̋  &נE&f@a0 5+ 0&   Pp5 @ &;`0 `e5U5 5055,ww E0 Pwߊ* 5F 50 5J pP5+w V0/wA & A e( f Ee5@ @  w tb0w jo04 "4 UN w`w N0 =2  , Aw r. 0 "w $ T\@L\CD\D<\E4\F,\G$\H\I\J \K\L2 ET v p B vËÕ T  H5m5iU    a1 a a %#"! ww 05UE55U5/5*w . Õ1 Õ w 0w . *ÕA xw . hÕ0 tw "0w 0ww B0UwFw r 0w ~0w ,  r  w 0w 0U   w 0w Pw  0w @׀ E@ & 5@w 0 N ,w 0w 1w 1 0 w 1 XU w ?2U w 1 w 8  w d1 w j.w T.5@ w   H E w 6F2 5@E w t $w*[w . נ' %נ'נ"5 1w L1w B"1w 8  w . | F'  b Õ Xw .w |.w b. :נ"w T.w V..w P. :w p. Е:%Õ w . n ȋ  0 1w \Q&1w RM,1w HF21w >D 91w 2E<1w (A1w % w *0w 1 ^= w .  @w .  C $ w E1 w X.  w (  rw V1 w $. - : Ð ) Z, N, Bw k1 ~ & 0% `  ."& D0- +         w &.w . zw r1_w @\w |1w w lC w @w X> FHw .w . (w w1?w 1w dw " Dw F2w z1w     : w 1 w 1w <. w5@w .Õ? Õ w 2.   w 1 w .w 1w 1w   w w @w w t5LSLC3’¥Z @¥90= "" w 1 5 UffE 5 O/Z E פN פO5>U B- & B* ¤w p) N w 1 B 5 @P-E `} w L1/ȋ   w z1$#w 154&Uw :w 4.   Õ^ B܄ + z ffACы E <& B( Pw 1?w 1w r &  w .& wL w, w ~15w .Õ1 4 $ w V.  5@ ,w ,w ,w ,w Õ 5w . E@  &w 1 a Ta(P Ua(  &5@U@5 U&5U Uw `1?&5U Uw @ 2|&w .2?w 5U@ (5w 2w %2w  5pw $w   q5U w 5  >_w /2 a 5w 12 55w .w z.5 w v?2 a lw ^F2w $5`w`w N42w  5w (5@ . $w .  w 5   w 55 w VC 5w w ~ p5w l  w ^ w R 5 8aʋ  , |w l<2  f  55 $w B?2w D w *F20/ 0 E 5@w 0w .   d 5wh5www I2w N2 .w r w W2&  w _2   5@w ~c2 H "w `g28a w  w h2w4 a4 Baeʥ9ʕ0 Baw . &w .* a b: w $. ~= w . Õ9 w >w2w 2w . xÕ1 p h :w 0w . a0/0& w <    \ \% Õ/ C    a$"  ab%`/E@E4 2 4 aȋ  Z  : . w n2 A4  \E2 ]22 w F2R2 f A 2 B@ w $2B2 + E2   ,U@  w 2w 2 * 5  h瀗: .w . w 2*#נ*U@נ+ נ/w 2*   Rw 3*w 3*Аȋ w ,3   f&  " !5 B    -$ & dw . b  LnBNlf 8!r!!##%&%F%'(EOJEODSEQUENCEJOBRUNDIRECTORYCOPYPRINTDELETERT11MOUNTDISMOUNTMESSAGECHAINCALLDATACREATEMACROLINKFORTRANBASICLIBRARYULLOLLARSAITUNATAAPHYSICALELETEASICREFORTRANACRONPUTIMEOGICALOURCEXECUTERITEIDISTBJECTUTPUTT11ANNERNIQUEIBRARYF"L"L"L"L"L"F"L"F"F"F"F"F"!F"F"L"L""."L"L"!!!F"000000.SAVPlease load LOG handlerPlease assign LOG,LSTInvalid LOG deviceBatch handler not residentCannot run with SL ONInvalid copy of handlerInvalid commandInvalid deviceToo many output filesInvalid optionUnload BA:Batch stack overflowReturn from call errorDismount errorInsufficient memoryInput fileInvalid deviceFile not foundBatch fatal errorChannel in useOutput device fullProtected file already existsLOG device errorAbort job$$$$$$/R/BNo control fileFile created:protected file already existsAmbiguous commandTIME'$' missingUnknown commandEOF with no $EOJInput errorOutput errorOutput device fullOutput file not openInvalid sequence argument!DUMMY!DUMMY0!DUMMY0!DUMMY1No $EOJRUN No fileInvalid '+'/ULST:*.*R DIR/LCTYFFNLNOTTYTTYIOTTYINTTYOUTIFGOTOLETInvalid variableInvalid construction DEASS No physical deviceNo logical device/SR BATCHInvalid VIDAmbiguous optionInvalid option ,+Separator missing/M=R MACROR FORTRA=/CR LINK/CR PIP/DR BASICSCRATCHOLDRUNNo ',' in $LIB!DUMMY1!DUMMY1!LSTNO1No file name before "."Duplicate optionInvalid option combinationInvalid characterToo many file descriptors, Line too longSPEED V01.00" &  B~T P@M@SCHwDEPC^^w| 鈸U        鈥UUPU`U EU0 w83 L ~w\w( &wU0wUw Zw   E PwZww SPEED OPTIONS: /T:n Terminal #(0,1,2,3) /S:n Baud Rate (Speed) /P Printer /M Communications line /D Parity Disabled(default) /E:n Parity enabled, n=0->ODD, n=1->EVEN /C:n Character length (5-8) The command line must name a device with the /T, /P, or /M option, and only one speed setting can be made on a command line. For example, the following command line sets cluster port 2 to 2000 baud with odd parity. */T:2/S:2000./E:1K% ` X,h\nHK=2( ?SPEED-W-Invalid option; type /H if you need help?SPEED-W-Valid /T options are 0,1,2 and 3?SPEED-W-Valid baud rates are 50, 75, 110, 134, 150, 300, 600, 1200, 2400, 3600, 4800, 7200, 9600, 19200?SPEED-W- /E option must have value, 0=ODD, 1=EVEN?SPEED-W- /C option must have value 5,6,7 or 8?SPEED-W-SPEED works only for PDT-11 processors &f)eB J%@& fE7 ʋ, A>w <Ά +?VHANDL-F-Window error,E_ LE,,w ,-z06'MheBITMAPIOPAGE? 06 xQ:]HH?GIDIS-X-BBBJBC6C\CCCCCDD#D3DHDUDDDDDDDDEE"EError attaching to global region: Floating point unit requiredGIDIS must be run as a foreground jobGIDIS must be run on a PROFESSIONAL series processorExtended memory monitor required for GIDIS.SAVUnknown error codeWEFUBUnknown error code Channel in use Channel not open Device full Directory full Directory I/O error Fetch error File created; protected file already exists File not found Invalid device Input error Insufficient memory Output error Output file full Protected file already exists Record too long System error Unexpected EOF _J_I_I_w|ݍU@@.?0 0 0 0 % b?0 0 0 0 ?0 @0 0 BȕF0  b H n - e    ?0 0 0 0 H?? BHF? b?@0 @NBe@ 7de@ 27P?NBB*?B BHF0  va?0 ?B?NB?ZB ?Bȕfp `?fB?BfB?B BȕF0  `?0 @0 0 BȕF0  Z` ?e (<"4 0 &fB   %@ R Be`?.7h?7PB  ?,? 2 ?rB  * 7bJp&fB11 ?p舁f ,EJJBԿU]K00? 8f f7 .U06 "K533eKfw ^@te\QwN0w 7t7l7 n , 7 ( 7  wV)t\Q` QP~ Q %ff 7 I~& D 7 f7 ` VH-B  .PL .*de^ZeT"K7m<2- & 7 7   "K7 w @ mW wmwT)RS@t\Q` l jW g d-`-\׭XS2n- bwpZD 6 v35 h @am2e '7 7 7 e?t77 E Q rR 7 w rQP~FR F 7 4R \Y@f   _ _e w72e,(e"m D - А~ ~ B~% lQ7 wR)TQt\Q`r8Q4Q 62U(E"7 Qa&QP~P 'Y@'f '    P 7 806=3 efP@t  bQ f : % ( mwpHwxmr-hf^ B~VN B~%wQ ׭r f 7 |ÝV   -m rKm rK w>Q 87 0 2 . $ 7  7 7 VO|zDKPB~7 NdN N6wN@mR7N NDN@N7NN7 NwNEN v7lj >w`^   $ nK    C 9w(P7 7 KDPB~ ) ^ "h U  -t@mnH@ mbHe w T 7 D7 49,wO dM`Mz7T`PwT`PD`v`&   7(w, 7w7w56 -h7 | 7HM@M-*M j50MMM hLL \e  rZ6 -ZZ  r     * CAWp @e & j,0&"($7w % -ZL 7 bL7 \LemKmK TwM :6@- 6 - 6 w z-~6 ( -(s6 6 6 6   `  5pNKv 6v`v 6`5pVKv 6v`v 6` r6vr6v- J& 7mJ6  J* 7mJ6e , enJjjJl\7 JJ-J  FJDJ %6J22J4$JJ-J-zJ w L-zJU  lڤ   5NKNK5VKVK w+ pNKVKw H pNKVK 0NK^K0VKdKe jwlpZ  %fD 7lNK\7lVKX .wJKI-IG '-#    1NKNK1VKVK w^KwdK  %eW! l-"I 5,III d% 7 I7 I&f5w( Hpn lW L  |T 5 7 `7<nKw:77-2( @ :0 J   5 e 55 XH 5 HHGH t"W" 7 T w   75rnKe w7^\ fߌG߂G ~G 6P 67 @ E߇Ur߇7 wI7 hG7 fG7 NG 7 DKB7 5 >45 3 V37 B3 35 " ~.57 7 7 ` 5 45  p5 P;tFtFnFnF e .a e5HF %)6a e wGFFF E X1? wEEEwG @ 5 5M E EU݀t ? ݀ 6  rEvnErE~݇EEEE jewF)m& 36m 36 27 27 B27 ~27nKa pKa nKDD  aDD xpKDD ha~D|D V DBP  64., e&/>6"6"wE & L1 & B17    `1  V17  x r nf 5C_ ExCEP7 EW W W D W  7 -B -B  B x -B   t 7  -2 -Be@-B < r mFDm Df  ' 2D"E 5BU E 5rBU t E j5ZBU \  VNET?H Lm~mz -rr AfA` "e AA wCAA$77`C C 7www` 7 @7AA &` w` 7 B 7w|zv@t7B Bt7zB vBrBe7lBEfBCE74E.* 7vFBE`0B7,B  7Lv$B7 (B7 ``t7Bt7B B@t7A A7AEA7 AEA 7AmAA7AmAAAe7AEAAAt 7TA dAAAAhpW_7 D@7 >:wvA)  tm     tm7AAC  A AB w @tm w w @tm7@@-@-@wT n ze?7 >>7h b?7 >>7LHV R@: 7F BR B &w #  e?7 D>>>79 ?7 ">>7) w@e?7 >>7  w@?7 ==77 ztt pl d^ 7ten2R w %wd?   p     @ ~5      w|>0b<EZ<6U\v @ 6 @tEEt?Ppl - ? P m @Ԁe? 2Ԧdt& ;@m& ; e ;;- |w t6~;p;m 6T  6v"t6 t6 6    j Rd`Ejf : @ӿ<5A L< m <m < .(% E U v26,E U v06*E U v.6(%Ҧ ~  .a $   (a& tҿZҿVҿVҿT X% -9w5 ::ҿ "e0fD E] E95t?PE5]E5]с7 LHD߇w,;-67 F݇ N' X'w 7   rXM2ZOw7޷  7,VM7,XO -7  \  7 އw: E88-Sw! --ކ-||w!z?-pp;-dd7-``3TCR@ B@DD!A7 8828w 08*8 "8 8 &8 e !w@ XMZO/uъ @ eZO !  E ` r  @,ZOeZO 7  7  6  6 X +A BZO@ ,\O    a`&ZMNXM&\O D$@lXM  e v!  !   a`  a`p"C  W!    f  a@a& a@a&$7 ee m#we jJ6fF6@6 h$74666 p$7*6 m$6@m 6< ) 66a e 7m7m7A7v777m7 @@ @JP7m7m7A7v777m~7 @@ @JP&fv7mn7p7mh7^7\7A@vRR&f>7m6787m07&7$7@Avb bCA 7@E@DQdbE ZE V5F5 U H@E@DQE 65&5 U (@E@DQE 55 U @E@DQ̿̇f445 -p45U4 44 4 54 5 < 2j5^554 ?̿ ?~x̿ r?rl̿ f{4 5j4 \m&53%f7- .w- (4"47 (47 &4 !7474-"  !73733 wV5 3& - C 3 B3 lN d!6N !6 P!6  z!)N >!6N 2!6 (!@  N!6N !6  2!6  6 a e-7 և2 2~2z2E2 2 2U2 2Nֺ2Jֶ2 | < 7 ,և722 Z ք2Et2 z2Uh2b2E    7627 fe~ r-72E2E1U11  ~7 rՇ71n11fAR2A! D tA<2:2 D`!A  n?^X w2 &225 B E t 1N` B%w2f11w!105 ? Nw 1w 1  8w n1w f1mj1mh1  n1o  l? qV1N1?z?`r? t_>141h21\&1? R?L?`D1DG11810,0 0? ??`0)000000? 0000??`?LJv0LJf/l0"/mL0?/|B0 |nǿ h~@0.X.m0N  P0@ǿ : ~w05 F/ >// /E5(/!/5/ -..-./ -|.. t.m/. @ U.E.5.e 2R5.C~B~5.F/2RC 5  CC  D C  Te E 5X. 2RA  F~.5@8. 2RA ht G~5.2RAR B~w/)XPl-j--E EU*"@-8-5-  5@-H.6 0. <.6.<. .$#.*#-'-.C- C m--- j C m-- `- m- -  -- -cB  --ev-mD- ewB.-R-V-J-J-  e+m&-AC@@BP_A @@ Y@A @@ S+m,@B?E lȦ ?ÿ À  ?ÿ#?ÿ ÿ ~ ? ? ÿ À  ÿ?ÿ ~ mV, CmR, ew -6  ,*T, -,1w ,. ,0 e tE -+m++ + ^¿ e5-++E e6t0 ! -*mv+p+ j+ ¿ ~  anA* rew+Ej*-\* 2*P*)*)*)*)*F* 7*&0*: 7*7 ** l4 B* 7* t)|*p)t*l)r*h)n*4 `* $7Z* @e4 )  ) Ц Цw* Ѧ Ѧw * t) Ҧ Ҧw) Ӧ Ӧw)) )) )  m)&: 7) 7) )) )7) ~) 7v) .^(x)7) )e wH*( 7X)( 7P)( 7B)( 7:)2) 7*)*) 7")) 7r7)  ՀT()wp~w((7( ((( (! 7\R(7PR(( D r7('  C w((Bpw(7'!-(-(-j(j('U' w)J(w D(@<( 7J(w,(.(w ((@ ( 7,(w(  -0'-('K'7E'5@:' '''w(,''('' ' ,7'' h7'5&5  'Wp r& Gl      `r'7ap' mh'7d' m\'7X'&5& B't& w'x& -h&  @R& @D& N&@ @7&   @7& & &7&5&m&z%m&v%p% 7d%f% 7Z% m&N%m&J%f@% 7<% b,%N |m$%7 %% 7% N%N m$7$7w% w&ȷ&&&& @7 &7 & w%w%w& 7& &7&&&&w&e&-&7 x& p&ej& h&f7 $7 $7 $nK    fl h  d -^ Z-TN7 BQ7$%> %:%6%& 7%" 7$ $$ $$-$-$$7 $ Z$ @  F7$ $ @  n7$ w%A nKPPPH -"$#$######D##@##<##8###~#(#############"#"#@~#8z#8#4# 70#$# P7 # fm" #" 7"" 7 n# fmn" w|$xvr wj v"fm:"Vm6"R 7 "-#-##7 #l"7 " !! % w#w!t"]w!p"Z-6- "-" :"--=6("--36 +̹ʹ"" ȹ  !x@ ff& e? w0#-!  7r! m!N 7r! 7r!B m!*!x# ( WB!wpZ!C rB rDpE>!DpmAC!!: 6 6t?ĸ    6 v" m v"sv@ fit '3? RJC~ v` - N I`  v" B   3ܷ? ַ?з a v"    3? C ?e w $w  e e\ lL-8-0-)0l ---ɼ8 ɠewt jm` 7 nd ^X %`@@m6 7 F@w :4 ~| @  xj d~w  -F/ 5L  | % t- 5  X ȦȢ .%tp  \wtr ,7|hf 7nh dv70^( P 7 X 7w:255f m-5 m5 mzew w|ǷzA 27NJwlǷjA\ j 7TR r 7JH R 7@> Z 762 .$ . 7 6 7  7 7 7 7 ,jRlR7wƮƪ-(  <  7Ɩ%lRjjRfb^w\7Z`VXR   EvUpEh R.Fwx& J62"$ T   q o l- e  EUŌ--   n p 6 ^``Ŗ 5JH  m8mmm f eK~w--  5?    ~ 7ķāw 7  = 6:   dm\RmZVmTNmF<r  o  2 m*m"mm B Q* t T = mmmmîì-  -7  5?  : C  fm,m ( f ~nK  67 &  nnK    b w -»+ (  785  ~H^\ ں B~-  ~~\ |  7r7zH   7rl7f% ^V TLP~H H  e~b e"fpl 7 T"&   7r7   7r7d   7  7~-7f  P wĹW  7   @   @ 7t t7v\p .  7r^ X  7rH 77 zw x$ 7 6tEtWtE@`WtE@` 5ָ t 5ȸ Wt@`WtEWt@`6WtE 5 tBPtPDwd)& ά  D     a`W  E=J @B1 1 ## 5 7    ?e @- 7 57  n b f  @  @  @  @  @  @  @  @  @  @  @  @  @  @  @  @ f 7vv U~7vf6p6rf  6p`@  6r @ fX   7 6 67R67| x7rpe  7 Z6 67678 47.,e dm  m 6 66766e 6 667r66eX m` F mN  X>    B>%> ef$  7\ 7ƴ 7e m7 7m7xm7 m|7z vN~7{ D 7 \X7 VR NUTnK0.,* ~ ew~wԳ г7 ij³nKpK r7 7 wwnK  PH efx t7 dDbf^b7`X\ JnKZXVT nK   rn nKJB , 7 7 fز Բ7 IJ²7  7 7 .  v څw^ 7 tr7lw~|dx7><7`8w6w4mJ.\ 7 F 7: 7 (  7  7   7  z 7  h  7  -   7t m -  hmh n 7J X t -n H d \ 7( 4m4 L -H B m 2 7 f   aa  7 67 6 6 67 7 67 67 667 67x 7 67z 6 6 67V 7X 67D 67< 6 67* 67" 67 67 7 67    m 7    m 7 7 7 7 7 e    6   6 6  6 `  r6N n ^66$$a e(w nK     <nK   ڮ V7 F > w 7 w )W nW kW [  b l,  -  9  2  ? ? %:7 64-21-.(-& 7~  7t  7:  70 "  w<  ܭ-ح-ԭέ7 Pf @ B7 %w  "   7 x 47 n 6d 6 @ BBa0B Ba D  7   r wB h r 7. wp" N 7 %7  0 wp N& 7 %7 %- E U %5zb Z d \   l67 FEx x Uf f( $ ,7  47~ w  N< 8<"$-H H !0  J"    w7 ƟŸȟ5n  h l>> *  CDaaaB  `\ &----  ~a@`>a whl@ BZ  w w!7 z n lf   ~w VvJErw!@ ^  ?P T @!g ?6 & ( , @!Sw!D? EU    w 0Ν Ɲ ʝ%w!D?7 vEU  E~5^o X  mxBmh- s7!p-l i b- v -!D -/   ڜ?؜Eܜ  Ĝ-V3-PRH? EU ? E  f l?^ C!w 6 B- 6` !m,  $?"E& [!_ 6 M!Q  Ctޛ 4v %5?  o ~ x  ? ?`z w! l ?h -Z -r HD JB($,e} uh0WDDW0hu }*HrT`X`&`a&`&`&`&`>ЃȓY.aT:v[0aq(qHf,XWrBYfVt&`tu.upuuuzT&`Bb&`&`&`cs:q&`2a&`&`&`&`&`&`Pu&`&`&``&`ja&`zsV`ބ&\]J]^ ^&`\b~l&`??&D&&D&*6NZfrn8n^ ^^ ^ "<r !!!!%%$$&#"'&'&'&&''"#"#0J B\ww(w\wB8 """"P ""Tpp >@@@@>" "" ||P p8Hp8r rDpp  p @pT*T@@@pp ( DDH HP    8pp$">" 8          8 "B   """"B"    P     8pp ! 8   @8 @8 8 8    ""B"    .MCALL .MODULE .MODULE VTMAC,VERSION=02,COMMENT= ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ; VTMAC IS A LIBRARY OF MACRO CALLS AND MNEMONIC DEFINITIONS WHICH ; PROVIDE SUPPORT OF THE VT11 DISPLAY PROCESSOR. THE MACROS PRODUCE ; CALLS TO THE VT11 DEVICE SUPPORT PACKAGE, USING GLOBAL REFERENCES. ; MACRO TO GENERATE A MACRO WITH ZERO ARGUMENTS. .MACRO MAC0 NAME,CALL .MACRO NAME .GLOBL CALL JSR PC,CALL .ENDM .ENDM ; MACRO TO GENERATE A MACRO WITH ONE ARGUMENT .MACRO MAC1 NAME,CALL .MACRO NAME ARG .IF NB,ARG MOV ARG,%^O0 .ENDC .GLOBL CALL JSR PC,CALL .ENDM .ENDM ; MACRO TO GENERATE A MACRO WITH TWO OPTIONAL ARGUMENTS .MACRO MAC2 NAME,CALL .MACRO NAME ARG1,ARG2 .GLOBL CALL .IF NB,ARG1 MOV ARG1,%^O0 .ENDC .IF NB,ARG2 MOV ARG2,-(SP) .IFF CLR -(SP) .NARG T .IF EQ,T CLR %^O0 .ENDC .ENDC JSR PC,CALL .ENDM .ENDM ; MACRO LIBRARY FOR VT11: MAC0 <.CLEAR>,<$VINIT> MAC0 <.STOP>,<$VSTOP> MAC0 <.START>,<$VSTRT> MAC1 <.INSRT>,<$VNSRT> MAC1 <.REMOV>,<$VRMOV> MAC1 <.BLANK>,<$VBLNK> MAC1 <.RESTR>,<$VRSTR> MAC1 <.STAT>,<$VSTPM> MAC1 <.LPEN>,<$VLPEN> MAC1 <.SCROL>,<$VSCRL> MAC2 <.TRACK>,<$VTRAK> MAC0 <.LNKRT>,<$VRTLK> MAC0 <.UNLNK>,<$VUNLK> ; MNEMONIC DEFINITIONS FOR THE VT11 DISPLAY PROCESSOR DJMP=160000 ;DISPLAY JUMP DNOP=164000 ;DISPLAY NOP DJSR=173400 ;DISPLAY SUBROUTINE CALL DRET=173400 ;DISPLAY SUBROUTINE RETURN DNAME=173520 ;SET NAME REGISTER DSTAT=173420 ;RETURN STATUS DATA DHALT=173500 ;STOP DISPLAY AND RETURN STATUS DATA CHAR=100000 ;CHARACTER MODE SHORTV=104000 ;SHORT VECTOR MODE LONGV=110000 ;LONG VECTOR MODE POINT=114000 ;POINT MODE GRAPHX=120000 ;GRAPH X MODE GRAPHY=124000 ;GRAPH Y MODE RELATV=130000 ;RELATIVE VECTOR MODE INT0=2000 ;INTENSITY 0 INT1=2200 INT2=2400 INT3=2600 INT4=3000 INT5=3200 INT6=3400 INT7=3600 LPOFF=100 ;LIGHT PEN OFF LPON=140 ;LIGHT PEN ON BLKOFF=20 ;BLINK OFF BLKON=30 ;BLINK ON LINE0=4 ;SOLID LINE LINE1=5 ;LONG DASH LINE2=6 ;SHORT DASH LINE3=7 ;DOT DASH STATSA=170000 ;LOAD STATUS REG A LPLITE=200 ;INTENSIFY ON LPEN HIT LPDARK=300 ;DON'T INTENSIFY ITAL0=40 ;ITALICS OFF ITAL1=60 ;ITALICS ON SYNC=4 ;POWER LINE SYNC STATSB=174000 ;LOAD STATUS REG B INCR=100 ;GRAPH PLOT INCREMENT INTX=40000 ;INTENSIFY VECTOR OR POINT MAXX=1777 ;MAXIMUM X INCR. - LONGV MAXY=1377 ;MAXIMUM Y INCR. - LONGV MINUSX=20000 ;NEGATIVE X INCREMENT MINUSY=20000 ;NEGATIVE Y INCREMENT MAXSX=17600 ;MAXIMUM X INCR. - SHORTV MAXSY=77 ;MAXIMUM Y INCR. - SHORTV MISVX=20000 ;NEGATIVE X INCR. - SHORTV MISVY=100 ;NEGATIVE Y INCR. - SHORTV "@/$$NChC>y69XBSBy%2;M%Cq%R+C+z+ѫW+Y:CMwFs:E|̫F`<}LV}DXjjf%:LpsK{Zp{);d~?SгDCv~@@HC@Mw@@L@V}@@Lp@@);d@^Cq@=|HS  Chh>Ch~>yhJ6h29XhBShnf  $%7 7 7 7 7 +  f & f  lC MwLLp $(V},0>LDCHLJ);dRCq\L`CqvCqI| wC Lp);dCv~A~@SгDCv~@HC@Mw@L@=|HS  BByh2;MhCqh*Jf $  wf 1 e% CCv~0Mw>L~ASгDH@V}@@j@j@Lp@@@@p@=|HSN @ XRhPCh8zh@ѫWhHV}HpPpV~BSгDp@ǫ:@8Y@>Y@:@HC@s:@E|@DX@f%:@@vsK@{@Z@yBx@Jwkf@{@=|HS 쩀 EkYhYsKDX"E|$DX(0DX8Fs:N\:hvǫ:n:| weww<f%:p>Y8Y8Y${(Z.yBxf,5f   * $V 7 7 ? E ,we5 5  5OVsKC>Y$>Y68Y>Z@{DDXHpL>YPsK^sKl>Y!j. UEA f   eww*">Y2Z6{P{ZJwkf^~= SгD HyBxH JwkfHƩH=|HS 쩀 NCv~h᫈h6}h᫆hVphg~ǫ:hh,8Yh>Yh:hFChMwhFhs:hE|h6̫F`h <}hhhLhV}h~hDXh0jhjhf%:hhLphhsKh{hhZhh^ph{h );dhh'쩀 ,^ ` 7 I% 2%@,?r9 %\.D?Twww"% %ww?z:BHZhn<|$   f #TTA T@_?@@?_`__k(ththT(T(t,^ `De& "2 48:RT%  Z j.5 DE 7a$DEv 7anj    b  l ՐU  0J   6,^ `,} =6<Bf6( LC.MODULE PUTSTR,VERSION=03,COMMENT=,LIB=YES C C THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED C OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. C C COPYRIGHT (c) 1986 BY DIGITAL EQUIPMENT CORPORATION. C ALL RIGHTS RESERVED. C SUBROUTINE PUTSTR ( LUN, AREA, CC, ERR ) LOGICAL*1 AREA(1), CC, ERR ERR = .FALSE. !INITIALIZE ERROR FLAG IF (CC.NE.0) GOTO 1 !BRANCH IF CC NON-0 WRITE (LUN,9,END=2,ERR=3) (AREA(I),I=1,LEN(AREA)) GOTO 4 1 WRITE (LUN,9,END=2,ERR=3) CC,(AREA(I),I=1,LEN(AREA)) GOTO 4 2 ERR = -1 !END-OF-FILE GOTO 4 3 ERR = -2 !HARDWARE ERROR 4 RETURN 9 FORMAT (250(250A1)) END C.MODULE GETSTR,VERSION=02,COMMENT=,LIB=YES C C THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED C OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. C C COPYRIGHT (c) 1986 BY DIGITAL EQUIPMENT CORPORATION. C ALL RIGHTS RESERVED. C SUBROUTINE GETSTR( LUN, AREA, MAXLEN, ERR ) LOGICAL*1 AREA (1),ERR ERR = .FALSE. !INITIALIZE ERROR FLAG READ(LUN,9,END=1,ERR=2) ITMP,(AREA(I),I=1,MAXLEN) AREA(MAXLEN+1)=0 !TERMINATE STRING CALL TRIM(AREA) !GET RID OF TRAILING BLANKS IF (ITMP.GT.MAXLEN) ERR=-3 !LOOK FOR RECORD LENGTH ERROR GOTO 3 1 ERR = -1 !END-OF-FILE GOTO 3 2 ERR = -2 !HARDWARE ERROR 3 RETURN 9 FORMAT(Q,250(250A1)) END .TITLE DEMOBG .IDENT /V05.00/ ; DEMONSTRATION PROGRAM TO PRINT DEMONSTRATION MESSAGE, THEN ; RING BELL IF FG JOB SENDS A MESSAGE. .MCALL .RCVDC,.PRINT START:: .RCVDC #AREA,#BUFFER,#400,#MSGIN ;POST REQUEST FOR MESSAGE .PRINT #MSG ;PRINT DEMONSTRATION MESSAGE BR . ;AND LOOP ; COMPLETION ROUTINE ENTERED WHEN FG SENDS MESSAGE MSGIN: .PRINT #BELL ;RING BELL IN RESPONSE TO MESSAGE .RCVDC #AREA,#BUFFER,#400,#MSGIN ;POST ANOTHER MESSAGE REQUEST RETURN ;AND RETURN FROM COMPLETION ROUTINE ; ASCII MESSAGES .NLIST BEX BELL: .BYTE 7,200 ;MESSAGE THAT RINGS BELL MSG: .ASCII /RT-11 DEMONSTRATION PROGRAM/<15><12> .ASCII /IF INCORRECTLY EDITED,THIS IS THE LAST LINE./<15><12> ; .ASCII /WELL DONE./ .BYTE 0 AREA: .BLKW 6 ;EMT ARGUMENT AREA BUFFER: ;RCVDC MESSAGE AREA .END START .TITLE DEMOFG .IDENT /V05.00/ ; FOREGROUND DEMONSTRATION PROGRAM TO PRINT MESSAGE TO BACKGROUND, THEN ; QUEUE A MESSAGE EVERY 2 SECONDS FOR THE BACKGROUND TO RING THE BELL. .MCALL .SDATC,.PRINT,.MRKT,.QSET,.SPND START:: .PRINT #MSG ;PRINT INTRODUCTORY MESSAGE .QSET #QUEUE,#100. ;SET ASIDE 100 Q ELEMENTS FOR MESSAGES .MRKT #AREA,#TIME,#MKTC,#1 ;SET UP MKTIM FOR 2 SECONDS FROM NOW .SPND ;SUSPEND THE FG TILL MKTIM SATISFIED ; MKTIM COMPLETION ROUTINE MKTC: CMP MSGCNT,#90. ;90 MESSAGES QUEUED YET? BGT MKTC1 ;YES-NO SENSE QUEUEING ANOTHER .SDATC #AREA,#BUFFER,#1,#SDATC ;SEND MESSAGE TO BG INC MSGCNT ;BUMP MESSAGE COUNTER MKTC1: .MRKT #AREA,#TIME,#MKTC,#1 ;SET UP ANOTHER MKTIM FOR 2 SECONDS RETURN ;RETURN FROM COMPLETION ROUTINE ; SDAT COMPLETION ROUTINE SDATC: DEC MSGCNT ;ONE OF THE MESSAGES HAS BEEN RECIEVED RETURN ;RETURN(RTS PC) ; ASCII MESSAGES .NLIST BEX MSG: .ASCII /FOREGROUND DEMONSTRATION PROGRAM/<15><12> .ASCII /SENDS A MESSAGE TO THE BACKGROUND PROGRAM "DEMOBG"/<15><12> .ASCIZ /EVERY 2 SECONDS, TELLING IT TO RING THE BELL./ .EVEN MSGCNT: .WORD 0 ;MESSAGE COUNTER ;TIME CONSTANT TIME: .WORD 0 ;HIGH ORDER .WORD 60.*2 ;60 TICKS A SECOND,2 SECONDS AREA: .BLKW 6 ;EMT ARGUMENT AREA BUFFER: .BLKW 400 ;BUFFER FOR MESSAGES ;QUEUE AREA QUEUE: .BLKW 100.*10. ;10. WORDS PER QUEUE ELEMENT FOR THE XM MONITOR .END START .TITLE EXAMP.MAC (VERSION PROVIDED) .MCALL .TTYOUT, .EXIT, .PRINT N = 70. ;NO. OF DIGITS OF 'E' TO CALCULATE ; 'E' = THE SUM OF THE RECIPROCALS OF THE FACTORIALS ; 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + 1/5! + ... EXP: .PRINT #MESSAG ;PRINT INTRODUCTORY TEXT MOV #N,R5 ;NO. OF CHARS OF 'E' TO PRINT FIRST: MOV #N+1,R0 ;NO. OF DIGITS OF ACCURACY MOV #A,R1 ;ADDRESS OF DIGIT VECTOR SECOND: ASL @R1 ;DO MULTIPLY BY 10 (DECIMAL) MOV @R1,-(SP) ;SAVE *2 ASL @R1 ;*4 ASL @R1 ;*8 ADD (SP)+,(R1)+ ;NOW *10, POINT TO NEXT DIGIT DEC R0 ;AT END OF DIGITS? BNE SECOND ;BRANCH IF NOT MOV #N,R0 ;GO THRU ALL PLACES, DIVIDING THIRD: MOV -(R1),R3 ;BY THE PLACES INDEX MOV #-1,R2 ;INIT QUOTIENT REGISTER FOURTH: INC R2 ;BUMP QUOTIENT SUB R0,R3 ;SUBTRACT LOOP ISN'T BAD BCC FOURTH ;NUMERATOR IS ALWAYS < 10*N ADD R0,R3 ;FIX REMAINDER MOV R3,@R1 ;SAVE REMAINDER AS BASIS ;FOR NEXT DIGIT ADD R2-2(R1) ;GREATEST INTEGER CARRIES ;TO GIVE DIGIT DEC R0 ;AT END OF DIGIT VECTOR? BNE THIRD ;BRANCH IF NOT MOV -(R1),R0 ;GET DIGIT TO OUTPUT FIFTH: SUB #10.,R0 ;FIX THE 2.7 TO .7 SO ;THAT IT IS ONLY 1 DIGIT BCC FIFTH ;(REALLY DIVIDE BY 10) ADD #10+'0,R0 ;MAKE DIGIT ASCII .TTYON ;OUTPUT THE DIGIT CLR @R1 ;CLEAR NEXT DIGIT LOCATION DEC R5 ;MORE DIGITS TO PRINT? BNE FIRST ;BRANCH IF YES .EXIT ;WE ARE DONE EXP: .REPT N+1 .WORD 1 ;INIT VECTOR TO ALL ONES .ENDR MESSAG: .ASCII /THE VALUE OF E IS:/ <15><12> /2./ <200> .EVEN .END EXP C EXAMP.FOR (VERSION PROVIDED) C THIS PROGRAM PRODUCES A PLOT ON THE TERMINAL C OF AN EXTERNAL FUNCTION, FUN(X,Y) C THE LIMITS OF THE PLOT ARE DETERMINED BY THE DATA STATEMENTS C "STAB" IS FILLED WITH A TABLE OF HEIGHT FLAGS C "STRING" IS USED TO BUILD A LINE OF GRAPH FOR PRINTING SCAL(ZMIN,ZMAX,MAXZ,K)=ZMIN+FLOAT(K-1)*(ZMAX-ZMIN)/FLOAT(MAXZ-1) LOGICAL*1 STRING(13,3),STAB(100) DATA XMIN,XMAX,MAXX/-5,5,45/ DATA YMIN,YMAX,MAXY/-5,5,72/ DATA FMIN,FMAX/0.0,1.0/ CALL SCOPY('- 1 2 3 4 5 6 7 8 9 +',STAB) MAXF=LEN(STAB) DO 20 IX=1,MAXX X=SCAL(XMIN,XMAX,MAXX,IX) CALL REPEAT('*',STRING,MAXY) IF(IX.EQ.1 .OR. IX.EQ.MAXX) GOTO 20 DO 10 IY=2,MAXY-1 Y=SCAL(YMIN,YMAX,MAXY,IY) IFUN=2+INT(FLOAT(MAXF-3)*(FUN(X,Y)-FMIN)/(FMAX-FMIN)) 10 STRING(IY)=STAB(MIN0(MAXF,MAX0(1,IFUN))) 30 CALL PUTSTR(7,STRING,' ') CALL EXIT END FUNCTION FUN(X,Y) R=SQRT(X**2+Y**2) FUN=X*Y*R*EXP(-R))**2 RETURN END WE HOLD THESE TRUTS TO BEE SELF-EVIDENT, THAT ALL MEN ARE CREATED EQUAL, THAT THEY HAVE UNRELIABLE TENDENCIES OF WHICH THEY AR ENDOWED BY THEIR CREATOR, THAT AMONG THESE ARE LIFE, LIBERTY AND HAPLENESS. Sample Keypad Editing Session - //DATE// This file has been designed especially for the sample editing session that is described in Chapter 1 of the PDP-11 Keypad Editor User's Guide. After you have completed the sample session described in Chapter 1, you may use this file to practice other keypad editor functions and commands, if you like. ABOUT THE SAMPLE SESSION Your general task for the sample session is to insert the date you begin working with the keypad editor into your own copy of this file. The date is //DATE// . Sample Keypad Editing Session, "section" 2 lakdjhfuierbhnv a678237yfg^90(4#!! The PDP-11 Keypad Editor is distributed in two versions. KED is for use with VT100 terminals that have keypads, and K52 is for use with VT52 terminals. As you work through a file with the keypad editor, the editor displays 24 lines of the file on your screen. One of the lines always shows the keypad editor cursor, the flashing symbol that is always somewhere on your screen. The cursor identifies the character that will be erased if you use one of the erasing functions. It also marks the location in your file where the editor will insert what you type on the keyboard. //DATE// is the date you started to learn to use the keypad editor. If KED is the first video-oriented editor you have used, welcome to a new world of fast, clear responses to editing functions. If you already have used a video-oriented editor, welcome to DIGITAL's contribution for users of the RT-11, RSX-11M, and RSX-11M-PLUS operating systems. If the experience of other users is valid for you also, you will be confident about using the keypad editor with a day or two after //DATE// . .MCALL .MODULE .MODULE EL,VERSION=06,COMMENT=,AUDIT=YES ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, ; MASSACHUSETTS. ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL. .SBTTL ABSTRACT .ENABL LC .SBTTL COMDITIONAL ASSEMBLY SUMMARY ERL$G = 1 .IIF NDF ERL$U ERL$U = 10. .IIF NDF ERL$S ERL$S = 1 .SBTTL DEFINITIONS .MCALL .DATE, .DRDEF, .GTIM .MCALL .PRINT, .DSTAT .Assume .MCALL .ADDR .DRDEF EL,2,RONLY$,ERL$S+1,0,0 .DRPTR UNLOAD=UNLOAD .DREST CLASS=DVC.PS .MACRO BCS. LABEL,?ALT BCC ALT JMP LABEL ALT: .ENDM SYSPTR = 54 CONFIG = 300 FBMON$ = 1 CONFG2 = 370 CACHE$ = 1 SYSGEN = 372 PNPTR = 404 UNITMK = 7 GOODIO = -1 PARERR = -2 CCHERR = -3 PCHERR = -4 O.UNIT = 0 O.ID = 1 O.ERL = 2 O.ERR = 4 O.READ = 6 O.WRIT = 12 STALEN = 7. D.SIZE = 0 D.RNUM = 1 D.DVUN = 2 D.DVID = 3 D.RTRY = 4 D.OCUR = 5 D.DATE = 6 D.HOT = 10 D.LOT = 12 D.BLKN = 14 D.BUFF = 16 D.WCNT = 20 D.REGN = 22 D.MTRY = 23 D.REG = 24 DEVFIX = 10. M.SIZE = 0 M.RNUM = 1 M.TYPE = 2 M.MREG = 3 M.OCUR = 4 M.DATE = 6 M.HOT = 10 M.LOT = 12 M.PC = 14 M.PS = 16 M.REG = 20 PARMAX = 16. PARFIX = 8. MSYSER = 177744 MCONRG = 177746 MHITMS = 177752 .SBTTL INSTALLATION CODE .ASECT . = 200 BR 10$ BR 20$ 10$: MOV @#SYSPTR,R0 BIT #FBMON$,CONFIG(R0) BNE 20$ TST (PC)+ 20$: SEC RETURN UNLOAD: MOV @R5,R5 MOV $ELPTR-ELLQE(R5),R0 TST (R0)+ CLR @R0 RETURN .Assume . LE 400,MESSAGE=<;Installation area overflow> .SBTTL SET OPTIONS .DRSET LOG, NOP, O.LOG, NO .DRSET PURGE, NOP, O.PURG .ENABL LSB O.LOG: BR 5$ NOP BR O.NLOG 5$: CALL FINDRV BCS O.BAD MOV @#SYSPTR,R2 MOV R1,R0 ADD #CNFGW1-ELLQE,R0 TST (R0) BNE 10$ MOV CONFIG(R2),(R0)+ MOV SYSGEN(R2),(R0)+ MOV R1,-(SP) ADD #GETDAT-ELLQE,(SP) CALL @(SP)+ 10$: MOV R1,R2 ADD #$ELCPY-ELLQE,R2 BR 20$ O.NLOG: CALL FINDRV BCS O.GOOD CLR R2 20$: MOV $ELPTR-ELLQE(R1),R0 TST (R0)+ MOV R2,(R0) BR O.GOOD .DSABL LSB O.PURG: CALL FINDRV BCS O.BAD MOV #1,PNXREC-ELLQE(R1) MOV #1,PNXBLK-ELLQE(R1) CLR PNXWRD-ELLQE(R1) CLR $ELFLG-ELLQE(R1) RETURN FINDRV: .ADDR #DEVNAM,R0 .ADDR #DAREA,-(SP) EMT 342 BCS O.BAD MOV DAREA+4,R1 BEQ O.BAD O.GOOD: TST (PC)+ O.BAD: SEC RETURN DAREA: .BLKW 4 DEVNAM: .RAD50 /EL / .Assume . LE 1000,MESSAGE=<;Set area overflow> .SBTTL DRIVER REQUEST ENTRY POINT .DRBEG EL MOV ELCQE,R4 MOV Q$WCNT(R4),R2 BEQ ELDONE BLT ELERR MOV Q$BUFF(R4),R1 .ADDR #$ELHDR,R0 MOV (R4),R3 BGT 10$ CMP R2,#$HDLEN BLE 30$ MOV #$HDLEN,R2 BR 20$ 10$: ADD #$ELBFR-$ELHDR,R0 CMP (R4),#ERL$S BGT ELEOF DEC R3 SWAB R3 ASL R3 ADD R3,R0 ADD R2,R3 ADD R2,R3 SUB #ERL$S*256.*2,R3 BLE 30$ ASR R3 SUB R3,R2 20$:; MOV R2,Q$WCNT(R5) 30$: MOV (R0)+,(R1)+ DEC R2 BGT 20$ BR ELDONE ELEOF: BIS #EOF$,@-(R4) BR ELDONE ELERR: BIS #HDERR$,@-(R4) ELINT: ELDONE: .DRFIN EL .SBTTL $ELCPY - START OF COPY CODE $ELCPY: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV R5,-(SP) CLR -(SP) INC CERECR CMPB R4,#GOODIO BGT DEVERR BLT MEMERR DEC CERECR CALL GESTAT BCS 20$ ADD #O.READ,R0 TST Q$WCNT(R5) BEQ 20$ BPL 10$ ADD #O.WRIT-O.READ,R0 10$: ADD #1,(R0)+ ADC (R0) 20$: JMP $ELXIT .SBTTL DEVERR - DEVICE ERROR RECORD LOGGER DEVERR: CALL GESTAT BCS 10$ INC O.ERR(R0) MOV R0,(SP) 10$: TST PNXWRD BEQ 40$ CLR R1 CALL CHKSIZ ADD (R0),R0 MOV R4,R1 CLRB R1 BISB Q$UNIT(R5),R1 BICB #<^CUNITMK>,R1 CMP R1,D.DVUN(R0) BNE 40$ CMPB R4,D.RTRY(R0) BGE 40$ MOV R0,-(SP) MOV R2,-(SP) ADD #D.REG,R0 MOVB R3,R1 20$: CMP (R0)+,(R2)+ BNE 30$ DEC R1 BGT 20$ 30$: MOV (SP)+,R2 MOV (SP)+,R0 TST R1 BNE 40$ INCB D.OCUR(R0) MOVB R4,D.RTRY(R0) TST (SP) BEQ 80$ ADD #O.ERL,(SP) INC @(SP) BR 80$ 40$: MOVB R3,R1 ADD #DEVFIX,R1 CALL CHKSIZ BCS. $ELERR 50$: TST (SP) BEQ 60$ ADD #O.ERL,(SP) INC @(SP) 60$: MOVB R1,(R0)+ MOVB PNXREC,(R0)+ INC PNXREC MOVB Q$UNIT(R5),(R0) BICB #<^CUNITMK>,(R0)+ SWAB R4 MOVB R4,(R0)+ SWAB R4 MOVB R4,(R0)+ MOVB #1,(R0)+ CALL GETDAT MOV (R5)+,(R0)+ TST (R5)+ MOV (R5)+,(R0)+ MOV (R5)+,(R0)+ MOV R3,(R0)+ MOVB R3,R3 70$: MOV (R2)+,(R0)+ DEC R3 BGT 70$ ASL R1 ADD R1,PNXWRD NEG R1 MOV R1,(R0) 80$: BR $ELXIT .SBTTL MEMERR - MEMORY ERROR RECORD LOGGER STKDPC = 36 STKDPS = 40 MEMERR: CMPB R4,#PARERR BNE 20$ 10$: INC CMPARE BR 30$ 20$: INC CCPARE CMPB R4,#PCHERR BEQ 10$ 30$: TST PNXWRD BEQ 40$ CLR R1 CALL CHKSIZ ADD (R0),R0 CMPB M.TYPE(R0),#PARERR BGT 40$ CMP STKDPC(SP),M.PC(R0) BNE 40$ INC M.OCUR(R0) BR 100$ 40$: MOV R5,-(SP) MOV #PARMAX,R1 50$: TST (R5)+ BEQ 60$ DEC R1 BGT 50$ 60$: MOV (SP)+,R5 NEG R1 ADD #PARMAX,R1 MOV R1,R3 ASL R1 ADD #PARFIX,R1 MOV @#SYSPTR,R0 BIT #CACHE$,CONFG2(R0) BEQ 70$ ADD #3,R1 70$: CALL CHKSIZ BCS $ELERR MOVB R1,(R0)+ MOVB PNXREC,(R0)+ INC PNXREC MOVB R4,(R0)+ MOVB R3,(R0)+ MOV #1,(R0)+ CALL GETDAT MOV STKDPC(SP),(R0)+ MOV STKDPS(SP),(R0)+ 80$: MOV @(R5),(R0)+ MOV (R5)+,(R0)+ DEC R3 BGT 80$ MOV @#SYSPTR,R3 BIT #CACHE$,CONFG2(R3) BEQ 90$ MOV @#MSYSER,(R0)+ MOV @#MCONRG,(R0)+ MOV @#MHITMS,(R0)+ 90$: ASL R1 ADD R1,PNXWRD NEG R1 MOV R1,(R0) 100$: BR $ELXIT .SBTTL $ELXIT - EXIT ROUTINES $ELERR: TST (PC)+ $ELFLG: .WORD 0 BNE 10$ MOV SP,$ELFLG .ADDR #E.FULL,R0 .PRINT 10$: INC CMENTB $ELXIT: TST (SP)+ MOV (SP)+,R5 MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 RETURN .SBTTL GESTAT - GET POINTER TO DEVICE STATISTICS ENTRY GESTAT: MOVB Q$UNIT(R5),-(SP) BIC #<^CUNITMK>,(SP) MOV R4,R0 CLRB R0 BIS R0,(SP) .ADDR #DEVSTS,R0 MOV #ERL$U,R1 10$: CMP (R0),#-1 BEQ 40$ CMP (R0),(SP) BEQ 60$ ADD #STALEN*2,R0 DEC R1 BGT 10$ TST (PC)+ 20$: .WORD 0 BNE 30$ .ADDR #E.STAT,R0 .PRINT MOV SP,20$ 30$: TST (SP)+ BR 70$ 40$: MOV #STALEN,R1 50$: CLR (R0)+ DEC R1 BGT 50$ MOV #-1,(R0) SUB #STALEN*2,R0 MOV (SP),(R0) 60$: TST (SP)+ TST (PC)+ 70$: SEC RETURN .SBTTL CHKSIZ - CHECK FOR ROOM IN LOGGING BUFFER CHKSIZ: MOV PNXWRD,R0 ADD R1,R0 ADD R1,R0 CMP R0,#255.*2 BLT 10$ CMP PNXBLK,SMAXSZ BGE 20$ CALL 10$ MOV #-1,(R0) INC PNXBLK CLR PNXWRD 10$: MOV PNXBLK,R0 DEC R0 SWAB R0 ASL R0 ADD PNXWRD,R0 .ADDR #$ELBFR,R0,ADD TST (PC)+ 20$: SEC RETURN .SBTTL GETDAT - PLACE DATE/TIME IN RECORD GETDAT: MOV R0,-(SP) .ADDR #ELAREA,R0 MOV #21*400,(R0) MOV (SP),2(R0) ADD #2,2(R0) .GTIM .DATE MOV R0,@(SP) MOV (SP)+,R0 ADD #6,R0 RETURN .SBTTL TEXT .NLIST BEX E.FULL: .NLCSI TYPE=I,PART=PREFIX .ASCIZ /W-Buffer is full, logging suspended/ E.STAT: .NLCSI TYPE=I,PART=PREFIX .ASCIZ /W-Device statistics table is full/ .EVEN .LIST BEX .SBTTL IMPURE DATA AREA ELAREA: .BLKW 2 $ELHDR: OFIXED: .WORD <<7*ERL$U+2>*2> DEVSTS: .WORD -1 .BLKW <7*ERL$U> CERECR: .WORD 0 CMENTB: .WORD 0 CMENTF: .WORD 0 CMENTR: .WORD 0 CMPARE: .WORD 0 CCPARE: .WORD 0 PNXREC: .WORD 1 PNXBLK: .WORD 1 PNXWRD: .WORD 0 SMAXSZ: .WORD ERL$S CNFGW1: .WORD 0 CNFGW2: .WORD 0 INIDAT: .WORD 0 INTIM1: .WORD 0 INTIM2: .WORD 0 $HDLEN = <.-$ELHDR>/2 .Assume $HDLEN LE 256.,MESSAGE=<;Header too long> $ELBFR: .BLKW .DREND EL .END h"\l" j"x &|& Al hCAr6l 2S \+VL %FC=w d/T  w @ w  wR T -P[-JW-D S,5 !   e9,5@Tߋ*'p 0 w 5/ r+w 5׭#$ߋ*20 ߋ*$ק*w0w w w ߋ*re0 0 eNe7 \ X5 T5Je. ^H 7F 8ɝ  @       w dw 0w >w zJ w r[w j~w b& & 7}7|7t7u7r7o7lPL7 J7 H7 7 ,7 f7 f7 dZZV' wn?ERROUT-W-?ERROUT-F-Invalid commandChannel errorDevice fullDevice not foundFile not foundInsufficient memoryInput errorOutput errorInternal errorProtected file already existsOutput file full Nz""_M<>""XqԀSERRLOG+ +@鈅BL (a,A x && &w Jw jr . ,  '"$ X  !  H" TTD  $ YL^w AAQzQJ&> ERROR LOG REPORT RT-11 V05.06 - COMPILED PAGE ************************************************************************DEVICE STATISTICSLOGGED SINCE UNIT IDENTIFICATIONPHYSICAL UNIT NUMBERTYPEDEVICE STATISTICS FOR THIS UNIT:NUMBER OF ERRORS LOGGEDNUMBER OF ERRORS RECEIVEDNUMBER OF READ SUCCESSESNUMBER OF WRITE SUCCESSESDISKTAPE DEVICE ERRORLOGGED SOFTWARE STATUS INFORMATION:MAXIMUM RETRIES REMAINING RETRIES OCCURRANCES OF THIS ERROR WITH IDENTICAL REGISTERS DEVICE INFORMATIONREGISTERS:ACTIVE FUNCTION READWRITEBLOCKPHYSICAL BUFFER ADDRESS STARTTRANSFER SIZE IN BYTESMEMORY PARITY ERRORSYSTEM REGISTERS:PC PSW OCCURRANCES OF THIS ERROR WITH IDENTICAL PC MEMORY ADDRESS CONTENTSMEMORY SYSTEM ERROR REGISTER:CACHE CONTROL REGISTER:HIT/MISS REGISTER:ERROR TYPE IS CACHE AND REPORT FILE ENVIRONMENT:INPUT FILEOUTPUT FILEOPTIONS DATE INITIALIZEDDATE OF LAST ENTRYTOTAL ERRORS LOGGEDMISSED REPORTS (BUFFER FULL)MISSED REPORTS (FILE FULL)MISSED REPORTS (TASK NOT READY)UNKNOWN DEVICE STATISTICS ENTRIESUNKNOWN ERROR RECORD ENTRIESMEMORY STATISTICSSTATISTICS:NUMBER OF MEMORY PARITY ERRORSNUMBER OF CACHE ERRORS @  >w@ @e R*@ p@@Ee 4 e w w ~ w w |  w v w p { w j B w XV w B@ `w N w <k H Ew  *w & w { w  0 e pw M @t@ &w Lw a @ w 4w u @ w w { w w w NNE  fe Efee` Z w @ \ w J ew 8 { w & w f   w w  fw w p'@ w Jw w T'@ FB >f  `Hw w  w ' w w { w {  @ & NE c w N  @e w :  w 4 w . { w ( 0 w  3 w  rw  E @  w  \w K @ w  Fw Q @ w w { w  $w  w w  w w  NE fDe w  w x %w h{  %' w H w ) R w @ w . w ) 8 w & ~w  w )  w w { ^w @ w   w w  w w w w { w { N#% >w  w " w  w { @ (    teW#m L w H w 6 w #  w , w  %w #  w  hw 1w r-ѕ/bѕSѕA w  >w :w H'@ tw  "w Kw ,(  w w { w ^w +@ w  w v w +@ w l w Z rw +@ ~ w P w > w +@ b w 4 w " w + F w  |w  w z+l * w   w B Bw V w LB@ w  &w k H Ew " w w { w p w  w .B@ w z w h w .B@ w \ w J w (B@A w : w ( w (B@ A w w { w {  w  w " w  w { w  <w 'w F0@ w  w Fw *0@ w w { 7w  @ ы ѝ  e&&  ѕ &5#&E &E E Z  eN  eH 8! ѕ  -BAD-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC-BAD-BAD-BAD-&ѝ 4 : 4ѕ:eËe:/ѐѐ 2<  @ C    7 7 5<&E E? U w7-ymtt-p<1fE eW-" L@0 ק*w ~w 0 we w \ 2" %&7 8<0w .x $ Pw | w { w { C7 ]#ѝW +, p,0 D J< {  -*pє  l!6 \W +P L, p,0  ,"wߋ*w Vw N, @ዅ   ɕ@ Qɕ I f& &B pҕ.   ҝ  & .ҕ.   ҝ  & &V` e0   A D ! % ѕ:  ѕ.  & % b %e ee e (@ RK11/RK05RKDSERCSWCBADADB TC11/TU56TCSTCMWCBADTRL11/RL01/RL02RLCS BA DA MP STATADDRBAE RX211/RX02RX2CS2DB2ES RF11/RS11RFCSWCMADAAEBRMAAS RJS03/RJS04RSCS1WC BA DA CS2DS ER AS LA DB MR DT RP11C/RP02/RP03RP DS ER CS WC BA CA DA M1 M2 M3 -SUCA-SILO RX11/RX01RX CSDBES RK06/RK07RKCS1 WC BA DA CS2 DS ER ASOFDC ECPSECPTMR2 MR3 TU58** LCHAR BYTES/FLAG S-CODE/OPCODEUNIT SEQ# BYTES STATUS BYTES/FLAG MOD/OPCODE UNIT DU/MSCPDU 1 2 3 4 5 6 7 8 9 1011121314151617181920RX/PRORX5CS05CS15CS25CS35CS45CS55DEBRD/PRORDSTATCYL HEADSEC ERR ST2  " B x   $!(!*!+".MCALL .MODULE .MODULE ELCOPY,VERSION=05,COMMENT= ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, ; MASSACHUSETTS. ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL. .SBTTL DEFINITIONS .ENABL LC .MCALL .QELDF, .DATE, .GTIM .MCALL .PRINT, .MFPS, .MTPS .MACRO BCS. LABEL,?ALT BCC 'ALT' JMP LABEL 'ALT': .ENDM .MACRO BLT. LABEL,?ALT BGE 'ALT' JMP LABEL 'ALT': .ENDM SYSPTR = 54 $DATE = 262 CONFIG = 300 FBMON$ = 1 KT11$ = 10000 CONFG2 = 370 CACHE$ = 1 PNPTR = 404 $GTIME = 422 ERL$G = 1 .IIF NDF ERL$U ERL$U = 10. UNITMK = 7 .QELDF GOODIO = -1 PARERR = -2 CCHERR = -3 PCHERR = -4 O.UNIT = 0 O.ID = 1 O.ERL = 2 O.ERR = 4 O.READ = 6 O.WRIT = 12 STALEN = 7. D.SIZE = 0 D.RNUM = 1 D.DVUN = 2 D.DVID = 3 D.RTRY = 4 D.OCUR = 5 D.DATE = 6 D.HOT = 10 D.LOT = 12 D.BLKN = 14 D.BUFF = 16 D.WCNT = 20 D.PAR1 = 22 D.REGN = 22 D.MTRY = 23 D.REG = 24 DEVFIX = 10. M.SIZE = 0 M.RNUM = 1 M.TYPE = 2 M.MREG = 3 M.OCUR = 4 M.DATE = 6 M.HOT = 10 M.LOT = 12 M.PC = 14 M.PS = 16 M.REG = 20 PARMAX = 16. PARFIX = 8. MSYSER = 177744 MCONRG = 177746 MHITMS = 177752 .SBTTL $ELCPY - START OF COPY CODE .GLOBL OPINIT, FREADY .WORD $ELCPY ERRLOG::JMP OPINIT $ELCPY: TST (PC)+ FREADY: .WORD 1 BEQ CONTIN BMI 10$ INC NOTRDY 10$: CLC RTS PC CONTIN: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV R5,-(SP) CLR -(SP) INC CERECR CMPB R4,#GOODIO BGT DEVERR BLT. MEMERR DEC CERECR JSR PC,GESTAT BCS 20$ ADD #O.READ,R0 TST Q$WCNT(R5) BEQ 20$ BPL 10$ ADD #O.WRIT-O.READ,R0 10$: ADD #1,(R0)+ ADC (R0) 20$: JMP $ELXIT .SBTTL DEVERR - DEVICE ERROR RECORD LOGGER DEVERR: JSR PC,GESTAT BCS 10$ INC O.ERR(R0) MOV R0,(SP) 10$: TST PNXWRD BEQ 50$ CLR R1 JSR PC,CHKSIZ ADD (R0),R0 MOV R4,R1 CLRB R1 BISB Q$UNIT(R5),R1 BICB #<^CUNITMK>,R1 CMP R1,D.DVUN(R0) BNE 50$ CMPB R4,D.RTRY(R0) BGE 50$ MOV R0,-(SP) MOV R2,-(SP) ADD #D.REG,R0 MOV @#SYSPTR,R1 BIT #KT11$,CONFIG(R1) BEQ 15$ ADD #2,R0 15$: MOVB R3,R1 20$: CMP (R0)+,(R2)+ BNE 30$ DEC R1 BGT 20$ 30$: MOV (SP)+,R2 MOV (SP)+,R0 TST R1 BNE 50$ INCB D.OCUR(R0) MOVB R4,D.RTRY(R0) TST (SP) BEQ 40$ ADD #O.ERL,(SP) INC @(SP) 40$: BR 90$ 50$: MOVB R3,R1 ADD #DEVFIX,R1 MOV @#SYSPTR,R0 BIT #KT11$,CONFIG(R0) BEQ 55$ INC R1 55$: JSR PC,CHKSIZ BCS. $ELERR 60$: TST (SP) BEQ 70$ ADD #O.ERL,(SP) INC @(SP) 70$: MOVB R1,(R0)+ MOVB PNXREC,(R0)+ INC PNXREC MOVB Q$UNIT(R5),(R0) BICB #<^CUNITMK>,(R0)+ SWAB R4 MOVB R4,(R0)+ SWAB R4 MOVB R4,(R0)+ MOVB #1,(R0)+ JSR PC,GETDAT MOV (R5)+,(R0)+ TST (R5)+ MOV (R5)+,(R0)+ MOV (R5)+,(R0)+ MOV @#SYSPTR,-(SP) ADD #CONFIG,(SP) BIT #KT11$,@(SP)+ BEQ 75$ TST (R5)+ MOV (R5)+,(R0)+ 75$: MOV R3,(R0)+ MOVB R3,R3 80$: MOV (R2)+,(R0)+ DEC R3 BGT 80$ ASL R1 ADD R1,PNXWRD NEG R1 MOV R1,(R0) 90$: BR $ELXIT .SBTTL MEMERR - MEMORY ERROR RECORD LOGGER STKDPC = 30 STKDPS = 32 MEMERR: CMPB R4,#PARERR BNE 20$ 10$: INC CMPARE BR 30$ 20$: INC CCPARE CMPB R4,#PCHERR BEQ 10$ 30$: TST PNXWRD BEQ 40$ CLR R1 JSR PC,CHKSIZ ADD (R0),R0 CMPB M.TYPE(R0),#PARERR BGT 40$ CMP STKDPC(SP),M.PC(R0) BNE 40$ INC M.OCUR(R0) BR 100$ 40$: MOV R5,-(SP) MOV #PARMAX,R1 50$: TST (R5)+ BEQ 60$ DEC R1 BGT 50$ 60$: MOV (SP)+,R5 NEG R1 ADD #PARMAX,R1 MOV R1,R3 ASL R1 ADD #PARFIX,R1 MOV @#SYSPTR,R0 BIT #CACHE$,CONFG2(R0) BEQ 70$ ADD #3,R1 70$: JSR PC,CHKSIZ BCS $ELERR MOVB R1,(R0)+ MOVB PNXREC,(R0)+ INC PNXREC MOVB R4,(R0)+ MOVB R3,(R0)+ MOV #1,(R0)+ JSR PC,GETDAT MOV STKDPC(SP),(R0)+ MOV STKDPS(SP),(R0)+ 80$: MOV @(R5),(R0)+ MOV (R5)+,(R0)+ DEC R3 BGT 80$ MOV @#SYSPTR,R3 BIT #CACHE$,CONFG2(R3) BEQ 90$ MOV @#MSYSER,(R0)+ MOV @#MCONRG,(R0)+ MOV @#MHITMS,(R0)+ 90$: ASL R1 ADD R1,PNXWRD NEG R1 MOV R1,(R0) 100$: BR $ELXIT .SBTTL $ELXIT - EXIT ROUTINES $ELERR: TST (PC)+ $ELFLG: .WORD 0 BNE 10$ MOV SP,$ELFLG MOV PC,R0 ADD #E.FULL-.,R0 .PRINT 10$: INC CMENTB $ELXIT: TST (SP)+ MOV (SP)+,R5 MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 DEC $ELRSM BEQ 10$ CLR $ELRSM TST (PC)+ 10$: SEC RTS PC .SBTTL GESTAT - GET POINTER TO DEVICE STATISTICS ENTRY GESTAT: MOVB Q$UNIT(R5),-(SP) BIC #<^CUNITMK>,(SP) MOV R4,R0 CLRB R0 BIS R0,(SP) MOV PC,R0 ADD #DEVSTS-.,R0 MOV #ERL$U,R1 10$: CMP (R0),#-1 BEQ 40$ CMP (R0),(SP) BEQ 60$ ADD #STALEN*2,R0 DEC R1 BGT 10$ TST (PC)+ 20$: .WORD 0 BNE 30$ MOV PC,R0 ADD #E.STAT-.,R0 .PRINT MOV SP,20$ 30$: TST (SP)+ BR 70$ 40$: MOV #STALEN,R1 50$: CLR (R0)+ DEC R1 BGT 50$ MOV #-1,(R0) SUB #STALEN*2,R0 MOV (SP),(R0) 60$: TST (SP)+ TST (PC)+ 70$: SEC RTS PC .SBTTL CHKSIZ - CHECK FOR ROOM IN LOGGING BUFFER CHKSIZ: MOV PNXWRD,R0 ADD R1,R0 ADD R1,R0 CMP R0,#255.*2 BLT 10$ JSR PC,10$ MOV #-1,(R0) MOV $BFNUM,R0 INC $BFLAG(R0) INC $ELRSM CMP PNXBLK,SMAXSZ BGE 30$ NEG R0 ADD #2,R0 MOV R0,$BFNUM CLR PNXWRD BR 20$ 10$: MOV $BFNUM,R0 20$: MOV $BFTAB(R0),R0 ADD PNXWRD,R0 TST (PC)+ 30$: SEC RTS PC .SBTTL GETDAT - PLACE DATE/TIME IN RECORD GETDAT: MOV R1,-(SP) MOV @#SYSPTR,R1 .MFPS .MTPS #340 MOV R1,-(SP) ADD $GTIME(R1),(SP) ADD #2,R0 JSR PC,@(SP)+ .MTPS MOV @#SYSPTR,R1 MOV $DATE(R1),-4(R0) MOV (SP)+,R1 TST (R0)+ RTS PC .SBTTL TEXT .NLIST BEX E.FULL: .ASCIZ /?ERRLOG-W-Log file is full, logging suspended/ E.STAT: .ASCIZ /?ERRLOG-W-Device statistics table is full/ .EVEN .LIST BEX .SBTTL IMPURE DATA AREA .GLOBL NOTRDY, RECHED, $ELHDR .GLOBL CMENTR, PNXBLK, $HDLEN .GLOBL $BFNUM, $BFTAB, $BFLAG .GLOBL $ELBF1, SMAXSZ NOTRDY: .WORD 0 ELAREA: .BLKW 2 RECHED: .WORD 0 $ELHDR: OFIXED: .WORD <<7*ERL$U+2>*2> DEVSTS: .WORD -1 .BLKW <7*ERL$U> CERECR: .WORD 0 CMENTB: .WORD 0 CMENTF: .WORD 0 CMENTR: .WORD 0 CMPARE: .WORD 0 CCPARE: .WORD 0 PNXREC: .WORD 1 PNXBLK: .WORD 1 PNXWRD: .WORD 0 SMAXSZ: .WORD 100. CNFGW1: .WORD 0 CNFGW2: .WORD 0 INIDAT: .WORD 0 INTIM1: .WORD 0 INTIM2: .WORD 0 $HDLEN = <.-$ELHDR>/2 .IIF GT <$HDLEN-256.> .ERROR $ELRSM: .WORD 0 $BFNUM: .WORD 0 $BFTAB: .WORD $ELBF1 .WORD $ELBF2 $BFLAG: .WORD 0 .WORD 0 $ELBF1: .BLKW 256. $ELBF2: .BLKW 256. .END ERRLOG .MCALL .MODULE .MODULE ELINIT,VERSION=07,COMMENT= ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. .SBTTL DEFINITIONS .MCALL .CLOSE, .CSISP, .DATE .MCALL .DSTAT, .ENTER, .EXIT .MCALL .GTIM, .GTLIN, .LOOKU .MCALL .PRINT, .PURGE, .READW .MCALL .RENAM, .SDAT, .WRITE .MCALL .WRITW ERRBYT = 52 USERRB = 53 SYSPTR = 54 CONFIG = 300 SYSGEN = 372 STASK$ = 040000 ELR$G = 1 .IIF NDF ERL$U, ERL$U=10. MSKCF1 = ^C014001 N0CHAR = '0 RADDEC = 10. BLKSIZ = 256. ELIOCH = 0 ETIOCH = 1 MSGCHN = 2 FATAL$ = 10 OMPARE = <*2> OCPARE = <*2> ONXREC = <*2> ONXBLK = <*2> OSIZEB = <*2> OCONFG = <*2> .SBTTL ERROR LOGGING SUBSYSTEM INITIALIZATION ELINIT::.GTLIN #LINBUF,#MESDEV TSTB LINBUF BEQ DEVCHK .CSISPC #FILSPC,#DEFEXT,#LINBUF MOV (SP)+,R1 ASL R1 ADD R1,SP MOV ISPEC,ELFILE MOV ISPEC,ELTEMP DEVCHK: .DSTAT #INSTAT,#ELFILE BCC 1$ JMP FCHERR 1$: TST INSTAT+4 BNE 2$ JMP FCHERR 2$: .LOOKUP #INSTAT,#ELIOCH,#ELFILE BCC LOOKOK TSTB @#ERRBYT BNE LOOKNO JMP CHNERR LOOKNO: .PRINT #MESW MOV R1,-(SP) MOV #ELFILE,R0 MOV #TEMP,R1 CALL $FNASC .PRINT #MESNFD .PRINT #TEMP MOV (SP)+,R1 MOV SMAXSZ,BUFBLK+OSIZEB BR CREATE LOOKOK: .READW #INSTAT,#ELIOCH,#BUFBLK,#BLKSIZ,#0 BCC 1$ JMP IORERR 1$: CMP BUFBLK,OFIXED BNE INVALD TST BUFBLK+ONXREC BMI INVALD TST BUFBLK+ONXBLK BLE INVALD MOV @#SYSPTR,R1 MOV CONFIG(R1),R2 BIC #MSKCF1,R2 MOV BUFBLK+OCONFG,R3 BIC #MSKCF1,R3 CMP R3,R2 BNE INVALD MOV SYSGEN(R1),R2 MOV BUFBLK+OCONFG+2,R3 CMP R3,R2 BNE INVALD TST BUFBLK+OMPARE BMI INVALD TST BUFBLK+OCPARE BMI INVALD MOV BUFBLK+ONXBLK,R0 JSR PC,NUMBER .PRINT #MESUS1 MOV BUFBLK+OSIZEB,R0 JSR PC,NUMBER .PRINT #MESUS2 .GTLIN #LINBUF,#MESINI TSTB LINBUF BEQ CHANGE CMPB LINBUF,#'Y BEQ INITF BR CHANGE INVALD: .PRINT #MESIV1 .PRINT #MESIV2 .PURGE #ELIOCH .RENAME #INSTAT,#ELIOCH,#ELFILE MOV #100.,BUFBLK+OSIZEB BCC CREATE CMPB @#ERRBYT,#3 BNE 1$ JMP PRTERR 1$: JMP BADERR CREATE: INCB FCREAT INITF: INCB FINIT CHANGE: .PRINT #MESSZ1 MOV BUFBLK+OSIZEB,R0 MOV R0,SMAXSZ JSR PC,NUMBER .GTLIN #LINBUF,#MESSZ2 TSTB LINBUF BEQ DOIT MOV #LINBUF,R0 JSR PC,ABCVRT CMP R0,#1 BLE 1$ TSTB FINIT BNE 2$ CMP R0,PNXBLK BHI 2$ 1$: .PRINT #MESF .PRINT #MESILL BISB #,@#USERRB BR CHANGE 2$: MOV R0,BUFBLK+OSIZEB MOV R0,SMAXSZ INCB FCHGSZ DOIT: TSTB FCREAT BNE 1$ TSTB FCHGSZ BEQ 6$ 1$: TSTB FINIT BNE 2$ .PURGE #ELIOCH .RENAME #INSTAT,#ELIOCH,#ELFILE BCC 2$ CMPB @#ERRBYT,#3 BNE 13$ 14$: JMP PRTERR 13$: JMP BADERR 2$: .PURGE #ELIOCH .ENTER #INSTAT,#ELIOCH,#ELFILE,SMAXSZ BCC 4$ TSTB @#ERRBYT BEQ 3$ CMPB @#ERRBYT,#3 BEQ 14$ JMP FULERR 3$: JMP BADERR 4$: MOV SMAXSZ,R1 DEC R1 .WRITW #INSTAT,#ELIOCH,#BUFBLK,#BLKSIZ,R1 BCC 5$ JMP IORERR 5$: .CLOSE #ELIOCH BCS 14$ .LOOKUP #INSTAT,#ELIOCH,#ELFILE BCC 6$ JMP BADERR 6$: TSTB FINIT BEQ 8$ .GTIM #INSTAT,#INTIM1 .DATE MOV R0,INIDAT MOV @#SYSPTR,R1 MOV CONFIG(R1),CNFGW1 MOV SYSGEN(R1),CNFGW2 .WRITW #INSTAT,#ELIOCH,#HEADER,#HEDRWD,#0 BCC 7$ JMP IORERR 7$: .PRINT #MESGEN BR DONE 8$: MOV #HEDRWD,R2 MOV #HEADER,R3 MOV #BUFBLK,R4 9$: MOV (R4)+,(R3)+ DEC R2 BNE 9$ .WRITW #INSTAT,#ELIOCH,#HEADER,#HEDRWD,#0 BCC 10$ JMP IORERR 10$: TSTB FCHGSZ BEQ DONE .LOOKUP #INSTAT,#ETIOCH,#ELTEMP BCC 11$ TSTB @#ERRBYT BNE BADERR JMP CHNERR 11$: MOV PNXBLK,R2 12$: .READW #INSTAT,#ETIOCH,#BUFBLK,#BLKSIZ,R2 BCS IORERR .WRITW #INSTAT,#ELIOCH,#BUFBLK,#BLKSIZ,R2 BCS IORERR DEC R2 BNE 12$ .PURGE #ETIOCH DONE: MOV @#SYSPTR,R1 BIT #STASK$,SYSGEN(R1) BEQ 2$ .LOOKUP #INSTAT,#MSGCHN,#JBDES BCC 1$ TSTB @#ERRBYT BNE 3$ JMP CHNERR 1$: .WRITE #INSTAT,#MSGCHN,#HEADER,#HEDRWD BCC 4$ JMP BADERR 2$: .SDAT #INSTAT,#HEADER,#HEDRWD BCC 4$ 3$: .PRINT #MESF .PRINT #MESNFG BR FTLEXT 4$: .PRINT #MESDON BR ALLEXT BADERR: .PRINT #MESF .PRINT #MESBAD BR FTLEXT IORERR: .PRINT #MESF .PRINT #MESIOR BR FTLEXT FCHERR: .PRINT #MESF .PRINT #MESFCH BR FTLEXT FULERR: .PRINT #MESF .PRINT #MESFUL BR FTLEXT CHNERR: .PRINT #MESF .PRINT #MESCHN BR FTLEXT PRTERR: .PRINT #MESF .PRINT #MESPRT FTLEXT: BISB #,@#USERRB ALLEXT: .PURGE #ETIOCH .PURGE #ELIOCH CLR R0 .EXIT .SBTTL MESSAGES .ENABL LC .NLIST BIN MESW: .NLCSI TYPE=I,PART=PREFIX .ASCII /W-/<200> MESF: .NLCSI TYPE=I,PART=PREFIX .ASCII /F-/<200> MESDEV: .ASCII /What is the name of the device for the ERRLOG.DAT file/ .ASCII / ? /<200> MESNFD: .ASCII /File not found /<200> TEMP: .WORD 0,0,0,0,0,0,0,0 MESSZ1: .ASCII /How many blocks for the ERRLOG.DAT file MESSZ2: .ASCII />? /<200> MESUS1: .ASCIZ / blocks currently in use of/ MESUS2: .ASCIZ / possible total in ERRLOG.DAT file/ MESINI: .ASCII /Do you want to zero the ERRLOG.DAT file and re-initialize/ .ASCII \ (YES/NO) ? \<200> MESGEN: .ASCIZ /New ERRLOG.DAT file generated/ MESIV1: .ASCIZ /The current ERRLOG.DAT file is invalid/ MESIV2: .ASCIZ /The invalid file is renamed ERRLOG.TMP/ MESDON: .ASCIZ /RT-11 ERROR LOGGING INITIATED/ MESILL: .ASCIZ /Invalid command/ MESFCH: .ASCIZ /Device not available/ MESCHN: .ASCIZ /Channel error/ MESIOR: .ASCIZ /ERRLOG.DAT file IO error/ MESBAD: .ASCIZ /Internal error/ MESFUL: .ASCIZ /Device full/ MESNFG: .ASCIZ /ERRLOG task not active/ MESPRT: .ASCIZ /Protected file already exists ERRLOG.DAT/ .LIST BIN .DSABL LC .SBTTL DATA AREA FCREAT: .BYTE 0 FINIT: .BYTE 0 FCHGSZ: .BYTE 0 .EVEN INSTAT: .BLKW 5 JBDES: .RAD50 /MQ/ .ASCII /ERRLOG/ ELFILE: .RAD50 /SY/ .RAD50 /ERR/ .RAD50 /LOG/ .RAD50 /DAT/ ELTEMP: .RAD50 /SY/ .RAD50 /ERR/ .RAD50 /LOG/ .RAD50 /TMP/ LINBUF: .BLKB 82. FILSPC: OSPEC: .BLKW 3*5. ISPEC: .BLKW 6*4. DEFEXT: .WORD 0,0 .WORD 0,0 BUFBLK: .BLKW HEADER: OFIXED: .WORD <<7*ERL$U+2>*2> DEVSTS: .WORD -1 .BLKW <7*ERL$U> CERECR: .WORD 0 CMENTB: .WORD 0 CMENTF: .WORD 0 CMENTR: .WORD 0 CMPARE: .WORD 0 CCPARE: .WORD 0 PNXREC: .WORD 1 PNXBLK: .WORD 1 PNXWRD: .WORD 0 SMAXSZ: .WORD 100. CNFGW1: .WORD 0 CNFGW2: .WORD 0 INIDAT: .WORD 0 INTIM1: .WORD 0 INTIM2: .WORD 0 HEDRSZ = HEDRWD = .SBTTL NUMBER - BINARY TO DECIMAL ASCII NUMBER: CLR R2 1$: MOV #10.,R1 JSR PC,DIV ADD #60,R1 MOV R1,-(SP) INC R2 TST R0 BNE 1$ MOV #LINBUF,R3 2$: MOVB (SP)+,(R3)+ DEC R2 BNE 2$ MOVB #200,(R3) .PRINT #LINBUF RTS PC .SBTTL DIV - DIVISION ROUTINE DIV: MOV #20,-(SP) MOV R1,-(SP) CLR R1 30$: ASL R0 ROL R1 CMP R1,(SP) BLO 40$ SUB (SP),R1 INC R0 40$: DEC 2(SP) BGT 30$ 50$: CMP (SP)+,(SP)+ RTS PC .SBTTL ABCVRT - DECIMAL ASCII TO BINARY ABCVRT: MOV R3,-(SP) MOV R4,-(SP) CLR R4 1$: MOVB (R0)+,R3 SUB #N0CHAR,R3 CMPB R3,#RADDEC BHIS 2$ ASL R4 ADD R4,R3 ASL R4 ASL R4 ADD R3,R4 BR 1$ 2$: MOV R4,R0 MOV (SP)+,R4 MOV (SP)+,R3 RTS PC .END ELINIT .MCALL .MODULE .MODULE ELTASK,VERSION=05,COMMENT= ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. .SBTTL DEFINITIONS .ENABL LC .MCALL .QSET, .PRINT, .MRKT .MCALL .RCVDW, .LOOKU, .READW .MCALL .CMKT, .CHCOP, .READC .MCALL .RCVDC, .SPND, .WRITW .MCALL .RSUM, .READC, .EXIT SYSPTR = 54 CONFIG = 300 FBMON$ = 1 KT11$ = 10000 SYSGEN = 372 STASK$ = 40000 RCVKEY = 101010 ELIOCH = 0 ETIOCH = 1 MSGCHN = 2 .SBTTL START OF CUSP .GLOBL RECHED, FREADY, NOTRDY .GLOBL CMENTR, PNXBLK .GLOBL $ELHDR, $HDLEN .GLOBL $BFNUM, $BFTAB, $BFLAG .GLOBL $ELBF1 OPINIT::.QSET #XTRAQE,#2 MOV @#SYSPTR,R1 BIT #KT11$,CONFIG(R1) BEQ 10$ INCB FXM 10$: BIT #STASK$,SYSGEN(R1) BEQ 20$ INCB FST 20$: .PRINT #E.INFO .PRINT #M.INI 30$: .MRKT #AREAT,#WAITIM,#REMIND,#0 BCS 30$ TSTB FST BNE 40$ .RCVDW #AREA,#RECHED,#$HDLEN BCC 60$ JMP ILLERR 40$: .LOOKUP #AREA,#MSGCHN,#ZEROAD BCC 50$ JMP CHNERR 50$: .READW #AREA,#MSGCHN,#RECHED,#$HDLEN BCC 60$ JMP ILLERR 60$: CMP RECHED,#$HDLEN BEQ 70$ JMP IMRERR 70$: .CMKT #AREAT,#0 TSTB FST BNE 80$ .CHCOPY #AREA,#ETIOCH,#ELIOCH BR 90$ 80$: .CHCOPY #AREA,#ETIOCH,#ELIOCH,#BJBDES 90$: BCC 100$ JMP ILLERR 100$: MOV PNXBLK,R4 .READW #AREA,#ETIOCH,#$ELBF1,#256.,R4 BCC REALTM JMP LIOERR REALTM::CLR FREADY ADD NOTRDY,CMENTR TSTB FST BEQ 10$ .READC #AREA,#MSGCHN,#RCVMSG,#1,#CRTN BCC SUSPND JMP CHNERR 10$: .RCVDC #AREA,#RCVMSG,#1,#CRTN BCC SUSPND JMP ILLERR .SBTTL REMIND - STARTUP REMINDER REMIND: .PRINT #E.INFO .PRINT #M.REM 10$: .MRKT #AREAT,#WAITIM,#REMIND,#0 BCS 10$ RTS PC .SBTTL SUSPND - WAITING FOR ACTIVATION SUSPND: .SPND ELTASK: TST IFATAL BEQ 20$ 10$: JMP FATALE 20$: JSR PC,IOCODE TST IFATAL BNE 10$ BR SUSPND .SBTTL IOCODE - WRITE BUFFER TO LOGGING FILE .GLOBL SMAXSZ IOCODE: MOV R2,-(SP) MOV PNXBLK,R1 INC PNXBLK .WRITW #AREA,#ETIOCH,#$ELHDR,#$HDLEN,#0 BCC 10$ MOV #1,IFATAL 10$: MOV $BFNUM,R2 NEG R2 ADD #2,R2 .WRITW #AREA,#ETIOCH,$BFTAB(R2),#256.,R1 BCC 20$ MOV #1,IFATAL 20$: CLR $BFLAG(R2) INC R1 CMP R1,SMAXSZ BHIS 30$ MOV $BFNUM,R2 .WRITW #AREA,#ETIOCH,$BFTAB(R2),#256.,R1 BCC 30$ MOV #1,IFATAL 30$: MOV (SP)+,R2 RTS PC .SBTTL CRTN - UPDATE DUE TO ERROUT REQUEST CRTN: CMP RCVMSG+2,#RCVKEY BEQ 10$ MOV #2,IFATAL BR 40$ 10$: .WRITW #AREA,#ETIOCH,#$ELHDR,#$HDLEN,#0 BCC 20$ MOV #1,IFATAL 20$: MOV $BFNUM,R1 .WRITW #AREA,#ETIOCH,$BFTAB(R1),#256.,PNXBLK BCC 30$ MOV #1,IFATAL 30$: TST IFATAL BEQ 50$ 40$: .RSUM BR 70$ 50$: TSTB FST BNE 60$ .RCVDC #AREA,#RCVMSG,#1,#CRTN BR 70$ 60$: .READC #AREA,#MSGCHN,#RCVMSG,#1,#CRTN 70$: RTS PC .SBTTL FATALE - REPORT FATAL ERRORS FATALE: DEC IFATAL BEQ LIOERR IMRERR: .PRINT #E.FATL .PRINT #E.IMR BR SHUTUP LIOERR: .PRINT #E.FATL .PRINT #E.LIO BR SHUTUP ILLERR: .PRINT #E.FATL .PRINT #E.ILL BR SHUTUP CHNERR: .PRINT #E.FATL .PRINT #E.CER BR SHUTUP SHUTUP: MOV #-1,FREADY .EXIT .SBTTL IMPURE DATA AREA AREA: .BLKW 5 AREAT: .BLKW 4 ZEROAD: .RAD50 /MQ/ .WORD 0,0,0 BJBDES: .ASCII /B/ .BYTE 0,0,0,0,0 WAITIM: .WORD 0,3777 XTRAQE: .BLKW 20. RCVMSG: .BLKW 2 FXM: .BYTE 0 FST: .BYTE 0 .EVEN IFATAL: .WORD 0 .SBTTL MESSAGES .NLIST BEX E.FATL: .ASCII /?ERRLOG-F-/<200> E.WARN: .ASCII /?ERRLOG-W-/<200> E.INFO: .ASCII /?ERRLOG-I-/<200> E.IMR: .ASCIZ /Invalid message received/ E.ILL: .ASCIZ /Internal error/ E.LIO: .ASCIZ /Log file IO error/ E.CER: .ASCIZ /Channel error/ M.REM: .ASCII /REMINDER: / M.INI: .ASCIZ /To initiate error logging, RUN ELINIT/ .LIST BIN .END .MCALL .MODULE .MODULE ERRTXT,VERSION=07,COMMENT= ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ELERRT == 0 .SBTTL DEVICE DEPENDENT TEXT BUILDER .MACRO ELBLDR DVCODE,DTYPE,WHICH1,FIRST2,RGSTR .IIF B DVCODE, .ERROR .IIF LT DVCODE, .ERROR .IIF GT , .ERROR .PSECT PART1 DV'DVCODE: .IF IDN , .BYTE 0 .IFF .IF IDN , .BYTE 5 .IFF .ERROR WHICH1 .ENDC .ENDC .NCHR SYMTYP, .IIF GT , .ERROR .BYTE SYMTYP .ASCII %DTYPE% .NCHR SYMFIR, .IF NE .ERROR FIRST2 .ENDC .ASCII %FIRST2% .BYTE COUNT COUNT = -1 .BYTE TMP'DVCODE .IRP NAME, COUNT = COUNT + 1 .NCHR SYMREG, .IIF NDF CHR'DVCODE,CHR'DVCODE=SYMREG .IF LT CHR'DVCODE-SYMREG CHR'DVCODE = SYMREG .ENDC .ENDR .IF GT .ERROR .ENDC TMP'DVCODE = CHR'DVCODE .IRP NAME, .NCHR SYMREG, .ASCII %NAME% .REPT CHR'DVCODE-SYMREG .BYTE 40 .ENDR .ENDR .EVEN .PSECT PART2 .IF NDF POINTL POINTL:: .ENDC .IF EQ .-POINTL POINTL:: .IFF . = .-4 .ENDC .WORD DVCODE .WORD DV'DVCODE .WORD -1,-1 .ENDM ELBLDR .SBTTL SUPPORTED DEVICES ELBLDR 0,,DISK,RK, ELBLDR 1,,TAPE,TC, ELBLDR 5,,DISK,RL, ELBLDR 6,,DISK,RX,<2CS,2DB,2ES> ELBLDR 12,,DISK,RF, ELBLDR 16,,DISK,RS, ELBLDR 21,,DISK,RP, ELBLDR 22,,DISK,RX, ELBLDR 23,,DISK,RK, ELBLDR 34,,TAPE,**, ELBLDR 50,,DISK,DU,<1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20> ELBLDR 52,,DISK,RX,<5CS0,5CS1,5CS2,5CS3,5CS4,5CS5,5DEB> ELBLDR 53,,DISK,RD, HSPACE == . .END ^""aSԳDگrH5@afZ@=|HS w zJ w r[w j~w b& & 7}7|7t7u7r7o7lPL7 J7 H7 7 " >J["~*<D[d,7 f7 f7 dZZV' wn!,0Y?ERROUT-W-?ERROUT-F-Invalid commandChannel errorDevice fullDevice not foundFile not foundInsufficient memoryInput kYerrorOutput errorInternal errorProtected file already existsOutput file full?   Nz""_M<>""XqԀ" FF TTSERRLOG pt*p+ +@鈅 BL (a,A x&& &w Jw jr. ,  '"$  L.xFJNj`rn  X !  H" TTD  $ YL^w AAQzQJ&> Xxx ERROR LOG REPORT RT-11 V05.06 - COMPILED PAGE ************************************************************************DEVICE STATISTICSLOGGED SINCE UNIT IDENTIFICATIONPHYSICAL UNIT NUMBERTYPE=p DEVICE STATISTICS FOR THIS UNIT:NUMBER OF ERRORS LOGGEDNUMBER OF ERRORS RECEIVEDNUMBER OF READ SUCCESSESNUMBER OF WRITE ( SUCCESSESDISKTAPE DEVICE ERRORLOGGED SOFTWARE STATUS INFORMATION:MAXIMUM RETRIES REMAINI!h NG RETRIES OCCURRANCES OF THIS ERROR WITH IDENTICAL REGISTERS DEVICE INFORMATIONREGISTERS:ACTIVE FUNCTION READWRITE BLOCKPHYSICAL BUFFER ADDRESS STARTTRANSFER SIZE IN BYTESMEMORY PARITY ERRORSYSTEM REGISTERS:PC PSW OCCURRANCES OF I` THIS ERROR WITH IDENTICAL PC MEMORY ADDRESS CONTENTSMEMORY SYSTEM ERROR REGISTER:CACHE CONTROL REGISTER:HIT/MISS  REGISTER:ERROR TYPE IS CACHE AND REPORT FILE ENVIRONMENT:INPUT FILEOUTPUT FILEOPTIONS DATE INITIALIZEDDATE OF LAST X ENTRYTOTAL ERRORS LOGGEDMISSED REPORTS (BUFFER FULL)MISSED REPORTS (FILE FULL)MISSED REPORTS (TASK NOT READY)UNKNOWN DEn VICE STATISTICS ENTRIESUNKNOWN ERROR RECORD ENTRIESMEMORY STATISTICSSTATISTICS:NUMBER OF MEMORY PARITY ERRORSNUMBER OF P CACHE ERRORS9 ^ ~^ @  >w@ @e R*@ p@@Ee 4 e w w ~ w w |  w v w p {w j B M& T Xb l rx{~B ; w XV w B@ `w N w <k H Ew  *w & w {w  0 e pw M @t@ &w Lw  V (k L{R0 ^M V a @ w 4w u @ w w {w w w NNE  fe Efea u 2{8 B $e` Z w @ \ w J ew 8 { w & w f   w w  fw w p'@ :<{F V \ p +Nw Jw w T'@ FB >f  `Hw w  w ' w w {w {   H `{f{@ & NE c w N  @e w :  w 4 w . {w ( 0 w  3 w  rw  E @  w  \w `&. 8 B HN{T0 ^3 lE F K @ w  Fw Q @ w w {w  $w  w w  w w  NE fDe w L"K Q .{4 > D R  w x %w h{  %' w H w ) R w @ w . w ) 8 w & ~w  w )  w w {_{4 N h ~{> ^w @ w   w w  w w w w {w {N#% >w  w " w w { n:  * 2 8 > H{N{Xj p" v|{@ (    teW#m L w H w 6  w #  w , w  % w #  w  .D N Xj% t6hw 1 w r-ѕ/bѕSѕA w  >w : w H'@ tw  "w K w ,(  w w { w ^ w +@g 1 4: PK ^ l{v^ # w  w v w +@ w l w Z r w +@ ~ w P w > w +@ b w 4 w " w + F w   2r N j <.|w  w z+l * w   w B Bw V w LB@ w  &w k H Ew " w w {w  .B 8V Tk z{p w  w .B@ w z w h w .B@ w \ w J w (B@A w : w ( w (B@ A p  , J l r&w w {w { w  w " w w {w  <w ' w F0@ w  w F w *0@ w w {7r.{{$ *" 06{< F' bF z{w  @ ы ѝ  e&&  ѕ &5#&E &E E Z  ,My eN  eH 8! ѕ  -BAD-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC-BAD-BAD-BAD-N&ѝ 4 : 4ѕ:eËe:/ѐѐ 2<  @ C    7 ` 7 5<&E E? U w7-ymtt-p<1fE eW-" uDlxbL@0 ק*w ~w 0 we~4~>0Ln w \ %&7 8<0w .x$ Pw |w {w { C7 ]#ѝ$ afZ:xBL|R{X{ZW +, p,0 D J< {  -*pє  l!6 \W ++,,J{r6z+x^P L, p,0  ,"wߋ*w Vw N,& ,,.,6HPT,6 6  ::@ዅ   ɕ@ Qɕ I f& &B pҕ.   ҝ  & .ҕ.   ҝ  & &V` e0   A D ! %#v2 ѕ:  ѕ.  & % b %e ee e (@ & .MCALL .MODULE .MODULE CONSOL,VERSION=03,COMMENT= ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL. .ENABL LC .NLIST BEX .ENABL GBL ;+ ; PROGRAM TO CHANGE CONSOLE TO ONE OTHER THAN BOOT CONSOLE ;- .MCALL .MTPS,.PRINT,.EXIT CSRAD =: 176500 ;*** NEW CONSOLE INPUT CSR *** VEC =: 300 ;*** NEW CONSOLE VECTOR *** SYSPTR =: 54 ;SYSCOM POINTER TO RMON TTKS =: 304 ;CONSOLE KEYBOARD CSR TTKB =: 306 ;CONSOLE KEYBOARD BUFFER TTPS =: 310 ;CONSOLE PRINTER CSR TTPB =: 312 ;CONSOLE PRINTER BUFFER SYSGEN =: 372 ;OFFSET TO SYSGEN WORD MTTY$ =: 20000 ;MULTI-TERMINAL BIT IN SYSGEN WORD OLDVEC =: 60 ;STANDARD CONSOLE VECTOR IENABL =: 100 ;INTERRUPT ENABLE PR7 =: 340 ;PRIORITY SEVEN PR0 =: 0 ;PRIORITY ZERO BMASK =: 360/<<15.*>>/8.>+1> BITMAP =: 326+ CONSOL: MOV @#SYSPTR,R0 ;R0 => RMON BIT #MTTY$,SYSGEN(R0) ;MULTI-TERMINAL SYSTEM? BNE 2$ ;YES - CAN'T USE THIS TECHNIQUE! .MTPS #PR7 ;GO TO PRIORITY 7 !!! BISB #BMASK,BITMAP(R0) ;PROTECT NEW CONSOLE VECTORS ADD #TTKS,R0 ;R0 => CONSOLE REGISTER LIST IN RMON MOV #CSR,R1 ;R1 => NEW CSR/DATA REG LIST BIC #IENABL,@(R0) ;DISABLE OLD INPUT CSR INTERRUPTS MOV (R1)+,(R0)+ ;MOVE IN NEW CSR ADDR MOV (R1)+,(R0)+ ;MOVE IN NEW BUFFER ADDRESS BIC #IENABL,@(R0) ;DISABLE OLD OUTPUT CSR INTERRUPTS MOV (R1)+,(R0)+ ;MOVE IN NEW CSR ADDR MOV (R1)+,(R0)+ ;MOVE IN NEW BUFFER ADDR MOV #OLDVEC,R0 ;R0 = PRESENT CONSOLE VECTOR MOV @R1,R1 ;R1 = NEW VECTOR .REPT 4 MOV (R0)+,(R1)+ ;LOAD NEW CONSOLE VECTORS .ENDR .MTPS #PR0 ;BACK TO PRIORITY 0 .EXIT ;TERMINATE PROGRAM 2$: .PRINT #NOMT ;PRINT ERROR MESSAGE .EXIT ; AND LEAVE .NLIST BEX NOMT: .ASCIZ /?CONSOL-F-Multi-terminal system ... use SET TT CONSOL command/ .EVEN CSR: .WORD CSRAD ;CSR/DATA BUFFER/VECTOR LIST .WORD CSRAD+2 .WORD CSRAD+4 .WORD CSRAD+6 .WORD VEC .END CONSOL .MCALL .MODULE .MODULE NITEST,VERSION=07,COMMENT=,AUDIT=YES ; COPYRIGHT (c) 1986 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ALL RIGHTS RESERVED. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. .SBTTL Abstract ;+ ; ; NITEST ; NITEST is a program which may be used to verify that communication ; is possible between two stations on the Ethernet. ; ; When running, it responds to loopback datagrams (protocol 90-00) ; sent to the station's physical address, broadcast address, or ; the 'loopback assist' multicast address. ; ; In addition, it may be used to send a loopback datagram to ; another station and verify that it returns. ; ; Edit History: ; ; X01 (001) 13-Feb-85 Added HEX macro to make it easy to specify ethernet ; MBG addresses and protocol types. ; ; X01 (002) 04-Mar-85 Changes to buffer layout for transmit and receive ; MBG required changes here. ; ; V05 (006) 16-Jan-86 Errors to completion mode SPFUNS will not be seen ; MBG until the next request on that channel. Retry the ; request. Also, coding change to protect against ; response packets received late. ; ; V05 (007) 13-Mar-86 Added code to discard loopback packets which are ; MBG obviously bad based on skip count information. ; ;- .SBTTL Definitions ; RT-11 Macros we'll be using .MCALL .QSET, .GVAL, .GTJB .MCALL .FETCH, .PRINT, .LOOKU .MCALL .SPFUN, .GTLIN, .MRKT .MCALL .SPND, .CMKT, .RSUM .MCALL .TTYOU, .EXIT ; Define our own macro for HEX strings .MACRO HEX TEXT .TOGL. = 0 .IRPC ..CHR., .IF DIF ..CHR.,- .HXCT. = 0 .FIND. = 0 .IRPC ..HEX.,<0123456789ABCDEF> .IF IDN ..CHR.,..HEX. .FIND. = 200!.HXCT. .ENDC ;IDN ..CHR.,..HEX. .HXCT. = .HXCT. + 1 .ENDR ;..HEX. .IF EQ .FIND. .ERROR ;Invalid character ''..CHR.'' in hex string ''TEXT'' .MEXIT .ENDC ;EQ .FIND. .IF EQ .TOGL. .FRST. = <.FIND.&17>*20 .IFF .BYTE .FRST.!<.FIND.&17> .ENDC ;EQ .TOGL. .TOGL. = <-.TOGL.> + 1 .IFF .IF NE .TOGL. .BYTE .FRST./20 .TOGL. = 0 .ENDC ;NE .TOGL. .ENDC ;DIF ..CHR.,- .ENDR ;.IRPC ..CHR. .IF NE .TOGL. .BYTE .FRST./20 .TOGL. = 0 .ENDC ;NE .TOGL. .ENDM ;MACRO ; RMON Fixed offsets CONFG2 = 370 ;Configuration word 2 PRO$ = 020000 ;Running on PRO BUS$ = 000100 ;Qbus/Unibus ; Ethernet class handler functions SP.POR = 200 ;Allocate/Deallocate unit SP.PT = 202 ;Enable/Disable protocol type SP.MA = 203 ;Enable/Disable multicast address SP.XMT = 204 ;Transmit ethernet frame SP.RCV = 205 ;Read ethernet frame .SBTTL NITEST .PSECT .CODE. .ENABL LSB NITEST: .QSET #QELEM,#4. ;We'll need extra queue elements .GVAL #AREA,#CONFG2 ;Get contents of config word 2 MOV #<^RNC >,DBLK ;Assume PRO BIT #PRO$,R0 ;Correct assumption? BNE 10$ ;Yep... MOV #<^RNQ >,DBLK ;No, so assume Qbus BIT #BUS$,R0 ;Correct assumption? BNE 10$ ;Yep... MOV #<^RNU >,DBLK ;Nope, must be unibus after all 10$: .GTJB #AREA,#JOBDAT ;Get info on this job MOV JOBNUM,R0 ;R0 = Job number (*2) ASR R0 ;Convert to job number 0-7 ADD #36,R0 ;Make it final RAD50 digit ADD R0,DBLK ;And add it to the device name .FETCH #FREE,#DBLK ;Fetch the handler we need BCC 20$ MOV #M.IVD,R0 ;R0 -> 'Invalid device' FATAL: .PRINT ;Print the error message .EXIT ;And go away 20$: .LOOKU #AREA,#0,#DBLK ;Open a channel to the ethernet BCC 21$ MOV #M.LERR,R0 ;R0 -> 'Lookup error' BR FATAL 21$: .SPFUN #AREA,#0,#SP.POR,#ALBUFF,#0,#1 ;Allocate the unit for our use BCC 22$ MOV #M.UAER,R0 ;R0 -> 'Unit allocation error' BR FATAL 22$: MOV ALBUFF+2,XADDR ;Save the station's address MOV ALBUFF+4,XADDR+2 MOV ALBUFF+6,XADDR+4 .SPFUN #AREA,#0,#SP.PT,#PTBUFF,#0,#1 ;Enable loopback protocol BCC 23$ MOV #M.EPER,R0 ;R0 -> 'Protocol enable error' BR FATAL 23$: .SPFUN #AREA,#0,#SP.MA,#MABUFF,#0,#1 ;Loopback assist multicast BCC 24$ MOV #M.EMER,R0 ;R0 -> 'Multicast enable error' BR FATAL 24$: .PRINT #M.STAT ;Announce station's address MOV #ALBUFF+2,R1 CALL EAOUT .PRINT #M.CRLF 30$: CALL XMTCMP ;Prime the loopback assist pump .PRINT #M.LOOP ;Announce loopback is enabled .PRINT #M.CRLF .DSABL LSB .SBTTL LOOPFW - Initiates a loopback datagram .ENABL LSB LOOPFW: .GTLIN #CMDBUF,#M.PROM ;Prompt for the test station 10$: .MRKT #TAREA,#TIMBLK,#TIMCMP,#1 ;Start a timer BCC 15$ MOV #M.QELM,R0 ;R0 -> 'No queue element' JMP FATAL 15$: .SPFUN #XAREA,#0,#SP.XMT,#XBUFF,#759.,#0,#1 ;Transmit the datagram ; (Can't use 'wait' mode because ; of outstanding calls using ; completion mode) CLR RECVFG ;Reset the receive flag .SPND ;Suspend until the packet returns ; or we timeout waiting for it TST (PC)+ ;Did we get a response? RECVFG: .WORD 0 ; : Receive flag BNE 30$ ;Yes... .PRINT #M.NORE ;Nope, 'No response' .PRINT #M.CRLF BR LOOPFW 30$: .PRINT #M.RECV ;'Response received from' MOV #RBUFF+EF.SRC,R1 ;R1 -> Datagram source field CALL EAOUT ;Print the station address MOV #XDATA,R0 ;R0 -> Data transmitted MOV #RBUFF+,R1 ;R1 -> Data received MOV #DATASZ,R2 ;R2 = Count of data words 40$: CMP (R0)+,(R1)+ ;Is the received data correct? BNE 50$ ;Nope... DEC R2 ;Yes, more to check? BGT 40$ ;Yep... .PRINT #M.OK ;'data correct' 45$: .PRINT #M.CRLF .SPND ;Wait for timer to expire CALL XMTCMP ;Reprime the loopback assist pump BR LOOPFW 50$: .PRINT #M.NOK ;'data corrupt' BR 45$ .DSABL LSB .SBTTL Completion routines ;+ ; ; RCVCMP ; Entered on completion of posted read due to reception of ; a packet destined for this physical station, the loopback ; assist multicast address, or the broadcast address with ; a protocol type of 90-00. ; ; The received packet is processed, and if it is to be ; forwarded, a transmit is posted with completion at XMTCMP. ; If the datagram indicates that it has arrived at its ; destination, a flag is set to indicate a received packet and ; the mainline code is resumed so that the data may be verified. ; ; XMTCMP ; Entered on the following: ; ; 1) From top level code. Used to prime the loopback ; assist receive pump (completion driven). ; 2) Completion of the write posted in RCVCMP to forward ; a loopback packet. ; 3) From RCVCMP when a packet is not to be forwarded ; because it has reached its destination or is to ; be forwarded to a multicast address (a no-no). ; ; Posts another read with completion at RCVCMP. ; ; TIMCMP ; Entered when timer expires, indicating no response from ; remote station. ; ;- .ENABL LSB RCVCMP: MOV #RBUFF+EF.SKP,R0 ;R0 -> Skip count field BIT #7,(R0) ;Is skip count a multiple of 8.? BNE XMTCMP ;Nope, so ignore this packet CMP (R0),#<8.*186.> ;Is it a within range? BGT XMTCMP ;Nope, so ignore the packet MOV (R0),-(SP) ;Get the skip count ADD #8.,(R0)+ ;Update field ADD (SP)+,R0 ;Point to encapsulated data BIT #1,R0 ;Skip count getting us to odd address? BNE XMTCMP ;Yes, drop the packet... CMP (R0),#1 ;Reply packet? BNE 10$ ;Nope... TST RECVFG ;Did we already receive one? BNE XMTCMP ;Yes, so post the read again MOV SP,RECVFG ;Nope, so set the receive flag TIMCMP: .RSUM ;Resume the mainline RETURN 10$: CMP (R0)+,#2 ;Forward packet? BNE XMTCMP ;Nope, ignore it BIT #1,(R0) ;Is destination a multicast address? BNE XMTCMP ;Yes, then ignore it MOV #RBUFF+EF.DST,R1 ;R1 -> Destination field MOV (R0)+,(R1)+ ;Set next destination MOV (R0)+,(R1)+ MOV (R0)+,(R1)+ CLR (R1)+ ;Force the station's physical address CLR (R1)+ ; to be used CLR (R1)+ MOV RBUFF+2,R1 ;Get actual frame size INC R1 ;Bump size in case of odd-sized frame ASR R1 ;Convert byte to word count 20$: .SPFUN #RAREA,#0,#SP.XMT,#RBUFF,R1,#0,#XMTCMP ;Pass the packet BCS 20$ ;Try again, in case of previous error RETURN XMTCMP: .SPFUN #RAREA,#0,#SP.RCV,#RBUFF,#759.,#0,#RCVCMP ;Post a read BCS XMTCMP ;Try again, in case of previous error RETURN .DSABL LSB .SBTTL HEX OUTPUT ROUTINES .ENABL LSB TYPOUT: MOV #2,R2 ;Protocol is two octets BR 10$ EAOUT: MOV #6,R2 ;Addresses are six octets BR 10$ 5$: .TTYOU #'- ;Delimiter 10$: MOVB (R1)+,-(SP) ;Save a byte of the address MOVB (SP),R0 ;Get the byte ASR R0 ;Shift high nybble to where we want it ASR R0 ASR R0 ASR R0 BIC #^C<17>,R0 ;Isolate it .TTYOU HEX(R0) ;Print the hex character MOVB (SP)+,R0 ;Get the address byte again BIC #^C<17>,R0 ;Isolate the low nybble .TTYOU HEX(R0) ;Print the hex character DEC R2 ;More to do? BGT 5$ ;Yep... RETURN .DSABL LSB .SBTTL Messages .PSECT .TEXT. .NLIST BEX M.PROM: .ASCII /Type to test: /<200> M.IVD: .ASCIZ /?NITEST-U-Invalid device/ M.LERR: .ASCIZ /?NITEST-U-Lookup error/ M.UAER: .ASCIZ /?NITEST-U-Unit allocation error/ M.EPER: .ASCIZ /?NITEST-U-Enable protocol error/ M.EMER: .ASCIZ /?NITEST-U-Enable multicast address error/ M.QELM: .ASCIZ /?NITEST-U-No queue element/ M.NORE: .ASCIZ /?NITEST-W-No response/ M.RECV: .ASCII /?NITEST-I-Response received from /<200> M.OK: .ASCIZ /, data correct/ M.NOK: .ASCIZ /, data corrupt/ M.STAT: .ASCII /Station address = /<200> M.LOOP: .ASCII /Loopback assist is enabled/ M.CRLF: .BYTE 0 HEX: .ASCII /0123456789ABCDEF/ .EVEN .LIST BEX .SBTTL Impure data area .PSECT .DATA. AREA: .BLKW 10. ;General purpose EMT area RAREA: .BLKW 6. ;EMT area for receive .SPFUN XAREA: .BLKW 6. ;EMT area for transmit .SPFUN TAREA: .BLKW 4 ;EMT area for timer CMDBUF: .BLKB 82. ;Response buffer QELEM: .BLKW 4*10. ;Extra queue elements TIMBLK: .WORD 0,1*60. ;Timer block JOBDAT: ;Job data area JOBNUM: .BLKW 12. DBLK: .WORD 0,0,0,0 ;Device block ALBUFF: .BLKW 4 ;Unit allocation buffer MABUFF: .BLKW ;Enable multicast address buffer HEX ;Loopback assist multicast address PTBUFF: .BLKW ;Enable protocol type buffer HEX <90-00> ;Protocol type = Loopback RBUFF: .BLKW 759. ;Receive buffer EF.DST = 4 EF.SRC = EF.DST+6 EF.PT = EF.SRC+6 EF.SKP = EF.PT+2 XBUFF: .BLKW ;Status word .BLKW ;reserved HEX ;Destination = loopback assist ; (Change this if you wish to send ; to a specific station) .WORD 0,0,0 ;Source = station physical address HEX <90-00> ;Protocol type = Loopback .WORD 0 ;Skip count .WORD 2 ;Forward XADDR: .WORD 0,0,0 ;Ultimate destination .WORD 1 ;Reply .WORD 1 ;Receipt number XDATA: .ASCIZ /Loopback datagram data area/ .EVEN DATASZ = <.-XDATA>/2 .BLKW 759.-<<.-XBUFF>/2> FREE == . .END NITEST